@aituber-onair/chat 0.63.0 → 0.64.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/README.ja.md +25 -1
- package/README.md +26 -1
- package/dist/cjs/constants/openrouter.d.ts +1 -0
- package/dist/cjs/constants/openrouter.d.ts.map +1 -1
- package/dist/cjs/constants/openrouter.js +9 -2
- package/dist/cjs/constants/openrouter.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/constants/openrouter.d.ts +1 -0
- package/dist/esm/constants/openrouter.d.ts.map +1 -1
- package/dist/esm/constants/openrouter.js +7 -0
- package/dist/esm/constants/openrouter.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +2 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/umd/aituber-onair-chat.js +12 -3
- package/dist/umd/aituber-onair-chat.min.js +7 -7
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -771,6 +771,7 @@ hidden thinking が使い切るリスクを抑えます。Gemini 2.5 は
|
|
|
771
771
|
|
|
772
772
|
| Model ID | 推論レベル(package既定) |
|
|
773
773
|
| --- | --- |
|
|
774
|
+
| `mistralai/mistral-large-4-0` | `none`(パッケージ既定)、`high`(上流既定)。推論トークン予算なし |
|
|
774
775
|
| `unbiased/pareto-26.10-preview` | 推論レベル選択なし(プロバイダー既定) |
|
|
775
776
|
| `openai/gpt-6.1-sol` | max, xhigh, high, medium, low (low) |
|
|
776
777
|
| `openai/gpt-6-sol` | max, xhigh, high, medium, low, none (none) |
|
|
@@ -825,6 +826,29 @@ MiMo V2.6 Flashはテキスト・画像入力に対応し、音声・動画入
|
|
|
825
826
|
[MiMo V2.6 Flash](https://openrouter.ai/xiaomi/mimo-v2.6-flash)、
|
|
826
827
|
[Apodex 1.1 Mini](https://openrouter.ai/apodex/apodex-1.1-mini%3Afree)を参照してください。
|
|
827
828
|
|
|
829
|
+
Mistral Large 4(`mistralai/mistral-large-4-0`)は、テキスト・画像入力、
|
|
830
|
+
テキスト出力、ストリーミング、ツール呼び出しに対応する明示選択の公開プレビューです。
|
|
831
|
+
コンテキスト長は512Kで、プレビューの動作は変更される可能性があります。
|
|
832
|
+
既存の既定モデルと選択順は維持します。OpenRouterのAPIキーを入力して
|
|
833
|
+
**OpenRouter → Mistral Large 4**を選ぶか、`ChatServiceFactory`で
|
|
834
|
+
`provider: 'openrouter'`と`model: MODEL_OPENROUTER_MISTRAL_LARGE_4_0`を設定します。
|
|
835
|
+
Bearer認証付きJSONを`https://openrouter.ai/api/v1/chat/completions`へ直接送信し、
|
|
836
|
+
`choices[].message`またはSSEの`choices[].delta`を読み取ります。
|
|
837
|
+
画像とツールはOpenAI互換形式です。推論レベルは`none`と`high`に対応します。
|
|
838
|
+
上流の既定は`high`ですが、本パッケージではリアルタイム会話の応答性を優先して
|
|
839
|
+
`none`を既定とし、明示した`high`は維持します。未対応の引き継ぎ値は`none`に
|
|
840
|
+
正規化します。推論無効時の通常のツール継続に対応しますが、推論有効時の
|
|
841
|
+
ツールターン間で`reasoning_details`を保持する機能はありません。
|
|
842
|
+
推論トークン予算は公開されていないため、UIで隠し、送信しません。
|
|
843
|
+
ファイル・音声・動画入力と構造化出力の強制は対応範囲外です。
|
|
844
|
+
[ブラウザ認証ガイド](https://openrouter.ai/docs/guides/overview/auth/oauth)には
|
|
845
|
+
ブラウザへのキー保存と直接fetchする構成が説明されています。
|
|
846
|
+
モック通信とDOMテストはパッケージの経路・動作を確認するもので、上流の認証付き
|
|
847
|
+
CORSや実API生成を検証するものではありません。実APIでの生成は実施していません。
|
|
848
|
+
[モデル一覧](https://openrouter.ai/api/v1/models)、
|
|
849
|
+
[モデルページ](https://openrouter.ai/mistralai/mistral-large-4-0)、
|
|
850
|
+
[Chat Completions仕様](https://openrouter.ai/docs/api/reference/overview)を参照してください。
|
|
851
|
+
|
|
828
852
|
Pareto 26.10 Preview(`unbiased/pareto-26.10-preview`)はテキスト・画像入力、
|
|
829
853
|
ストリーミング、自動ツール選択に対応する明示選択のプレビューです。予告なく変更される
|
|
830
854
|
可能性があり、既定モデルや安定版としての推奨ではありません。Reactサンプルで
|
|
@@ -1543,7 +1567,7 @@ vision、JSON mode、reasoning 設定を使うべきかを provider 固有ロジ
|
|
|
1543
1567
|
- **OpenAI-Compatible**: OpenAI互換 endpoint 経由で任意のローカル/セルフホスト model ID を利用できます。vision 対応可否は endpoint ごとに差があるため、原則 `unknown` 扱いです
|
|
1544
1568
|
- **Gemini**: Gemini 3.8 Flash、Gemini 3.7 Flash、Gemini 3.6 Flash、Gemini 3.5 Flash、Gemini 3.5 Flash-Lite、Gemini 3.1 Flash-Lite、Gemini 3.1 Pro Preview、Gemini 3 Flash Preview、Gemini 2.5 Pro、Gemini 2.5 Flash、Gemini 2.5 Flash Lite、Gemma 4 31B IT、Gemma 4 26B A4B IT などの推奨モデルをサポート。Gemini 3 はチャット用途向けに利用可能な最小の thinking を既定値にします。`minimal` 非対応の Gemini 3.8 Flash、Gemini 3.7 Flash、Gemini 3 Pro は `low`、その他の Gemini 3 Flash は `minimal` を使います。Gemini 3.1 Flash-Lite Preview、Gemini 3 Pro Preview、Gemini 2.5 Flash Lite Preview などの lifecycle 上 deprecated なモデルは明示指定用に export を残しています
|
|
1545
1569
|
- **Claude**: Claude Haiku 5.5 (`claude-haiku-5-5`、明示選択)、Claude Opus 5.5 (`claude-opus-5-5`)、Claude Sonnet 5.5 (`claude-sonnet-5-5`)、Claude Fable 5.1 (`claude-fable-5-1`); Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Haiku 4.5 をサポート。調整可能な`reasoning_effort`は対応モデルに限り`output_config.effort`として送信し、refusal metadataは終端completionとして保持します
|
|
1546
|
-
- **OpenRouter**: Pareto 26.10 Preview (`unbiased/pareto-26.10-preview`, 明示選択のプレビュー), Ling 3.1 Flash(テキスト専用・明示選択)、Solar Mini4、Solar Pro 4、MiMo V2.6 Flash、Apodex 1.1 Mini (Free)、GPT-6.1 Sol, GPT-6 Sol/Luna/Astra/Pro, Claude Sonnet 5.5/Opus 5.5, Grok 4.7, Claude Fable 5.1, DeepSeek V4.1 Flash, Gemini 3.8 Flash, Ling 3.0 Flash VL, Mercury 2.5, Nex N2.5 Mini/Pro, Qwen3.8 Max, Muse Spark 1.3; OpenAI/Claude/Gemini/Z.ai/xAI/Kimi/DeepSeek/Qwen/Kwaipilotのキュレーション済み一覧をサポート。GLM-5.3/FlashX、Qwen3.8 Flash、DeepSeek V4 Flash Vision Exp、Claude Sonnet 5/Opus 4.8、Kimi K2.6も含みます。 明示選択として`nvidia/nemotron-3.5-lightning`(テキスト専用)、`qwen/qwen3.8-27b`と`qwen/qwen3.8-omni-flash`(画像入力対応)も利用できます。
|
|
1570
|
+
- **OpenRouter**: Mistral Large 4 (`mistralai/mistral-large-4-0`, 明示選択の公開プレビュー), Pareto 26.10 Preview (`unbiased/pareto-26.10-preview`, 明示選択のプレビュー), Ling 3.1 Flash(テキスト専用・明示選択)、Solar Mini4、Solar Pro 4、MiMo V2.6 Flash、Apodex 1.1 Mini (Free)、GPT-6.1 Sol, GPT-6 Sol/Luna/Astra/Pro, Claude Sonnet 5.5/Opus 5.5, Grok 4.7, Claude Fable 5.1, DeepSeek V4.1 Flash, Gemini 3.8 Flash, Ling 3.0 Flash VL, Mercury 2.5, Nex N2.5 Mini/Pro, Qwen3.8 Max, Muse Spark 1.3; OpenAI/Claude/Gemini/Z.ai/xAI/Kimi/DeepSeek/Qwen/Kwaipilotのキュレーション済み一覧をサポート。GLM-5.3/FlashX、Qwen3.8 Flash、DeepSeek V4 Flash Vision Exp、Claude Sonnet 5/Opus 4.8、Kimi K2.6も含みます。 明示選択として`nvidia/nemotron-3.5-lightning`(テキスト専用)、`qwen/qwen3.8-27b`と`qwen/qwen3.8-omni-flash`(画像入力対応)も利用できます。
|
|
1547
1571
|
- **Z.ai**: GLM-5.3/GLM-5.2/GLM-5.1/GLM-5/GLM-5-TurboとGLM-4.7/4.6のテキストモデル、GLM-5.3-FlashX/GLM-5.3-Flash/GLM-5V-Turbo/GLM-4.6V系のビジョンモデルをサポート。GLM-5.3はthinking必須で`low`、GLM-5.2は`none`を既定値にします
|
|
1548
1572
|
- **xAI**: Grok 4.7、Grok 4.6、Grok 4.5、Grok 4.3、Grok 4.20 Reasoning/Non-Reasoningをvision対応でサポート。Grok 4.7/4.6/4.5のpackage既定は低遅延向けの`reasoning_effort: 'low'`、Grok 4.3は`none`です
|
|
1549
1573
|
- **Kimi**: Kimi K3(`kimi-k3`、`low` / `high` / `max` reasoning、デフォルトは `max`)、Kimi K2.7 Code(`kimi-k2.7-code`)、Kimi K2.7 Code HighSpeed(`kimi-k2.7-code-highspeed`)、Kimi K2.6(`kimi-k2.6`、デフォルト)、Kimi K2.5(`kimi-k2.5`、いずれもビジョン対応)をサポート
|
package/README.md
CHANGED
|
@@ -794,6 +794,7 @@ The following explicit options use OpenRouter Chat Completions without changing
|
|
|
794
794
|
|
|
795
795
|
| Model ID | Reasoning efforts (package default) |
|
|
796
796
|
| --- | --- |
|
|
797
|
+
| `mistralai/mistral-large-4-0` | `none` (package default), `high` (upstream default); no reasoning token budget |
|
|
797
798
|
| `unbiased/pareto-26.10-preview` | No effort selector (provider default) |
|
|
798
799
|
| `openai/gpt-6.1-sol` | max, xhigh, high, medium, low (low) |
|
|
799
800
|
| `openai/gpt-6-sol` | max, xhigh, high, medium, low, none (none) |
|
|
@@ -849,6 +850,30 @@ See [Solar Mini4](https://openrouter.ai/upstage/solar-mini4),
|
|
|
849
850
|
[MiMo V2.6 Flash](https://openrouter.ai/xiaomi/mimo-v2.6-flash), and
|
|
850
851
|
[Apodex 1.1 Mini](https://openrouter.ai/apodex/apodex-1.1-mini%3Afree).
|
|
851
852
|
|
|
853
|
+
Mistral Large 4 (`mistralai/mistral-large-4-0`) is a supported, explicit public
|
|
854
|
+
preview for text and image input, text output, streaming, and tool calls with a
|
|
855
|
+
512K context window. Preview behavior may change; existing model defaults and
|
|
856
|
+
selection order are preserved. Select **OpenRouter → Mistral Large 4** with your
|
|
857
|
+
OpenRouter API key, or configure `provider: 'openrouter'` and
|
|
858
|
+
`model: MODEL_OPENROUTER_MISTRAL_LARGE_4_0` through `ChatServiceFactory`.
|
|
859
|
+
Requests go directly to `https://openrouter.ai/api/v1/chat/completions` with
|
|
860
|
+
Bearer authentication and JSON messages; one-shot responses use
|
|
861
|
+
`choices[].message`, streams use SSE `choices[].delta`, and images/tools use
|
|
862
|
+
OpenAI-compatible content and function-call shapes.
|
|
863
|
+
Reasoning supports `none` and `high`. The upstream default is `high`; this
|
|
864
|
+
package defaults to `none` for responsive real-time conversation and preserves
|
|
865
|
+
an explicit `high`. Unsupported inherited effort values normalize to `none`.
|
|
866
|
+
Ordinary tool continuations are supported with reasoning disabled; the parser
|
|
867
|
+
does not preserve `reasoning_details` across reasoning-enabled tool turns.
|
|
868
|
+
The undocumented reasoning-token budget is hidden in the sample and omitted
|
|
869
|
+
from requests. File/audio/video input and structured-output enforcement are
|
|
870
|
+
outside this integration. OpenRouter's [browser authentication guide](https://openrouter.ai/docs/guides/overview/auth/oauth)
|
|
871
|
+
documents browser key storage and direct fetch usage. Mock transport and DOM
|
|
872
|
+
tests verify package routing and behavior, not upstream authenticated CORS or
|
|
873
|
+
live inference; no live generation test was run. See the [model catalog](https://openrouter.ai/api/v1/models),
|
|
874
|
+
[model page](https://openrouter.ai/mistralai/mistral-large-4-0), and
|
|
875
|
+
[Chat Completions reference](https://openrouter.ai/docs/api/reference/overview).
|
|
876
|
+
|
|
852
877
|
Pareto 26.10 Preview (`unbiased/pareto-26.10-preview`) is an explicit preview
|
|
853
878
|
option for text, images, streaming, and automatic tool selection. It may change
|
|
854
879
|
without notice and is not a default or a stable-model recommendation. Select
|
|
@@ -1575,7 +1600,7 @@ Currently, the following AI providers are built-in:
|
|
|
1575
1600
|
- **OpenAI-Compatible**: Supports arbitrary local/self-hosted model IDs via OpenAI-compatible endpoints. Vision capability is treated as `unknown` unless your app knows the endpoint-specific model catalog.
|
|
1576
1601
|
- **Gemini**: Supports recommended models like Gemini 3.8 Flash, Gemini 3.7 Flash, Gemini 3.6 Flash, Gemini 3.5 Flash, Gemini 3.5 Flash-Lite, Gemini 3.1 Flash-Lite, Gemini 3.1 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite, Gemma 4 31B IT, and Gemma 4 26B A4B IT. Gemini 3 models default to their lowest supported thinking level for chat-style responses. Gemini 3.8 Flash, Gemini 3.7 Flash, and Gemini 3 Pro use low because they do not support minimal; other Gemini 3 Flash models use minimal. Deprecated lifecycle models such as Gemini 3.1 Flash-Lite Preview, Gemini 3 Pro Preview, and Gemini 2.5 Flash Lite Preview remain exported for explicit use.
|
|
1577
1602
|
- **Claude**: Claude Haiku 5.5 (`claude-haiku-5-5`, explicit), Claude Opus 5.5 (`claude-opus-5-5`), Claude Sonnet 5.5 (`claude-sonnet-5-5`), and Claude Fable 5.1 (`claude-fable-5-1`); Supports current Claude API model IDs including Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.6, Claude Sonnet 4.5, and Claude Haiku 4.5. Adjustable `reasoning_effort` is sent as `output_config.effort` only for models that support it; refusal metadata is preserved as a terminal completion.
|
|
1578
|
-
- **OpenRouter**: Pareto 26.10 Preview (`unbiased/pareto-26.10-preview`, explicit preview), Ling 3.1 Flash (text-only, explicit), Solar Mini4, Solar Pro 4, MiMo V2.6 Flash, Apodex 1.1 Mini (Free), GPT-6.1 Sol, GPT-6 Sol/Luna/Astra/Pro, Claude Sonnet 5.5/Opus 5.5, Grok 4.7, Claude Fable 5.1, DeepSeek V4.1 Flash, Gemini 3.8 Flash, Ling 3.0 Flash VL, Mercury 2.5, Nex N2.5 Mini/Pro, Qwen3.8 Max, Muse Spark 1.3; Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/xAI/Kimi/DeepSeek/Qwen/Kwaipilot), including GLM-5.3/FlashX, Qwen3.8 Flash, DeepSeek V4 Flash Vision Exp, Claude Sonnet 5/Opus 4.8, and Kimi K2.6. See the OpenRouter section for model IDs. Explicit options also include `nvidia/nemotron-3.5-lightning` (text-only), `qwen/qwen3.8-27b`, and `qwen/qwen3.8-omni-flash` (image input).
|
|
1603
|
+
- **OpenRouter**: Mistral Large 4 (`mistralai/mistral-large-4-0`, explicit public preview), Pareto 26.10 Preview (`unbiased/pareto-26.10-preview`, explicit preview), Ling 3.1 Flash (text-only, explicit), Solar Mini4, Solar Pro 4, MiMo V2.6 Flash, Apodex 1.1 Mini (Free), GPT-6.1 Sol, GPT-6 Sol/Luna/Astra/Pro, Claude Sonnet 5.5/Opus 5.5, Grok 4.7, Claude Fable 5.1, DeepSeek V4.1 Flash, Gemini 3.8 Flash, Ling 3.0 Flash VL, Mercury 2.5, Nex N2.5 Mini/Pro, Qwen3.8 Max, Muse Spark 1.3; Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/xAI/Kimi/DeepSeek/Qwen/Kwaipilot), including GLM-5.3/FlashX, Qwen3.8 Flash, DeepSeek V4 Flash Vision Exp, Claude Sonnet 5/Opus 4.8, and Kimi K2.6. See the OpenRouter section for model IDs. Explicit options also include `nvidia/nemotron-3.5-lightning` (text-only), `qwen/qwen3.8-27b`, and `qwen/qwen3.8-omni-flash` (image input).
|
|
1579
1604
|
- **Z.ai**: Supports GLM-5.3/GLM-5.2/GLM-5.1/GLM-5/GLM-5-Turbo and GLM-4.7/4.6 text models, plus GLM-5.3-FlashX/GLM-5.3-Flash/GLM-5V-Turbo/GLM-4.6V vision models. GLM-5.3 always thinks and defaults to `low`; GLM-5.2 defaults to `none`.
|
|
1580
1605
|
- **xAI**: Supports Grok 4.7, Grok 4.6, Grok 4.5, Grok 4.3, and Grok 4.20 Reasoning/Non-Reasoning with vision. Grok 4.7/4.6/4.5 use package-default `reasoning_effort: 'low'`; Grok 4.3 defaults to `none`.
|
|
1581
1606
|
- **Kimi**: Supports Kimi K3 (`kimi-k3`, `low` / `high` / `max` reasoning with `max` as the default), Kimi K2.7 Code (`kimi-k2.7-code`), Kimi K2.7 Code HighSpeed (`kimi-k2.7-code-highspeed`), Kimi K2.6 (`kimi-k2.6`, default), and Kimi K2.5 (`kimi-k2.5`) with vision support
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
|
|
2
|
+
export declare const MODEL_OPENROUTER_MISTRAL_LARGE_4_0 = "mistralai/mistral-large-4-0";
|
|
2
3
|
export declare const MODEL_UNBIASED_PARETO_26_10_PREVIEW = "unbiased/pareto-26.10-preview";
|
|
3
4
|
export declare const MODEL_INCLUSIONAI_LING_3_1_FLASH = "inclusionai/ling-3.1-flash";
|
|
4
5
|
export declare const MODEL_UPSTAGE_SOLAR_PRO4 = "upstage/solar-pro4";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,kDACa,CAAC;AAElD,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAElC,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAE7E,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AAExE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,oCAAoC,iCACjB,CAAC;AACjC,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,wCAAwC,uCACf,CAAC;AACvC,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AACpE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAClC,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAGxE,eAAO,MAAM,0CAA0C,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.OPENROUTER_CREDITS_THRESHOLD = exports.OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = exports.OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = exports.OPENROUTER_VISION_SUPPORTED_MODELS = exports.OPENROUTER_FREE_MODELS = exports.OPENROUTER_DEPRECATED_MODELS = exports.MODEL_QWEN_QWEN_3_8_FLASH = exports.MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP = exports.MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813 = exports.MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731 = exports.MODEL_OPENROUTER_DEEPSEEK_V4_FLASH = exports.MODEL_XAI_GROK_4_5 = exports.MODEL_XAI_GROK_4_6 = exports.MODEL_XAI_GROK_LATEST = exports.MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5 = exports.MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5 = exports.MODEL_ZAI_GLM_4_5_AIR_FREE = exports.MODEL_ZAI_GLM_4_5_AIR = exports.MODEL_ZAI_GLM_4_7_FLASH = exports.MODEL_ZAI_GLM_5_3_FLASHX = exports.MODEL_ZAI_GLM_5_3_FLASH = exports.MODEL_ZAI_GLM_5_3 = exports.MODEL_ZAI_GLM_5_2 = exports.MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = exports.MODEL_GOOGLE_GEMINI_2_5_FLASH = exports.MODEL_GOOGLE_GEMINI_2_5_PRO = exports.MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE = exports.MODEL_GOOGLE_GEMINI_3_6_FLASH = exports.MODEL_GOOGLE_GEMINI_3_7_FLASH = exports.MODEL_GOOGLE_GEMINI_FLASH_LATEST = exports.MODEL_GOOGLE_GEMINI_PRO_LATEST = exports.MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU = exports.MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = exports.MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_4 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4_8 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_5 = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_5 = exports.MODEL_ANTHROPIC_CLAUDE_FABLE_5 = exports.MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST = exports.MODEL_OPENAI_GPT_4_1_NANO = void 0;
|
|
3
|
+
exports.MODEL_OPENAI_GPT_4O = exports.MODEL_OPENAI_GPT_5_NANO = exports.MODEL_OPENAI_GPT_5_MINI = exports.MODEL_OPENAI_GPT_5_1_CODEX = exports.MODEL_OPENAI_GPT_5_1_CHAT = exports.MODEL_OPENAI_GPT_5_5 = exports.MODEL_OPENAI_GPT_5_5_PRO = exports.MODEL_OPENAI_GPT_5_6_LUNA = exports.MODEL_OPENAI_GPT_5_6_TERRA = exports.MODEL_OPENAI_GPT_5_6_SOL = exports.MODEL_OPENAI_GPT_MINI_LATEST = exports.MODEL_OPENAI_GPT_LATEST = exports.MODEL_MOONSHOTAI_KIMI_LATEST = exports.MODEL_MOONSHOTAI_KIMI_K2_5 = exports.MODEL_MOONSHOTAI_KIMI_K2_6 = exports.MODEL_MOONSHOTAI_KIMI_K2_7_CODE = exports.MODEL_MOONSHOTAI_KIMI_K3 = exports.MODEL_GPT_OSS_20B_FREE = exports.MODEL_OPENROUTER_FUSION = exports.MODEL_OPENROUTER_AUTO_BETA = exports.MODEL_OPENROUTER_AUTO = exports.OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET = exports.MODEL_QWEN_QWEN_3_8_OMNI_FLASH = exports.MODEL_QWEN_QWEN_3_8_27B = exports.MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING = exports.MODEL_META_MUSE_SPARK_1_3 = exports.MODEL_QWEN_QWEN_3_8_MAX_0902 = exports.MODEL_NEX_AGI_NEX_N2_5_PRO_FREE = exports.MODEL_NEX_AGI_NEX_N2_5_MINI_FREE = exports.MODEL_INCEPTION_MERCURY_2_5 = exports.MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE = exports.MODEL_GOOGLE_GEMINI_3_8_FLASH = exports.MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH = exports.MODEL_ANTHROPIC_CLAUDE_FABLE_5_1 = exports.MODEL_OPENAI_GPT_6_ASTRA_PRO = exports.MODEL_OPENAI_GPT_6_ASTRA = exports.MODEL_XAI_GROK_4_7 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_5_5 = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_5_5 = exports.MODEL_OPENAI_GPT_6_LUNA = exports.MODEL_OPENAI_GPT_6_SOL = exports.MODEL_OPENAI_GPT_6_1_SOL = exports.MODEL_APODEX_1_1_MINI_FREE = exports.MODEL_XIAOMI_MIMO_V2_6_FLASH = exports.MODEL_UPSTAGE_SOLAR_MINI4 = exports.MODEL_UPSTAGE_SOLAR_PRO4 = exports.MODEL_INCLUSIONAI_LING_3_1_FLASH = exports.MODEL_UNBIASED_PARETO_26_10_PREVIEW = exports.MODEL_OPENROUTER_MISTRAL_LARGE_4_0 = exports.ENDPOINT_OPENROUTER_API = void 0;
|
|
4
|
+
exports.OPENROUTER_CREDITS_THRESHOLD = exports.OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = exports.OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = exports.OPENROUTER_VISION_SUPPORTED_MODELS = exports.OPENROUTER_FREE_MODELS = exports.OPENROUTER_DEPRECATED_MODELS = exports.MODEL_QWEN_QWEN_3_8_FLASH = exports.MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP = exports.MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813 = exports.MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731 = exports.MODEL_OPENROUTER_DEEPSEEK_V4_FLASH = exports.MODEL_XAI_GROK_4_5 = exports.MODEL_XAI_GROK_4_6 = exports.MODEL_XAI_GROK_LATEST = exports.MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5 = exports.MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5 = exports.MODEL_ZAI_GLM_4_5_AIR_FREE = exports.MODEL_ZAI_GLM_4_5_AIR = exports.MODEL_ZAI_GLM_4_7_FLASH = exports.MODEL_ZAI_GLM_5_3_FLASHX = exports.MODEL_ZAI_GLM_5_3_FLASH = exports.MODEL_ZAI_GLM_5_3 = exports.MODEL_ZAI_GLM_5_2 = exports.MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = exports.MODEL_GOOGLE_GEMINI_2_5_FLASH = exports.MODEL_GOOGLE_GEMINI_2_5_PRO = exports.MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE = exports.MODEL_GOOGLE_GEMINI_3_6_FLASH = exports.MODEL_GOOGLE_GEMINI_3_7_FLASH = exports.MODEL_GOOGLE_GEMINI_FLASH_LATEST = exports.MODEL_GOOGLE_GEMINI_PRO_LATEST = exports.MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU = exports.MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = exports.MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_4 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4_8 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_5 = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_5 = exports.MODEL_ANTHROPIC_CLAUDE_FABLE_5 = exports.MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST = exports.MODEL_OPENAI_GPT_4_1_NANO = exports.MODEL_OPENAI_GPT_4_1_MINI = void 0;
|
|
5
5
|
exports.isOpenRouterFreeModel = isOpenRouterFreeModel;
|
|
6
6
|
exports.isOpenRouterVisionModel = isOpenRouterVisionModel;
|
|
7
7
|
exports.getOpenRouterSupportedReasoningEfforts = getOpenRouterSupportedReasoningEfforts;
|
|
8
8
|
exports.getDefaultOpenRouterReasoningEffort = getDefaultOpenRouterReasoningEffort;
|
|
9
9
|
exports.normalizeOpenRouterReasoningEffort = normalizeOpenRouterReasoningEffort;
|
|
10
10
|
exports.ENDPOINT_OPENROUTER_API = 'https://openrouter.ai/api/v1/chat/completions';
|
|
11
|
+
exports.MODEL_OPENROUTER_MISTRAL_LARGE_4_0 = 'mistralai/mistral-large-4-0';
|
|
11
12
|
exports.MODEL_UNBIASED_PARETO_26_10_PREVIEW = 'unbiased/pareto-26.10-preview';
|
|
12
13
|
exports.MODEL_INCLUSIONAI_LING_3_1_FLASH = 'inclusionai/ling-3.1-flash';
|
|
13
14
|
exports.MODEL_UPSTAGE_SOLAR_PRO4 = 'upstage/solar-pro4';
|
|
@@ -45,6 +46,7 @@ exports.OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET = [
|
|
|
45
46
|
exports.MODEL_QWEN_QWEN_3_8_27B,
|
|
46
47
|
exports.MODEL_QWEN_QWEN_3_8_OMNI_FLASH,
|
|
47
48
|
exports.MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
49
|
+
exports.MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
48
50
|
];
|
|
49
51
|
// OpenRouter models
|
|
50
52
|
exports.MODEL_OPENROUTER_AUTO = 'openrouter/auto';
|
|
@@ -157,6 +159,10 @@ const OPENROUTER_CLAUDE_REASONING_EFFORTS = [
|
|
|
157
159
|
'max',
|
|
158
160
|
];
|
|
159
161
|
const OPENROUTER_MODEL_REASONING = {
|
|
162
|
+
[exports.MODEL_OPENROUTER_MISTRAL_LARGE_4_0]: {
|
|
163
|
+
efforts: ['none', 'high'],
|
|
164
|
+
defaultEffort: 'none',
|
|
165
|
+
},
|
|
160
166
|
[exports.MODEL_UNBIASED_PARETO_26_10_PREVIEW]: {
|
|
161
167
|
efforts: [],
|
|
162
168
|
defaultEffort: undefined,
|
|
@@ -321,6 +327,7 @@ exports.OPENROUTER_VISION_SUPPORTED_MODELS = [
|
|
|
321
327
|
exports.MODEL_XAI_GROK_4_6,
|
|
322
328
|
exports.MODEL_XAI_GROK_4_5,
|
|
323
329
|
exports.MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
330
|
+
exports.MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
324
331
|
];
|
|
325
332
|
// Rate limits for free tier
|
|
326
333
|
exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAuFA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAmG9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAQ3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|
|
@@ -137,6 +137,7 @@ class OpenRouterChatServiceProvider {
|
|
|
137
137
|
openrouter_1.MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5,
|
|
138
138
|
openrouter_1.MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5,
|
|
139
139
|
openrouter_1.MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
140
|
+
openrouter_1.MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
140
141
|
];
|
|
141
142
|
}
|
|
142
143
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
|
|
2
|
+
export declare const MODEL_OPENROUTER_MISTRAL_LARGE_4_0 = "mistralai/mistral-large-4-0";
|
|
2
3
|
export declare const MODEL_UNBIASED_PARETO_26_10_PREVIEW = "unbiased/pareto-26.10-preview";
|
|
3
4
|
export declare const MODEL_INCLUSIONAI_LING_3_1_FLASH = "inclusionai/ling-3.1-flash";
|
|
4
5
|
export declare const MODEL_UPSTAGE_SOLAR_PRO4 = "upstage/solar-pro4";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,kDACa,CAAC;AAElD,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAElC,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAE7E,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AAExE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,oCAAoC,iCACjB,CAAC;AACjC,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,wCAAwC,uCACf,CAAC;AACvC,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AACpE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAClC,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAGxE,eAAO,MAAM,0CAA0C,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export const ENDPOINT_OPENROUTER_API = 'https://openrouter.ai/api/v1/chat/completions';
|
|
2
|
+
export const MODEL_OPENROUTER_MISTRAL_LARGE_4_0 = 'mistralai/mistral-large-4-0';
|
|
2
3
|
export const MODEL_UNBIASED_PARETO_26_10_PREVIEW = 'unbiased/pareto-26.10-preview';
|
|
3
4
|
export const MODEL_INCLUSIONAI_LING_3_1_FLASH = 'inclusionai/ling-3.1-flash';
|
|
4
5
|
export const MODEL_UPSTAGE_SOLAR_PRO4 = 'upstage/solar-pro4';
|
|
@@ -36,6 +37,7 @@ export const OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET = [
|
|
|
36
37
|
MODEL_QWEN_QWEN_3_8_27B,
|
|
37
38
|
MODEL_QWEN_QWEN_3_8_OMNI_FLASH,
|
|
38
39
|
MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
40
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
39
41
|
];
|
|
40
42
|
// OpenRouter models
|
|
41
43
|
export const MODEL_OPENROUTER_AUTO = 'openrouter/auto';
|
|
@@ -148,6 +150,10 @@ const OPENROUTER_CLAUDE_REASONING_EFFORTS = [
|
|
|
148
150
|
'max',
|
|
149
151
|
];
|
|
150
152
|
const OPENROUTER_MODEL_REASONING = {
|
|
153
|
+
[MODEL_OPENROUTER_MISTRAL_LARGE_4_0]: {
|
|
154
|
+
efforts: ['none', 'high'],
|
|
155
|
+
defaultEffort: 'none',
|
|
156
|
+
},
|
|
151
157
|
[MODEL_UNBIASED_PARETO_26_10_PREVIEW]: {
|
|
152
158
|
efforts: [],
|
|
153
159
|
defaultEffort: undefined,
|
|
@@ -312,6 +318,7 @@ export const OPENROUTER_VISION_SUPPORTED_MODELS = [
|
|
|
312
318
|
MODEL_XAI_GROK_4_6,
|
|
313
319
|
MODEL_XAI_GROK_4_5,
|
|
314
320
|
MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
321
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
315
322
|
];
|
|
316
323
|
// Rate limits for free tier
|
|
317
324
|
export const OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAuFA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAmG9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAQ3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MODEL_UNBIASED_PARETO_26_10_PREVIEW, MODEL_INCLUSIONAI_LING_3_1_FLASH, MODEL_UPSTAGE_SOLAR_PRO4, MODEL_UPSTAGE_SOLAR_MINI4, MODEL_XIAOMI_MIMO_V2_6_FLASH, MODEL_APODEX_1_1_MINI_FREE, MODEL_OPENAI_GPT_6_1_SOL, MODEL_OPENAI_GPT_6_SOL, MODEL_OPENAI_GPT_6_LUNA, MODEL_ANTHROPIC_CLAUDE_SONNET_5_5, MODEL_ANTHROPIC_CLAUDE_OPUS_5_5, MODEL_XAI_GROK_4_7, MODEL_OPENAI_GPT_6_ASTRA, MODEL_OPENAI_GPT_6_ASTRA_PRO, MODEL_ANTHROPIC_CLAUDE_FABLE_5_1, MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH, MODEL_GOOGLE_GEMINI_3_8_FLASH, MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE, MODEL_INCEPTION_MERCURY_2_5, MODEL_NEX_AGI_NEX_N2_5_MINI_FREE, MODEL_NEX_AGI_NEX_N2_5_PRO_FREE, MODEL_QWEN_QWEN_3_8_MAX_0902, MODEL_META_MUSE_SPARK_1_3, MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING, MODEL_QWEN_QWEN_3_8_27B, MODEL_QWEN_QWEN_3_8_OMNI_FLASH, MODEL_ANTHROPIC_CLAUDE_FABLE_5, MODEL_ANTHROPIC_CLAUDE_SONNET_5, MODEL_ANTHROPIC_CLAUDE_OPUS_5, MODEL_ANTHROPIC_CLAUDE_OPUS_4_8, MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST, MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST, MODEL_ANTHROPIC_CLAUDE_OPUS_4, MODEL_ANTHROPIC_CLAUDE_SONNET_4, MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU, MODEL_GPT_OSS_20B_FREE, MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE, MODEL_GOOGLE_GEMINI_3_7_FLASH, MODEL_GOOGLE_GEMINI_3_6_FLASH, MODEL_GOOGLE_GEMINI_PRO_LATEST, MODEL_GOOGLE_GEMINI_FLASH_LATEST, MODEL_GOOGLE_GEMINI_2_5_PRO, MODEL_GOOGLE_GEMINI_2_5_FLASH, MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025, MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5, MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5, MODEL_MOONSHOTAI_KIMI_K3, MODEL_MOONSHOTAI_KIMI_K2_6, MODEL_MOONSHOTAI_KIMI_K2_5, MODEL_MOONSHOTAI_KIMI_LATEST, MODEL_OPENROUTER_AUTO, MODEL_OPENROUTER_AUTO_BETA, MODEL_OPENROUTER_FUSION, MODEL_OPENAI_GPT_LATEST, MODEL_MOONSHOTAI_KIMI_K2_7_CODE, MODEL_OPENAI_GPT_MINI_LATEST, MODEL_OPENAI_GPT_5_6_SOL, MODEL_OPENAI_GPT_5_6_TERRA, MODEL_OPENAI_GPT_5_6_LUNA, MODEL_OPENAI_GPT_5_5_PRO, MODEL_OPENAI_GPT_5_5, MODEL_OPENAI_GPT_5_1_CODEX, MODEL_OPENAI_GPT_5_MINI, MODEL_OPENAI_GPT_5_NANO, MODEL_OPENAI_GPT_4O, MODEL_OPENAI_GPT_4_1_MINI, MODEL_OPENAI_GPT_4_1_NANO, MODEL_XAI_GROK_4_5, MODEL_XAI_GROK_4_6, MODEL_XAI_GROK_LATEST, MODEL_OPENROUTER_DEEPSEEK_V4_FLASH, MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731, MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813, MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP, MODEL_QWEN_QWEN_3_8_FLASH, MODEL_ZAI_GLM_5_3, MODEL_ZAI_GLM_5_3_FLASH, MODEL_ZAI_GLM_5_3_FLASHX, MODEL_ZAI_GLM_5_2, MODEL_ZAI_GLM_4_7_FLASH, MODEL_ZAI_GLM_4_5_AIR, OPENROUTER_FREE_MODELS, isOpenRouterFreeModel, isOpenRouterVisionModel, } from '../../../constants/openrouter';
|
|
1
|
+
import { MODEL_OPENROUTER_MISTRAL_LARGE_4_0, MODEL_UNBIASED_PARETO_26_10_PREVIEW, MODEL_INCLUSIONAI_LING_3_1_FLASH, MODEL_UPSTAGE_SOLAR_PRO4, MODEL_UPSTAGE_SOLAR_MINI4, MODEL_XIAOMI_MIMO_V2_6_FLASH, MODEL_APODEX_1_1_MINI_FREE, MODEL_OPENAI_GPT_6_1_SOL, MODEL_OPENAI_GPT_6_SOL, MODEL_OPENAI_GPT_6_LUNA, MODEL_ANTHROPIC_CLAUDE_SONNET_5_5, MODEL_ANTHROPIC_CLAUDE_OPUS_5_5, MODEL_XAI_GROK_4_7, MODEL_OPENAI_GPT_6_ASTRA, MODEL_OPENAI_GPT_6_ASTRA_PRO, MODEL_ANTHROPIC_CLAUDE_FABLE_5_1, MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH, MODEL_GOOGLE_GEMINI_3_8_FLASH, MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE, MODEL_INCEPTION_MERCURY_2_5, MODEL_NEX_AGI_NEX_N2_5_MINI_FREE, MODEL_NEX_AGI_NEX_N2_5_PRO_FREE, MODEL_QWEN_QWEN_3_8_MAX_0902, MODEL_META_MUSE_SPARK_1_3, MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING, MODEL_QWEN_QWEN_3_8_27B, MODEL_QWEN_QWEN_3_8_OMNI_FLASH, MODEL_ANTHROPIC_CLAUDE_FABLE_5, MODEL_ANTHROPIC_CLAUDE_SONNET_5, MODEL_ANTHROPIC_CLAUDE_OPUS_5, MODEL_ANTHROPIC_CLAUDE_OPUS_4_8, MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST, MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST, MODEL_ANTHROPIC_CLAUDE_OPUS_4, MODEL_ANTHROPIC_CLAUDE_SONNET_4, MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU, MODEL_GPT_OSS_20B_FREE, MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE, MODEL_GOOGLE_GEMINI_3_7_FLASH, MODEL_GOOGLE_GEMINI_3_6_FLASH, MODEL_GOOGLE_GEMINI_PRO_LATEST, MODEL_GOOGLE_GEMINI_FLASH_LATEST, MODEL_GOOGLE_GEMINI_2_5_PRO, MODEL_GOOGLE_GEMINI_2_5_FLASH, MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025, MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5, MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5, MODEL_MOONSHOTAI_KIMI_K3, MODEL_MOONSHOTAI_KIMI_K2_6, MODEL_MOONSHOTAI_KIMI_K2_5, MODEL_MOONSHOTAI_KIMI_LATEST, MODEL_OPENROUTER_AUTO, MODEL_OPENROUTER_AUTO_BETA, MODEL_OPENROUTER_FUSION, MODEL_OPENAI_GPT_LATEST, MODEL_MOONSHOTAI_KIMI_K2_7_CODE, MODEL_OPENAI_GPT_MINI_LATEST, MODEL_OPENAI_GPT_5_6_SOL, MODEL_OPENAI_GPT_5_6_TERRA, MODEL_OPENAI_GPT_5_6_LUNA, MODEL_OPENAI_GPT_5_5_PRO, MODEL_OPENAI_GPT_5_5, MODEL_OPENAI_GPT_5_1_CODEX, MODEL_OPENAI_GPT_5_MINI, MODEL_OPENAI_GPT_5_NANO, MODEL_OPENAI_GPT_4O, MODEL_OPENAI_GPT_4_1_MINI, MODEL_OPENAI_GPT_4_1_NANO, MODEL_XAI_GROK_4_5, MODEL_XAI_GROK_4_6, MODEL_XAI_GROK_LATEST, MODEL_OPENROUTER_DEEPSEEK_V4_FLASH, MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731, MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813, MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP, MODEL_QWEN_QWEN_3_8_FLASH, MODEL_ZAI_GLM_5_3, MODEL_ZAI_GLM_5_3_FLASH, MODEL_ZAI_GLM_5_3_FLASHX, MODEL_ZAI_GLM_5_2, MODEL_ZAI_GLM_4_7_FLASH, MODEL_ZAI_GLM_4_5_AIR, OPENROUTER_FREE_MODELS, isOpenRouterFreeModel, isOpenRouterVisionModel, } from '../../../constants/openrouter';
|
|
2
2
|
import { OpenRouterChatService } from './OpenRouterChatService';
|
|
3
3
|
import { resolveVisionModel } from '../../../utils';
|
|
4
4
|
/**
|
|
@@ -134,6 +134,7 @@ export class OpenRouterChatServiceProvider {
|
|
|
134
134
|
MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5,
|
|
135
135
|
MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5,
|
|
136
136
|
MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
137
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
137
138
|
];
|
|
138
139
|
}
|
|
139
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -249,6 +249,7 @@ var AITuberOnAirChat = (() => {
|
|
|
249
249
|
MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP: () => MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP,
|
|
250
250
|
MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813: () => MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813,
|
|
251
251
|
MODEL_OPENROUTER_FUSION: () => MODEL_OPENROUTER_FUSION,
|
|
252
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0: () => MODEL_OPENROUTER_MISTRAL_LARGE_4_0,
|
|
252
253
|
MODEL_PLAMO_2_2_PRIME: () => MODEL_PLAMO_2_2_PRIME,
|
|
253
254
|
MODEL_PLAMO_3_0_PRIME: () => MODEL_PLAMO_3_0_PRIME,
|
|
254
255
|
MODEL_QWEN_QWEN_3_8_27B: () => MODEL_QWEN_QWEN_3_8_27B,
|
|
@@ -677,6 +678,7 @@ var AITuberOnAirChat = (() => {
|
|
|
677
678
|
|
|
678
679
|
// src/constants/openrouter.ts
|
|
679
680
|
var ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
|
|
681
|
+
var MODEL_OPENROUTER_MISTRAL_LARGE_4_0 = "mistralai/mistral-large-4-0";
|
|
680
682
|
var MODEL_UNBIASED_PARETO_26_10_PREVIEW = "unbiased/pareto-26.10-preview";
|
|
681
683
|
var MODEL_INCLUSIONAI_LING_3_1_FLASH = "inclusionai/ling-3.1-flash";
|
|
682
684
|
var MODEL_UPSTAGE_SOLAR_PRO4 = "upstage/solar-pro4";
|
|
@@ -712,7 +714,8 @@ var AITuberOnAirChat = (() => {
|
|
|
712
714
|
MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING,
|
|
713
715
|
MODEL_QWEN_QWEN_3_8_27B,
|
|
714
716
|
MODEL_QWEN_QWEN_3_8_OMNI_FLASH,
|
|
715
|
-
MODEL_UNBIASED_PARETO_26_10_PREVIEW
|
|
717
|
+
MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
718
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0
|
|
716
719
|
];
|
|
717
720
|
var MODEL_OPENROUTER_AUTO = "openrouter/auto";
|
|
718
721
|
var MODEL_OPENROUTER_AUTO_BETA = "openrouter/auto-beta";
|
|
@@ -822,6 +825,10 @@ var AITuberOnAirChat = (() => {
|
|
|
822
825
|
"max"
|
|
823
826
|
];
|
|
824
827
|
var OPENROUTER_MODEL_REASONING = {
|
|
828
|
+
[MODEL_OPENROUTER_MISTRAL_LARGE_4_0]: {
|
|
829
|
+
efforts: ["none", "high"],
|
|
830
|
+
defaultEffort: "none"
|
|
831
|
+
},
|
|
825
832
|
[MODEL_UNBIASED_PARETO_26_10_PREVIEW]: {
|
|
826
833
|
efforts: [],
|
|
827
834
|
defaultEffort: void 0
|
|
@@ -983,7 +990,8 @@ var AITuberOnAirChat = (() => {
|
|
|
983
990
|
MODEL_XAI_GROK_LATEST,
|
|
984
991
|
MODEL_XAI_GROK_4_6,
|
|
985
992
|
MODEL_XAI_GROK_4_5,
|
|
986
|
-
MODEL_UNBIASED_PARETO_26_10_PREVIEW
|
|
993
|
+
MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
994
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0
|
|
987
995
|
];
|
|
988
996
|
var OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
|
|
989
997
|
var OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = 50;
|
|
@@ -6259,7 +6267,8 @@ If it's in another language, summarize in that language.
|
|
|
6259
6267
|
MODEL_MOONSHOTAI_KIMI_K2_5,
|
|
6260
6268
|
MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5,
|
|
6261
6269
|
MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5,
|
|
6262
|
-
MODEL_UNBIASED_PARETO_26_10_PREVIEW
|
|
6270
|
+
MODEL_UNBIASED_PARETO_26_10_PREVIEW,
|
|
6271
|
+
MODEL_OPENROUTER_MISTRAL_LARGE_4_0
|
|
6263
6272
|
];
|
|
6264
6273
|
}
|
|
6265
6274
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var AITuberOnAirChat=(()=>{var zn=Object.defineProperty;var Ps=Object.getOwnPropertyDescriptor;var As=Object.getOwnPropertyNames;var xs=Object.prototype.hasOwnProperty;var Is=(o,e)=>{for(var t in e)zn(o,t,{get:e[t],enumerable:!0})},ys=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of As(e))!xs.call(o,i)&&i!==t&&zn(o,i,{get:()=>e[i],enumerable:!(n=Ps(e,i))||n.enumerable});return o};var Ds=o=>ys(zn({},"__esModule",{value:!0}),o);var Ja={};Is(Ja,{CHAT_RESPONSE_LENGTH:()=>C,CLAUDE_DEPRECATED_MODELS:()=>Vs,CLAUDE_VISION_SUPPORTED_MODELS:()=>Yt,ChatServiceFactory:()=>Nt,ChatServiceHttpClient:()=>O,ClaudeChatService:()=>ct,ClaudeChatServiceProvider:()=>ut,DEEPSEEK_API_BASE_URL:()=>Ir,DEEPSEEK_DEPRECATED_MODELS:()=>na,DEEPSEEK_SUPPORTED_MODELS:()=>xi,DEEPSEEK_VISION_SUPPORTED_MODELS:()=>br,DEFAULT_MAX_TOKENS:()=>Wi,DEFAULT_SUMMARY_PROMPT_TEMPLATE:()=>la,DEFAULT_VISION_PROMPT:()=>aa,DeepSeekChatService:()=>ht,DeepSeekChatServiceProvider:()=>dt,EMOTION_TAG_CLEANUP_REGEX:()=>Xi,EMOTION_TAG_REGEX:()=>Xr,ENDPOINT_CLAUDE_API:()=>pi,ENDPOINT_DEEPSEEK_CHAT_COMPLETIONS_API:()=>To,ENDPOINT_GEMINI_API:()=>Yn,ENDPOINT_KIMI_CHAT_COMPLETIONS_API:()=>ot,ENDPOINT_MISTRAL_CHAT_COMPLETIONS_API:()=>Po,ENDPOINT_OPENAI_CHAT_COMPLETIONS_API:()=>q,ENDPOINT_OPENAI_RESPONSES_API:()=>w,ENDPOINT_OPENROUTER_API:()=>Qt,ENDPOINT_PLAMO_CHAT_COMPLETIONS_API:()=>Io,ENDPOINT_SAKANA_CHAT_COMPLETIONS_API:()=>xo,ENDPOINT_XAI_CHAT_COMPLETIONS_API:()=>Mo,ENDPOINT_ZAI_CHAT_COMPLETIONS_API:()=>go,EmotionParser:()=>pt,GEMINI_DEPRECATED_MODELS:()=>ar,GEMINI_NANO_MAX_CONTEXT_MESSAGES:()=>zi,GEMINI_RECOMMENDED_MODELS:()=>Fo,GEMINI_VISION_SUPPORTED_MODELS:()=>Ft,GPT5_PRESETS:()=>$i,GPT_5_MODELS:()=>Yi,GeminiChatService:()=>_t,GeminiChatServiceProvider:()=>ft,GeminiNanoChatService:()=>mt,GeminiNanoChatServiceProvider:()=>gt,HttpError:()=>ae,KIMI_THINKING_REQUIRED_MODELS:()=>Ar,KIMI_VISION_SUPPORTED_MODELS:()=>Pr,KimiChatService:()=>Et,KimiChatServiceProvider:()=>Ot,MAX_TOKENS_BY_LENGTH:()=>Kn,MISTRAL_API_BASE_URL:()=>wr,MISTRAL_DEPRECATED_MODELS:()=>ia,MISTRAL_REASONING_EFFORT_SUPPORTED_MODELS:()=>Vr,MISTRAL_SUPPORTED_MODELS:()=>Vi,MISTRAL_VISION_SUPPORTED_MODELS:()=>Fr,MODEL_ANTHROPIC_CLAUDE_3_5_SONNET:()=>Er,MODEL_ANTHROPIC_CLAUDE_3_7_SONNET:()=>gr,MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU:()=>_n,MODEL_ANTHROPIC_CLAUDE_FABLE_5:()=>cn,MODEL_ANTHROPIC_CLAUDE_FABLE_5_1:()=>ge,MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST:()=>pn,MODEL_ANTHROPIC_CLAUDE_OPUS_4:()=>hn,MODEL_ANTHROPIC_CLAUDE_OPUS_4_8:()=>fo,MODEL_ANTHROPIC_CLAUDE_OPUS_5:()=>un,MODEL_ANTHROPIC_CLAUDE_OPUS_5_5:()=>ro,MODEL_ANTHROPIC_CLAUDE_SONNET_4:()=>dn,MODEL_ANTHROPIC_CLAUDE_SONNET_5:()=>He,MODEL_ANTHROPIC_CLAUDE_SONNET_5_5:()=>io,MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST:()=>ln,MODEL_APODEX_1_1_MINI_FREE:()=>we,MODEL_CLAUDE_3_5_HAIKU:()=>cr,MODEL_CLAUDE_3_5_SONNET:()=>ur,MODEL_CLAUDE_3_7_SONNET:()=>hr,MODEL_CLAUDE_3_HAIKU:()=>pr,MODEL_CLAUDE_4_5_HAIKU:()=>U,MODEL_CLAUDE_4_5_OPUS:()=>Ht,MODEL_CLAUDE_4_5_SONNET:()=>Uo,MODEL_CLAUDE_4_6_OPUS:()=>Wt,MODEL_CLAUDE_4_6_SONNET:()=>Bt,MODEL_CLAUDE_4_7_OPUS:()=>$t,MODEL_CLAUDE_4_8_OPUS:()=>zt,MODEL_CLAUDE_4_OPUS:()=>_r,MODEL_CLAUDE_4_SONNET:()=>dr,MODEL_CLAUDE_5_1_FABLE:()=>Kt,MODEL_CLAUDE_5_5_HAIKU:()=>Jt,MODEL_CLAUDE_5_5_OPUS:()=>Ko,MODEL_CLAUDE_5_5_SONNET:()=>Zt,MODEL_CLAUDE_5_FABLE:()=>Xt,MODEL_CLAUDE_5_OPUS:()=>jt,MODEL_CLAUDE_5_SONNET:()=>qt,MODEL_DEEPSEEK_CHAT:()=>yr,MODEL_DEEPSEEK_FLASH:()=>Vn,MODEL_DEEPSEEK_REASONER:()=>Dr,MODEL_DEEPSEEK_V4_FLASH:()=>Te,MODEL_DEEPSEEK_V4_FLASH_VISION_EXP:()=>st,MODEL_DEEPSEEK_V4_PRO:()=>Fn,MODEL_FUGU:()=>at,MODEL_FUGU_ULTRA:()=>Kr,MODEL_FUGU_ULTRA_20260615:()=>Br,MODEL_FUGU_ULTRA_V1_1:()=>Hr,MODEL_GEMINI_2_5_FLASH:()=>ir,MODEL_GEMINI_2_5_FLASH_LITE:()=>rr,MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17:()=>sr,MODEL_GEMINI_2_5_PRO:()=>nr,MODEL_GEMINI_3_1_FLASH_LITE:()=>ee,MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW:()=>ri,MODEL_GEMINI_3_1_PRO_PREVIEW:()=>ii,MODEL_GEMINI_3_5_FLASH:()=>oi,MODEL_GEMINI_3_5_FLASH_LITE:()=>ni,MODEL_GEMINI_3_6_FLASH:()=>ti,MODEL_GEMINI_3_7_FLASH:()=>ei,MODEL_GEMINI_3_8_FLASH:()=>Qn,MODEL_GEMINI_3_FLASH_PREVIEW:()=>ai,MODEL_GEMINI_3_PRO_PREVIEW:()=>si,MODEL_GEMINI_NANO:()=>Pe,MODEL_GEMMA_4_26B_A4B_IT:()=>or,MODEL_GEMMA_4_31B_IT:()=>tr,MODEL_GLM_4_6:()=>Ri,MODEL_GLM_4_6V:()=>In,MODEL_GLM_4_6V_FLASH:()=>Le,MODEL_GLM_4_6V_FLASHX:()=>yn,MODEL_GLM_4_7:()=>Li,MODEL_GLM_4_7_FLASH:()=>Ti,MODEL_GLM_4_7_FLASHX:()=>Ci,MODEL_GLM_5:()=>Si,MODEL_GLM_5V_TURBO:()=>xn,MODEL_GLM_5_1:()=>Mi,MODEL_GLM_5_2:()=>re,MODEL_GLM_5_3:()=>An,MODEL_GLM_5_3_FLASH:()=>Eo,MODEL_GLM_5_3_FLASHX:()=>ie,MODEL_GLM_5_TURBO:()=>vi,MODEL_GOOGLE_GEMINI_2_5_FLASH:()=>Sn,MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025:()=>vn,MODEL_GOOGLE_GEMINI_2_5_PRO:()=>Mn,MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE:()=>On,MODEL_GOOGLE_GEMINI_3_6_FLASH:()=>En,MODEL_GOOGLE_GEMINI_3_7_FLASH:()=>gn,MODEL_GOOGLE_GEMINI_3_8_FLASH:()=>co,MODEL_GOOGLE_GEMINI_FLASH_LATEST:()=>mn,MODEL_GOOGLE_GEMINI_PRO_LATEST:()=>fn,MODEL_GPT_4O:()=>ko,MODEL_GPT_4O_MINI:()=>de,MODEL_GPT_4_1:()=>bo,MODEL_GPT_4_1_MINI:()=>No,MODEL_GPT_4_1_NANO:()=>wo,MODEL_GPT_5:()=>Ie,MODEL_GPT_5_1:()=>ye,MODEL_GPT_5_4:()=>pe,MODEL_GPT_5_4_MINI:()=>ue,MODEL_GPT_5_4_NANO:()=>he,MODEL_GPT_5_4_PRO:()=>Q,MODEL_GPT_5_5:()=>ce,MODEL_GPT_5_6:()=>j,MODEL_GPT_5_6_LUNA:()=>Y,MODEL_GPT_5_6_SOL:()=>Z,MODEL_GPT_5_6_TERRA:()=>J,MODEL_GPT_5_MINI:()=>xe,MODEL_GPT_5_NANO:()=>le,MODEL_GPT_6_1_SOL:()=>R,MODEL_GPT_6_ASTRA:()=>A,MODEL_GPT_6_LUNA:()=>N,MODEL_GPT_6_SOL:()=>b,MODEL_GPT_OSS_20B_FREE:()=>B,MODEL_GROK_4_1_FAST_NON_REASONING:()=>Cr,MODEL_GROK_4_1_FAST_REASONING:()=>Lr,MODEL_GROK_4_20_NON_REASONING:()=>Nn,MODEL_GROK_4_20_REASONING:()=>bn,MODEL_GROK_4_3:()=>K,MODEL_GROK_4_5:()=>Qe,MODEL_GROK_4_6:()=>Je,MODEL_GROK_4_7:()=>Ye,MODEL_INCEPTION_MERCURY_2_5:()=>Bo,MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE:()=>ke,MODEL_INCLUSIONAI_LING_3_1_FLASH:()=>eo,MODEL_KIMI_K2_5:()=>Gn,MODEL_KIMI_K2_6:()=>$,MODEL_KIMI_K2_7_CODE:()=>vo,MODEL_KIMI_K2_7_CODE_HIGHSPEED:()=>Lo,MODEL_KIMI_K3:()=>nt,MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5:()=>fi,MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5:()=>mi,MODEL_META_MUSE_SPARK_1_3:()=>Oe,MODEL_MINISTRAL_14B_2512:()=>Ni,MODEL_MINISTRAL_3B_2512:()=>Di,MODEL_MINISTRAL_8B_2512:()=>bi,MODEL_MISTRAL_LARGE_2512:()=>Gi,MODEL_MISTRAL_LARGE_LATEST:()=>ki,MODEL_MISTRAL_MEDIUM_2508:()=>kr,MODEL_MISTRAL_MEDIUM_3_5:()=>Un,MODEL_MISTRAL_SMALL_2603:()=>wi,MODEL_MISTRAL_SMALL_LATEST:()=>z,MODEL_MISTRAL_ZAI_GLM_5_3:()=>Gr,MODEL_MOONSHOTAI_KIMI_K2_5:()=>zo,MODEL_MOONSHOTAI_KIMI_K2_6:()=>_o,MODEL_MOONSHOTAI_KIMI_K2_7_CODE:()=>$o,MODEL_MOONSHOTAI_KIMI_K3:()=>Wo,MODEL_MOONSHOTAI_KIMI_LATEST:()=>Xo,MODEL_NEX_AGI_NEX_N2_5_MINI_FREE:()=>Ge,MODEL_NEX_AGI_NEX_N2_5_PRO_FREE:()=>Ve,MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING:()=>uo,MODEL_O1:()=>jn,MODEL_O1_MINI:()=>qn,MODEL_O3_MINI:()=>Xn,MODEL_OPENAI_GPT_4O:()=>rn,MODEL_OPENAI_GPT_4_1_MINI:()=>sn,MODEL_OPENAI_GPT_4_1_NANO:()=>an,MODEL_OPENAI_GPT_5_1_CHAT:()=>mr,MODEL_OPENAI_GPT_5_1_CODEX:()=>tn,MODEL_OPENAI_GPT_5_5:()=>en,MODEL_OPENAI_GPT_5_5_PRO:()=>Qo,MODEL_OPENAI_GPT_5_6_LUNA:()=>Yo,MODEL_OPENAI_GPT_5_6_SOL:()=>Zo,MODEL_OPENAI_GPT_5_6_TERRA:()=>Jo,MODEL_OPENAI_GPT_5_MINI:()=>on,MODEL_OPENAI_GPT_5_NANO:()=>nn,MODEL_OPENAI_GPT_6_1_SOL:()=>to,MODEL_OPENAI_GPT_6_ASTRA:()=>ao,MODEL_OPENAI_GPT_6_ASTRA_PRO:()=>lo,MODEL_OPENAI_GPT_6_LUNA:()=>no,MODEL_OPENAI_GPT_6_SOL:()=>oo,MODEL_OPENAI_GPT_LATEST:()=>qo,MODEL_OPENAI_GPT_MINI_LATEST:()=>jo,MODEL_OPENROUTER_AUTO:()=>ho,MODEL_OPENROUTER_AUTO_BETA:()=>Ke,MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH:()=>po,MODEL_OPENROUTER_DEEPSEEK_V4_FLASH:()=>We,MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731:()=>$e,MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP:()=>Se,MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813:()=>ze,MODEL_OPENROUTER_FUSION:()=>hi,MODEL_PLAMO_2_2_PRIME:()=>zr,MODEL_PLAMO_3_0_PRIME:()=>lt,MODEL_QWEN_QWEN_3_8_27B:()=>Fe,MODEL_QWEN_QWEN_3_8_FLASH:()=>mo,MODEL_QWEN_QWEN_3_8_MAX_0902:()=>Ee,MODEL_QWEN_QWEN_3_8_OMNI_FLASH:()=>Ue,MODEL_SAKANA_NAMAZU:()=>Re,MODEL_UNBIASED_PARETO_26_10_PREVIEW:()=>oe,MODEL_UPSTAGE_SOLAR_MINI4:()=>me,MODEL_UPSTAGE_SOLAR_PRO4:()=>fe,MODEL_XAI_GROK_4_5:()=>Tn,MODEL_XAI_GROK_4_6:()=>Cn,MODEL_XAI_GROK_4_7:()=>so,MODEL_XAI_GROK_LATEST:()=>Ln,MODEL_XIAOMI_MIMO_V2_6_FLASH:()=>Ne,MODEL_ZAI_GLM_4_5_AIR:()=>_i,MODEL_ZAI_GLM_4_5_AIR_FREE:()=>Or,MODEL_ZAI_GLM_4_7_FLASH:()=>di,MODEL_ZAI_GLM_5_2:()=>Be,MODEL_ZAI_GLM_5_3:()=>ne,MODEL_ZAI_GLM_5_3_FLASH:()=>W,MODEL_ZAI_GLM_5_3_FLASHX:()=>Me,MistralChatService:()=>Mt,MistralChatServiceProvider:()=>St,OPENAI_COMPATIBLE_LOCAL_PRESETS:()=>da,OPENROUTER_CREDITS_THRESHOLD:()=>Js,OPENROUTER_DEPRECATED_MODELS:()=>Ks,OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS:()=>Zs,OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS:()=>js,OPENROUTER_FREE_MODELS:()=>gi,OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE:()=>Ei,OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET:()=>ui,OPENROUTER_VISION_SUPPORTED_MODELS:()=>Mr,OpenAIChatService:()=>I,OpenAIChatServiceProvider:()=>Lt,OpenAICompatibleChatServiceProvider:()=>vt,OpenAICompatibleEndpointError:()=>P,OpenRouterChatService:()=>Ct,OpenRouterChatServiceProvider:()=>Tt,PLAMO_API_BASE_URL:()=>$r,PLAMO_DEPRECATED_MODELS:()=>sa,PLAMO_SUPPORTED_MODELS:()=>Bi,PlamoChatService:()=>Rt,PlamoChatServiceProvider:()=>Pt,SAKANA_API_BASE_URL:()=>Ur,SAKANA_COMPATIBILITY_MODELS:()=>ra,SAKANA_SUPPORTED_MODELS:()=>Ki,SAKANA_VISION_SUPPORTED_MODELS:()=>Wr,SakanaChatService:()=>At,SakanaChatServiceProvider:()=>xt,StreamTextAccumulator:()=>M,VISION_SUPPORTED_MODELS:()=>wt,XAIChatService:()=>It,XAIChatServiceProvider:()=>yt,XAI_DEPRECATED_MODELS:()=>ea,XAI_VISION_SUPPORTED_MODELS:()=>Tr,ZAIChatService:()=>Dt,ZAIChatServiceProvider:()=>bt,ZAI_VISION_SUPPORTED_MODELS:()=>vr,allowsReasoningLow:()=>Vo,allowsReasoningMax:()=>Jn,allowsReasoningMinimal:()=>Gt,allowsReasoningNone:()=>kt,allowsReasoningXHigh:()=>Go,buildOpenAICompatibleTools:()=>F,buildToolContinuationMessages:()=>$a,getChatBackendProviderCapabilities:()=>Ji,getClaudeSupportedReasoningEfforts:()=>H,getDeepSeekSupportedReasoningEfforts:()=>Ro,getDefaultClaudeReasoningEffort:()=>Ho,getDefaultDeepSeekReasoningEffort:()=>Ai,getDefaultGeminiReasoningEffort:()=>Gs,getDefaultKimiReasoningEffort:()=>rt,getDefaultOpenRouterReasoningEffort:()=>Pn,getDefaultReasoningEffortForGPT5Model:()=>er,getDefaultReasoningEffortForOpenAIModel:()=>Vt,getDefaultXaiReasoningEffort:()=>kn,getDefaultZaiReasoningEffort:()=>Sr,getGeminiSupportedReasoningEfforts:()=>De,getKimiSupportedReasoningEfforts:()=>se,getMaxTokensForResponseLength:()=>x,getOpenRouterSupportedReasoningEfforts:()=>Rn,getXaiSupportedReasoningEfforts:()=>tt,getZaiSupportedReasoningEfforts:()=>je,installGASFetch:()=>Ts,isClaudeReasoningEffortModel:()=>fr,isDeepSeekReasoningEffortModel:()=>Nr,isDeepSeekVisionModel:()=>Ii,isGPT5Model:()=>Qi,isGeminiReasoningEffortModel:()=>li,isKimiReasoningEffortModel:()=>Ce,isKimiThinkingRequiredModel:()=>Co,isKimiVisionModel:()=>it,isMistralReasoningEffort:()=>Fi,isMistralReasoningEffortModel:()=>Ao,isMistralVisionModel:()=>Ui,isOpenAIReasoningModel:()=>_e,isOpenRouterFreeModel:()=>ve,isOpenRouterVisionModel:()=>Xe,isResponsesOnlyGPT5Model:()=>Zn,isSakanaVisionModel:()=>Hi,isXaiReasoningEffortModel:()=>wn,isXaiReasoningEffortNoneModel:()=>Rr,isXaiVisionModel:()=>et,isZaiAlwaysThinkingModel:()=>qe,isZaiReasoningEffortModel:()=>Dn,isZaiToolStreamModel:()=>Pi,isZaiVisionModel:()=>Ze,listOpenAICompatibleModels:()=>Qr,normalizeClaudeReasoningEffort:()=>Us,normalizeDeepSeekReasoningEffort:()=>yi,normalizeGeminiReasoningEffort:()=>Ut,normalizeOpenRouterReasoningEffort:()=>Oi,normalizeXaiReasoningEffort:()=>So,normalizeZaiReasoningEffort:()=>Oo,parseOpenAICompatibleOneShot:()=>V,parseOpenAICompatibleTextStream:()=>X,parseOpenAICompatibleToolStream:()=>G,processChatWithOptionalTools:()=>S,refreshOpenRouterFreeModels:()=>Ca,resolveOpenAICompatibleEndpoint:()=>Yr,resolveVisionModel:()=>T,runOnceText:()=>ha,safeJsonParse:()=>jr,safeParseToolCallInput:()=>Ae,screenplayToText:()=>ua,testOpenAICompatibleConnection:()=>_a,textToScreenplay:()=>qr,textsToScreenplay:()=>ca});var q="https://api.openai.com/v1/chat/completions",w="https://api.openai.com/v1/responses",R="gpt-6.1-sol",A="gpt-6-astra",b="gpt-6-sol",N="gpt-6-luna",le="gpt-5-nano",xe="gpt-5-mini",Ie="gpt-5",ye="gpt-5.1",pe="gpt-5.4",ce="gpt-5.5",j="gpt-5.6",Z="gpt-5.6-sol",J="gpt-5.6-terra",Y="gpt-5.6-luna",ue="gpt-5.4-mini",he="gpt-5.4-nano",Q="gpt-5.4-pro",bo="gpt-4.1",No="gpt-4.1-mini",wo="gpt-4.1-nano",de="gpt-4o-mini",ko="gpt-4o",Xn="o3-mini",qn="o1-mini",jn="o1",wt=[R,A,b,N,le,xe,Ie,ye,pe,ce,j,Z,J,Y,ue,he,Q,bo,No,wo,de,ko,"o1"],Yi=[le,xe,Ie,ye,pe,ce,j,Z,J,Y,ue,he,Q];function Qi(o){return Yi.includes(o)}function _e(o){return o===R||o===A||o===b||o===N||Qi(o)}function Zn(o){return o===Q}function Go(o){return o===R||o===A||o===b||o===N||o===j||o===Z||o===J||o===Y||o===ce||o===pe||o===ue||o===he||o===Q}function Jn(o){return o===R||o===A||o===b||o===N||o===j||o===Z||o===J||o===Y}function kt(o){return o===b||o===N||o===j||o===Z||o===J||o===Y||o===ye||o===pe||o===ce||o===ue||o===he}function Gt(o){return o===le||o===xe||o===Ie}function Vo(o){return o!==Q}function er(o){return kt(o)?"none":Gt(o)?"minimal":"medium"}function Vt(o){return o===R||o===A?"low":o===b?"medium":o===N?"low":er(o)}var Yn="https://generativelanguage.googleapis.com",tr="gemma-4-31b-it",or="gemma-4-26b-a4b-it",Qn="gemini-3.8-flash",ei="gemini-3.7-flash",ti="gemini-3.6-flash",oi="gemini-3.5-flash",ni="gemini-3.5-flash-lite",ii="gemini-3.1-pro-preview",ee="gemini-3.1-flash-lite",ri="gemini-3.1-flash-lite-preview",si="gemini-3-pro-preview",ai="gemini-3-flash-preview",nr="gemini-2.5-pro",ir="gemini-2.5-flash",rr="gemini-2.5-flash-lite",sr="gemini-2.5-flash-lite-preview-06-17",Fo=[Qn,ei,ti,oi,ni,ee,ii,ai,nr,ir,rr,tr,or],ar=[ri,si,sr],Ft=[...Fo,...ar],bs=["minimal","low","medium","high"],Ns=["low","medium","high"],ws=[ti,oi,ni,ee,ri,ai],ks=[Qn,ei,ii,si];function De(o){return ws.includes(o)?bs:ks.includes(o)?Ns:[]}function li(o){return De(o).length>0}function Gs(o){return De(o)[0]}function Ut(o,e){let t=De(o);if(t.length!==0)return e&&t.includes(e)?e:t[0]}var pi="https://api.anthropic.com/v1/messages",Kt="claude-fable-5-1",pr="claude-3-haiku-20240307",cr="claude-3-5-haiku-20241022",ur="claude-3-5-sonnet-20241022",hr="claude-3-7-sonnet-20250219",dr="claude-sonnet-4-20250514",_r="claude-opus-4-20250514",Uo="claude-sonnet-4-5-20250929",U="claude-haiku-4-5-20251001",Ht="claude-opus-4-5-20251101",Bt="claude-sonnet-4-6",Wt="claude-opus-4-6",$t="claude-opus-4-7",zt="claude-opus-4-8",Xt="claude-fable-5",qt="claude-sonnet-5",jt="claude-opus-5",Ko="claude-opus-5-5",Zt="claude-sonnet-5-5",Jt="claude-haiku-5-5",Vs=[pr,cr,ur,hr,dr,_r],ci=["low","medium","high"],lr=[...ci,"max"],te=[...ci,"xhigh","max"],Fs={[Ht]:ci,[Bt]:lr,[Wt]:lr,[$t]:te,[zt]:te,[Kt]:te,[Xt]:te,[qt]:te,[jt]:te,[Zt]:te,[Jt]:te},Yt=[Kt,Uo,U,Ht,Bt,Wt,$t,zt,Xt,qt,jt,Ko,Zt,Jt];function H(o){return Fs[o]??[]}function fr(o){return H(o).length>0}function Ho(o){return fr(o)?"low":void 0}function Us(o,e){let t=H(o);if(t.length!==0)return e?t.includes(e)?e:"high":Ho(o)}var Qt="https://openrouter.ai/api/v1/chat/completions",oe="unbiased/pareto-26.10-preview",eo="inclusionai/ling-3.1-flash",fe="upstage/solar-pro4",me="upstage/solar-mini4",Ne="xiaomi/mimo-v2.6-flash",we="apodex/apodex-1.1-mini:free",to="openai/gpt-6.1-sol",oo="openai/gpt-6-sol",no="openai/gpt-6-luna",io="anthropic/claude-sonnet-5.5",ro="anthropic/claude-opus-5.5",so="x-ai/grok-4.7",ao="openai/gpt-6-astra",lo="openai/gpt-6-astra-pro",ge="anthropic/claude-fable-5.1",po="deepseek/deepseek-v4.1-flash",co="google/gemini-3.8-flash",ke="inclusionai/ling-3.0-flash-vl:free",Bo="inception/mercury-2.5",Ge="nex-agi/nex-n2.5-mini:free",Ve="nex-agi/nex-n2.5-pro:free",Ee="qwen/qwen3.8-max-0902",Oe="meta/muse-spark-1.3",uo="nvidia/nemotron-3.5-lightning",Fe="qwen/qwen3.8-27b",Ue="qwen/qwen3.8-omni-flash",ui=[eo,fe,me,Ne,we,uo,Fe,Ue,oe],ho="openrouter/auto",Ke="openrouter/auto-beta",hi="openrouter/fusion",B="openai/gpt-oss-20b:free",Wo="moonshotai/kimi-k3",$o="moonshotai/kimi-k2.7-code",_o="moonshotai/kimi-k2.6",zo="moonshotai/kimi-k2.5",Xo="~moonshotai/kimi-latest",qo="~openai/gpt-latest",jo="~openai/gpt-mini-latest",Zo="openai/gpt-5.6-sol",Jo="openai/gpt-5.6-terra",Yo="openai/gpt-5.6-luna",Qo="openai/gpt-5.5-pro",en="openai/gpt-5.5",mr="openai/gpt-5.1-chat",tn="openai/gpt-5.1-codex",on="openai/gpt-5-mini",nn="openai/gpt-5-nano",rn="openai/gpt-4o",sn="openai/gpt-4.1-mini",an="openai/gpt-4.1-nano",ln="~anthropic/claude-sonnet-latest",pn="~anthropic/claude-haiku-latest",cn="anthropic/claude-fable-5",He="anthropic/claude-sonnet-5",un="anthropic/claude-opus-5",fo="anthropic/claude-opus-4.8",hn="anthropic/claude-opus-4",dn="anthropic/claude-sonnet-4",gr="anthropic/claude-3.7-sonnet",Er="anthropic/claude-3.5-sonnet",_n="anthropic/claude-haiku-4.5",fn="~google/gemini-pro-latest",mn="~google/gemini-flash-latest",gn="google/gemini-3.7-flash",En="google/gemini-3.6-flash",On="google/gemini-3.5-flash-lite",Mn="google/gemini-2.5-pro",Sn="google/gemini-2.5-flash",vn="google/gemini-2.5-flash-lite-preview-09-2025",Be="z-ai/glm-5.2",ne="z-ai/glm-5.3",W="z-ai/glm-5.3-flash",Me="z-ai/glm-5.3-flashx",di="z-ai/glm-4.7-flash",_i="z-ai/glm-4.5-air",Or="z-ai/glm-4.5-air:free",fi="kwaipilot/kat-coder-air-v2.5",mi="kwaipilot/kat-coder-pro-v2.5",Ln="~x-ai/grok-latest",Cn="x-ai/grok-4.6",Tn="x-ai/grok-4.5",We="deepseek/deepseek-v4-flash",$e="deepseek/deepseek-v4-flash-0731",ze="deepseek/deepseek-v4-pro-0813",Se="deepseek/deepseek-v4-flash-vision-exp",mo="qwen/qwen3.8-flash",Ks=[mr,gr,Er,Or],Hs=["none","minimal","low","medium","high"],Bs=["none","high","xhigh"],Ws=["none","low","high","max"],$s=["none","high","xhigh"],zs=["low","high","max"],Xs=["none","low","high","max"],qs=["none","low","medium","high","xhigh","max"],be={[oe]:{efforts:[],defaultEffort:void 0},[eo]:{efforts:[],defaultEffort:void 0},[fe]:{efforts:["none","minimal","low","medium","high","xhigh","max"],defaultEffort:"none"},[me]:{efforts:["none","minimal","low","medium","high","xhigh","max"],defaultEffort:"none"},[Ne]:{efforts:[],defaultEffort:void 0},[we]:{efforts:[],defaultEffort:void 0},[uo]:{efforts:[],defaultEffort:void 0},[Fe]:{efforts:[],defaultEffort:void 0},[Ue]:{efforts:[],defaultEffort:void 0},[to]:{efforts:["low","medium","high","xhigh","max"],defaultEffort:"low"},[oo]:{efforts:["none","low","medium","high","xhigh","max"],defaultEffort:"none"},[no]:{efforts:["none","low","medium","high","xhigh","max"],defaultEffort:"none"},[io]:{efforts:["low","medium","high","xhigh","max"],defaultEffort:"low"},[ro]:{efforts:["low","medium","high","xhigh","max"],defaultEffort:"low"},[so]:{efforts:["low","medium","high","xhigh"],defaultEffort:"low"},[ao]:{efforts:["max","xhigh","high","medium","low"],defaultEffort:"medium"},[lo]:{efforts:["max","xhigh","high","medium","low"],defaultEffort:"medium"},[ge]:{efforts:["max","xhigh","high","medium","low"],defaultEffort:"high"},[po]:{efforts:["max","high","low","none"],defaultEffort:"none"},[co]:{efforts:["high","medium","low"],defaultEffort:"medium"},[ke]:{efforts:[],defaultEffort:void 0},[Bo]:{efforts:["high","medium","low","none"],defaultEffort:"none"},[Ge]:{efforts:["high","medium","none"],defaultEffort:"none"},[Ve]:{efforts:["high","medium","none"],defaultEffort:"none"},[Ee]:{efforts:["xhigh","high","medium","low","minimal"],defaultEffort:"xhigh"},[Oe]:{efforts:["max","xhigh","high","medium","low","minimal"],defaultEffort:"medium"}},gi=[we,B,ke,Ge,Ve],Mr=[Ne,Fe,Ue,to,oo,no,io,ro,so,ao,lo,ge,po,co,ke,Ge,Ve,Ee,Oe,Ke,Wo,_o,Xo,qo,jo,Zo,Jo,Yo,Qo,en,tn,on,nn,rn,sn,an,ln,pn,cn,He,un,fo,hn,dn,_n,fn,mn,gn,En,On,Mn,Sn,vn,W,Me,Se,mo,$o,zo,Ln,Cn,Tn,oe],Ei=20,js=50,Zs=1e3,Js=10;function ve(o){return o.trim().endsWith(":free")}function Xe(o){return Mr.some(e=>o.includes(e))}function Rn(o){let e=o.trim(),t=Object.prototype.hasOwnProperty.call(be,e)?be[e]:void 0;return t?t.efforts:e===ne||e===W||e===Me?zs:e===Se?Xs:e===He||e===fo?qs:e===We?Bs:e===$e?Ws:e===ze?$s:Hs}function Pn(o){let e=o.trim(),t=Object.prototype.hasOwnProperty.call(be,e)?be[e]:void 0;return t?t.defaultEffort:e===ne||e===W||e===Me?"low":e===Be||e===mo||e===_o||e===He||e===Se||e===We||e===$e||e===ze?"none":void 0}function Oi(o,e){let t=o.trim(),n=Object.prototype.hasOwnProperty.call(be,t)?be[t]:void 0,i=e??Pn(o);if(n)return i&&n.efforts.includes(i)?i:n.defaultEffort;if(!i)return;if(t===ne||t===W||t===Me)return i==="high"?"high":i==="max"||i==="xhigh"?"max":"low";if(Rn(o).includes(i))return i;if(t===We)return i==="max"?"xhigh":"none";if(t===$e){if(i==="minimal"||i==="medium")return"low";if(i==="xhigh")return"high"}if(t===ze){if(i==="minimal"||i==="low")return"none";if(i==="medium")return"high";if(i==="max")return"xhigh"}if(t===Se){if(i==="minimal"||i==="medium")return"low";if(i==="xhigh")return"high"}return i}var go="https://api.z.ai/api/paas/v4/chat/completions",An="glm-5.3",Eo="glm-5.3-flash",ie="glm-5.3-flashx",re="glm-5.2",Mi="glm-5.1",Si="glm-5",vi="glm-5-turbo",xn="glm-5v-turbo",Li="glm-4.7",Ci="glm-4.7-FlashX",Ti="glm-4.7-Flash",Ri="glm-4.6",In="glm-4.6V",yn="glm-4.6V-FlashX",Le="glm-4.6V-Flash",Ys=["none","minimal","low","medium","high","xhigh","max"],Qs=["low","high","max"];function qe(o){return o===An||o===Eo||o===ie}function je(o){return qe(o)?Qs:o===re?Ys:[]}function Dn(o){return je(o).length>0}function Sr(o){return qe(o)?"low":o===re?"none":void 0}function Oo(o,e){if(!Dn(o))return;let t=e??Sr(o);return qe(o)?t==="high"?"high":t==="max"||t==="xhigh"?"max":"low":t==="none"||t==="minimal"?"none":t==="low"||t==="medium"||t==="high"?"high":"max"}var vr=[ie,Eo,xn,In,yn,Le];function Ze(o){return vr.includes(o)}function Pi(o){let e=o.toLowerCase();return e.startsWith("glm-5.3")||e.startsWith("glm-4.6")}var Mo="https://api.x.ai/v1/chat/completions",Je="grok-4.6",Ye="grok-4.7",Qe="grok-4.5",K="grok-4.3",bn="grok-4.20-0309-reasoning",Nn="grok-4.20-0309-non-reasoning",Lr="grok-4-1-fast-reasoning",Cr="grok-4-1-fast-non-reasoning",ea=[Lr,Cr],Tr=[Je,Ye,Qe,K,bn,Nn];function et(o){return Tr.includes(o)}function wn(o){return tt(o).length>0}function tt(o){return o===Je||o===Ye?["low","medium","high","xhigh"]:o===Qe?["low","medium","high"]:o===K?["none","low","medium","high"]:[]}function Rr(o){return tt(o).includes("none")}function kn(o){return o===Ye||o===Je||o===Qe?"low":Rr(o)?"none":void 0}function So(o,e){return wn(o)?e===void 0?kn(o):tt(o).includes(e)?e:e==="none"?"low":"high":void 0}var ot="https://api.moonshot.ai/v1/chat/completions",nt="kimi-k3",vo="kimi-k2.7-code",Lo="kimi-k2.7-code-highspeed",$="kimi-k2.6",Gn="kimi-k2.5",ta={[nt]:["low","high","max"]},Pr=[nt,vo,Lo,$,Gn],Ar=[vo,Lo];function it(o){return Pr.includes(o)}function Co(o){return Ar.includes(o)}function se(o){return ta[o]??[]}function rt(o){return o===nt?"max":void 0}function Ce(o){return se(o).length>0}var Ir="https://api.deepseek.com",To=`${Ir}/chat/completions`,Vn="deepseek-flash",Te="deepseek-v4-flash",Fn="deepseek-v4-pro",st="deepseek-v4-flash-vision-exp",xr=["none","low","high","max"],oa=["none","high","max"],yr="deepseek-chat",Dr="deepseek-reasoner",xi=[Vn,Te,Fn,st],br=[Vn,st],na=[yr,Dr];function Ro(o){return o===Vn||o===Te||o===st?xr:o===Fn?oa:[]}function Ii(o){return br.includes(o)}function Nr(o){return Ro(o).length>0}function Ai(o){return Nr(o)?"none":void 0}function yi(o,e){let t=Ro(o);if(t.length===0)return;let n=e??Ai(o);return n&&t.includes(n)?n:o===Fn&&n==="low"?"high":Ai(o)}var wr="https://api.mistral.ai/v1",Po=`${wr}/chat/completions`,Di="ministral-3b-2512",bi="ministral-8b-2512",Ni="ministral-14b-2512",z="mistral-small-latest",wi="mistral-small-2603",Un="mistral-medium-3-5",kr="mistral-medium-2508",ki="mistral-large-latest",Gi="mistral-large-2512",Gr="zai-glm-5-3",Vi=[z,Di,bi,Ni,Un,ki,Gi,wi,Gr],ia=[kr],Vr=[z,Un],Fr=[z,Di,bi,Ni,wi,Un,ki,Gi];function Ao(o){return Vr.includes(o)}function Fi(o){return o==="none"||o==="high"}function Ui(o){return Fr.includes(o)}var Ur="https://api.sakana.ai/v1",xo=`${Ur}/chat/completions`,at="fugu",Kr="fugu-ultra",Hr="fugu-ultra-v1.1",Re="sakana-namazu",Br="fugu-ultra-20260615",Ki=[at,Hr,Re],Wr=[Re];function Hi(o){return Wr.includes(o)}var ra=[Kr,Br];var $r="https://api.platform.preferredai.jp/v1",Io=`${$r}/chat/completions`,lt="plamo-3.0-prime",zr="plamo-2.2-prime",Bi=[lt],sa=[zr];var C={VERY_SHORT:"veryShort",SHORT:"short",MEDIUM:"medium",LONG:"long",VERY_LONG:"veryLong",DEEP:"deep"},Kn={[C.VERY_SHORT]:40,[C.SHORT]:100,[C.MEDIUM]:200,[C.LONG]:300,[C.VERY_LONG]:1e3,[C.DEEP]:5e3},Wi=5e3,$i={casual:{reasoning_effort:"minimal",verbosity:"low",description:"Fast responses for casual chat, quick questions (GPT-4 like experience)"},balanced:{reasoning_effort:"medium",verbosity:"medium",description:"Balanced reasoning for business tasks, learning, general problem solving"},expert:{reasoning_effort:"high",verbosity:"high",description:"Deep reasoning for research, complex analysis, expert-level tasks"}};function x(o){return o?Kn[o]??Wi:Wi}var aa="You are a friendly AI avatar. Comment on the situation based on the broadcast screen.",la=`You are a skilled summarizing assistant.
|
|
1
|
+
"use strict";var AITuberOnAirChat=(()=>{var Xn=Object.defineProperty;var As=Object.getOwnPropertyDescriptor;var xs=Object.getOwnPropertyNames;var Is=Object.prototype.hasOwnProperty;var ys=(o,e)=>{for(var t in e)Xn(o,t,{get:e[t],enumerable:!0})},Ds=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xs(e))!Is.call(o,i)&&i!==t&&Xn(o,i,{get:()=>e[i],enumerable:!(n=As(e,i))||n.enumerable});return o};var bs=o=>Ds(Xn({},"__esModule",{value:!0}),o);var Ya={};ys(Ya,{CHAT_RESPONSE_LENGTH:()=>C,CLAUDE_DEPRECATED_MODELS:()=>Fs,CLAUDE_VISION_SUPPORTED_MODELS:()=>Qt,ChatServiceFactory:()=>wt,ChatServiceHttpClient:()=>O,ClaudeChatService:()=>ut,ClaudeChatServiceProvider:()=>ht,DEEPSEEK_API_BASE_URL:()=>yr,DEEPSEEK_DEPRECATED_MODELS:()=>ia,DEEPSEEK_SUPPORTED_MODELS:()=>Ii,DEEPSEEK_VISION_SUPPORTED_MODELS:()=>Nr,DEFAULT_MAX_TOKENS:()=>$i,DEFAULT_SUMMARY_PROMPT_TEMPLATE:()=>pa,DEFAULT_VISION_PROMPT:()=>la,DeepSeekChatService:()=>dt,DeepSeekChatServiceProvider:()=>_t,EMOTION_TAG_CLEANUP_REGEX:()=>qi,EMOTION_TAG_REGEX:()=>qr,ENDPOINT_CLAUDE_API:()=>ci,ENDPOINT_DEEPSEEK_CHAT_COMPLETIONS_API:()=>Ro,ENDPOINT_GEMINI_API:()=>Qn,ENDPOINT_KIMI_CHAT_COMPLETIONS_API:()=>nt,ENDPOINT_MISTRAL_CHAT_COMPLETIONS_API:()=>Ao,ENDPOINT_OPENAI_CHAT_COMPLETIONS_API:()=>q,ENDPOINT_OPENAI_RESPONSES_API:()=>w,ENDPOINT_OPENROUTER_API:()=>eo,ENDPOINT_PLAMO_CHAT_COMPLETIONS_API:()=>yo,ENDPOINT_SAKANA_CHAT_COMPLETIONS_API:()=>Io,ENDPOINT_XAI_CHAT_COMPLETIONS_API:()=>So,ENDPOINT_ZAI_CHAT_COMPLETIONS_API:()=>Eo,EmotionParser:()=>ct,GEMINI_DEPRECATED_MODELS:()=>lr,GEMINI_NANO_MAX_CONTEXT_MESSAGES:()=>Xi,GEMINI_RECOMMENDED_MODELS:()=>Uo,GEMINI_VISION_SUPPORTED_MODELS:()=>Ut,GPT5_PRESETS:()=>zi,GPT_5_MODELS:()=>Qi,GeminiChatService:()=>ft,GeminiChatServiceProvider:()=>mt,GeminiNanoChatService:()=>gt,GeminiNanoChatServiceProvider:()=>Et,HttpError:()=>ae,KIMI_THINKING_REQUIRED_MODELS:()=>xr,KIMI_VISION_SUPPORTED_MODELS:()=>Ar,KimiChatService:()=>Ot,KimiChatServiceProvider:()=>Mt,MAX_TOKENS_BY_LENGTH:()=>Hn,MISTRAL_API_BASE_URL:()=>kr,MISTRAL_DEPRECATED_MODELS:()=>ra,MISTRAL_REASONING_EFFORT_SUPPORTED_MODELS:()=>Fr,MISTRAL_SUPPORTED_MODELS:()=>Fi,MISTRAL_VISION_SUPPORTED_MODELS:()=>Ur,MODEL_ANTHROPIC_CLAUDE_3_5_SONNET:()=>Or,MODEL_ANTHROPIC_CLAUDE_3_7_SONNET:()=>Er,MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU:()=>fn,MODEL_ANTHROPIC_CLAUDE_FABLE_5:()=>un,MODEL_ANTHROPIC_CLAUDE_FABLE_5_1:()=>ge,MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST:()=>cn,MODEL_ANTHROPIC_CLAUDE_OPUS_4:()=>dn,MODEL_ANTHROPIC_CLAUDE_OPUS_4_8:()=>mo,MODEL_ANTHROPIC_CLAUDE_OPUS_5:()=>hn,MODEL_ANTHROPIC_CLAUDE_OPUS_5_5:()=>so,MODEL_ANTHROPIC_CLAUDE_SONNET_4:()=>_n,MODEL_ANTHROPIC_CLAUDE_SONNET_5:()=>Be,MODEL_ANTHROPIC_CLAUDE_SONNET_5_5:()=>ro,MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST:()=>pn,MODEL_APODEX_1_1_MINI_FREE:()=>ke,MODEL_CLAUDE_3_5_HAIKU:()=>ur,MODEL_CLAUDE_3_5_SONNET:()=>hr,MODEL_CLAUDE_3_7_SONNET:()=>dr,MODEL_CLAUDE_3_HAIKU:()=>cr,MODEL_CLAUDE_4_5_HAIKU:()=>U,MODEL_CLAUDE_4_5_OPUS:()=>Bt,MODEL_CLAUDE_4_5_SONNET:()=>Ko,MODEL_CLAUDE_4_6_OPUS:()=>$t,MODEL_CLAUDE_4_6_SONNET:()=>Wt,MODEL_CLAUDE_4_7_OPUS:()=>zt,MODEL_CLAUDE_4_8_OPUS:()=>Xt,MODEL_CLAUDE_4_OPUS:()=>fr,MODEL_CLAUDE_4_SONNET:()=>_r,MODEL_CLAUDE_5_1_FABLE:()=>Ht,MODEL_CLAUDE_5_5_HAIKU:()=>Yt,MODEL_CLAUDE_5_5_OPUS:()=>Ho,MODEL_CLAUDE_5_5_SONNET:()=>Jt,MODEL_CLAUDE_5_FABLE:()=>qt,MODEL_CLAUDE_5_OPUS:()=>Zt,MODEL_CLAUDE_5_SONNET:()=>jt,MODEL_DEEPSEEK_CHAT:()=>Dr,MODEL_DEEPSEEK_FLASH:()=>Fn,MODEL_DEEPSEEK_REASONER:()=>br,MODEL_DEEPSEEK_V4_FLASH:()=>Te,MODEL_DEEPSEEK_V4_FLASH_VISION_EXP:()=>at,MODEL_DEEPSEEK_V4_PRO:()=>Un,MODEL_FUGU:()=>lt,MODEL_FUGU_ULTRA:()=>Hr,MODEL_FUGU_ULTRA_20260615:()=>Wr,MODEL_FUGU_ULTRA_V1_1:()=>Br,MODEL_GEMINI_2_5_FLASH:()=>rr,MODEL_GEMINI_2_5_FLASH_LITE:()=>sr,MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17:()=>ar,MODEL_GEMINI_2_5_PRO:()=>ir,MODEL_GEMINI_3_1_FLASH_LITE:()=>ee,MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW:()=>si,MODEL_GEMINI_3_1_PRO_PREVIEW:()=>ri,MODEL_GEMINI_3_5_FLASH:()=>ni,MODEL_GEMINI_3_5_FLASH_LITE:()=>ii,MODEL_GEMINI_3_6_FLASH:()=>oi,MODEL_GEMINI_3_7_FLASH:()=>ti,MODEL_GEMINI_3_8_FLASH:()=>ei,MODEL_GEMINI_3_FLASH_PREVIEW:()=>li,MODEL_GEMINI_3_PRO_PREVIEW:()=>ai,MODEL_GEMINI_NANO:()=>Pe,MODEL_GEMMA_4_26B_A4B_IT:()=>nr,MODEL_GEMMA_4_31B_IT:()=>or,MODEL_GLM_4_6:()=>Pi,MODEL_GLM_4_6V:()=>yn,MODEL_GLM_4_6V_FLASH:()=>Le,MODEL_GLM_4_6V_FLASHX:()=>Dn,MODEL_GLM_4_7:()=>Ci,MODEL_GLM_4_7_FLASH:()=>Ri,MODEL_GLM_4_7_FLASHX:()=>Ti,MODEL_GLM_5:()=>vi,MODEL_GLM_5V_TURBO:()=>In,MODEL_GLM_5_1:()=>Si,MODEL_GLM_5_2:()=>re,MODEL_GLM_5_3:()=>xn,MODEL_GLM_5_3_FLASH:()=>Oo,MODEL_GLM_5_3_FLASHX:()=>ie,MODEL_GLM_5_TURBO:()=>Li,MODEL_GOOGLE_GEMINI_2_5_FLASH:()=>vn,MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025:()=>Ln,MODEL_GOOGLE_GEMINI_2_5_PRO:()=>Sn,MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE:()=>Mn,MODEL_GOOGLE_GEMINI_3_6_FLASH:()=>On,MODEL_GOOGLE_GEMINI_3_7_FLASH:()=>En,MODEL_GOOGLE_GEMINI_3_8_FLASH:()=>uo,MODEL_GOOGLE_GEMINI_FLASH_LATEST:()=>gn,MODEL_GOOGLE_GEMINI_PRO_LATEST:()=>mn,MODEL_GPT_4O:()=>Go,MODEL_GPT_4O_MINI:()=>de,MODEL_GPT_4_1:()=>No,MODEL_GPT_4_1_MINI:()=>wo,MODEL_GPT_4_1_NANO:()=>ko,MODEL_GPT_5:()=>Ie,MODEL_GPT_5_1:()=>ye,MODEL_GPT_5_4:()=>pe,MODEL_GPT_5_4_MINI:()=>ue,MODEL_GPT_5_4_NANO:()=>he,MODEL_GPT_5_4_PRO:()=>Q,MODEL_GPT_5_5:()=>ce,MODEL_GPT_5_6:()=>j,MODEL_GPT_5_6_LUNA:()=>Y,MODEL_GPT_5_6_SOL:()=>Z,MODEL_GPT_5_6_TERRA:()=>J,MODEL_GPT_5_MINI:()=>xe,MODEL_GPT_5_NANO:()=>le,MODEL_GPT_6_1_SOL:()=>R,MODEL_GPT_6_ASTRA:()=>A,MODEL_GPT_6_LUNA:()=>N,MODEL_GPT_6_SOL:()=>b,MODEL_GPT_OSS_20B_FREE:()=>B,MODEL_GROK_4_1_FAST_NON_REASONING:()=>Tr,MODEL_GROK_4_1_FAST_REASONING:()=>Cr,MODEL_GROK_4_20_NON_REASONING:()=>wn,MODEL_GROK_4_20_REASONING:()=>Nn,MODEL_GROK_4_3:()=>K,MODEL_GROK_4_5:()=>et,MODEL_GROK_4_6:()=>Ye,MODEL_GROK_4_7:()=>Qe,MODEL_INCEPTION_MERCURY_2_5:()=>Wo,MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE:()=>Ge,MODEL_INCLUSIONAI_LING_3_1_FLASH:()=>to,MODEL_KIMI_K2_5:()=>Vn,MODEL_KIMI_K2_6:()=>$,MODEL_KIMI_K2_7_CODE:()=>Lo,MODEL_KIMI_K2_7_CODE_HIGHSPEED:()=>Co,MODEL_KIMI_K3:()=>it,MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5:()=>mi,MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5:()=>gi,MODEL_META_MUSE_SPARK_1_3:()=>Oe,MODEL_MINISTRAL_14B_2512:()=>wi,MODEL_MINISTRAL_3B_2512:()=>bi,MODEL_MINISTRAL_8B_2512:()=>Ni,MODEL_MISTRAL_LARGE_2512:()=>Vi,MODEL_MISTRAL_LARGE_LATEST:()=>Gi,MODEL_MISTRAL_MEDIUM_2508:()=>Gr,MODEL_MISTRAL_MEDIUM_3_5:()=>Kn,MODEL_MISTRAL_SMALL_2603:()=>ki,MODEL_MISTRAL_SMALL_LATEST:()=>z,MODEL_MISTRAL_ZAI_GLM_5_3:()=>Vr,MODEL_MOONSHOTAI_KIMI_K2_5:()=>Xo,MODEL_MOONSHOTAI_KIMI_K2_6:()=>fo,MODEL_MOONSHOTAI_KIMI_K2_7_CODE:()=>zo,MODEL_MOONSHOTAI_KIMI_K3:()=>$o,MODEL_MOONSHOTAI_KIMI_LATEST:()=>qo,MODEL_NEX_AGI_NEX_N2_5_MINI_FREE:()=>Ve,MODEL_NEX_AGI_NEX_N2_5_PRO_FREE:()=>Fe,MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING:()=>ho,MODEL_O1:()=>Zn,MODEL_O1_MINI:()=>jn,MODEL_O3_MINI:()=>qn,MODEL_OPENAI_GPT_4O:()=>sn,MODEL_OPENAI_GPT_4_1_MINI:()=>an,MODEL_OPENAI_GPT_4_1_NANO:()=>ln,MODEL_OPENAI_GPT_5_1_CHAT:()=>gr,MODEL_OPENAI_GPT_5_1_CODEX:()=>on,MODEL_OPENAI_GPT_5_5:()=>tn,MODEL_OPENAI_GPT_5_5_PRO:()=>en,MODEL_OPENAI_GPT_5_6_LUNA:()=>Qo,MODEL_OPENAI_GPT_5_6_SOL:()=>Jo,MODEL_OPENAI_GPT_5_6_TERRA:()=>Yo,MODEL_OPENAI_GPT_5_MINI:()=>nn,MODEL_OPENAI_GPT_5_NANO:()=>rn,MODEL_OPENAI_GPT_6_1_SOL:()=>oo,MODEL_OPENAI_GPT_6_ASTRA:()=>lo,MODEL_OPENAI_GPT_6_ASTRA_PRO:()=>po,MODEL_OPENAI_GPT_6_LUNA:()=>io,MODEL_OPENAI_GPT_6_SOL:()=>no,MODEL_OPENAI_GPT_LATEST:()=>jo,MODEL_OPENAI_GPT_MINI_LATEST:()=>Zo,MODEL_OPENROUTER_AUTO:()=>_o,MODEL_OPENROUTER_AUTO_BETA:()=>He,MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH:()=>co,MODEL_OPENROUTER_DEEPSEEK_V4_FLASH:()=>$e,MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731:()=>ze,MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP:()=>Se,MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813:()=>Xe,MODEL_OPENROUTER_FUSION:()=>di,MODEL_OPENROUTER_MISTRAL_LARGE_4_0:()=>Ne,MODEL_PLAMO_2_2_PRIME:()=>Xr,MODEL_PLAMO_3_0_PRIME:()=>pt,MODEL_QWEN_QWEN_3_8_27B:()=>Ue,MODEL_QWEN_QWEN_3_8_FLASH:()=>go,MODEL_QWEN_QWEN_3_8_MAX_0902:()=>Ee,MODEL_QWEN_QWEN_3_8_OMNI_FLASH:()=>Ke,MODEL_SAKANA_NAMAZU:()=>Re,MODEL_UNBIASED_PARETO_26_10_PREVIEW:()=>oe,MODEL_UPSTAGE_SOLAR_MINI4:()=>me,MODEL_UPSTAGE_SOLAR_PRO4:()=>fe,MODEL_XAI_GROK_4_5:()=>Rn,MODEL_XAI_GROK_4_6:()=>Tn,MODEL_XAI_GROK_4_7:()=>ao,MODEL_XAI_GROK_LATEST:()=>Cn,MODEL_XIAOMI_MIMO_V2_6_FLASH:()=>we,MODEL_ZAI_GLM_4_5_AIR:()=>fi,MODEL_ZAI_GLM_4_5_AIR_FREE:()=>Mr,MODEL_ZAI_GLM_4_7_FLASH:()=>_i,MODEL_ZAI_GLM_5_2:()=>We,MODEL_ZAI_GLM_5_3:()=>ne,MODEL_ZAI_GLM_5_3_FLASH:()=>W,MODEL_ZAI_GLM_5_3_FLASHX:()=>Me,MistralChatService:()=>St,MistralChatServiceProvider:()=>vt,OPENAI_COMPATIBLE_LOCAL_PRESETS:()=>_a,OPENROUTER_CREDITS_THRESHOLD:()=>Ys,OPENROUTER_DEPRECATED_MODELS:()=>Hs,OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS:()=>Js,OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS:()=>Zs,OPENROUTER_FREE_MODELS:()=>Ei,OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE:()=>Oi,OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET:()=>hi,OPENROUTER_VISION_SUPPORTED_MODELS:()=>Sr,OpenAIChatService:()=>I,OpenAIChatServiceProvider:()=>Ct,OpenAICompatibleChatServiceProvider:()=>Lt,OpenAICompatibleEndpointError:()=>P,OpenRouterChatService:()=>Tt,OpenRouterChatServiceProvider:()=>Rt,PLAMO_API_BASE_URL:()=>zr,PLAMO_DEPRECATED_MODELS:()=>aa,PLAMO_SUPPORTED_MODELS:()=>Wi,PlamoChatService:()=>Pt,PlamoChatServiceProvider:()=>At,SAKANA_API_BASE_URL:()=>Kr,SAKANA_COMPATIBILITY_MODELS:()=>sa,SAKANA_SUPPORTED_MODELS:()=>Hi,SAKANA_VISION_SUPPORTED_MODELS:()=>$r,SakanaChatService:()=>xt,SakanaChatServiceProvider:()=>It,StreamTextAccumulator:()=>M,VISION_SUPPORTED_MODELS:()=>kt,XAIChatService:()=>yt,XAIChatServiceProvider:()=>Dt,XAI_DEPRECATED_MODELS:()=>ta,XAI_VISION_SUPPORTED_MODELS:()=>Rr,ZAIChatService:()=>bt,ZAIChatServiceProvider:()=>Nt,ZAI_VISION_SUPPORTED_MODELS:()=>Lr,allowsReasoningLow:()=>Fo,allowsReasoningMax:()=>Yn,allowsReasoningMinimal:()=>Vt,allowsReasoningNone:()=>Gt,allowsReasoningXHigh:()=>Vo,buildOpenAICompatibleTools:()=>F,buildToolContinuationMessages:()=>za,getChatBackendProviderCapabilities:()=>Yi,getClaudeSupportedReasoningEfforts:()=>H,getDeepSeekSupportedReasoningEfforts:()=>Po,getDefaultClaudeReasoningEffort:()=>Bo,getDefaultDeepSeekReasoningEffort:()=>xi,getDefaultGeminiReasoningEffort:()=>Vs,getDefaultKimiReasoningEffort:()=>st,getDefaultOpenRouterReasoningEffort:()=>An,getDefaultReasoningEffortForGPT5Model:()=>tr,getDefaultReasoningEffortForOpenAIModel:()=>Ft,getDefaultXaiReasoningEffort:()=>Gn,getDefaultZaiReasoningEffort:()=>vr,getGeminiSupportedReasoningEfforts:()=>De,getKimiSupportedReasoningEfforts:()=>se,getMaxTokensForResponseLength:()=>x,getOpenRouterSupportedReasoningEfforts:()=>Pn,getXaiSupportedReasoningEfforts:()=>ot,getZaiSupportedReasoningEfforts:()=>Ze,installGASFetch:()=>Rs,isClaudeReasoningEffortModel:()=>mr,isDeepSeekReasoningEffortModel:()=>wr,isDeepSeekVisionModel:()=>yi,isGPT5Model:()=>er,isGeminiReasoningEffortModel:()=>pi,isKimiReasoningEffortModel:()=>Ce,isKimiThinkingRequiredModel:()=>To,isKimiVisionModel:()=>rt,isMistralReasoningEffort:()=>Ui,isMistralReasoningEffortModel:()=>xo,isMistralVisionModel:()=>Ki,isOpenAIReasoningModel:()=>_e,isOpenRouterFreeModel:()=>ve,isOpenRouterVisionModel:()=>qe,isResponsesOnlyGPT5Model:()=>Jn,isSakanaVisionModel:()=>Bi,isXaiReasoningEffortModel:()=>kn,isXaiReasoningEffortNoneModel:()=>Pr,isXaiVisionModel:()=>tt,isZaiAlwaysThinkingModel:()=>je,isZaiReasoningEffortModel:()=>bn,isZaiToolStreamModel:()=>Ai,isZaiVisionModel:()=>Je,listOpenAICompatibleModels:()=>es,normalizeClaudeReasoningEffort:()=>Ks,normalizeDeepSeekReasoningEffort:()=>Di,normalizeGeminiReasoningEffort:()=>Kt,normalizeOpenRouterReasoningEffort:()=>Mi,normalizeXaiReasoningEffort:()=>vo,normalizeZaiReasoningEffort:()=>Mo,parseOpenAICompatibleOneShot:()=>V,parseOpenAICompatibleTextStream:()=>X,parseOpenAICompatibleToolStream:()=>G,processChatWithOptionalTools:()=>S,refreshOpenRouterFreeModels:()=>Ta,resolveOpenAICompatibleEndpoint:()=>Qr,resolveVisionModel:()=>T,runOnceText:()=>da,safeJsonParse:()=>Zr,safeParseToolCallInput:()=>Ae,screenplayToText:()=>ha,testOpenAICompatibleConnection:()=>fa,textToScreenplay:()=>jr,textsToScreenplay:()=>ua});var q="https://api.openai.com/v1/chat/completions",w="https://api.openai.com/v1/responses",R="gpt-6.1-sol",A="gpt-6-astra",b="gpt-6-sol",N="gpt-6-luna",le="gpt-5-nano",xe="gpt-5-mini",Ie="gpt-5",ye="gpt-5.1",pe="gpt-5.4",ce="gpt-5.5",j="gpt-5.6",Z="gpt-5.6-sol",J="gpt-5.6-terra",Y="gpt-5.6-luna",ue="gpt-5.4-mini",he="gpt-5.4-nano",Q="gpt-5.4-pro",No="gpt-4.1",wo="gpt-4.1-mini",ko="gpt-4.1-nano",de="gpt-4o-mini",Go="gpt-4o",qn="o3-mini",jn="o1-mini",Zn="o1",kt=[R,A,b,N,le,xe,Ie,ye,pe,ce,j,Z,J,Y,ue,he,Q,No,wo,ko,de,Go,"o1"],Qi=[le,xe,Ie,ye,pe,ce,j,Z,J,Y,ue,he,Q];function er(o){return Qi.includes(o)}function _e(o){return o===R||o===A||o===b||o===N||er(o)}function Jn(o){return o===Q}function Vo(o){return o===R||o===A||o===b||o===N||o===j||o===Z||o===J||o===Y||o===ce||o===pe||o===ue||o===he||o===Q}function Yn(o){return o===R||o===A||o===b||o===N||o===j||o===Z||o===J||o===Y}function Gt(o){return o===b||o===N||o===j||o===Z||o===J||o===Y||o===ye||o===pe||o===ce||o===ue||o===he}function Vt(o){return o===le||o===xe||o===Ie}function Fo(o){return o!==Q}function tr(o){return Gt(o)?"none":Vt(o)?"minimal":"medium"}function Ft(o){return o===R||o===A?"low":o===b?"medium":o===N?"low":tr(o)}var Qn="https://generativelanguage.googleapis.com",or="gemma-4-31b-it",nr="gemma-4-26b-a4b-it",ei="gemini-3.8-flash",ti="gemini-3.7-flash",oi="gemini-3.6-flash",ni="gemini-3.5-flash",ii="gemini-3.5-flash-lite",ri="gemini-3.1-pro-preview",ee="gemini-3.1-flash-lite",si="gemini-3.1-flash-lite-preview",ai="gemini-3-pro-preview",li="gemini-3-flash-preview",ir="gemini-2.5-pro",rr="gemini-2.5-flash",sr="gemini-2.5-flash-lite",ar="gemini-2.5-flash-lite-preview-06-17",Uo=[ei,ti,oi,ni,ii,ee,ri,li,ir,rr,sr,or,nr],lr=[si,ai,ar],Ut=[...Uo,...lr],Ns=["minimal","low","medium","high"],ws=["low","medium","high"],ks=[oi,ni,ii,ee,si,li],Gs=[ei,ti,ri,ai];function De(o){return ks.includes(o)?Ns:Gs.includes(o)?ws:[]}function pi(o){return De(o).length>0}function Vs(o){return De(o)[0]}function Kt(o,e){let t=De(o);if(t.length!==0)return e&&t.includes(e)?e:t[0]}var ci="https://api.anthropic.com/v1/messages",Ht="claude-fable-5-1",cr="claude-3-haiku-20240307",ur="claude-3-5-haiku-20241022",hr="claude-3-5-sonnet-20241022",dr="claude-3-7-sonnet-20250219",_r="claude-sonnet-4-20250514",fr="claude-opus-4-20250514",Ko="claude-sonnet-4-5-20250929",U="claude-haiku-4-5-20251001",Bt="claude-opus-4-5-20251101",Wt="claude-sonnet-4-6",$t="claude-opus-4-6",zt="claude-opus-4-7",Xt="claude-opus-4-8",qt="claude-fable-5",jt="claude-sonnet-5",Zt="claude-opus-5",Ho="claude-opus-5-5",Jt="claude-sonnet-5-5",Yt="claude-haiku-5-5",Fs=[cr,ur,hr,dr,_r,fr],ui=["low","medium","high"],pr=[...ui,"max"],te=[...ui,"xhigh","max"],Us={[Bt]:ui,[Wt]:pr,[$t]:pr,[zt]:te,[Xt]:te,[Ht]:te,[qt]:te,[jt]:te,[Zt]:te,[Jt]:te,[Yt]:te},Qt=[Ht,Ko,U,Bt,Wt,$t,zt,Xt,qt,jt,Zt,Ho,Jt,Yt];function H(o){return Us[o]??[]}function mr(o){return H(o).length>0}function Bo(o){return mr(o)?"low":void 0}function Ks(o,e){let t=H(o);if(t.length!==0)return e?t.includes(e)?e:"high":Bo(o)}var eo="https://openrouter.ai/api/v1/chat/completions",Ne="mistralai/mistral-large-4-0",oe="unbiased/pareto-26.10-preview",to="inclusionai/ling-3.1-flash",fe="upstage/solar-pro4",me="upstage/solar-mini4",we="xiaomi/mimo-v2.6-flash",ke="apodex/apodex-1.1-mini:free",oo="openai/gpt-6.1-sol",no="openai/gpt-6-sol",io="openai/gpt-6-luna",ro="anthropic/claude-sonnet-5.5",so="anthropic/claude-opus-5.5",ao="x-ai/grok-4.7",lo="openai/gpt-6-astra",po="openai/gpt-6-astra-pro",ge="anthropic/claude-fable-5.1",co="deepseek/deepseek-v4.1-flash",uo="google/gemini-3.8-flash",Ge="inclusionai/ling-3.0-flash-vl:free",Wo="inception/mercury-2.5",Ve="nex-agi/nex-n2.5-mini:free",Fe="nex-agi/nex-n2.5-pro:free",Ee="qwen/qwen3.8-max-0902",Oe="meta/muse-spark-1.3",ho="nvidia/nemotron-3.5-lightning",Ue="qwen/qwen3.8-27b",Ke="qwen/qwen3.8-omni-flash",hi=[to,fe,me,we,ke,ho,Ue,Ke,oe,Ne],_o="openrouter/auto",He="openrouter/auto-beta",di="openrouter/fusion",B="openai/gpt-oss-20b:free",$o="moonshotai/kimi-k3",zo="moonshotai/kimi-k2.7-code",fo="moonshotai/kimi-k2.6",Xo="moonshotai/kimi-k2.5",qo="~moonshotai/kimi-latest",jo="~openai/gpt-latest",Zo="~openai/gpt-mini-latest",Jo="openai/gpt-5.6-sol",Yo="openai/gpt-5.6-terra",Qo="openai/gpt-5.6-luna",en="openai/gpt-5.5-pro",tn="openai/gpt-5.5",gr="openai/gpt-5.1-chat",on="openai/gpt-5.1-codex",nn="openai/gpt-5-mini",rn="openai/gpt-5-nano",sn="openai/gpt-4o",an="openai/gpt-4.1-mini",ln="openai/gpt-4.1-nano",pn="~anthropic/claude-sonnet-latest",cn="~anthropic/claude-haiku-latest",un="anthropic/claude-fable-5",Be="anthropic/claude-sonnet-5",hn="anthropic/claude-opus-5",mo="anthropic/claude-opus-4.8",dn="anthropic/claude-opus-4",_n="anthropic/claude-sonnet-4",Er="anthropic/claude-3.7-sonnet",Or="anthropic/claude-3.5-sonnet",fn="anthropic/claude-haiku-4.5",mn="~google/gemini-pro-latest",gn="~google/gemini-flash-latest",En="google/gemini-3.7-flash",On="google/gemini-3.6-flash",Mn="google/gemini-3.5-flash-lite",Sn="google/gemini-2.5-pro",vn="google/gemini-2.5-flash",Ln="google/gemini-2.5-flash-lite-preview-09-2025",We="z-ai/glm-5.2",ne="z-ai/glm-5.3",W="z-ai/glm-5.3-flash",Me="z-ai/glm-5.3-flashx",_i="z-ai/glm-4.7-flash",fi="z-ai/glm-4.5-air",Mr="z-ai/glm-4.5-air:free",mi="kwaipilot/kat-coder-air-v2.5",gi="kwaipilot/kat-coder-pro-v2.5",Cn="~x-ai/grok-latest",Tn="x-ai/grok-4.6",Rn="x-ai/grok-4.5",$e="deepseek/deepseek-v4-flash",ze="deepseek/deepseek-v4-flash-0731",Xe="deepseek/deepseek-v4-pro-0813",Se="deepseek/deepseek-v4-flash-vision-exp",go="qwen/qwen3.8-flash",Hs=[gr,Er,Or,Mr],Bs=["none","minimal","low","medium","high"],Ws=["none","high","xhigh"],$s=["none","low","high","max"],zs=["none","high","xhigh"],Xs=["low","high","max"],qs=["none","low","high","max"],js=["none","low","medium","high","xhigh","max"],be={[Ne]:{efforts:["none","high"],defaultEffort:"none"},[oe]:{efforts:[],defaultEffort:void 0},[to]:{efforts:[],defaultEffort:void 0},[fe]:{efforts:["none","minimal","low","medium","high","xhigh","max"],defaultEffort:"none"},[me]:{efforts:["none","minimal","low","medium","high","xhigh","max"],defaultEffort:"none"},[we]:{efforts:[],defaultEffort:void 0},[ke]:{efforts:[],defaultEffort:void 0},[ho]:{efforts:[],defaultEffort:void 0},[Ue]:{efforts:[],defaultEffort:void 0},[Ke]:{efforts:[],defaultEffort:void 0},[oo]:{efforts:["low","medium","high","xhigh","max"],defaultEffort:"low"},[no]:{efforts:["none","low","medium","high","xhigh","max"],defaultEffort:"none"},[io]:{efforts:["none","low","medium","high","xhigh","max"],defaultEffort:"none"},[ro]:{efforts:["low","medium","high","xhigh","max"],defaultEffort:"low"},[so]:{efforts:["low","medium","high","xhigh","max"],defaultEffort:"low"},[ao]:{efforts:["low","medium","high","xhigh"],defaultEffort:"low"},[lo]:{efforts:["max","xhigh","high","medium","low"],defaultEffort:"medium"},[po]:{efforts:["max","xhigh","high","medium","low"],defaultEffort:"medium"},[ge]:{efforts:["max","xhigh","high","medium","low"],defaultEffort:"high"},[co]:{efforts:["max","high","low","none"],defaultEffort:"none"},[uo]:{efforts:["high","medium","low"],defaultEffort:"medium"},[Ge]:{efforts:[],defaultEffort:void 0},[Wo]:{efforts:["high","medium","low","none"],defaultEffort:"none"},[Ve]:{efforts:["high","medium","none"],defaultEffort:"none"},[Fe]:{efforts:["high","medium","none"],defaultEffort:"none"},[Ee]:{efforts:["xhigh","high","medium","low","minimal"],defaultEffort:"xhigh"},[Oe]:{efforts:["max","xhigh","high","medium","low","minimal"],defaultEffort:"medium"}},Ei=[ke,B,Ge,Ve,Fe],Sr=[we,Ue,Ke,oo,no,io,ro,so,ao,lo,po,ge,co,uo,Ge,Ve,Fe,Ee,Oe,He,$o,fo,qo,jo,Zo,Jo,Yo,Qo,en,tn,on,nn,rn,sn,an,ln,pn,cn,un,Be,hn,mo,dn,_n,fn,mn,gn,En,On,Mn,Sn,vn,Ln,W,Me,Se,go,zo,Xo,Cn,Tn,Rn,oe,Ne],Oi=20,Zs=50,Js=1e3,Ys=10;function ve(o){return o.trim().endsWith(":free")}function qe(o){return Sr.some(e=>o.includes(e))}function Pn(o){let e=o.trim(),t=Object.prototype.hasOwnProperty.call(be,e)?be[e]:void 0;return t?t.efforts:e===ne||e===W||e===Me?Xs:e===Se?qs:e===Be||e===mo?js:e===$e?Ws:e===ze?$s:e===Xe?zs:Bs}function An(o){let e=o.trim(),t=Object.prototype.hasOwnProperty.call(be,e)?be[e]:void 0;return t?t.defaultEffort:e===ne||e===W||e===Me?"low":e===We||e===go||e===fo||e===Be||e===Se||e===$e||e===ze||e===Xe?"none":void 0}function Mi(o,e){let t=o.trim(),n=Object.prototype.hasOwnProperty.call(be,t)?be[t]:void 0,i=e??An(o);if(n)return i&&n.efforts.includes(i)?i:n.defaultEffort;if(!i)return;if(t===ne||t===W||t===Me)return i==="high"?"high":i==="max"||i==="xhigh"?"max":"low";if(Pn(o).includes(i))return i;if(t===$e)return i==="max"?"xhigh":"none";if(t===ze){if(i==="minimal"||i==="medium")return"low";if(i==="xhigh")return"high"}if(t===Xe){if(i==="minimal"||i==="low")return"none";if(i==="medium")return"high";if(i==="max")return"xhigh"}if(t===Se){if(i==="minimal"||i==="medium")return"low";if(i==="xhigh")return"high"}return i}var Eo="https://api.z.ai/api/paas/v4/chat/completions",xn="glm-5.3",Oo="glm-5.3-flash",ie="glm-5.3-flashx",re="glm-5.2",Si="glm-5.1",vi="glm-5",Li="glm-5-turbo",In="glm-5v-turbo",Ci="glm-4.7",Ti="glm-4.7-FlashX",Ri="glm-4.7-Flash",Pi="glm-4.6",yn="glm-4.6V",Dn="glm-4.6V-FlashX",Le="glm-4.6V-Flash",Qs=["none","minimal","low","medium","high","xhigh","max"],ea=["low","high","max"];function je(o){return o===xn||o===Oo||o===ie}function Ze(o){return je(o)?ea:o===re?Qs:[]}function bn(o){return Ze(o).length>0}function vr(o){return je(o)?"low":o===re?"none":void 0}function Mo(o,e){if(!bn(o))return;let t=e??vr(o);return je(o)?t==="high"?"high":t==="max"||t==="xhigh"?"max":"low":t==="none"||t==="minimal"?"none":t==="low"||t==="medium"||t==="high"?"high":"max"}var Lr=[ie,Oo,In,yn,Dn,Le];function Je(o){return Lr.includes(o)}function Ai(o){let e=o.toLowerCase();return e.startsWith("glm-5.3")||e.startsWith("glm-4.6")}var So="https://api.x.ai/v1/chat/completions",Ye="grok-4.6",Qe="grok-4.7",et="grok-4.5",K="grok-4.3",Nn="grok-4.20-0309-reasoning",wn="grok-4.20-0309-non-reasoning",Cr="grok-4-1-fast-reasoning",Tr="grok-4-1-fast-non-reasoning",ta=[Cr,Tr],Rr=[Ye,Qe,et,K,Nn,wn];function tt(o){return Rr.includes(o)}function kn(o){return ot(o).length>0}function ot(o){return o===Ye||o===Qe?["low","medium","high","xhigh"]:o===et?["low","medium","high"]:o===K?["none","low","medium","high"]:[]}function Pr(o){return ot(o).includes("none")}function Gn(o){return o===Qe||o===Ye||o===et?"low":Pr(o)?"none":void 0}function vo(o,e){return kn(o)?e===void 0?Gn(o):ot(o).includes(e)?e:e==="none"?"low":"high":void 0}var nt="https://api.moonshot.ai/v1/chat/completions",it="kimi-k3",Lo="kimi-k2.7-code",Co="kimi-k2.7-code-highspeed",$="kimi-k2.6",Vn="kimi-k2.5",oa={[it]:["low","high","max"]},Ar=[it,Lo,Co,$,Vn],xr=[Lo,Co];function rt(o){return Ar.includes(o)}function To(o){return xr.includes(o)}function se(o){return oa[o]??[]}function st(o){return o===it?"max":void 0}function Ce(o){return se(o).length>0}var yr="https://api.deepseek.com",Ro=`${yr}/chat/completions`,Fn="deepseek-flash",Te="deepseek-v4-flash",Un="deepseek-v4-pro",at="deepseek-v4-flash-vision-exp",Ir=["none","low","high","max"],na=["none","high","max"],Dr="deepseek-chat",br="deepseek-reasoner",Ii=[Fn,Te,Un,at],Nr=[Fn,at],ia=[Dr,br];function Po(o){return o===Fn||o===Te||o===at?Ir:o===Un?na:[]}function yi(o){return Nr.includes(o)}function wr(o){return Po(o).length>0}function xi(o){return wr(o)?"none":void 0}function Di(o,e){let t=Po(o);if(t.length===0)return;let n=e??xi(o);return n&&t.includes(n)?n:o===Un&&n==="low"?"high":xi(o)}var kr="https://api.mistral.ai/v1",Ao=`${kr}/chat/completions`,bi="ministral-3b-2512",Ni="ministral-8b-2512",wi="ministral-14b-2512",z="mistral-small-latest",ki="mistral-small-2603",Kn="mistral-medium-3-5",Gr="mistral-medium-2508",Gi="mistral-large-latest",Vi="mistral-large-2512",Vr="zai-glm-5-3",Fi=[z,bi,Ni,wi,Kn,Gi,Vi,ki,Vr],ra=[Gr],Fr=[z,Kn],Ur=[z,bi,Ni,wi,ki,Kn,Gi,Vi];function xo(o){return Fr.includes(o)}function Ui(o){return o==="none"||o==="high"}function Ki(o){return Ur.includes(o)}var Kr="https://api.sakana.ai/v1",Io=`${Kr}/chat/completions`,lt="fugu",Hr="fugu-ultra",Br="fugu-ultra-v1.1",Re="sakana-namazu",Wr="fugu-ultra-20260615",Hi=[lt,Br,Re],$r=[Re];function Bi(o){return $r.includes(o)}var sa=[Hr,Wr];var zr="https://api.platform.preferredai.jp/v1",yo=`${zr}/chat/completions`,pt="plamo-3.0-prime",Xr="plamo-2.2-prime",Wi=[pt],aa=[Xr];var C={VERY_SHORT:"veryShort",SHORT:"short",MEDIUM:"medium",LONG:"long",VERY_LONG:"veryLong",DEEP:"deep"},Hn={[C.VERY_SHORT]:40,[C.SHORT]:100,[C.MEDIUM]:200,[C.LONG]:300,[C.VERY_LONG]:1e3,[C.DEEP]:5e3},$i=5e3,zi={casual:{reasoning_effort:"minimal",verbosity:"low",description:"Fast responses for casual chat, quick questions (GPT-4 like experience)"},balanced:{reasoning_effort:"medium",verbosity:"medium",description:"Balanced reasoning for business tasks, learning, general problem solving"},expert:{reasoning_effort:"high",verbosity:"high",description:"Deep reasoning for research, complex analysis, expert-level tasks"}};function x(o){return o?Hn[o]??$i:$i}var la="You are a friendly AI avatar. Comment on the situation based on the broadcast screen.",pa=`You are a skilled summarizing assistant.
|
|
2
2
|
Analyze the following conversation and produce a summary in the **same language** as the majority of the conversation:
|
|
3
3
|
- Summaries should highlight key points
|
|
4
4
|
- Stay concise (around {maxLength} characters if possible)
|
|
@@ -7,13 +7,13 @@ Analyze the following conversation and produce a summary in the **same language*
|
|
|
7
7
|
If the conversation is in Japanese, summarize in Japanese.
|
|
8
8
|
If it's in English, summarize in English.
|
|
9
9
|
If it's in another language, summarize in that language.
|
|
10
|
-
`;var Pe="gemini-nano",
|
|
11
|
-
`);i=l.pop()||"";for(let p of l){let c=p.trim();if(!c||c.startsWith(":")||!c.startsWith("data:"))continue;let h=c.slice(5).trim();if(h==="[DONE]"){r=!0;break}e(h)}}};async function X(o,e,t={}){let n="";return await Jr(o,i=>{let r=Zr(i,t.onJsonError);if(!r)return;t.throwOnApiError&&qi(r);let s=Hn(r.choices?.[0]?.delta?.content);s&&(e(s),n+=s)}),n}async function G(o,e,t={}){let n=[],i=new Map,r="",s="",a,l,p=t.appendTextBlock??M.append;await Jr(o,_=>{let f=Zr(_,t.onJsonError);if(!f)return;t.throwOnApiError&&qi(f);let v=f.choices?.[0];typeof v?.finish_reason=="string"&&(a=v.finish_reason),f.usage&&(l=f.usage);let d=v?.delta,E=Hn(d?.content);E&&(e(E),p(n,E),r+=E);let k=Hn(d?.reasoning_content);k&&(s+=k),d?.tool_calls&&d.tool_calls.forEach(g=>{let L=i.get(g.index)??{id:g.id,type:g.type,name:g.function?.name,args:""};g.id&&(L.id=g.id),g.type&&(L.type=g.type),g.function?.name&&(L.name=g.function.name),L.args+=g.function?.arguments||"",i.set(g.index,L)})});let c=Array.from(i.entries()).sort((_,f)=>_[0]-f[0]).map(([_,f])=>({type:"tool_use",id:f.id,name:f.name,input:Ae(f.args,t.onJsonError)})),h=[...n,...c],u=Array.from(i.entries()).sort((_,f)=>_[0]-f[0]).map(([_,f])=>({id:f.id,type:"function",function:{name:f.name,arguments:f.args}})),m={role:"assistant",content:r,...s?{reasoning_content:s}:{},...u.length>0?{tool_calls:u}:{}};return{blocks:h,stop_reason:c.length?"tool_use":"end",truncated:a==="length",finish_reason:a,usage:l,...t.preserveAssistantMessage?{assistant_message:m}:{}}}function V(o,e={}){e.throwOnApiError&&qi(o);let t=o?.choices?.[0],n=[],i=Hn(t?.message?.content);t?.message?.tool_calls?.length?t.message.tool_calls.forEach(s=>n.push({type:"tool_use",id:s.id,name:s.function?.name,input:Ae(s.function?.arguments,e.onJsonError)})):i&&n.push({type:"text",text:i});let r=t?.message?{...t.message,role:"assistant",content:i}:void 0;return{blocks:n,stop_reason:t?.finish_reason==="tool_calls"||n.some(s=>s.type==="tool_use")?"tool_use":"end",truncated:t?.finish_reason==="length",finish_reason:t?.finish_reason,usage:o?.usage,...e.preserveAssistantMessage?{assistant_message:r}:{}}}var da=[{id:"ollama",label:"Ollama",baseUrl:"http://localhost:11434/v1",docsUrl:"https://docs.ollama.com/api/openai-compatibility",corsHint:"Set OLLAMA_ORIGINS to allow additional browser origins."},{id:"lmStudio",label:"LM Studio",baseUrl:"http://localhost:1234/v1",docsUrl:"https://lmstudio.ai/docs/developer/openai-compat",corsHint:"Start the server with lms server start --cors for browser access."},{id:"llamaCpp",label:"llama.cpp",baseUrl:"http://127.0.0.1:8080/v1",docsUrl:"https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md",corsHint:"All origins are allowed by default; use --cors-origins to restrict them."},{id:"vllm",label:"vLLM",baseUrl:"http://localhost:8000/v1",docsUrl:"https://docs.vllm.ai/en/latest/serving/online_serving/openai_compatible_server/",corsHint:"All origins are allowed by default; use --allowed-origins to restrict them."}],P=class extends Error{constructor(e,t,n){super(t),this.name="OpenAICompatibleEndpointError",this.code=e,this.status=n}};function Yr(o){let e;try{e=new URL(o.trim())}catch{throw new P("invalid-url","Enter a valid HTTP or HTTPS endpoint URL.")}if(e.protocol!=="http:"&&e.protocol!=="https:"||e.search||e.hash||e.username||e.password)throw new P("invalid-url","Use an HTTP or HTTPS endpoint URL without credentials, a query, or a fragment.");let t=e.pathname.replace(/\/+$/,"");if(t.endsWith("/api/chat")||t.endsWith("/api/generate"))throw new P("invalid-url","This looks like Ollama's native API URL. Use the OpenAI-compatible base URL instead, e.g. http://localhost:11434/v1.");let n=!t||t==="/"?"/v1":t.endsWith("/chat/completions")?t.slice(0,-17):t,i=`${e.origin}${n}`;return{baseUrl:i,chatCompletionsUrl:`${i}/chat/completions`,modelsUrl:`${i}/models`}}async function Qr(o){let{modelsUrl:e}=Yr(o.endpoint),t=o.timeoutMs??8e3;if(!Number.isFinite(t)||t<=0)throw new RangeError("timeoutMs must be a positive finite number.");if(o.signal?.aborted)throw new P("aborted","The models request was aborted by the caller.");let n=new AbortController,i,r=()=>{i||(i="caller"),n.abort()};o.signal?.addEventListener("abort",r,{once:!0}),o.signal?.aborted&&r();let s=setTimeout(()=>{i||(i="timeout"),n.abort()},t);try{let a={};o.apiKey?.trim()&&(a.Authorization=`Bearer ${o.apiKey.trim()}`);let l=await(o.fetch??fetch)(e,{method:"GET",headers:a,signal:n.signal});if(i)throw new P("aborted","The models request was aborted by the caller.");if(!l.ok)throw new P("http",`Model listing failed with HTTP ${l.status}.`,l.status);let p;try{p=await l.json()}catch{throw new P("invalid-response","The models endpoint did not return valid JSON.")}if(!p||typeof p!="object"||!("data"in p)||!Array.isArray(p.data)||!p.data.every(c=>c&&typeof c=="object"&&"id"in c&&typeof c.id=="string"))throw new P("invalid-response","The models response must contain data with model IDs.");if(i)throw new P("aborted","The models request was aborted by the caller.");return[...new Set(p.data.map(c=>c.id))]}catch(a){throw i==="caller"?new P("aborted","The models request was aborted by the caller."):i==="timeout"?new P("timeout",`The models request timed out after ${t} ms.`):a instanceof P?a:new P("network","Could not reach the models endpoint. In a browser, this is usually a CORS restriction or the server is not running.")}finally{clearTimeout(s),o.signal?.removeEventListener("abort",r)}}async function _a(o){let e=Date.now();try{let t=await Qr(o);return{ok:!0,latencyMs:Date.now()-e,models:t,...o.model!==void 0?{modelFound:t.includes(o.model)}:{}}}catch(t){if(t instanceof RangeError)throw t;return{ok:!1,error:t instanceof P?t:new P("network","Could not reach the models endpoint. In a browser, this is usually a CORS restriction or the server is not running.")}}}var F=(o,e="chat-completions")=>o.length===0?[]:e==="responses"?o.map(t=>({type:"function",name:t.name,description:t.description,parameters:t.parameters})):o.map(t=>({type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}));async function S(o){if(!o.hasTools){let t=await o.runWithoutTools();if(typeof t=="string"){await o.onCompleteResponse(t);return}let n=M.getFullText(t.blocks);await o.onCompleteResponse(n,t);return}let e=await o.runWithTools();if(o.onToolBlocks&&o.onToolBlocks(e.blocks),e.stop_reason==="end"){let t=M.getFullText(e.blocks);await o.onCompleteResponse(t,e);return}throw new Error(o.toolErrorMessage)}var T=o=>{let e=o.model??o.defaultModel,t=o.visionModel??(o.supportsVisionForModel(e)?e:o.defaultVisionModel);if(o.validate==="explicit"&&o.visionModel&&!o.supportsVisionForModel(o.visionModel))throw new Error(`Model ${o.visionModel} does not support vision capabilities.`);if(o.validate==="resolved"&&!o.supportsVisionForModel(t))throw new Error(`Model ${t} does not support vision capabilities.`);return t};var fa="https://openrouter.ai/api/v1/models",ma=2,ga=12e3,Ea=1,Oa=10;function ji(o){return o instanceof Error?o.message:String(o)}function Bn(o,e){return typeof o!="number"||!Number.isFinite(o)?e:Math.max(1,Math.floor(o))}function Ma(o){let e=new Set,t=[];for(let n of o){let i=n.trim();!i||e.has(i)||(e.add(i),t.push(i))}return t}async function es(o,e,t){if(!(typeof AbortController<"u"))return fetch(o,e);let i=new AbortController,r=setTimeout(()=>i.abort(),t);try{return await fetch(o,{...e,signal:i.signal})}catch(s){throw s instanceof Error&&s.name==="AbortError"?new Error(`Timeout after ${t}ms`):s}finally{clearTimeout(r)}}async function ts(o){let e=`HTTP ${o.status} ${o.statusText}`.trim(),t="";try{t=await o.text()}catch{return e}let n=t.replace(/\s+/g," ").trim().slice(0,200);return n?`${e}: ${n}`:e}function Sa(o){if(!o||typeof o!="object")throw new Error("Invalid models response shape");let e=o,t=Array.isArray(e.data)?e.data:Array.isArray(e.models)?e.models:[];if(t.length===0)return[];let n=t.map(i=>i.id).filter(i=>typeof i=="string");return Ma(n)}async function va({modelId:o,apiKey:e,endpoint:t,timeoutMs:n,appName:i,appUrl:r}){let s={Authorization:`Bearer ${e}`,"Content-Type":"application/json"};i&&(s["X-Title"]=i),r&&(s["HTTP-Referer"]=r);try{let a=await es(t,{method:"POST",headers:s,body:JSON.stringify({model:o,messages:[{role:"user",content:"Reply only with OK."}],stream:!1})},n);if(!a.ok)return{id:o,ok:!1,reason:await ts(a)};try{await a.json()}catch(l){return{id:o,ok:!1,reason:`JSON parse failed: ${ji(l)}`}}return{id:o,ok:!0}}catch(a){return{id:o,ok:!1,reason:ji(a)}}}async function La(o,e,t){if(o.length===0)return[];let n=new Array(o.length),i=0,r=Math.min(e,o.length);return await Promise.all(Array.from({length:r},async()=>{for(;i<o.length;){let s=i;i+=1,n[s]=await t(o[s])}})),n}async function Ca(o){let e=o.apiKey.trim();if(!e)throw new Error("OpenRouter API key is required.");let t=o.modelsEndpoint||fa,n=o.endpoint||Qt,i=Bn(o.timeoutMs,ga),r=Bn(o.concurrency,ma),s=Bn(o.maxCandidates,Ea),a=Bn(o.maxWorking,Oa),l=await es(t,{method:"GET"},i);if(!l.ok)throw new Error(await ts(l));let p;try{p=await l.json()}catch(_){throw new Error(`JSON parse failed: ${ji(_)}`)}let c=Sa(p).filter(_=>ve(_)).slice(0,s),h=await La(c,r,_=>va({modelId:_,apiKey:e,endpoint:n,timeoutMs:i,appName:o.appName,appUrl:o.appUrl})),u=h.filter(_=>_.ok).map(_=>_.id).slice(0,a),m=h.filter(_=>!_.ok).map(_=>({id:_.id,reason:_.reason||"Unknown error"}));return{working:u,failed:m,fetchedAt:Date.now()}}function os(o){return o.map(e=>({role:Do(e.role),content:e.provider_content??e.content}))}function ns(o){return o.map(e=>{if(e.provider_content)return{role:Do(e.role),content:e.provider_content};if(typeof e.content=="string")return{role:Do(e.role),content:[{type:"text",text:e.content}]};if(Array.isArray(e.content)){let t=e.content.map(n=>{if(n.type==="image_url"){if(n.image_url.url.startsWith("data:")){let i=n.image_url.url.match(/^data:([^;]+);base64,(.+)$/);return i?{type:"image",source:{type:"base64",media_type:i[1],data:i[2]}}:null}return{type:"image",source:{type:"url",url:n.image_url.url,media_type:Ta(n.image_url.url)}}}return n}).filter(n=>n);return{role:Do(e.role),content:t}}return{role:Do(e.role),content:[]}})}function Do(o){switch(o){case"system":return"system";case"user":return"user";case"assistant":return"assistant";default:return"user"}}function Ta(o){switch(o.split(".").pop()?.toLowerCase()){case"jpg":case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";case"webp":return"image/webp";default:return"image/jpeg"}}var ct=class{constructor(e,t=U,n=U,i=[],r=[],s,a){this.provider="claude";if(this.apiKey=e,this.model=t||U,this.visionModel=n||U,this.tools=i,this.mcpServers=r,this.responseLength=s,this.reasoningEffort=a,!Yt.includes(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`)}getModel(){return this.model}getVisionModel(){return this.visionModel}getMCPServers(){return this.mcpServers}addMCPServer(e){this.mcpServers.push(e)}removeMCPServer(e){this.mcpServers=this.mcpServers.filter(t=>t.name!==e)}hasMCPServers(){return this.mcpServers.length>0}async processChat(e,t,n){await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callClaude(e,this.model,!0);return this.convertToStandardCompletion(await this.parseStream(i,t))},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callClaude(e,this.visionModel,!0);return this.convertToStandardCompletion(await this.parseStream(i,t))},runWithTools:()=>this.visionChatOnce(e),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async callClaude(e,t,n,i){let r=e.find(u=>u.role==="system")?.content??"",s=e.filter(u=>u.role!=="system"),a=s.some(u=>Array.isArray(u.content)&&u.content.some(m=>m.type==="image_url"||m.type==="image")),l={model:t,system:r,messages:a?ns(s):os(s),stream:n,max_tokens:i!==void 0?i:x(this.responseLength)},p=this.reasoningEffort??Ho(t);p!==void 0&&H(t).includes(p)&&(l.output_config={effort:p}),this.tools.length&&(l.tools=this.tools.map(u=>({name:u.name,description:u.description,input_schema:u.parameters})),l.tool_choice={type:"auto"}),this.mcpServers.length>0&&(l.mcp_servers=this.mcpServers);let c={"Content-Type":"application/json","x-api-key":this.apiKey,"anthropic-version":"2023-06-01","anthropic-dangerous-direct-browser-access":"true"};return this.mcpServers.length>0&&(c["anthropic-beta"]="mcp-client-2025-04-04"),await O.post(pi,l,c)}async parseStream(e,t){let n=e.body.getReader(),i=new TextDecoder,r=[],s=new Map,a=new Map,l,p,c="";for(;;){let{done:u,value:m}=await n.read();if(u)break;c+=i.decode(m,{stream:!0});let _;for(;(_=c.indexOf(`
|
|
12
|
-
`))!==-1;){let f=c.slice(0,_).trim();if(c=c.slice(_+1),!f.startsWith("data:"))continue;let v=f.slice(5).trim();if(v==="[DONE]")break;let d=JSON.parse(v);if(d.type==="message_delta"&&(typeof d.delta?.stop_reason=="string"&&(l=d.delta.stop_reason),(d.delta?.stop_details!==void 0||d.stop_details!==void 0)&&(p=d.delta?.stop_details??d.stop_details)),d.type==="content_block_start"&&d.content_block&&typeof d.index=="number"&&s.set(d.index,{...d.content_block}),d.type==="content_block_delta"&&d.delta?.type==="text_delta"){t(d.delta.text),r.push({type:"text",text:d.delta.text});let E=s.get(d.index);E?.type==="text"&&(E.text=`${E.text??""}${d.delta.text}`)}if(d.type==="content_block_delta"&&d.delta?.type==="thinking_delta"){let E=s.get(d.index);E?.type==="thinking"&&(E.thinking=`${E.thinking??""}${d.delta.thinking??""}`)}if(d.type==="content_block_delta"&&d.delta?.type==="signature_delta"){let E=s.get(d.index);E?.type==="thinking"&&(E.signature=`${E.signature??""}${d.delta.signature??""}`)}if(d.type==="content_block_start"&&d.content_block?.type==="tool_use"?a.set(d.index,{id:d.content_block.id,name:d.content_block.name,args:""}):d.type==="content_block_start"&&d.content_block?.type==="mcp_tool_use"?a.set(d.index,{id:d.content_block.id,name:d.content_block.name,args:"",server_name:d.content_block.server_name}):d.type==="content_block_start"&&d.content_block?.type==="tool_result"?r.push({type:"tool_result",tool_use_id:d.content_block.tool_use_id,content:d.content_block.content??""}):d.type==="content_block_start"&&d.content_block?.type==="mcp_tool_result"&&r.push({type:"mcp_tool_result",tool_use_id:d.content_block.tool_use_id,is_error:d.content_block.is_error??!1,content:d.content_block.content??[]}),d.type==="content_block_delta"&&d.delta?.type==="input_json_delta"){let E=a.get(d.index);E&&(E.args+=d.delta.partial_json||"")}if(d.type==="content_block_stop"&&a.has(d.index)){let{id:E,name:k,args:g,server_name:L}=a.get(d.index),D=JSON.parse(g||"{}"),y=s.get(d.index);y&&(y.input=D),L?r.push({type:"mcp_tool_use",id:E,name:k,server_name:L,input:D}):r.push({type:"tool_use",id:E,name:k,input:D}),a.delete(d.index)}}}let h=r.some(u=>u.type==="tool_use"||u.type==="mcp_tool_use");return{blocks:r,providerContent:[...s.entries()].sort(([u],[m])=>u-m).map(([,u])=>u),stop_reason:h?"tool_use":"end",finish_reason:l,stop_details:p}}parseOneShot(e){let t=[];(e.content??[]).forEach(i=>{i.type==="text"?t.push({type:"text",text:i.text}):i.type==="tool_use"?t.push({type:"tool_use",id:i.id,name:i.name,input:i.input??{}}):i.type==="mcp_tool_use"?t.push({type:"mcp_tool_use",id:i.id,name:i.name,server_name:i.server_name,input:i.input??{}}):i.type==="tool_result"?t.push({type:"tool_result",tool_use_id:i.tool_use_id,content:i.content??""}):i.type==="mcp_tool_result"&&t.push({type:"mcp_tool_result",tool_use_id:i.tool_use_id,is_error:i.is_error??!1,content:i.content??[]})});let n=t.some(i=>i.type==="tool_use"||i.type==="mcp_tool_use");return{blocks:t,providerContent:(e.content??[]).map(i=>({...i})),stop_reason:n?"tool_use":"end",finish_reason:e.stop_reason,stop_details:e.stop_details}}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callClaude(e,this.model,t,i),s=t?await this.parseStream(r,n):this.parseOneShot(await r.json());return this.convertToStandardCompletion(s)}async visionChatOnce(e,t=!1,n=()=>{},i){let r=await this.callClaude(e,this.visionModel,t,i),s=t?await this.parseStream(r,n):this.parseOneShot(await r.json());return this.convertToStandardCompletion(s)}convertToStandardCompletion(e){let t=e.blocks.filter(n=>n.type==="text"||n.type==="tool_use"||n.type==="tool_result");return{blocks:t,stop_reason:e.stop_reason,finish_reason:e.finish_reason,stop_details:e.stop_details,assistant_message:{role:"assistant",content:t.filter(n=>n.type==="text").map(n=>n.text).join(""),provider_content:e.providerContent}}}};var
|
|
13
|
-
`);h=k.pop()||"";for(let g=0;g<k.length;g++){let L=k[g].trim();if(L.startsWith("event:"))u=L.slice(6).trim();else if(L.startsWith("data:"))m=L.slice(5).trim();else if(L===""&&u&&m){let D;try{D=JSON.parse(m)}catch(y){t.onJsonError?.(m,y),console.warn("Failed to parse SSE data:",m),u="",m="";continue}ss(D,u),Ra(u,D,e,r,s,a,y=>{y.responseStatus!==void 0&&(l=y.responseStatus),y.incompleteDetails!==void 0&&(p=y.incompleteDetails),y.usage!==void 0&&(c=y.usage)}),u="",m=""}}}let _=Array.from(s.values()).map(d=>({type:"tool_use",id:d.id,name:d.name,input:Ae(d.arguments,t.onJsonError)})),f=Array.from(a.values()),v=M.getFullText(r);return{blocks:[...r,..._],stop_reason:_.length?"tool_use":"end",truncated:l==="incomplete",response_status:l,incomplete_details:p,usage:c,...f.length>0?{assistant_message:{role:"assistant",content:v,provider_content:f}}:{}}}function Ra(o,e,t,n,i,r,s){switch(o){case"response.output_item.added":is(r,e.item),e.item?.type==="message"&&Array.isArray(e.item.content)?e.item.content.forEach(a=>{a.type==="output_text"&&a.text&&(t(a.text),M.append(n,a.text))}):e.item?.type==="function_call"&&i.set(e.item.id,{id:e.item.call_id??e.item.id,name:e.item.name,arguments:e.item.arguments??""});break;case"response.function_call_arguments.delta":{let a=i.get(e.item_id);a&&typeof e.delta=="string"&&(a.arguments+=e.delta);let l=r.get(e.item_id);l&&typeof e.delta=="string"&&(l.arguments=`${l.arguments??""}${e.delta}`);break}case"response.function_call_arguments.done":{let a=i.get(e.item_id);a&&typeof e.arguments=="string"&&(a.arguments=e.arguments);let l=r.get(e.item_id);l&&typeof e.arguments=="string"&&(l.arguments=e.arguments);break}case"response.output_item.done":is(r,e.item),e.item?.type==="function_call"&&i.set(e.item.id,{id:e.item.call_id??e.item.id,name:e.item.name,arguments:e.item.arguments??""});break;case"response.content_part.added":e.part?.type==="output_text"&&typeof e.part.text=="string"&&(t(e.part.text),M.append(n,e.part.text));break;case"response.output_text.delta":case"response.content_part.delta":{let a=typeof e.delta=="string"?e.delta:e.delta?.text??"";a&&(t(a),M.append(n,a));break}case"response.output_text.done":case"response.content_part.done":case"response.reasoning.started":case"response.reasoning.delta":case"response.reasoning.done":break;case"response.completed":s(rs(e,"completed"));break;case"response.incomplete":s(rs(e,"incomplete"));break;default:break}}function is(o,e){if(!e||typeof e!="object")return;let t=typeof e.id=="string"&&e.id?e.id:`output-item-${o.size}`;o.set(t,{...e})}function rs(o,e){let t=o?.response??o;return{responseStatus:t?.status??e,incompleteDetails:t?.incomplete_details??null,usage:t?.usage}}function as(o,e={}){ss(o);let t=[];return o.output&&Array.isArray(o.output)&&o.output.forEach(n=>{n.type==="message"&&n.content&&n.content.forEach(i=>{i.type==="output_text"&&i.text&&t.push({type:"text",text:i.text})}),n.type==="function_call"&&t.push({type:"tool_use",id:n.call_id??n.id,name:n.name,input:Ae(n.arguments,e.onJsonError)})}),{blocks:t,stop_reason:t.some(n=>n.type==="tool_use")?"tool_use":"end",truncated:o?.status==="incomplete",response_status:o?.status,incomplete_details:o?.incomplete_details??null,usage:o?.usage,...Array.isArray(o?.output)&&o.output.length>0?{assistant_message:{role:"assistant",content:t.filter(n=>n.type==="text").map(n=>n.text).join(""),provider_content:o.output}}:{}}}function ls({tools:o,mcpServers:e,isResponsesAPI:t}){let n=[];return o.length>0&&n.push(...F(o,t?"responses":"chat-completions")),e.length>0&&t&&n.push(...Pa(e)),n}function Pa(o){return o.map(e=>{let t={type:"mcp",server_label:e.name,server_url:e.url};return e.require_approval&&(t.require_approval=e.require_approval),e.tool_configuration?.allowed_tools&&(t.allowed_tools=e.tool_configuration.allowed_tools),e.authorization_token&&(t.headers={Authorization:`Bearer ${e.authorization_token}`}),t})}var Aa={[C.VERY_SHORT]:800,[C.SHORT]:1200,[C.MEDIUM]:2e3,[C.LONG]:3e3,[C.VERY_LONG]:8e3,[C.DEEP]:25e3},xa={none:1200,minimal:1600,low:2500,medium:4e3,high:8e3,xhigh:12e3,max:25e3},Ia=new Set(["openai-compatible","deepseek","mistral","sakana","plamo"]);function ya(o){return o.type!=="json_schema"?o:{type:o.type,...o.json_schema}}function ps({provider:o,endpoint:e,messages:t,model:n,stream:i,tools:r,mcpServers:s,responseLength:a,verbosity:l,reasoning_effort:p,enableReasoningSummary:c,responseFormat:h,chatTemplateThinking:u,maxTokens:m}){(n===A||o==="openai"&&n===R)&&(!p||p==="none"||p==="minimal")&&(p="low");let _=e===w;if(o==="openai"&&n===R&&(r.length>0||s.length>0)&&!_)throw new Error("GPT-6.1 Sol tool calling requires the OpenAI Responses API endpoint: "+w+". Custom endpoints use Chat Completions and cannot be used with this model's tools.");ba(e,s);let f={model:n,stream:i},v=Da({provider:o,model:n,responseLength:a,reasoning_effort:p,maxTokens:m});_?v!==void 0&&(f.max_output_tokens=v):v!==void 0&&(cs(o)?f.max_tokens=v:f.max_completion_tokens=v),_?f.input=Na(t):f.messages=o==="mistral"?wa(t):t,_e(n)&&(_?(p&&(f.reasoning={...f.reasoning,effort:p},c&&(f.reasoning.summary="auto")),l&&(f.text={...f.text,format:{type:"text"},verbosity:l})):(p&&(f.reasoning_effort=p),l&&(f.verbosity=l))),h&&(_?f.text={...f.text,format:ya(h)}:f.response_format=h),o==="mistral"&&Ao(n)&&p&&Fi(p)&&(f.reasoning_effort=p),o==="plamo"&&p&&(f.reasoning_effort=p),o==="deepseek"&&p&&(f.thinking={type:p==="none"?"disabled":"enabled"},p!=="none"&&(f.reasoning_effort=p)),o==="sakana"&&u!==void 0&&(f.chat_template_kwargs={thinking:u});let d=ls({tools:r,mcpServers:s,isResponsesAPI:_});return d.length>0&&(f.tools=d,_||(f.tool_choice="auto")),f}function Da({provider:o,model:e,responseLength:t,reasoning_effort:n,maxTokens:i}){if(i!==void 0)return i;let r=cs(o)?t!==void 0?x(t):void 0:x(t);if(o!=="openai"||!_e(e)||t===void 0)return r;let s=n??Vt(e);return Math.max(r??0,Aa[t],xa[s])}function ba(o,e){if(e.length>0&&o===q)throw new Error(`MCP servers are not supported with Chat Completions API. Current endpoint: ${o}. Please use OpenAI Responses API endpoint: ${w}. MCP tools are only available in the Responses API endpoint.`)}function Na(o){return o.flatMap(e=>{if(e.role==="assistant"&&e.provider_content?.length)return e.provider_content;if(e.role==="tool"&&e.tool_call_id)return[{type:"function_call_output",call_id:e.tool_call_id,output:e.content}];let t=[],n={role:e.role==="tool"?"user":e.role};return typeof e.content=="string"?n.content=e.content:Array.isArray(e.content)?n.content=e.content.map(r=>r.type==="text"?{type:"input_text",text:r.text}:r.type==="image_url"?{type:"input_image",image_url:r.image_url.url}:r):n.content=e.content,(typeof n.content!="string"||n.content.length>0)&&t.push(n),e.role==="assistant"&&e.tool_calls&&t.push(...e.tool_calls.map(r=>({type:"function_call",call_id:r.id,name:r.function.name,arguments:r.function.arguments}))),t})}function wa(o){return o.map(e=>{let t={role:e.role};return Array.isArray(e.content)?(t.content=e.content.map(n=>n.type==="image_url"&&typeof n.image_url=="object"&&typeof n.image_url?.url=="string"?{type:"image_url",image_url:n.image_url.url}:n),t):(t.content=e.content,t)})}function cs(o){return Ia.has(o)}var I=class{constructor(e,t=de,n=de,i,r=q,s=[],a,l,p,c=!1,h="openai",u=!0,m,_){this.provider=h,this.apiKey=e,this.model=t,this.tools=i||[];let f=h==="openai"&&(t===R||n===R)&&(this.tools.length>0||s.length>0);if(this.endpoint=(t===A||n===A||f)&&r===q?w:r,this.mcpServers=s,this.responseLength=a,this.verbosity=l,this.reasoning_effort=p,this.enableReasoningSummary=c,this.responseFormat=m,this.chatTemplateThinking=_,u&&!wt.includes(n))throw new Error(`Model ${n} does not support vision capabilities.`);this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenAI(e,this.model,!0),r=this.endpoint===w;try{if(r){let s=await Wn(i,t);return M.getFullText(s.blocks)}return this.handleStream(i,t)}catch(s){throw console.error("[processChat] Error in streaming/completion:",s),s}},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){try{await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenAI(e,this.visionModel,!0),r=this.endpoint===w;try{if(r){let s=await Wn(i,t);return M.getFullText(s.blocks)}return this.handleStream(i,t)}catch(s){throw console.error("[processVisionChat] Error in streaming/completion:",s),s}},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processVisionChat:",i),i}}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callOpenAI(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){let r=await this.callOpenAI(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return this.endpoint===w?t?Wn(e,n):as(await e.json()):t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callOpenAI(e,t,n=!1,i){let r=ps({provider:this.provider,endpoint:this.endpoint,messages:e,model:t,stream:n,tools:this.tools,mcpServers:this.mcpServers,responseLength:this.responseLength,verbosity:this.verbosity,reasoning_effort:this.reasoning_effort,enableReasoningSummary:this.enableReasoningSummary,responseFormat:this.responseFormat,chatTemplateThinking:this.chatTemplateThinking,maxTokens:i}),s={};return(this.provider!=="openai-compatible"||this.apiKey.trim()!=="")&&(s.Authorization=`Bearer ${this.apiKey}`),await O.post(this.endpoint,r,s)}async handleStream(e,t){return X(e,t,{throwOnApiError:!0})}async parseStream(e,t){return G(e,t,{appendTextBlock:M.addTextBlock,throwOnApiError:!0})}parseOneShot(e){return V(e,{throwOnApiError:!0})}};var ht=class extends I{constructor(e,t=Te,n=t,i,r=To,s,a){let l=yi(t,a);if(super(e,t,n,i,r,[],s,void 0,l,!1,"deepseek",!1),i?.length&&l!==void 0&&l!=="none")throw new Error("DeepSeek thinking with tools is not supported yet. Use reasoning_effort: 'none' for tool calling.")}};var dt=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:st,supportsVisionForModel:r=>this.supportsVisionForModel(r),validate:"explicit"}),i=e.tools;return new ht(e.apiKey,t,n,i,this.resolveEndpoint(e),e.responseLength,e.reasoning_effort)}getProviderName(){return"deepseek"}getSupportedModels(){return[...xi]}getDefaultModel(){return Te}supportsVision(){return!0}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Ii(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("deepseek provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return To}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var us=(o,e)=>({name:`mcp_${o.name}_search`,description:e==="schema-fetch-failed"?`Search using ${o.name} MCP server (schema fetch failed)`:`Search using ${o.name} MCP server`,parameters:{type:"object",properties:{query:{type:"string",description:"Search query"}},required:["query"]}}),$n=class{static async fetchToolSchemas(e){return(await this.fetchToolSchemasWithStatus(e)).schemas}static async fetchToolSchemasWithStatus(e){try{let t={"Content-Type":"application/json"};e.authorization_token&&(t.Authorization=`Bearer ${e.authorization_token}`);let i=await(await O.post(`${e.url}/tools`,{},t)).json();return Array.isArray(i.tools)?{schemas:i.tools.map(r=>({name:`mcp_${e.name}_${r.name}`,description:r.description||`Tool from ${e.name} MCP server`,parameters:r.inputSchema||{type:"object",properties:{},required:[]}})),failures:[]}:{schemas:[us(e)],failures:[]}}catch(t){return console.warn(`Failed to fetch MCP schemas from ${e.name}:`,t),{schemas:[us(e,"schema-fetch-failed")],failures:[{server:e,error:t}]}}}static async fetchAllToolSchemas(e){return(await this.fetchAllToolSchemasWithStatus(e)).schemas}static async fetchAllToolSchemasWithStatus(e){let t=[],n=[];for(let i of e)try{let r=await this.fetchToolSchemasWithStatus(i);t.push(...r.schemas),n.push(...r.failures)}catch(r){console.error(`Failed to fetch schemas from ${i.name}:`,r),n.push({server:i,error:r})}return{schemas:t,failures:n}}};function hs(o){switch(o){case"system":return"model";case"user":return"user";case"assistant":return"model";default:return"user"}}function ds(o,e={}){let t=[],n=null,i=[],r=()=>{n&&i.length&&(t.push({role:n,parts:[...i]}),i=[]),n=null};for(let s of o){if(s.role==="system")continue;let a=hs(s.role);if(s.tool_calls){r();let l=s.tool_calls.map(p=>ms(p,e));l.length>0&&t.push({role:"model",parts:l});continue}if(s.role==="tool"){r(),Es(t,gs(s,e));continue}a!==n&&r(),n=a,i.push({text:s.content})}return r(),t}async function _s(o,e={}){let t=e.imageFetcher??O.get,n=e.blobToBase64??Va,i=[],r=null,s=[],a=()=>{r&&s.length>0&&(i.push({role:r,parts:[...s]}),s=[]),r=null};for(let l of o){if(l.role==="system")continue;let p=hs(l.role);if(l.tool_calls){a();let c=l.tool_calls.map(h=>ms(h,e));c.length>0&&i.push({role:"model",parts:c});continue}if(l.role==="tool"){a(),Es(i,gs(l,e));continue}if(p!==r&&s.length>0&&a(),r=p,typeof l.content=="string")s.push({text:l.content});else if(Array.isArray(l.content)){for(let c of l.content)if(c.type==="text")s.push({text:c.text});else if(c.type==="image_url")try{let u=await(await t(c.image_url.url)).blob(),m=await n(u);s.push({inlineData:{mimeType:u.type||"image/jpeg",data:m.split(",")[1]}})}catch(h){throw console.error("Error processing image:",h),new Error(`Failed to process image: ${h.message}`)}}}return a(),i}function fs(o){let e=o.flatMap(t=>t.role!=="system"?[]:typeof t.content=="string"?t.content?[{text:t.content}]:[]:t.content.flatMap(n=>n.type==="text"&&n.text?[{text:n.text}]:[]));return e.length>0?{parts:e}:void 0}function ms(o,e){e.callIdMap?.set(o.id,o.function.name);let t=e.functionCallContextMap?.get(o.id),n={functionCall:{...t?.providerCallId?{id:t.providerCallId}:{},name:o.function.name,args:JSON.parse(o.function.arguments||"{}")}};return t?.thoughtSignature&&(n.thoughtSignature=t.thoughtSignature),n}function gs(o,e){let t=o.tool_call_id,n=e.functionCallContextMap?.get(t);return{functionResponse:{...n?.providerCallId?{id:n.providerCallId}:{},name:o.name??n?.name??e.callIdMap?.get(t)??"result",response:Ga(ka(o.content))}}}function Es(o,e){let t=o[o.length-1];if(t?.role==="user"&&t.parts.every(i=>i.functionResponse)){t.parts.push(e);return}o.push({role:"user",parts:[e]})}function ka(o){try{return JSON.parse(o)}catch{return o}}function Ga(o){return o===null?{content:null}:typeof o=="object"?o:{content:o}}function Va(o){return new Promise((e,t)=>{let n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=t,n.readAsDataURL(o)})}function Fa(o,e){return[...o,...e].map(t=>({name:t.name,description:t.description,parameters:t.parameters}))}function Os(o,e){let t=Fa(o,e);if(t.length!==0)return{tools:[{functionDeclarations:t}],toolConfig:{functionCallingConfig:{mode:"AUTO"}}}}function Ms(o){return o.map(e=>({name:`mcp_${e.name}_search`,description:`Search using ${e.name} MCP server (fallback)`,parameters:{type:"object",properties:{query:{type:"string",description:"Search query"}},required:["query"]}}))}var _t=class{constructor(e,t=ee,n=ee,i=[],r=[],s,a){this.provider="gemini";this.mcpToolSchemas=[];this.mcpSchemasInitialized=!1;this.callIdMap=new Map;this.functionCallContextMap=new Map;if(this.apiKey=e,this.model=t,this.responseLength=s,this.reasoningEffort=a,!Ft.includes(n))throw new Error(`Model ${n} does not support vision capabilities.`);this.visionModel=n,this.tools=i,this.mcpServers=r}isGemma4Model(e){return/^gemma-4-/.test(e)}resolveThinkingConfig(e){let t=Ut(e,this.reasoningEffort);if(t)return{includeThoughts:!1,thinkingLevel:t.toUpperCase()};if(this.isGemma4Model(e))return{includeThoughts:!1,thinkingLevel:"MINIMAL"}}shouldExposeTextPart(e,t){return!(!e.text||this.isGemma4Model(t)&&e.thought===!0)}adaptKeysForApi(e){let t={toolConfig:"tool_config",functionCallingConfig:"function_calling_config",functionDeclarations:"function_declarations",functionCall:"function_call",functionResponse:"function_response",thoughtSignature:"thought_signature"};return Array.isArray(e)?e.map(n=>this.adaptKeysForApi(n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([n,i])=>[t[n]??n,this.adaptKeysForApi(i)])):e}getModel(){return this.model}getVisionModel(){return this.visionModel}getMCPServers(){return this.mcpServers}addMCPServer(e){this.mcpServers.push(e),this.mcpSchemasInitialized=!1,this.mcpSchemaInitializationError=void 0}removeMCPServer(e){this.mcpServers=this.mcpServers.filter(t=>t.name!==e),this.mcpSchemasInitialized=!1,this.mcpSchemaInitializationError=void 0}hasMCPServers(){return this.mcpServers.length>0}getMCPSchemaInitializationError(){return this.mcpSchemaInitializationError}async initializeMCPSchemas(){if(!(this.mcpSchemasInitialized||this.mcpServers.length===0))try{let e=new Promise((i,r)=>setTimeout(()=>r(new Error("MCP schema fetch timeout")),5e3)),t=$n.fetchAllToolSchemasWithStatus(this.mcpServers),n=await Promise.race([t,e]);this.mcpToolSchemas=n.schemas,this.mcpSchemasInitialized=!0,this.mcpSchemaInitializationError=n.failures[0]?.error}catch(e){console.warn("Failed to initialize MCP schemas, using fallback:",e),this.mcpSchemaInitializationError=e,this.mcpToolSchemas=Ms(this.mcpServers),this.mcpSchemasInitialized=!0}}async processChat(e,t,n){try{await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callGemini(e,this.model,!0),{blocks:r}=await this.parseStream(i,t,this.model);return M.getFullText(r)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"Received functionCall. Use chatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processChat:",i),i}}async processVisionChat(e,t,n){try{await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callGemini(e,this.visionModel,!0),{blocks:r}=await this.parseStream(i,t,this.visionModel);return M.getFullText(r)},runWithTools:()=>this.visionChatOnce(e),onToolBlocks:i=>{i.filter(r=>r.type==="text").forEach(r=>t(r.text))},onCompleteResponse:n,toolErrorMessage:"Received functionCall. Use visionChatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processVisionChat:",i),i}}async callGemini(e,t,n=!1,i){let a={contents:e.some(g=>Array.isArray(g.content)&&g.content.some(L=>L?.type==="image_url"||L?.inlineData))?await _s(e,{callIdMap:this.callIdMap,functionCallContextMap:this.functionCallContextMap}):ds(e,{callIdMap:this.callIdMap,functionCallContextMap:this.functionCallContextMap}),generationConfig:{maxOutputTokens:i!==void 0?i:x(this.responseLength)}},l=fs(e);l&&(a.systemInstruction=l);let p=this.resolveThinkingConfig(t);p&&(a.generationConfig.thinkingConfig=p);let c=[];if(this.mcpServers.length>0)try{await this.initializeMCPSchemas(),c=this.mcpToolSchemas}catch(g){console.warn("MCP initialization failed, skipping MCP tools:",g)}let h=Os(this.tools,c);h&&Object.assign(a,h);let u=async(g,L)=>{let D=n?"streamGenerateContent":"generateContent",y=n?"?alt=sse":"",Rs=`${Yn}/${g}/models/${t}:${D}${y}${y?"&":"?"}key=${this.apiKey}`;return O.post(Rs,L)},m=/flash[-_]lite/.test(t),_=this.isGemma4Model(t),f=/gemini-2\.5/.test(t),v=/^gemini-3(?:\.[0-9]+)?-/.test(t),d=m||_||f||v,E=d?"v1beta":"v1",k=async()=>{try{let g=E==="v1"?a:this.adaptKeysForApi(a);return await u(E,g)}catch(g){let L=/Unknown name|Cannot find field|404/.test(g?.message||"")||g?.status===404;if(!d&&L)try{return await u("v1beta",this.adaptKeysForApi(a))}catch(D){throw D instanceof Error&&(D.cause=g),D}throw g}};try{return await k()}catch(g){throw g.body&&(console.error("Gemini API Error Details:",g.body),console.error("Request Body:",JSON.stringify(a,null,2))),g}}createFunctionCallBlock(e){let t=e.functionCall??e.function_call;if(!t)return;let n=t.id??this.genUUID();return this.callIdMap.set(n,t.name),this.functionCallContextMap.set(n,{name:t.name,providerCallId:t.id,thoughtSignature:e.thoughtSignature??e.thought_signature}),{type:"tool_use",id:n,name:t.name,input:t.args??{}}}createFunctionResponseBlock(e){let t=e.functionResponse??e.function_response;if(t)return{type:"tool_result",tool_use_id:t.id??t.name,content:JSON.stringify(t.response)}}async parseStream(e,t,n){let i=e.body.getReader(),r=new TextDecoder,s=[],a=[],l="",p=h=>{if(!h||h==="[DONE]")return;let u;try{u=JSON.parse(h)}catch{return}for(let m of u.candidates??[])for(let _ of m.content?.parts??[]){this.shouldExposeTextPart(_,n)&&(t(_.text),M.addTextBlock(s,_.text));let f=this.createFunctionCallBlock(_);f&&a.push(f);let v=this.createFunctionResponseBlock(_);v&&a.push(v)}};for(;;){let{done:h,value:u}=await i.read();if(h)break;l+=r.decode(u,{stream:!0});let m;for(;(m=l.indexOf(`
|
|
14
|
-
`))!==-1;){let _=l.slice(0,m);if(l=l.slice(m+1),_.endsWith("\r")&&(_=_.slice(0,-1)),!_.trim()){p("");continue}_.startsWith("data:")&&(_=_.slice(5).trim()),_&&p(_)}}return l&&p(l),{blocks:[...s,...a],stop_reason:a.some(h=>h.type==="tool_use")?"tool_use":"end"}}parseOneShot(e,t){let n=[],i=[];for(let s of e.candidates??[])for(let a of s.content?.parts??[]){this.shouldExposeTextPart(a,t)&&n.push({type:"text",text:a.text});let l=this.createFunctionCallBlock(a);l&&i.push(l);let p=this.createFunctionResponseBlock(a);p&&i.push(p)}return{blocks:[...n,...i],stop_reason:i.some(s=>s.type==="tool_use")?"tool_use":"end"}}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callGemini(e,this.model,t,i);return t?this.parseStream(r,n,this.model):this.parseOneShot(await r.json(),this.model)}async visionChatOnce(e,t=!1,n=()=>{},i){let r=await this.callGemini(e,this.visionModel,t,i);return t?this.parseStream(r,n,this.visionModel):this.parseOneShot(await r.json(),this.visionModel)}genUUID(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}};var
|
|
10
|
+
`;var Pe="gemini-nano",Xi=20;var ae=class extends Error{constructor(t,n,i){super(`HTTP ${t}: ${n}`);this.status=t;this.statusText=n;this.body=i;this.name="HttpError"}},Do=class Do{static setFetch(e){this.fetchImpl=e}static async post(e,t,n={},i={}){let{timeout:r=3e4,retries:s=0,retryDelay:a=1e3}=i,p={...{"Content-Type":"application/json"},...n},c=null;for(let h=0;h<=s;h++)try{let u=typeof AbortController<"u",m=u?new AbortController:void 0,_=u?setTimeout(()=>m.abort(),r):void 0,f=await Do.fetchImpl(e,{method:"POST",headers:p,body:typeof t=="string"?t:JSON.stringify(t),...m?{signal:m.signal}:{}});if(_&&clearTimeout(_),!f.ok){let v=await f.text();throw new ae(f.status,f.statusText,v)}return f}catch(u){if(c=u,u instanceof ae&&u.status>=400&&u.status<500)throw u;if(u instanceof Error&&u.name==="AbortError")throw new Error(`Request timeout after ${r}ms`);h<s&&await new Promise(m=>setTimeout(m,a*(h+1)))}throw c||new Error("Request failed")}static async handleErrorResponse(e){let t=await e.text();throw new ae(e.status,e.statusText,t)}static async get(e,t={},n={}){let{timeout:i=3e4,retries:r=0,retryDelay:s=1e3}=n,a=null;for(let l=0;l<=r;l++)try{let p=typeof AbortController<"u",c=p?new AbortController:void 0,h=p?setTimeout(()=>c.abort(),i):void 0,u=await Do.fetchImpl(e,{method:"GET",headers:t,...c?{signal:c.signal}:{}});if(h&&clearTimeout(h),!u.ok){let m=await u.text();throw new ae(u.status,u.statusText,m)}return u}catch(p){if(a=p,p instanceof ae&&p.status>=400&&p.status<500)throw p;if(p instanceof Error&&p.name==="AbortError")throw new Error(`Request timeout after ${i}ms`);l<r&&await new Promise(c=>setTimeout(c,s*(l+1)))}throw a||new Error("Request failed")}};Do.fetchImpl=(e,t)=>fetch(e,t);var O=Do;var M=class{static append(e,t){if(!t)return;let n=e[e.length-1];n&&n.type==="text"?n.text+=t:e.push({type:"text",text:t})}static getFullText(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}static addTextBlock(e,t){t&&e.push({type:"text",text:t})}};var ca=["happy","sad","angry","surprised","neutral"],qr=/\[([a-z]+)\]/i,qi=/\[[a-z]+\]\s*/gi,ct=class{static extractEmotion(e){let t=e.match(qr);if(t){let n=t[1].toLowerCase(),i=e.replace(qi,"").trim();return{emotion:n,cleanText:i}}return{cleanText:e}}static isValidEmotion(e){return ca.includes(e)}static cleanEmotionTags(e){return e.replace(qi,"").trim()}static addEmotionTag(e,t){return`[${e}] ${t}`}};function jr(o){let{emotion:e,cleanText:t}=ct.extractEmotion(o);return e?{emotion:e,text:t}:{text:t}}function ua(o){return o.map(e=>jr(e))}function ha(o){return o.emotion?ct.addEmotionTag(o.emotion,o.text):o.text}async function da(o,e){let{blocks:t}=await o.chatOnce(e,!1,()=>{});return M.getFullText(t)}var Zr=(o,e,t)=>{try{return JSON.parse(o)}catch(n){return t?.(o,n),e}},Ae=(o,e)=>o?Zr(o,{},e):{};var Jr=(o,e)=>{try{return JSON.parse(o)}catch(t){if(e){e(o,t);return}throw t}},Bn=o=>typeof o=="string"?o:Array.isArray(o)?o.map(e=>typeof e=="string"?e:e&&typeof e=="object"&&e.type==="text"&&typeof e.text=="string"?e.text:"").join(""):"",ji=o=>{let e=o.choices?.[0],t=o.error??e?.error;if(!t&&e?.finish_reason!=="error")return;let n=typeof t=="string"?t:typeof t?.message=="string"?t.message:"The provider ended the response with an error.";throw new Error(`Provider response error: ${n}`)},Yr=async(o,e)=>{let t=o.body?.getReader();if(!t)throw new Error("Response body is null.");let n=new TextDecoder,i="",r=!1;for(;!r;){let{done:s,value:a}=await t.read();if(s)break;i+=n.decode(a,{stream:!0});let l=i.split(`
|
|
11
|
+
`);i=l.pop()||"";for(let p of l){let c=p.trim();if(!c||c.startsWith(":")||!c.startsWith("data:"))continue;let h=c.slice(5).trim();if(h==="[DONE]"){r=!0;break}e(h)}}};async function X(o,e,t={}){let n="";return await Yr(o,i=>{let r=Jr(i,t.onJsonError);if(!r)return;t.throwOnApiError&&ji(r);let s=Bn(r.choices?.[0]?.delta?.content);s&&(e(s),n+=s)}),n}async function G(o,e,t={}){let n=[],i=new Map,r="",s="",a,l,p=t.appendTextBlock??M.append;await Yr(o,_=>{let f=Jr(_,t.onJsonError);if(!f)return;t.throwOnApiError&&ji(f);let v=f.choices?.[0];typeof v?.finish_reason=="string"&&(a=v.finish_reason),f.usage&&(l=f.usage);let d=v?.delta,E=Bn(d?.content);E&&(e(E),p(n,E),r+=E);let k=Bn(d?.reasoning_content);k&&(s+=k),d?.tool_calls&&d.tool_calls.forEach(g=>{let L=i.get(g.index)??{id:g.id,type:g.type,name:g.function?.name,args:""};g.id&&(L.id=g.id),g.type&&(L.type=g.type),g.function?.name&&(L.name=g.function.name),L.args+=g.function?.arguments||"",i.set(g.index,L)})});let c=Array.from(i.entries()).sort((_,f)=>_[0]-f[0]).map(([_,f])=>({type:"tool_use",id:f.id,name:f.name,input:Ae(f.args,t.onJsonError)})),h=[...n,...c],u=Array.from(i.entries()).sort((_,f)=>_[0]-f[0]).map(([_,f])=>({id:f.id,type:"function",function:{name:f.name,arguments:f.args}})),m={role:"assistant",content:r,...s?{reasoning_content:s}:{},...u.length>0?{tool_calls:u}:{}};return{blocks:h,stop_reason:c.length?"tool_use":"end",truncated:a==="length",finish_reason:a,usage:l,...t.preserveAssistantMessage?{assistant_message:m}:{}}}function V(o,e={}){e.throwOnApiError&&ji(o);let t=o?.choices?.[0],n=[],i=Bn(t?.message?.content);t?.message?.tool_calls?.length?t.message.tool_calls.forEach(s=>n.push({type:"tool_use",id:s.id,name:s.function?.name,input:Ae(s.function?.arguments,e.onJsonError)})):i&&n.push({type:"text",text:i});let r=t?.message?{...t.message,role:"assistant",content:i}:void 0;return{blocks:n,stop_reason:t?.finish_reason==="tool_calls"||n.some(s=>s.type==="tool_use")?"tool_use":"end",truncated:t?.finish_reason==="length",finish_reason:t?.finish_reason,usage:o?.usage,...e.preserveAssistantMessage?{assistant_message:r}:{}}}var _a=[{id:"ollama",label:"Ollama",baseUrl:"http://localhost:11434/v1",docsUrl:"https://docs.ollama.com/api/openai-compatibility",corsHint:"Set OLLAMA_ORIGINS to allow additional browser origins."},{id:"lmStudio",label:"LM Studio",baseUrl:"http://localhost:1234/v1",docsUrl:"https://lmstudio.ai/docs/developer/openai-compat",corsHint:"Start the server with lms server start --cors for browser access."},{id:"llamaCpp",label:"llama.cpp",baseUrl:"http://127.0.0.1:8080/v1",docsUrl:"https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md",corsHint:"All origins are allowed by default; use --cors-origins to restrict them."},{id:"vllm",label:"vLLM",baseUrl:"http://localhost:8000/v1",docsUrl:"https://docs.vllm.ai/en/latest/serving/online_serving/openai_compatible_server/",corsHint:"All origins are allowed by default; use --allowed-origins to restrict them."}],P=class extends Error{constructor(e,t,n){super(t),this.name="OpenAICompatibleEndpointError",this.code=e,this.status=n}};function Qr(o){let e;try{e=new URL(o.trim())}catch{throw new P("invalid-url","Enter a valid HTTP or HTTPS endpoint URL.")}if(e.protocol!=="http:"&&e.protocol!=="https:"||e.search||e.hash||e.username||e.password)throw new P("invalid-url","Use an HTTP or HTTPS endpoint URL without credentials, a query, or a fragment.");let t=e.pathname.replace(/\/+$/,"");if(t.endsWith("/api/chat")||t.endsWith("/api/generate"))throw new P("invalid-url","This looks like Ollama's native API URL. Use the OpenAI-compatible base URL instead, e.g. http://localhost:11434/v1.");let n=!t||t==="/"?"/v1":t.endsWith("/chat/completions")?t.slice(0,-17):t,i=`${e.origin}${n}`;return{baseUrl:i,chatCompletionsUrl:`${i}/chat/completions`,modelsUrl:`${i}/models`}}async function es(o){let{modelsUrl:e}=Qr(o.endpoint),t=o.timeoutMs??8e3;if(!Number.isFinite(t)||t<=0)throw new RangeError("timeoutMs must be a positive finite number.");if(o.signal?.aborted)throw new P("aborted","The models request was aborted by the caller.");let n=new AbortController,i,r=()=>{i||(i="caller"),n.abort()};o.signal?.addEventListener("abort",r,{once:!0}),o.signal?.aborted&&r();let s=setTimeout(()=>{i||(i="timeout"),n.abort()},t);try{let a={};o.apiKey?.trim()&&(a.Authorization=`Bearer ${o.apiKey.trim()}`);let l=await(o.fetch??fetch)(e,{method:"GET",headers:a,signal:n.signal});if(i)throw new P("aborted","The models request was aborted by the caller.");if(!l.ok)throw new P("http",`Model listing failed with HTTP ${l.status}.`,l.status);let p;try{p=await l.json()}catch{throw new P("invalid-response","The models endpoint did not return valid JSON.")}if(!p||typeof p!="object"||!("data"in p)||!Array.isArray(p.data)||!p.data.every(c=>c&&typeof c=="object"&&"id"in c&&typeof c.id=="string"))throw new P("invalid-response","The models response must contain data with model IDs.");if(i)throw new P("aborted","The models request was aborted by the caller.");return[...new Set(p.data.map(c=>c.id))]}catch(a){throw i==="caller"?new P("aborted","The models request was aborted by the caller."):i==="timeout"?new P("timeout",`The models request timed out after ${t} ms.`):a instanceof P?a:new P("network","Could not reach the models endpoint. In a browser, this is usually a CORS restriction or the server is not running.")}finally{clearTimeout(s),o.signal?.removeEventListener("abort",r)}}async function fa(o){let e=Date.now();try{let t=await es(o);return{ok:!0,latencyMs:Date.now()-e,models:t,...o.model!==void 0?{modelFound:t.includes(o.model)}:{}}}catch(t){if(t instanceof RangeError)throw t;return{ok:!1,error:t instanceof P?t:new P("network","Could not reach the models endpoint. In a browser, this is usually a CORS restriction or the server is not running.")}}}var F=(o,e="chat-completions")=>o.length===0?[]:e==="responses"?o.map(t=>({type:"function",name:t.name,description:t.description,parameters:t.parameters})):o.map(t=>({type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}));async function S(o){if(!o.hasTools){let t=await o.runWithoutTools();if(typeof t=="string"){await o.onCompleteResponse(t);return}let n=M.getFullText(t.blocks);await o.onCompleteResponse(n,t);return}let e=await o.runWithTools();if(o.onToolBlocks&&o.onToolBlocks(e.blocks),e.stop_reason==="end"){let t=M.getFullText(e.blocks);await o.onCompleteResponse(t,e);return}throw new Error(o.toolErrorMessage)}var T=o=>{let e=o.model??o.defaultModel,t=o.visionModel??(o.supportsVisionForModel(e)?e:o.defaultVisionModel);if(o.validate==="explicit"&&o.visionModel&&!o.supportsVisionForModel(o.visionModel))throw new Error(`Model ${o.visionModel} does not support vision capabilities.`);if(o.validate==="resolved"&&!o.supportsVisionForModel(t))throw new Error(`Model ${t} does not support vision capabilities.`);return t};var ma="https://openrouter.ai/api/v1/models",ga=2,Ea=12e3,Oa=1,Ma=10;function Zi(o){return o instanceof Error?o.message:String(o)}function Wn(o,e){return typeof o!="number"||!Number.isFinite(o)?e:Math.max(1,Math.floor(o))}function Sa(o){let e=new Set,t=[];for(let n of o){let i=n.trim();!i||e.has(i)||(e.add(i),t.push(i))}return t}async function ts(o,e,t){if(!(typeof AbortController<"u"))return fetch(o,e);let i=new AbortController,r=setTimeout(()=>i.abort(),t);try{return await fetch(o,{...e,signal:i.signal})}catch(s){throw s instanceof Error&&s.name==="AbortError"?new Error(`Timeout after ${t}ms`):s}finally{clearTimeout(r)}}async function os(o){let e=`HTTP ${o.status} ${o.statusText}`.trim(),t="";try{t=await o.text()}catch{return e}let n=t.replace(/\s+/g," ").trim().slice(0,200);return n?`${e}: ${n}`:e}function va(o){if(!o||typeof o!="object")throw new Error("Invalid models response shape");let e=o,t=Array.isArray(e.data)?e.data:Array.isArray(e.models)?e.models:[];if(t.length===0)return[];let n=t.map(i=>i.id).filter(i=>typeof i=="string");return Sa(n)}async function La({modelId:o,apiKey:e,endpoint:t,timeoutMs:n,appName:i,appUrl:r}){let s={Authorization:`Bearer ${e}`,"Content-Type":"application/json"};i&&(s["X-Title"]=i),r&&(s["HTTP-Referer"]=r);try{let a=await ts(t,{method:"POST",headers:s,body:JSON.stringify({model:o,messages:[{role:"user",content:"Reply only with OK."}],stream:!1})},n);if(!a.ok)return{id:o,ok:!1,reason:await os(a)};try{await a.json()}catch(l){return{id:o,ok:!1,reason:`JSON parse failed: ${Zi(l)}`}}return{id:o,ok:!0}}catch(a){return{id:o,ok:!1,reason:Zi(a)}}}async function Ca(o,e,t){if(o.length===0)return[];let n=new Array(o.length),i=0,r=Math.min(e,o.length);return await Promise.all(Array.from({length:r},async()=>{for(;i<o.length;){let s=i;i+=1,n[s]=await t(o[s])}})),n}async function Ta(o){let e=o.apiKey.trim();if(!e)throw new Error("OpenRouter API key is required.");let t=o.modelsEndpoint||ma,n=o.endpoint||eo,i=Wn(o.timeoutMs,Ea),r=Wn(o.concurrency,ga),s=Wn(o.maxCandidates,Oa),a=Wn(o.maxWorking,Ma),l=await ts(t,{method:"GET"},i);if(!l.ok)throw new Error(await os(l));let p;try{p=await l.json()}catch(_){throw new Error(`JSON parse failed: ${Zi(_)}`)}let c=va(p).filter(_=>ve(_)).slice(0,s),h=await Ca(c,r,_=>La({modelId:_,apiKey:e,endpoint:n,timeoutMs:i,appName:o.appName,appUrl:o.appUrl})),u=h.filter(_=>_.ok).map(_=>_.id).slice(0,a),m=h.filter(_=>!_.ok).map(_=>({id:_.id,reason:_.reason||"Unknown error"}));return{working:u,failed:m,fetchedAt:Date.now()}}function ns(o){return o.map(e=>({role:bo(e.role),content:e.provider_content??e.content}))}function is(o){return o.map(e=>{if(e.provider_content)return{role:bo(e.role),content:e.provider_content};if(typeof e.content=="string")return{role:bo(e.role),content:[{type:"text",text:e.content}]};if(Array.isArray(e.content)){let t=e.content.map(n=>{if(n.type==="image_url"){if(n.image_url.url.startsWith("data:")){let i=n.image_url.url.match(/^data:([^;]+);base64,(.+)$/);return i?{type:"image",source:{type:"base64",media_type:i[1],data:i[2]}}:null}return{type:"image",source:{type:"url",url:n.image_url.url,media_type:Ra(n.image_url.url)}}}return n}).filter(n=>n);return{role:bo(e.role),content:t}}return{role:bo(e.role),content:[]}})}function bo(o){switch(o){case"system":return"system";case"user":return"user";case"assistant":return"assistant";default:return"user"}}function Ra(o){switch(o.split(".").pop()?.toLowerCase()){case"jpg":case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";case"webp":return"image/webp";default:return"image/jpeg"}}var ut=class{constructor(e,t=U,n=U,i=[],r=[],s,a){this.provider="claude";if(this.apiKey=e,this.model=t||U,this.visionModel=n||U,this.tools=i,this.mcpServers=r,this.responseLength=s,this.reasoningEffort=a,!Qt.includes(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`)}getModel(){return this.model}getVisionModel(){return this.visionModel}getMCPServers(){return this.mcpServers}addMCPServer(e){this.mcpServers.push(e)}removeMCPServer(e){this.mcpServers=this.mcpServers.filter(t=>t.name!==e)}hasMCPServers(){return this.mcpServers.length>0}async processChat(e,t,n){await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callClaude(e,this.model,!0);return this.convertToStandardCompletion(await this.parseStream(i,t))},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callClaude(e,this.visionModel,!0);return this.convertToStandardCompletion(await this.parseStream(i,t))},runWithTools:()=>this.visionChatOnce(e),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async callClaude(e,t,n,i){let r=e.find(u=>u.role==="system")?.content??"",s=e.filter(u=>u.role!=="system"),a=s.some(u=>Array.isArray(u.content)&&u.content.some(m=>m.type==="image_url"||m.type==="image")),l={model:t,system:r,messages:a?is(s):ns(s),stream:n,max_tokens:i!==void 0?i:x(this.responseLength)},p=this.reasoningEffort??Bo(t);p!==void 0&&H(t).includes(p)&&(l.output_config={effort:p}),this.tools.length&&(l.tools=this.tools.map(u=>({name:u.name,description:u.description,input_schema:u.parameters})),l.tool_choice={type:"auto"}),this.mcpServers.length>0&&(l.mcp_servers=this.mcpServers);let c={"Content-Type":"application/json","x-api-key":this.apiKey,"anthropic-version":"2023-06-01","anthropic-dangerous-direct-browser-access":"true"};return this.mcpServers.length>0&&(c["anthropic-beta"]="mcp-client-2025-04-04"),await O.post(ci,l,c)}async parseStream(e,t){let n=e.body.getReader(),i=new TextDecoder,r=[],s=new Map,a=new Map,l,p,c="";for(;;){let{done:u,value:m}=await n.read();if(u)break;c+=i.decode(m,{stream:!0});let _;for(;(_=c.indexOf(`
|
|
12
|
+
`))!==-1;){let f=c.slice(0,_).trim();if(c=c.slice(_+1),!f.startsWith("data:"))continue;let v=f.slice(5).trim();if(v==="[DONE]")break;let d=JSON.parse(v);if(d.type==="message_delta"&&(typeof d.delta?.stop_reason=="string"&&(l=d.delta.stop_reason),(d.delta?.stop_details!==void 0||d.stop_details!==void 0)&&(p=d.delta?.stop_details??d.stop_details)),d.type==="content_block_start"&&d.content_block&&typeof d.index=="number"&&s.set(d.index,{...d.content_block}),d.type==="content_block_delta"&&d.delta?.type==="text_delta"){t(d.delta.text),r.push({type:"text",text:d.delta.text});let E=s.get(d.index);E?.type==="text"&&(E.text=`${E.text??""}${d.delta.text}`)}if(d.type==="content_block_delta"&&d.delta?.type==="thinking_delta"){let E=s.get(d.index);E?.type==="thinking"&&(E.thinking=`${E.thinking??""}${d.delta.thinking??""}`)}if(d.type==="content_block_delta"&&d.delta?.type==="signature_delta"){let E=s.get(d.index);E?.type==="thinking"&&(E.signature=`${E.signature??""}${d.delta.signature??""}`)}if(d.type==="content_block_start"&&d.content_block?.type==="tool_use"?a.set(d.index,{id:d.content_block.id,name:d.content_block.name,args:""}):d.type==="content_block_start"&&d.content_block?.type==="mcp_tool_use"?a.set(d.index,{id:d.content_block.id,name:d.content_block.name,args:"",server_name:d.content_block.server_name}):d.type==="content_block_start"&&d.content_block?.type==="tool_result"?r.push({type:"tool_result",tool_use_id:d.content_block.tool_use_id,content:d.content_block.content??""}):d.type==="content_block_start"&&d.content_block?.type==="mcp_tool_result"&&r.push({type:"mcp_tool_result",tool_use_id:d.content_block.tool_use_id,is_error:d.content_block.is_error??!1,content:d.content_block.content??[]}),d.type==="content_block_delta"&&d.delta?.type==="input_json_delta"){let E=a.get(d.index);E&&(E.args+=d.delta.partial_json||"")}if(d.type==="content_block_stop"&&a.has(d.index)){let{id:E,name:k,args:g,server_name:L}=a.get(d.index),D=JSON.parse(g||"{}"),y=s.get(d.index);y&&(y.input=D),L?r.push({type:"mcp_tool_use",id:E,name:k,server_name:L,input:D}):r.push({type:"tool_use",id:E,name:k,input:D}),a.delete(d.index)}}}let h=r.some(u=>u.type==="tool_use"||u.type==="mcp_tool_use");return{blocks:r,providerContent:[...s.entries()].sort(([u],[m])=>u-m).map(([,u])=>u),stop_reason:h?"tool_use":"end",finish_reason:l,stop_details:p}}parseOneShot(e){let t=[];(e.content??[]).forEach(i=>{i.type==="text"?t.push({type:"text",text:i.text}):i.type==="tool_use"?t.push({type:"tool_use",id:i.id,name:i.name,input:i.input??{}}):i.type==="mcp_tool_use"?t.push({type:"mcp_tool_use",id:i.id,name:i.name,server_name:i.server_name,input:i.input??{}}):i.type==="tool_result"?t.push({type:"tool_result",tool_use_id:i.tool_use_id,content:i.content??""}):i.type==="mcp_tool_result"&&t.push({type:"mcp_tool_result",tool_use_id:i.tool_use_id,is_error:i.is_error??!1,content:i.content??[]})});let n=t.some(i=>i.type==="tool_use"||i.type==="mcp_tool_use");return{blocks:t,providerContent:(e.content??[]).map(i=>({...i})),stop_reason:n?"tool_use":"end",finish_reason:e.stop_reason,stop_details:e.stop_details}}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callClaude(e,this.model,t,i),s=t?await this.parseStream(r,n):this.parseOneShot(await r.json());return this.convertToStandardCompletion(s)}async visionChatOnce(e,t=!1,n=()=>{},i){let r=await this.callClaude(e,this.visionModel,t,i),s=t?await this.parseStream(r,n):this.parseOneShot(await r.json());return this.convertToStandardCompletion(s)}convertToStandardCompletion(e){let t=e.blocks.filter(n=>n.type==="text"||n.type==="tool_use"||n.type==="tool_result");return{blocks:t,stop_reason:e.stop_reason,finish_reason:e.finish_reason,stop_details:e.stop_details,assistant_message:{role:"assistant",content:t.filter(n=>n.type==="text").map(n=>n.text).join(""),provider_content:e.providerContent}}}};var ht=class{createChatService(e){let t=e.model||this.getDefaultModel(),n=H(t);if(e.reasoning_effort!==void 0&&!n.includes(e.reasoning_effort)){let r=n.length>0?`Supported values: ${n.join(", ")}.`:"This model does not expose configurable effort.";throw new Error(`Model ${t} does not support Claude reasoning_effort: ${e.reasoning_effort}. ${r}`)}let i=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultModel(),supportsVisionForModel:r=>this.supportsVisionForModel(r),validate:"resolved"});return new ut(e.apiKey,t,i,e.tools??[],e.mcpServers??[],e.responseLength,e.reasoning_effort)}getProviderName(){return"claude"}getSupportedModels(){return[Ko,U,Bt,Wt,$t,zt,Xt,Ht,qt,jt,Zt,Ho,Jt,Yt]}getDefaultModel(){return U}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Qt.includes(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}};function as(o,e){let t=o?.response??o,n=t?.error;if(!n&&t?.status!=="failed"&&e!=="error"&&e!=="response.failed")return;let i=typeof n=="string"?n:n?.message??o?.message??"The provider response failed.";throw new Error(`Provider response error: ${i}`)}async function $n(o,e,t={}){let n=o.body.getReader(),i=new TextDecoder,r=[],s=new Map,a=new Map,l,p,c,h="",u="",m="";for(;;){let{done:d,value:E}=await n.read();if(d)break;h+=i.decode(E,{stream:!0});let k=h.split(`
|
|
13
|
+
`);h=k.pop()||"";for(let g=0;g<k.length;g++){let L=k[g].trim();if(L.startsWith("event:"))u=L.slice(6).trim();else if(L.startsWith("data:"))m=L.slice(5).trim();else if(L===""&&u&&m){let D;try{D=JSON.parse(m)}catch(y){t.onJsonError?.(m,y),console.warn("Failed to parse SSE data:",m),u="",m="";continue}as(D,u),Pa(u,D,e,r,s,a,y=>{y.responseStatus!==void 0&&(l=y.responseStatus),y.incompleteDetails!==void 0&&(p=y.incompleteDetails),y.usage!==void 0&&(c=y.usage)}),u="",m=""}}}let _=Array.from(s.values()).map(d=>({type:"tool_use",id:d.id,name:d.name,input:Ae(d.arguments,t.onJsonError)})),f=Array.from(a.values()),v=M.getFullText(r);return{blocks:[...r,..._],stop_reason:_.length?"tool_use":"end",truncated:l==="incomplete",response_status:l,incomplete_details:p,usage:c,...f.length>0?{assistant_message:{role:"assistant",content:v,provider_content:f}}:{}}}function Pa(o,e,t,n,i,r,s){switch(o){case"response.output_item.added":rs(r,e.item),e.item?.type==="message"&&Array.isArray(e.item.content)?e.item.content.forEach(a=>{a.type==="output_text"&&a.text&&(t(a.text),M.append(n,a.text))}):e.item?.type==="function_call"&&i.set(e.item.id,{id:e.item.call_id??e.item.id,name:e.item.name,arguments:e.item.arguments??""});break;case"response.function_call_arguments.delta":{let a=i.get(e.item_id);a&&typeof e.delta=="string"&&(a.arguments+=e.delta);let l=r.get(e.item_id);l&&typeof e.delta=="string"&&(l.arguments=`${l.arguments??""}${e.delta}`);break}case"response.function_call_arguments.done":{let a=i.get(e.item_id);a&&typeof e.arguments=="string"&&(a.arguments=e.arguments);let l=r.get(e.item_id);l&&typeof e.arguments=="string"&&(l.arguments=e.arguments);break}case"response.output_item.done":rs(r,e.item),e.item?.type==="function_call"&&i.set(e.item.id,{id:e.item.call_id??e.item.id,name:e.item.name,arguments:e.item.arguments??""});break;case"response.content_part.added":e.part?.type==="output_text"&&typeof e.part.text=="string"&&(t(e.part.text),M.append(n,e.part.text));break;case"response.output_text.delta":case"response.content_part.delta":{let a=typeof e.delta=="string"?e.delta:e.delta?.text??"";a&&(t(a),M.append(n,a));break}case"response.output_text.done":case"response.content_part.done":case"response.reasoning.started":case"response.reasoning.delta":case"response.reasoning.done":break;case"response.completed":s(ss(e,"completed"));break;case"response.incomplete":s(ss(e,"incomplete"));break;default:break}}function rs(o,e){if(!e||typeof e!="object")return;let t=typeof e.id=="string"&&e.id?e.id:`output-item-${o.size}`;o.set(t,{...e})}function ss(o,e){let t=o?.response??o;return{responseStatus:t?.status??e,incompleteDetails:t?.incomplete_details??null,usage:t?.usage}}function ls(o,e={}){as(o);let t=[];return o.output&&Array.isArray(o.output)&&o.output.forEach(n=>{n.type==="message"&&n.content&&n.content.forEach(i=>{i.type==="output_text"&&i.text&&t.push({type:"text",text:i.text})}),n.type==="function_call"&&t.push({type:"tool_use",id:n.call_id??n.id,name:n.name,input:Ae(n.arguments,e.onJsonError)})}),{blocks:t,stop_reason:t.some(n=>n.type==="tool_use")?"tool_use":"end",truncated:o?.status==="incomplete",response_status:o?.status,incomplete_details:o?.incomplete_details??null,usage:o?.usage,...Array.isArray(o?.output)&&o.output.length>0?{assistant_message:{role:"assistant",content:t.filter(n=>n.type==="text").map(n=>n.text).join(""),provider_content:o.output}}:{}}}function ps({tools:o,mcpServers:e,isResponsesAPI:t}){let n=[];return o.length>0&&n.push(...F(o,t?"responses":"chat-completions")),e.length>0&&t&&n.push(...Aa(e)),n}function Aa(o){return o.map(e=>{let t={type:"mcp",server_label:e.name,server_url:e.url};return e.require_approval&&(t.require_approval=e.require_approval),e.tool_configuration?.allowed_tools&&(t.allowed_tools=e.tool_configuration.allowed_tools),e.authorization_token&&(t.headers={Authorization:`Bearer ${e.authorization_token}`}),t})}var xa={[C.VERY_SHORT]:800,[C.SHORT]:1200,[C.MEDIUM]:2e3,[C.LONG]:3e3,[C.VERY_LONG]:8e3,[C.DEEP]:25e3},Ia={none:1200,minimal:1600,low:2500,medium:4e3,high:8e3,xhigh:12e3,max:25e3},ya=new Set(["openai-compatible","deepseek","mistral","sakana","plamo"]);function Da(o){return o.type!=="json_schema"?o:{type:o.type,...o.json_schema}}function cs({provider:o,endpoint:e,messages:t,model:n,stream:i,tools:r,mcpServers:s,responseLength:a,verbosity:l,reasoning_effort:p,enableReasoningSummary:c,responseFormat:h,chatTemplateThinking:u,maxTokens:m}){(n===A||o==="openai"&&n===R)&&(!p||p==="none"||p==="minimal")&&(p="low");let _=e===w;if(o==="openai"&&n===R&&(r.length>0||s.length>0)&&!_)throw new Error("GPT-6.1 Sol tool calling requires the OpenAI Responses API endpoint: "+w+". Custom endpoints use Chat Completions and cannot be used with this model's tools.");Na(e,s);let f={model:n,stream:i},v=ba({provider:o,model:n,responseLength:a,reasoning_effort:p,maxTokens:m});_?v!==void 0&&(f.max_output_tokens=v):v!==void 0&&(us(o)?f.max_tokens=v:f.max_completion_tokens=v),_?f.input=wa(t):f.messages=o==="mistral"?ka(t):t,_e(n)&&(_?(p&&(f.reasoning={...f.reasoning,effort:p},c&&(f.reasoning.summary="auto")),l&&(f.text={...f.text,format:{type:"text"},verbosity:l})):(p&&(f.reasoning_effort=p),l&&(f.verbosity=l))),h&&(_?f.text={...f.text,format:Da(h)}:f.response_format=h),o==="mistral"&&xo(n)&&p&&Ui(p)&&(f.reasoning_effort=p),o==="plamo"&&p&&(f.reasoning_effort=p),o==="deepseek"&&p&&(f.thinking={type:p==="none"?"disabled":"enabled"},p!=="none"&&(f.reasoning_effort=p)),o==="sakana"&&u!==void 0&&(f.chat_template_kwargs={thinking:u});let d=ps({tools:r,mcpServers:s,isResponsesAPI:_});return d.length>0&&(f.tools=d,_||(f.tool_choice="auto")),f}function ba({provider:o,model:e,responseLength:t,reasoning_effort:n,maxTokens:i}){if(i!==void 0)return i;let r=us(o)?t!==void 0?x(t):void 0:x(t);if(o!=="openai"||!_e(e)||t===void 0)return r;let s=n??Ft(e);return Math.max(r??0,xa[t],Ia[s])}function Na(o,e){if(e.length>0&&o===q)throw new Error(`MCP servers are not supported with Chat Completions API. Current endpoint: ${o}. Please use OpenAI Responses API endpoint: ${w}. MCP tools are only available in the Responses API endpoint.`)}function wa(o){return o.flatMap(e=>{if(e.role==="assistant"&&e.provider_content?.length)return e.provider_content;if(e.role==="tool"&&e.tool_call_id)return[{type:"function_call_output",call_id:e.tool_call_id,output:e.content}];let t=[],n={role:e.role==="tool"?"user":e.role};return typeof e.content=="string"?n.content=e.content:Array.isArray(e.content)?n.content=e.content.map(r=>r.type==="text"?{type:"input_text",text:r.text}:r.type==="image_url"?{type:"input_image",image_url:r.image_url.url}:r):n.content=e.content,(typeof n.content!="string"||n.content.length>0)&&t.push(n),e.role==="assistant"&&e.tool_calls&&t.push(...e.tool_calls.map(r=>({type:"function_call",call_id:r.id,name:r.function.name,arguments:r.function.arguments}))),t})}function ka(o){return o.map(e=>{let t={role:e.role};return Array.isArray(e.content)?(t.content=e.content.map(n=>n.type==="image_url"&&typeof n.image_url=="object"&&typeof n.image_url?.url=="string"?{type:"image_url",image_url:n.image_url.url}:n),t):(t.content=e.content,t)})}function us(o){return ya.has(o)}var I=class{constructor(e,t=de,n=de,i,r=q,s=[],a,l,p,c=!1,h="openai",u=!0,m,_){this.provider=h,this.apiKey=e,this.model=t,this.tools=i||[];let f=h==="openai"&&(t===R||n===R)&&(this.tools.length>0||s.length>0);if(this.endpoint=(t===A||n===A||f)&&r===q?w:r,this.mcpServers=s,this.responseLength=a,this.verbosity=l,this.reasoning_effort=p,this.enableReasoningSummary=c,this.responseFormat=m,this.chatTemplateThinking=_,u&&!kt.includes(n))throw new Error(`Model ${n} does not support vision capabilities.`);this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenAI(e,this.model,!0),r=this.endpoint===w;try{if(r){let s=await $n(i,t);return M.getFullText(s.blocks)}return this.handleStream(i,t)}catch(s){throw console.error("[processChat] Error in streaming/completion:",s),s}},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){try{await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenAI(e,this.visionModel,!0),r=this.endpoint===w;try{if(r){let s=await $n(i,t);return M.getFullText(s.blocks)}return this.handleStream(i,t)}catch(s){throw console.error("[processVisionChat] Error in streaming/completion:",s),s}},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processVisionChat:",i),i}}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callOpenAI(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){let r=await this.callOpenAI(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return this.endpoint===w?t?$n(e,n):ls(await e.json()):t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callOpenAI(e,t,n=!1,i){let r=cs({provider:this.provider,endpoint:this.endpoint,messages:e,model:t,stream:n,tools:this.tools,mcpServers:this.mcpServers,responseLength:this.responseLength,verbosity:this.verbosity,reasoning_effort:this.reasoning_effort,enableReasoningSummary:this.enableReasoningSummary,responseFormat:this.responseFormat,chatTemplateThinking:this.chatTemplateThinking,maxTokens:i}),s={};return(this.provider!=="openai-compatible"||this.apiKey.trim()!=="")&&(s.Authorization=`Bearer ${this.apiKey}`),await O.post(this.endpoint,r,s)}async handleStream(e,t){return X(e,t,{throwOnApiError:!0})}async parseStream(e,t){return G(e,t,{appendTextBlock:M.addTextBlock,throwOnApiError:!0})}parseOneShot(e){return V(e,{throwOnApiError:!0})}};var dt=class extends I{constructor(e,t=Te,n=t,i,r=Ro,s,a){let l=Di(t,a);if(super(e,t,n,i,r,[],s,void 0,l,!1,"deepseek",!1),i?.length&&l!==void 0&&l!=="none")throw new Error("DeepSeek thinking with tools is not supported yet. Use reasoning_effort: 'none' for tool calling.")}};var _t=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:at,supportsVisionForModel:r=>this.supportsVisionForModel(r),validate:"explicit"}),i=e.tools;return new dt(e.apiKey,t,n,i,this.resolveEndpoint(e),e.responseLength,e.reasoning_effort)}getProviderName(){return"deepseek"}getSupportedModels(){return[...Ii]}getDefaultModel(){return Te}supportsVision(){return!0}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return yi(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("deepseek provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return Ro}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var hs=(o,e)=>({name:`mcp_${o.name}_search`,description:e==="schema-fetch-failed"?`Search using ${o.name} MCP server (schema fetch failed)`:`Search using ${o.name} MCP server`,parameters:{type:"object",properties:{query:{type:"string",description:"Search query"}},required:["query"]}}),zn=class{static async fetchToolSchemas(e){return(await this.fetchToolSchemasWithStatus(e)).schemas}static async fetchToolSchemasWithStatus(e){try{let t={"Content-Type":"application/json"};e.authorization_token&&(t.Authorization=`Bearer ${e.authorization_token}`);let i=await(await O.post(`${e.url}/tools`,{},t)).json();return Array.isArray(i.tools)?{schemas:i.tools.map(r=>({name:`mcp_${e.name}_${r.name}`,description:r.description||`Tool from ${e.name} MCP server`,parameters:r.inputSchema||{type:"object",properties:{},required:[]}})),failures:[]}:{schemas:[hs(e)],failures:[]}}catch(t){return console.warn(`Failed to fetch MCP schemas from ${e.name}:`,t),{schemas:[hs(e,"schema-fetch-failed")],failures:[{server:e,error:t}]}}}static async fetchAllToolSchemas(e){return(await this.fetchAllToolSchemasWithStatus(e)).schemas}static async fetchAllToolSchemasWithStatus(e){let t=[],n=[];for(let i of e)try{let r=await this.fetchToolSchemasWithStatus(i);t.push(...r.schemas),n.push(...r.failures)}catch(r){console.error(`Failed to fetch schemas from ${i.name}:`,r),n.push({server:i,error:r})}return{schemas:t,failures:n}}};function ds(o){switch(o){case"system":return"model";case"user":return"user";case"assistant":return"model";default:return"user"}}function _s(o,e={}){let t=[],n=null,i=[],r=()=>{n&&i.length&&(t.push({role:n,parts:[...i]}),i=[]),n=null};for(let s of o){if(s.role==="system")continue;let a=ds(s.role);if(s.tool_calls){r();let l=s.tool_calls.map(p=>gs(p,e));l.length>0&&t.push({role:"model",parts:l});continue}if(s.role==="tool"){r(),Os(t,Es(s,e));continue}a!==n&&r(),n=a,i.push({text:s.content})}return r(),t}async function fs(o,e={}){let t=e.imageFetcher??O.get,n=e.blobToBase64??Fa,i=[],r=null,s=[],a=()=>{r&&s.length>0&&(i.push({role:r,parts:[...s]}),s=[]),r=null};for(let l of o){if(l.role==="system")continue;let p=ds(l.role);if(l.tool_calls){a();let c=l.tool_calls.map(h=>gs(h,e));c.length>0&&i.push({role:"model",parts:c});continue}if(l.role==="tool"){a(),Os(i,Es(l,e));continue}if(p!==r&&s.length>0&&a(),r=p,typeof l.content=="string")s.push({text:l.content});else if(Array.isArray(l.content)){for(let c of l.content)if(c.type==="text")s.push({text:c.text});else if(c.type==="image_url")try{let u=await(await t(c.image_url.url)).blob(),m=await n(u);s.push({inlineData:{mimeType:u.type||"image/jpeg",data:m.split(",")[1]}})}catch(h){throw console.error("Error processing image:",h),new Error(`Failed to process image: ${h.message}`)}}}return a(),i}function ms(o){let e=o.flatMap(t=>t.role!=="system"?[]:typeof t.content=="string"?t.content?[{text:t.content}]:[]:t.content.flatMap(n=>n.type==="text"&&n.text?[{text:n.text}]:[]));return e.length>0?{parts:e}:void 0}function gs(o,e){e.callIdMap?.set(o.id,o.function.name);let t=e.functionCallContextMap?.get(o.id),n={functionCall:{...t?.providerCallId?{id:t.providerCallId}:{},name:o.function.name,args:JSON.parse(o.function.arguments||"{}")}};return t?.thoughtSignature&&(n.thoughtSignature=t.thoughtSignature),n}function Es(o,e){let t=o.tool_call_id,n=e.functionCallContextMap?.get(t);return{functionResponse:{...n?.providerCallId?{id:n.providerCallId}:{},name:o.name??n?.name??e.callIdMap?.get(t)??"result",response:Va(Ga(o.content))}}}function Os(o,e){let t=o[o.length-1];if(t?.role==="user"&&t.parts.every(i=>i.functionResponse)){t.parts.push(e);return}o.push({role:"user",parts:[e]})}function Ga(o){try{return JSON.parse(o)}catch{return o}}function Va(o){return o===null?{content:null}:typeof o=="object"?o:{content:o}}function Fa(o){return new Promise((e,t)=>{let n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=t,n.readAsDataURL(o)})}function Ua(o,e){return[...o,...e].map(t=>({name:t.name,description:t.description,parameters:t.parameters}))}function Ms(o,e){let t=Ua(o,e);if(t.length!==0)return{tools:[{functionDeclarations:t}],toolConfig:{functionCallingConfig:{mode:"AUTO"}}}}function Ss(o){return o.map(e=>({name:`mcp_${e.name}_search`,description:`Search using ${e.name} MCP server (fallback)`,parameters:{type:"object",properties:{query:{type:"string",description:"Search query"}},required:["query"]}}))}var ft=class{constructor(e,t=ee,n=ee,i=[],r=[],s,a){this.provider="gemini";this.mcpToolSchemas=[];this.mcpSchemasInitialized=!1;this.callIdMap=new Map;this.functionCallContextMap=new Map;if(this.apiKey=e,this.model=t,this.responseLength=s,this.reasoningEffort=a,!Ut.includes(n))throw new Error(`Model ${n} does not support vision capabilities.`);this.visionModel=n,this.tools=i,this.mcpServers=r}isGemma4Model(e){return/^gemma-4-/.test(e)}resolveThinkingConfig(e){let t=Kt(e,this.reasoningEffort);if(t)return{includeThoughts:!1,thinkingLevel:t.toUpperCase()};if(this.isGemma4Model(e))return{includeThoughts:!1,thinkingLevel:"MINIMAL"}}shouldExposeTextPart(e,t){return!(!e.text||this.isGemma4Model(t)&&e.thought===!0)}adaptKeysForApi(e){let t={toolConfig:"tool_config",functionCallingConfig:"function_calling_config",functionDeclarations:"function_declarations",functionCall:"function_call",functionResponse:"function_response",thoughtSignature:"thought_signature"};return Array.isArray(e)?e.map(n=>this.adaptKeysForApi(n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([n,i])=>[t[n]??n,this.adaptKeysForApi(i)])):e}getModel(){return this.model}getVisionModel(){return this.visionModel}getMCPServers(){return this.mcpServers}addMCPServer(e){this.mcpServers.push(e),this.mcpSchemasInitialized=!1,this.mcpSchemaInitializationError=void 0}removeMCPServer(e){this.mcpServers=this.mcpServers.filter(t=>t.name!==e),this.mcpSchemasInitialized=!1,this.mcpSchemaInitializationError=void 0}hasMCPServers(){return this.mcpServers.length>0}getMCPSchemaInitializationError(){return this.mcpSchemaInitializationError}async initializeMCPSchemas(){if(!(this.mcpSchemasInitialized||this.mcpServers.length===0))try{let e=new Promise((i,r)=>setTimeout(()=>r(new Error("MCP schema fetch timeout")),5e3)),t=zn.fetchAllToolSchemasWithStatus(this.mcpServers),n=await Promise.race([t,e]);this.mcpToolSchemas=n.schemas,this.mcpSchemasInitialized=!0,this.mcpSchemaInitializationError=n.failures[0]?.error}catch(e){console.warn("Failed to initialize MCP schemas, using fallback:",e),this.mcpSchemaInitializationError=e,this.mcpToolSchemas=Ss(this.mcpServers),this.mcpSchemasInitialized=!0}}async processChat(e,t,n){try{await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callGemini(e,this.model,!0),{blocks:r}=await this.parseStream(i,t,this.model);return M.getFullText(r)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"Received functionCall. Use chatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processChat:",i),i}}async processVisionChat(e,t,n){try{await S({hasTools:this.tools.length>0||this.mcpServers.length>0,runWithoutTools:async()=>{let i=await this.callGemini(e,this.visionModel,!0),{blocks:r}=await this.parseStream(i,t,this.visionModel);return M.getFullText(r)},runWithTools:()=>this.visionChatOnce(e),onToolBlocks:i=>{i.filter(r=>r.type==="text").forEach(r=>t(r.text))},onCompleteResponse:n,toolErrorMessage:"Received functionCall. Use visionChatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processVisionChat:",i),i}}async callGemini(e,t,n=!1,i){let a={contents:e.some(g=>Array.isArray(g.content)&&g.content.some(L=>L?.type==="image_url"||L?.inlineData))?await fs(e,{callIdMap:this.callIdMap,functionCallContextMap:this.functionCallContextMap}):_s(e,{callIdMap:this.callIdMap,functionCallContextMap:this.functionCallContextMap}),generationConfig:{maxOutputTokens:i!==void 0?i:x(this.responseLength)}},l=ms(e);l&&(a.systemInstruction=l);let p=this.resolveThinkingConfig(t);p&&(a.generationConfig.thinkingConfig=p);let c=[];if(this.mcpServers.length>0)try{await this.initializeMCPSchemas(),c=this.mcpToolSchemas}catch(g){console.warn("MCP initialization failed, skipping MCP tools:",g)}let h=Ms(this.tools,c);h&&Object.assign(a,h);let u=async(g,L)=>{let D=n?"streamGenerateContent":"generateContent",y=n?"?alt=sse":"",Ps=`${Qn}/${g}/models/${t}:${D}${y}${y?"&":"?"}key=${this.apiKey}`;return O.post(Ps,L)},m=/flash[-_]lite/.test(t),_=this.isGemma4Model(t),f=/gemini-2\.5/.test(t),v=/^gemini-3(?:\.[0-9]+)?-/.test(t),d=m||_||f||v,E=d?"v1beta":"v1",k=async()=>{try{let g=E==="v1"?a:this.adaptKeysForApi(a);return await u(E,g)}catch(g){let L=/Unknown name|Cannot find field|404/.test(g?.message||"")||g?.status===404;if(!d&&L)try{return await u("v1beta",this.adaptKeysForApi(a))}catch(D){throw D instanceof Error&&(D.cause=g),D}throw g}};try{return await k()}catch(g){throw g.body&&(console.error("Gemini API Error Details:",g.body),console.error("Request Body:",JSON.stringify(a,null,2))),g}}createFunctionCallBlock(e){let t=e.functionCall??e.function_call;if(!t)return;let n=t.id??this.genUUID();return this.callIdMap.set(n,t.name),this.functionCallContextMap.set(n,{name:t.name,providerCallId:t.id,thoughtSignature:e.thoughtSignature??e.thought_signature}),{type:"tool_use",id:n,name:t.name,input:t.args??{}}}createFunctionResponseBlock(e){let t=e.functionResponse??e.function_response;if(t)return{type:"tool_result",tool_use_id:t.id??t.name,content:JSON.stringify(t.response)}}async parseStream(e,t,n){let i=e.body.getReader(),r=new TextDecoder,s=[],a=[],l="",p=h=>{if(!h||h==="[DONE]")return;let u;try{u=JSON.parse(h)}catch{return}for(let m of u.candidates??[])for(let _ of m.content?.parts??[]){this.shouldExposeTextPart(_,n)&&(t(_.text),M.addTextBlock(s,_.text));let f=this.createFunctionCallBlock(_);f&&a.push(f);let v=this.createFunctionResponseBlock(_);v&&a.push(v)}};for(;;){let{done:h,value:u}=await i.read();if(h)break;l+=r.decode(u,{stream:!0});let m;for(;(m=l.indexOf(`
|
|
14
|
+
`))!==-1;){let _=l.slice(0,m);if(l=l.slice(m+1),_.endsWith("\r")&&(_=_.slice(0,-1)),!_.trim()){p("");continue}_.startsWith("data:")&&(_=_.slice(5).trim()),_&&p(_)}}return l&&p(l),{blocks:[...s,...a],stop_reason:a.some(h=>h.type==="tool_use")?"tool_use":"end"}}parseOneShot(e,t){let n=[],i=[];for(let s of e.candidates??[])for(let a of s.content?.parts??[]){this.shouldExposeTextPart(a,t)&&n.push({type:"text",text:a.text});let l=this.createFunctionCallBlock(a);l&&i.push(l);let p=this.createFunctionResponseBlock(a);p&&i.push(p)}return{blocks:[...n,...i],stop_reason:i.some(s=>s.type==="tool_use")?"tool_use":"end"}}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callGemini(e,this.model,t,i);return t?this.parseStream(r,n,this.model):this.parseOneShot(await r.json(),this.model)}async visionChatOnce(e,t=!1,n=()=>{},i){let r=await this.callGemini(e,this.visionModel,t,i);return t?this.parseStream(r,n,this.visionModel):this.parseOneShot(await r.json(),this.visionModel)}genUUID(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}};var mt=class{createChatService(e){let t=e.model||this.getDefaultModel();if(e.reasoning_effort!==void 0&&!pi(t))throw new Error(`Model ${t} does not support Gemini reasoning_effort. Use it with Gemini 3 thinkingLevel models; Gemini 2.5 models use thinkingBudget instead.`);let n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultModel(),supportsVisionForModel:i=>this.supportsVisionForModel(i),validate:"resolved"});return new ft(e.apiKey,t,n,e.tools||[],e.mcpServers||[],e.responseLength,Kt(t,e.reasoning_effort))}getProviderName(){return"gemini"}getSupportedModels(){return[...Uo]}getDefaultModel(){return ee}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Ut.includes(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}};function Ka(){if(typeof globalThis<"u"&&"LanguageModel"in globalThis)return globalThis.LanguageModel}var gt=class{constructor(e={}){this.provider="gemini-nano";this.consumedTranscript=[];this.expectedInputLanguages=e.expectedInputLanguages??["ja","en"],this.expectedOutputLanguages=e.expectedOutputLanguages??["ja"],this.initialPrompts=(e.initialPrompts??[]).map(t=>({...t})),this._responseLength=e.responseLength,this.sessionMode=e.sessionMode??"stateless"}getModel(){return Pe}getVisionModel(){return Pe}dispose(){this.destroyPersistentSessions()}async processChat(e,t,n){let i=await this.generateResponse(e,!0,t);await n(i)}async processVisionChat(e,t,n){throw new Error("Gemini Nano does not support vision capabilities.")}async chatOnce(e,t=!1,n=()=>{},i){return{blocks:[{type:"text",text:await this.generateResponse(e,t,n)}],stop_reason:"end"}}async visionChatOnce(e,t=!1,n=()=>{},i){throw new Error("Gemini Nano does not support vision capabilities.")}async generateResponse(e,t,n){let i=Ka();if(!i)throw new Error("Gemini Nano is not available in this environment. Chrome 148+ on a supported desktop device is required for web pages.");let r=this.getModelOptions();this.sessionMode==="stateless"&&await this.ensureAvailability(i,r);let a=e.filter(m=>m.role==="system").map(m=>m.content).join(`
|
|
15
15
|
`),l=e.filter(m=>m.role==="user"||m.role==="assistant").slice(-20),p=this.findLastUserMessageIndex(l);if(p===-1)throw new Error("No user message found in the provided messages.");let c=l[p],h=l.slice(0,p);if(this.sessionMode==="persistent")return this.generatePersistentResponse(i,a,h,c.content,r,t,n);let u=await this.createSession(i,a,h,r);try{return await this.promptSession(u,c.content,t,n)}finally{try{u.destroy()}catch{}}}async generatePersistentResponse(e,t,n,i,r,s,a){let l=this.getPersistentSessionKey(t,r);this.persistentSessionKey!==l&&this.destroyPersistentSessions(),!this.baseSession&&!this.liveSession&&(await this.ensureAvailability(e,r),await this.createPersistentBaseSession(e,t,n,r),this.persistentSessionKey=l);let p=await this.getPersistentLiveSession(e,t,n,r),c=p===this.liveSession&&this.isHistoryCompatible(n,this.consumedTranscript);this.persistentSessionKey=l;try{let h=await this.promptSession(p,i,s,a);return this.recordConsumedTranscript(n,i,h,c),h}catch(h){if(!this.isQuotaExceededError(h))throw this.destroyPersistentLiveSession(),h;this.destroyPersistentLiveSession(),p=await this.getPersistentLiveSession(e,t,[],r),this.persistentSessionKey=l;try{let u=await this.promptSession(p,i,s,a);return this.recordConsumedTranscript([],i,u,!1),u}catch(u){throw this.destroyPersistentLiveSession(),u}}}async ensureAvailability(e,t){let n=await e.availability(t);if(n!=="available"&&n!=="downloadable")throw new Error(`Gemini Nano Prompt API is not ready in this environment. LanguageModel.availability() returned "${n}". Expected "available" or "downloadable".`)}async createPersistentBaseSession(e,t,n,i){this.baseSession=await this.createSession(e,t,[],i),n.length>0?(this.liveSession=await this.createSession(e,t,n,i),this.consumedTranscript=n.map(r=>({...r}))):typeof this.baseSession.clone=="function"?this.liveSession=await this.baseSession.clone():this.liveSession=this.baseSession}async getPersistentLiveSession(e,t,n,i){if(this.liveSession&&this.isHistoryCompatible(n,this.consumedTranscript))return this.liveSession;if(this.liveSession&&this.liveSession!==this.baseSession&&this.destroyPersistentLiveSession(),n.length===0&&this.baseSession){if(typeof this.baseSession.clone=="function")this.liveSession=await this.baseSession.clone();else{if(this.consumedTranscript.length>0)return this.destroyPersistentSessions(),await this.createPersistentBaseSession(e,t,[],i),this.liveSession;this.liveSession=this.baseSession}return this.liveSession}return this.baseSession&&typeof this.baseSession.clone=="function"?(this.liveSession=await this.createSession(e,t,n,i),this.liveSession):(this.destroyPersistentSessions(),await this.ensureAvailability(e,i),await this.createPersistentBaseSessionWithHistory(e,t,n,i),this.liveSession)}async createPersistentBaseSessionWithHistory(e,t,n,i){this.baseSession=await this.createSession(e,t,n,i),this.liveSession=this.baseSession,this.consumedTranscript=n.map(r=>({...r}))}recordConsumedTranscript(e,t,n,i){let r=i?this.consumedTranscript:e;this.consumedTranscript=[...r,{role:"user",content:t},{role:"assistant",content:n}]}getPersistentSessionKey(e,t){return JSON.stringify({systemPrompt:e,modelOptions:t,initialPrompts:this.initialPrompts,responseLength:this._responseLength})}isHistoryCompatible(e,t){return e.length===0||t.length===0?e.length===0&&t.length===0:this.isSuffix(e,t)||this.isSuffix(t,e)}isSuffix(e,t){if(e.length>t.length)return!1;let n=t.length-e.length;return e.every((i,r)=>i.role===t[n+r].role&&i.content===t[n+r].content)}isQuotaExceededError(e){return typeof e=="object"&&e!==null&&"name"in e&&e.name==="QuotaExceededError"}destroyPersistentLiveSession(){this.liveSession&&(this.destroySession(this.liveSession),this.liveSession===this.baseSession&&(this.baseSession=void 0)),this.liveSession=void 0,this.consumedTranscript=[]}destroyPersistentSessions(){this.liveSession&&this.liveSession!==this.baseSession&&this.destroySession(this.liveSession),this.baseSession&&this.destroySession(this.baseSession),this.baseSession=void 0,this.liveSession=void 0,this.persistentSessionKey=void 0,this.consumedTranscript=[]}destroySession(e){try{e.destroy()}catch{}}async promptSession(e,t,n,i){if(n&&typeof e.promptStreaming=="function"){let s=e.promptStreaming(t).getReader(),a="",l="unknown";for(;;){let{done:p,value:c}=await s.read();if(p)break;let h=String(c??"");l==="unknown"&&a!==""&&(l=h.startsWith(a)?"cumulative":"delta");let u=l==="cumulative",m=u?h.slice(a.length):h;a=u?h:a+h,m&&i(m)}return a}let r=await e.prompt(t);return i(r),r}async createSession(e,t,n,i){let r=this.buildInitialPrompts(t,n),s={...i,...r.length>0?{initialPrompts:r}:{}};return e.create(s)}getModelOptions(){return{expectedInputs:[{type:"text",languages:this.expectedInputLanguages}],expectedOutputs:[{type:"text",languages:this.expectedOutputLanguages}]}}buildInitialPrompts(e,t){let n=this.initialPrompts.filter(s=>s.role==="system").map(s=>s.content),i=this.buildSystemPrompt([e,...n].filter(Boolean).join(`
|
|
16
16
|
|
|
17
17
|
`)),r=[];return i&&r.push({role:"system",content:i}),r.push(...this.initialPrompts.filter(s=>s.role!=="system").map(s=>({...s})),...t.filter(s=>s.role==="user"||s.role==="assistant").map(({role:s,content:a})=>({role:s,content:a}))),r}findLastUserMessageIndex(e){for(let t=e.length-1;t>=0;t-=1)if(e[t].role==="user")return t;return-1}buildSystemPrompt(e){let t=[];e&&t.push(e);let n=this.getResponseLengthInstruction();return n&&t.push(n),t.join(`
|
|
18
18
|
|
|
19
|
-
`)}getResponseLengthInstruction(){if(!this._responseLength)return;let e=Kn[this._responseLength];if(e)switch(this._responseLength){case C.VERY_SHORT:return`Reply in no more than one concise sentence. Do not use a preamble, summary, bullet points, or Markdown. Keep the reaction and answer short enough to read in one breath. Stay within approximately ${e} tokens.`;case C.SHORT:return`Reply in no more than two concise sentences. Do not use a preamble, summary, bullet points, or Markdown. Keep the reaction and answer short enough to read in one breath. Use natural conversational language. Stay within approximately ${e} tokens.`;case C.MEDIUM:return`Reply in no more than three concise sentences. Answer directly and include only the context needed to understand the answer. Do not use a preamble, summary, bullet points, or Markdown. Use natural conversational language. Stay within approximately ${e} tokens.`;case C.LONG:return`Reply in no more than five sentences. Explain the important details clearly, but avoid unnecessary preambles, repetition, bullet points, or Markdown. Use natural conversational language. Stay within approximately ${e} tokens.`;case C.VERY_LONG:return`Reply in no more than ten sentences. Give a thorough but focused answer. Use short plain-text paragraphs when helpful, and avoid unnecessary repetition, bullet points, or Markdown. Stay within approximately ${e} tokens.`;case C.DEEP:return`Give a detailed response and organize it in the way that best fits the request. No sentence-count limit applies at this level. Stay within approximately ${e} tokens.`}}};var gt=class{createChatService(e){return new mt({expectedInputLanguages:e.expectedInputLanguages,expectedOutputLanguages:e.expectedOutputLanguages,initialPrompts:e.initialPrompts,responseLength:e.responseLength,sessionMode:e.sessionMode})}getProviderName(){return"gemini-nano"}getSupportedModels(){return[Pe]}getDefaultModel(){return Pe}supportsVision(){return!1}getVisionSupportLevel(){return"unsupported"}};var Et=class{constructor(e,t=$,n=$,i,r=ot,s,a,l,p){this.provider="kimi";this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.responseFormat=a,this.thinking=l;let c=se(t);if(p!==void 0&&!c.includes(p))throw new Error(`Model ${t} does not support reasoning_effort: ${p}.`);this.reasoningEffort=p??rt(t),this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:()=>this.chatOnce(e,!0,t),runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!it(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await S({hasTools:this.tools.length>0,runWithoutTools:()=>this.visionChatOnce(e,!0,t),runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callKimi(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!it(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);let r=await this.callKimi(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callKimi(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i);return await O.post(this.endpoint,r,{Authorization:`Bearer ${this.apiKey}`})}buildRequestBody(e,t,n,i){let r={model:t,stream:n,messages:e},s=i!==void 0?i:x(this.responseLength);s!==void 0&&(Ce(t)?r.max_completion_tokens=s:r.max_tokens=s),this.responseFormat&&(r.response_format=this.responseFormat),Ce(t)&&(r.reasoning_effort=this.reasoningEffort??rt(t));let a=this.resolveEffectiveThinking(t);a&&(this.isSelfHostedEndpoint()?a.type==="disabled"&&(r.chat_template_kwargs={thinking:!1}):r.thinking=a);let l=this.buildToolsDefinition();return l.length>0&&(r.tools=l,r.tool_choice="auto"),r}isSelfHostedEndpoint(){return this.normalizeEndpoint(this.endpoint)!==this.normalizeEndpoint(ot)}normalizeEndpoint(e){return e.replace(/\/+$/,"")}resolveEffectiveThinking(e){if(Ce(e)){if(this.thinking)throw new Error(`Model ${e} uses reasoning_effort and does not support the K2.x thinking option.`);return}if(Co(e)){if(this.thinking?.type==="disabled")throw new Error(`Model ${e} requires thinking mode and does not support thinking: disabled.`);return this.thinking??{type:"enabled"}}return this.tools.length>0?{type:"disabled"}:this.thinking??{type:"enabled"}}buildToolsDefinition(){return F(this.tools,"chat-completions")}async parseStream(e,t){return G(e,t,{preserveAssistantMessage:!0,onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}parseOneShot(e){return V(e,{preserveAssistantMessage:!0})}};var Ot=class{constructor(){this.defaultThinking={type:"enabled"}}createChatService(e){let t=this.resolveEndpoint(e),n=e.model||this.getDefaultModel(),i=T({model:n,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:l=>this.supportsVisionForModel(l),validate:"explicit"}),r=e.tools,s=this.resolveThinking(n,r,e.thinking),a=this.resolveReasoningEffort(n,e.reasoning_effort);return new Et(e.apiKey,n,i,r,t,e.responseLength,e.responseFormat,s,a)}getProviderName(){return"kimi"}getSupportedModels(){return[nt,vo,Lo,$,Gn]}getDefaultModel(){return $}getDefaultVisionModel(){return $}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return it(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}resolveEndpoint(e){if(e.endpoint)return this.normalizeEndpoint(e.endpoint);if(e.baseUrl){let t=this.normalizeEndpoint(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return ot}normalizeEndpoint(e){return e.replace(/\/+$/,"")}resolveThinking(e,t,n){if(Ce(e)){if(n)throw new Error(`Model ${e} uses reasoning_effort and does not support the K2.x thinking option.`);return}if(Co(e)){if(n?.type==="disabled")throw new Error(`Model ${e} requires thinking mode and does not support thinking: disabled.`);return n??this.defaultThinking}return t&&t.length>0?{type:"disabled"}:n??this.defaultThinking}resolveReasoningEffort(e,t){let n=se(e);if(n.length===0){if(t!==void 0)throw new Error(`Model ${e} does not support the reasoning_effort option.`);return}let i=t??rt(e)??n[0];if(!n.includes(i))throw new Error(`Model ${e} supports reasoning_effort values: ${n.join(", ")}.`);return i}};var Mt=class extends I{constructor(e,t=z,n=t,i,r=Po,s,a){super(e,t,n,i,r,[],s,void 0,a,!1,"mistral",!1)}};var St=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:s=>this.supportsVisionForModel(s),validate:"explicit"}),i=e.tools,r=Ao(t)?e.reasoning_effort:void 0;return new Mt(e.apiKey,t,n,i,this.resolveEndpoint(e),e.responseLength,r)}getProviderName(){return"mistral"}getSupportedModels(){return[...Vi]}getDefaultModel(){return z}getDefaultVisionModel(){return z}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Ui(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("mistral provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return Po}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var vt=class{createChatService(e){this.validateRequiredOptions(e);let t=[e.apiKey?.trim()??"",e.model,e.visionModel??e.model,e.tools,e.endpoint,[],e.responseLength,e.verbosity,e.reasoning_effort,e.enableReasoningSummary,this.getProviderName(),!1];return e.responseFormat!==void 0&&t.push(e.responseFormat),new I(...t)}getProviderName(){return"openai-compatible"}getSupportedModels(){return[]}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"unknown"}supportsVisionForModel(e){return!0}getVisionSupportLevelForModel(e){return"unknown"}getDefaultModel(){return"local-model"}validateRequiredOptions(e){if(e.mcpServers!==void 0)throw new Error("openai-compatible provider does not support mcpServers.");let t=e.endpoint?.trim();if(!t)throw new Error("openai-compatible provider requires endpoint (full URL).");let n;try{n=new URL(t)}catch{throw new Error("openai-compatible provider requires endpoint to be a full URL.")}if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("openai-compatible provider requires endpoint to be a full URL.");if(!e.model?.trim())throw new Error("openai-compatible provider requires model.")}};var Lt=class{createChatService(e){let t=this.optimizeGPT5Options(e),n=T({model:t.model,visionModel:t.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultModel(),supportsVisionForModel:c=>this.supportsVisionForModel(c),validate:"resolved"}),i=t.tools,r=t.mcpServers??[],s=t.model||this.getDefaultModel(),a=!1;if(r.length>0||s===A||n===A)a=!0;else if(s===b||n===b||s===N||n===N)a=(t.gpt5EndpointPreference||"responses")!=="chat"||t.reasoning_effort!=="none";else if(Zn(s))a=!0;else if(s===R||n===R){let c=t.gpt5EndpointPreference||"responses";a=(i?.length??0)>0||c!=="chat"}else _e(s)&&(a=(t.gpt5EndpointPreference||"chat")==="responses");let l=t.endpoint||(a?w:q),p=[t.apiKey,s,n,i,l,r,t.responseLength,t.verbosity,t.reasoning_effort,t.enableReasoningSummary,this.getProviderName()];return t.responseFormat!==void 0&&p.push(!0,t.responseFormat),new I(...p)}getProviderName(){return"openai"}getSupportedModels(){return[le,xe,Ie,ye,pe,ce,j,R,A,b,N,Z,J,Y,ue,he,Q,bo,No,wo,de,ko,Xn,qn,"o1"]}getDefaultModel(){return le}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return wt.includes(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}optimizeGPT5Options(e){let t=e.model||this.getDefaultModel();if(!_e(t))return e;let n={...e};if(e.gpt5Preset){let i=$i[e.gpt5Preset];n.reasoning_effort=i.reasoning_effort,n.verbosity=i.verbosity}else e.reasoning_effort||(n.reasoning_effort=Vt(t));return n.reasoning_effort=this.normalizeReasoningEffort(t,n.reasoning_effort),n}normalizeReasoningEffort(e,t){if(t)return t==="none"&&!kt(e)||t==="minimal"&&!Gt(e)?t==="minimal"&&kt(e)?"none":t==="none"&&Gt(e)?"minimal":Vo(e)?"low":"medium":t==="low"&&!Vo(e)?"medium":t==="xhigh"&&!Go(e)?"high":t==="max"&&!Jn(e)?Go(e)?"xhigh":"high":t}};var vs=o=>[ho,Ke].includes(o.trim()),Ka=o=>[B,ne,W,Be].includes(o.trim()),Zi=(o,e)=>{if(vs(o)&&!e)throw new Error("OpenRouter Auto Router returned no visible content. Please retry.")},Ss=o=>o.blocks.some(e=>e.type!=="text"||e.text.trim().length>0),Ct=class{constructor(e,t=B,n=B,i,r=Qt,s,a,l,p,c,h){this.provider="openrouter";this.lastRequestTime=0;this.requestCount=0;this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.appName=a,this.appUrl=l,this.reasoning_effort=p,this.includeReasoning=c,this.reasoningMaxTokens=h,this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async applyRateLimiting(){if(!ve(this.model))return;let e=Date.now(),t=e-this.lastRequestTime;if(t>6e4&&(this.requestCount=0),this.requestCount>=Ei){let n=6e4-t;n>0&&(console.log(`Rate limit reached for free tier. Waiting ${n}ms...`),await new Promise(i=>setTimeout(i,n)),this.requestCount=0)}this.lastRequestTime=e,this.requestCount++}async processChat(e,t,n){await this.applyRateLimiting(),await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenRouter(e,this.model,!0);return this.handleStream(i,t,this.model)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!Xe(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await this.applyRateLimiting();try{await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenRouter(e,this.visionModel,!0);return this.handleStream(i,t,this.visionModel)},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processVisionChat:",i),i}}async chatOnce(e,t=!0,n=()=>{},i){await this.applyRateLimiting();let r=await this.callOpenRouter(e,this.model,t,i);return t?this.parseStream(r,n,this.model):this.parseOneShot(await r.json(),this.model)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!Xe(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await this.applyRateLimiting();let r=await this.callOpenRouter(e,this.visionModel,t,i);return t?this.parseStream(r,n,this.visionModel):this.parseOneShot(await r.json(),this.visionModel)}async callOpenRouter(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i),s={Authorization:`Bearer ${this.apiKey}`};return this.appUrl&&(s["HTTP-Referer"]=this.appUrl),this.appName&&(s["X-Title"]=this.appName),await O.post(this.endpoint,r,s)}buildRequestBody(e,t,n,i){let r={model:t,messages:e,stream:n},s=i!==void 0?i:x(this.responseLength),a=Ka(t)||vs(t)&&i===void 0;s&&a?console.warn(`OpenRouter: Token limits are disabled for ${t} because this model can return empty content when a token limit is set.`):s&&(r.max_tokens=s);let l=ui.includes(t.trim())?void 0:this.reasoningMaxTokens;if(t.trim()!==oe){let p=Pn(t),c=Oi(t,this.reasoning_effort);if(c!==void 0||this.includeReasoning!==void 0||l||p){if(r.reasoning={},c){let h=c==="minimal"&&t!==Ee&&t!==Oe&&t!==fe&&t!==me?"low":c;r.reasoning.effort=h}else p&&(r.reasoning.effort=p);(c==="none"||this.includeReasoning!==!0)&&(r.reasoning.exclude=!0),l&&(r.reasoning.max_tokens=l)}else r.reasoning={exclude:!0}}return this.tools.length>0&&(r.tools=F(this.tools,"chat-completions"),t!==ge&&(r.tool_choice="auto")),r}async handleStream(e,t,n){let i=await X(e,t,{onJsonError:r=>console.debug("Failed to parse SSE data:",r),throwOnApiError:!0});return Zi(n,i.trim().length>0),i}async parseStream(e,t,n){let i=await G(e,t,{onJsonError:r=>console.debug("Failed to parse SSE data:",r),throwOnApiError:!0});return Zi(n,Ss(i)),i}parseOneShot(e,t){let n=V(e,{throwOnApiError:!0});return Zi(t,Ss(n)),n}};var Tt=class{createChatService(e){let t=T({model:e.model,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:e.model||this.getDefaultModel(),supportsVisionForModel:s=>this.supportsVisionForModel(s),validate:"explicit"}),n=e.tools,i=e.appName,r=e.appUrl;return new Ct(e.apiKey,e.model||this.getDefaultModel(),t,n,e.endpoint,e.responseLength,i,r,e.reasoning_effort,e.includeReasoning,e.reasoningMaxTokens)}getProviderName(){return"openrouter"}getSupportedModels(){return[eo,fe,me,Ne,we,to,oo,no,io,ro,so,ao,lo,ge,po,co,ke,Bo,Ge,Ve,Ee,Oe,uo,Fe,Ue,ho,Ke,hi,B,qo,jo,Zo,Jo,Yo,Qo,en,tn,on,nn,rn,sn,an,ln,pn,cn,He,un,fo,hn,dn,_n,fn,mn,gn,En,On,Mn,Sn,vn,ne,W,Me,Be,di,_i,Ln,Cn,Tn,$e,We,ze,Se,mo,Xo,Wo,$o,_o,zo,fi,mi,oe]}getDefaultModel(){return B}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return this.getSupportedModels().some(e=>this.supportsVisionForModel(e))?"supported":"unsupported"}supportsVisionForModel(e){return Xe(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}getFreeModels(){return gi}isModelFree(e){return ve(e)}};var Rt=class extends I{constructor(e,t=lt,n=t,i,r=Io,s,a){super(e,t,n,i,r,[],s,void 0,a,!1,"plamo",!1)}};var Pt=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=e.tools;return new Rt(e.apiKey,t,e.visionModel??t,n,this.resolveEndpoint(e),e.responseLength,e.reasoning_effort)}getProviderName(){return"plamo"}getSupportedModels(){return[...Bi]}getDefaultModel(){return lt}supportsVision(){return!1}getVisionSupportLevel(){return"unsupported"}supportsVisionForModel(e){return!1}getVisionSupportLevelForModel(e){return"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("plamo provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return Io}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var At=class extends I{constructor(e,t=at,n=t,i,r=xo,s,a){super(e,t,n,i,r,[],s,void 0,void 0,!1,"sakana",!1,void 0,a?.type==="enabled")}};var xt=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:Re,supportsVisionForModel:s=>this.supportsVisionForModel(s),validate:"explicit"}),i=e.tools;if(e.thinking!==void 0&&t!==Re)throw new Error("Sakana thinking control is only supported for sakana-namazu.");let r=t===Re?e.thinking??{type:"disabled"}:void 0;return new At(e.apiKey,t,n,i,this.resolveEndpoint(e),e.responseLength,r)}getProviderName(){return"sakana"}getSupportedModels(){return[...Ki]}getDefaultModel(){return at}supportsVision(){return!0}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Hi(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("sakana provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return xo}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var It=class{constructor(e,t=K,n=K,i,r=Mo,s,a="none"){this.provider="xai";this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.visionModel=n,this.reasoningEffort=a}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callXAI(e,this.model,!0);return this.handleStream(i,t)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!et(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callXAI(e,this.visionModel,!0);return this.handleStream(i,t)},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callXAI(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!et(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);let r=await this.callXAI(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callXAI(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i);return await O.post(this.endpoint,r,{Authorization:`Bearer ${this.apiKey}`})}buildRequestBody(e,t,n,i){let r={model:t,stream:n,messages:e},s=i!==void 0?i:x(this.responseLength);s!==void 0&&(r.max_tokens=s),this.reasoningEffort&&wn(t)&&(r.reasoning_effort=So(t,this.reasoningEffort));let a=this.buildToolsDefinition();return a.length>0&&(r.tools=a,r.tool_choice="auto"),r}buildToolsDefinition(){return F(this.tools,"chat-completions")}async handleStream(e,t){return X(e,t,{onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}async parseStream(e,t){return G(e,t,{onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}parseOneShot(e){return V(e)}};var yt=class{createChatService(e){let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:r=>this.supportsVisionForModel(r),validate:"explicit"}),i=e.tools;return new It(e.apiKey,t,n,i,e.endpoint||Mo,e.responseLength,So(t,e.reasoning_effort??kn(t)))}getProviderName(){return"xai"}getSupportedModels(){return[Je,Ye,Qe,K,bn,Nn]}getDefaultModel(){return K}getDefaultVisionModel(){return K}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return et(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}};var Dt=class{constructor(e,t=re,n=Le,i,r=go,s,a,l,p){this.provider="zai";this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.responseFormat=a,this.thinking=l??{type:"disabled"},this.reasoningEffort=p,this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callZAI(e,this.model,!0);return this.handleStream(i,t)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!Ze(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callZAI(e,this.visionModel,!0);return this.handleStream(i,t)},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callZAI(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!Ze(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);let r=await this.callZAI(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callZAI(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i);return await O.post(this.endpoint,r,{Authorization:`Bearer ${this.apiKey}`})}buildRequestBody(e,t,n,i){let r={model:t,stream:n,messages:e},s=i!==void 0?i:x(this.responseLength);s!==void 0&&(r.max_tokens=s),this.responseFormat&&(r.response_format=this.responseFormat),t===ie?(r.thinking={type:"enabled",clear_thinking:this.thinking?.clear_thinking??!0},r.reasoning_effort=Oo(t,this.reasoningEffort)):this.thinking&&(r.thinking=this.thinking),t!==ie&&Dn(t)&&this.reasoningEffort&&(r.reasoning_effort=this.reasoningEffort);let a=this.buildToolsDefinition();return a.length>0&&(r.tools=a,r.tool_choice="auto",n&&Pi(t)&&(r.tool_stream=!0)),r}buildToolsDefinition(){return F(this.tools,"chat-completions")}async handleStream(e,t){return X(e,t,{throwOnApiError:!0,onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}async parseStream(e,t){return G(e,t,{throwOnApiError:!0,onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}parseOneShot(e){return V(e,{throwOnApiError:!0})}};var bt=class{createChatService(e){let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:h=>this.supportsVisionForModel(h),validate:"explicit"}),i=e.tools,r=je(t);if(e.reasoning_effort!==void 0&&!r.includes(e.reasoning_effort)){let h=r.length>0?`Supported values: ${r.join(", ")}.`:"This model does not expose configurable effort.";throw new Error(`Model ${t} does not support Z.ai reasoning_effort: ${e.reasoning_effort}. ${h}`)}let s=Oo(t,e.reasoning_effort),a=qe(t),l=e.thinking!==void 0,p=a?{type:"enabled",clear_thinking:e.thinking?.clear_thinking??!0}:l&&e.reasoning_effort===void 0?e.thinking:s==="high"||s==="max"?{type:"enabled",clear_thinking:e.thinking?.clear_thinking}:{type:"disabled",clear_thinking:e.thinking?.clear_thinking},c=a||p?.type==="enabled"&&e.reasoning_effort!==void 0?s:void 0;return new Dt(e.apiKey,t,n,i,e.endpoint||go,e.responseLength,e.responseFormat,p,c)}getProviderName(){return"zai"}getSupportedModels(){return[An,Eo,ie,re,Mi,Si,vi,xn,Li,Ci,Ti,Ri,In,yn,Le]}getDefaultModel(){return re}getDefaultVisionModel(){return Le}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Ze(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}};var Ls=[new Lt,new vt,new ft,new gt,new ut,new Tt,new bt,new yt,new Ot,new dt,new St,new xt,new Pt];var Ha=new Set(["claude","claude-agent-sdk","codex-sdk","copilot-sdk","cursor-sdk","deepseek","gemini","gemini-nano","kimi","mistral","openai","openai-compatible","openrouter","plamo","sakana","xai","zai"]),Ba=new Set(["claude","deepseek","gemini","kimi","mistral","openai","openai-compatible","openrouter","plamo","sakana","xai","zai"]),Wa=new Set(["codex-sdk"]);function Ji(o){if(Ha.has(o))return{text:!0,streaming:!Wa.has(o),tools:Ba.has(o)}}function $a(o){let e=o.provider==="claude",t=o.messages.filter(r=>!Cs(e,r)),n=o.completion.blocks.filter(r=>r.type==="tool_use"),i=o.completion.assistant_message??za(e,n);return Cs(e,i)||t.push({...i}),t.push(...Xa(e,o.toolResults)),t}function Cs(o,e){if(!o||e.role!=="assistant")return!1;let t=e.content;return Array.isArray(t)&&t.length===0}function za(o,e){return o?{role:"assistant",content:e.map(t=>({type:"tool_use",id:t.id,name:t.name,input:t.input??{}}))}:{role:"assistant",content:[],tool_calls:e.map(t=>({id:t.id,type:"function",function:{name:t.name,arguments:JSON.stringify(t.input??{})}}))}}function Xa(o,e){return o?e.map(t=>({role:"user",content:[{type:"tool_result",tool_use_id:t.tool_use_id,content:t.content}]})):e.map(t=>({role:"tool",tool_call_id:t.tool_use_id,content:t.content}))}var qa=new Set(["openai","gemini","claude"]),ja=new Set(["openai","openai-compatible","zai","kimi"]),Za={openai:["none","minimal","low","medium","high","xhigh","max"],claude:["low","medium","high","xhigh","max"],gemini:["minimal","low","medium","high"],openrouter:["none","minimal","low","medium","high","xhigh","max"],kimi:["low","high","max"],mistral:["low","medium","high"],plamo:["none","medium"],xai:["none","low","medium","high","xhigh"],deepseek:["none","low","high","max"],zai:["none","minimal","low","medium","high","xhigh","max"]},Nt=class{static registerProvider(e){this.providers.set(e.getProviderName(),e)}static createChatService(e,t){let n=this.providers.get(e);if(!n)throw new Error(`Unknown chat provider: ${e}`);return n.createChatService(t)}static getProviders(){return this.providers}static getAvailableProviders(){return Array.from(this.providers.keys())}static getSupportedModels(e){let t=this.providers.get(e);return t?t.getSupportedModels():[]}static getProviderCapabilities(e,t){let n=this.providers.get(e);if(!n)return;let i=t?this.getVisionSupportLevelForModel(e,t):n.getVisionSupportLevel(),r=Ji(e);return{provider:e,models:n.getSupportedModels(),defaultModel:typeof n.getDefaultModel=="function"?n.getDefaultModel():void 0,text:!0,streaming:r?.streaming??!0,vision:i,tools:r?.tools??!1,mcp:qa.has(e),jsonMode:ja.has(e),responseLength:!0,reasoningEffort:e==="openai"&&(t===R||t===A)?["low","medium","high","xhigh","max"]:e==="openai"&&t===b?["none","low","medium","high","xhigh","max"]:e==="openai"&&t===N?["none","low","medium","high","xhigh","max"]:e==="claude"&&t?[...H(t)]:e==="gemini"&&t?[...De(t)]:e==="kimi"&&t?[...se(t)]:e==="deepseek"&&t?[...Ro(t)]:e==="openrouter"&&t?[...Rn(t)]:e==="xai"&&t?[...tt(t)]:e==="zai"&&t?[...je(t)]:Za[e]??[]}}static getAllProviderCapabilities(){return this.getAvailableProviders().map(e=>this.getProviderCapabilities(e)).filter(e=>e!==void 0)}static getVisionSupportLevel(e){let t=this.providers.get(e);return t?t.getVisionSupportLevel():"unsupported"}static getVisionSupportLevelForModel(e,t){let n=this.providers.get(e);return n?n.getVisionSupportLevelForModel?n.getVisionSupportLevelForModel(t):n.supportsVisionForModel?n.supportsVisionForModel(t)?"supported":"unsupported":n.getVisionSupportLevel():"unsupported"}};Nt.providers=new Map;Ls.forEach(o=>Nt.registerProvider(o));function Ts(){O.setFetch(async(o,e={})=>{let t=(e.method||"GET").toString().toUpperCase(),n=e.headers,i={};if(Array.isArray(n))for(let[h,u]of n)i[h]=String(u);else if(n&&typeof n=="object")for(let[h,u]of Object.entries(n))i[h]=String(u);let r={method:t,headers:i,muteHttpExceptions:!0},s=e.body;typeof s=="string"?r.payload=s:s!=null&&(i["Content-Type"]||(i["Content-Type"]="application/json"),r.payload=JSON.stringify(s));let a=UrlFetchApp.fetch(o,r),l=a.getResponseCode(),p=a.getContentText();return{ok:l>=200&&l<300,status:l,statusText:String(l),text:async()=>p,json:async()=>p?JSON.parse(p):null}})}return Ds(Ja);})();
|
|
19
|
+
`)}getResponseLengthInstruction(){if(!this._responseLength)return;let e=Hn[this._responseLength];if(e)switch(this._responseLength){case C.VERY_SHORT:return`Reply in no more than one concise sentence. Do not use a preamble, summary, bullet points, or Markdown. Keep the reaction and answer short enough to read in one breath. Stay within approximately ${e} tokens.`;case C.SHORT:return`Reply in no more than two concise sentences. Do not use a preamble, summary, bullet points, or Markdown. Keep the reaction and answer short enough to read in one breath. Use natural conversational language. Stay within approximately ${e} tokens.`;case C.MEDIUM:return`Reply in no more than three concise sentences. Answer directly and include only the context needed to understand the answer. Do not use a preamble, summary, bullet points, or Markdown. Use natural conversational language. Stay within approximately ${e} tokens.`;case C.LONG:return`Reply in no more than five sentences. Explain the important details clearly, but avoid unnecessary preambles, repetition, bullet points, or Markdown. Use natural conversational language. Stay within approximately ${e} tokens.`;case C.VERY_LONG:return`Reply in no more than ten sentences. Give a thorough but focused answer. Use short plain-text paragraphs when helpful, and avoid unnecessary repetition, bullet points, or Markdown. Stay within approximately ${e} tokens.`;case C.DEEP:return`Give a detailed response and organize it in the way that best fits the request. No sentence-count limit applies at this level. Stay within approximately ${e} tokens.`}}};var Et=class{createChatService(e){return new gt({expectedInputLanguages:e.expectedInputLanguages,expectedOutputLanguages:e.expectedOutputLanguages,initialPrompts:e.initialPrompts,responseLength:e.responseLength,sessionMode:e.sessionMode})}getProviderName(){return"gemini-nano"}getSupportedModels(){return[Pe]}getDefaultModel(){return Pe}supportsVision(){return!1}getVisionSupportLevel(){return"unsupported"}};var Ot=class{constructor(e,t=$,n=$,i,r=nt,s,a,l,p){this.provider="kimi";this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.responseFormat=a,this.thinking=l;let c=se(t);if(p!==void 0&&!c.includes(p))throw new Error(`Model ${t} does not support reasoning_effort: ${p}.`);this.reasoningEffort=p??st(t),this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:()=>this.chatOnce(e,!0,t),runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!rt(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await S({hasTools:this.tools.length>0,runWithoutTools:()=>this.visionChatOnce(e,!0,t),runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callKimi(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!rt(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);let r=await this.callKimi(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callKimi(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i);return await O.post(this.endpoint,r,{Authorization:`Bearer ${this.apiKey}`})}buildRequestBody(e,t,n,i){let r={model:t,stream:n,messages:e},s=i!==void 0?i:x(this.responseLength);s!==void 0&&(Ce(t)?r.max_completion_tokens=s:r.max_tokens=s),this.responseFormat&&(r.response_format=this.responseFormat),Ce(t)&&(r.reasoning_effort=this.reasoningEffort??st(t));let a=this.resolveEffectiveThinking(t);a&&(this.isSelfHostedEndpoint()?a.type==="disabled"&&(r.chat_template_kwargs={thinking:!1}):r.thinking=a);let l=this.buildToolsDefinition();return l.length>0&&(r.tools=l,r.tool_choice="auto"),r}isSelfHostedEndpoint(){return this.normalizeEndpoint(this.endpoint)!==this.normalizeEndpoint(nt)}normalizeEndpoint(e){return e.replace(/\/+$/,"")}resolveEffectiveThinking(e){if(Ce(e)){if(this.thinking)throw new Error(`Model ${e} uses reasoning_effort and does not support the K2.x thinking option.`);return}if(To(e)){if(this.thinking?.type==="disabled")throw new Error(`Model ${e} requires thinking mode and does not support thinking: disabled.`);return this.thinking??{type:"enabled"}}return this.tools.length>0?{type:"disabled"}:this.thinking??{type:"enabled"}}buildToolsDefinition(){return F(this.tools,"chat-completions")}async parseStream(e,t){return G(e,t,{preserveAssistantMessage:!0,onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}parseOneShot(e){return V(e,{preserveAssistantMessage:!0})}};var Mt=class{constructor(){this.defaultThinking={type:"enabled"}}createChatService(e){let t=this.resolveEndpoint(e),n=e.model||this.getDefaultModel(),i=T({model:n,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:l=>this.supportsVisionForModel(l),validate:"explicit"}),r=e.tools,s=this.resolveThinking(n,r,e.thinking),a=this.resolveReasoningEffort(n,e.reasoning_effort);return new Ot(e.apiKey,n,i,r,t,e.responseLength,e.responseFormat,s,a)}getProviderName(){return"kimi"}getSupportedModels(){return[it,Lo,Co,$,Vn]}getDefaultModel(){return $}getDefaultVisionModel(){return $}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return rt(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}resolveEndpoint(e){if(e.endpoint)return this.normalizeEndpoint(e.endpoint);if(e.baseUrl){let t=this.normalizeEndpoint(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return nt}normalizeEndpoint(e){return e.replace(/\/+$/,"")}resolveThinking(e,t,n){if(Ce(e)){if(n)throw new Error(`Model ${e} uses reasoning_effort and does not support the K2.x thinking option.`);return}if(To(e)){if(n?.type==="disabled")throw new Error(`Model ${e} requires thinking mode and does not support thinking: disabled.`);return n??this.defaultThinking}return t&&t.length>0?{type:"disabled"}:n??this.defaultThinking}resolveReasoningEffort(e,t){let n=se(e);if(n.length===0){if(t!==void 0)throw new Error(`Model ${e} does not support the reasoning_effort option.`);return}let i=t??st(e)??n[0];if(!n.includes(i))throw new Error(`Model ${e} supports reasoning_effort values: ${n.join(", ")}.`);return i}};var St=class extends I{constructor(e,t=z,n=t,i,r=Ao,s,a){super(e,t,n,i,r,[],s,void 0,a,!1,"mistral",!1)}};var vt=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:s=>this.supportsVisionForModel(s),validate:"explicit"}),i=e.tools,r=xo(t)?e.reasoning_effort:void 0;return new St(e.apiKey,t,n,i,this.resolveEndpoint(e),e.responseLength,r)}getProviderName(){return"mistral"}getSupportedModels(){return[...Fi]}getDefaultModel(){return z}getDefaultVisionModel(){return z}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Ki(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("mistral provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return Ao}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var Lt=class{createChatService(e){this.validateRequiredOptions(e);let t=[e.apiKey?.trim()??"",e.model,e.visionModel??e.model,e.tools,e.endpoint,[],e.responseLength,e.verbosity,e.reasoning_effort,e.enableReasoningSummary,this.getProviderName(),!1];return e.responseFormat!==void 0&&t.push(e.responseFormat),new I(...t)}getProviderName(){return"openai-compatible"}getSupportedModels(){return[]}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"unknown"}supportsVisionForModel(e){return!0}getVisionSupportLevelForModel(e){return"unknown"}getDefaultModel(){return"local-model"}validateRequiredOptions(e){if(e.mcpServers!==void 0)throw new Error("openai-compatible provider does not support mcpServers.");let t=e.endpoint?.trim();if(!t)throw new Error("openai-compatible provider requires endpoint (full URL).");let n;try{n=new URL(t)}catch{throw new Error("openai-compatible provider requires endpoint to be a full URL.")}if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("openai-compatible provider requires endpoint to be a full URL.");if(!e.model?.trim())throw new Error("openai-compatible provider requires model.")}};var Ct=class{createChatService(e){let t=this.optimizeGPT5Options(e),n=T({model:t.model,visionModel:t.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultModel(),supportsVisionForModel:c=>this.supportsVisionForModel(c),validate:"resolved"}),i=t.tools,r=t.mcpServers??[],s=t.model||this.getDefaultModel(),a=!1;if(r.length>0||s===A||n===A)a=!0;else if(s===b||n===b||s===N||n===N)a=(t.gpt5EndpointPreference||"responses")!=="chat"||t.reasoning_effort!=="none";else if(Jn(s))a=!0;else if(s===R||n===R){let c=t.gpt5EndpointPreference||"responses";a=(i?.length??0)>0||c!=="chat"}else _e(s)&&(a=(t.gpt5EndpointPreference||"chat")==="responses");let l=t.endpoint||(a?w:q),p=[t.apiKey,s,n,i,l,r,t.responseLength,t.verbosity,t.reasoning_effort,t.enableReasoningSummary,this.getProviderName()];return t.responseFormat!==void 0&&p.push(!0,t.responseFormat),new I(...p)}getProviderName(){return"openai"}getSupportedModels(){return[le,xe,Ie,ye,pe,ce,j,R,A,b,N,Z,J,Y,ue,he,Q,No,wo,ko,de,Go,qn,jn,"o1"]}getDefaultModel(){return le}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return kt.includes(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}optimizeGPT5Options(e){let t=e.model||this.getDefaultModel();if(!_e(t))return e;let n={...e};if(e.gpt5Preset){let i=zi[e.gpt5Preset];n.reasoning_effort=i.reasoning_effort,n.verbosity=i.verbosity}else e.reasoning_effort||(n.reasoning_effort=Ft(t));return n.reasoning_effort=this.normalizeReasoningEffort(t,n.reasoning_effort),n}normalizeReasoningEffort(e,t){if(t)return t==="none"&&!Gt(e)||t==="minimal"&&!Vt(e)?t==="minimal"&&Gt(e)?"none":t==="none"&&Vt(e)?"minimal":Fo(e)?"low":"medium":t==="low"&&!Fo(e)?"medium":t==="xhigh"&&!Vo(e)?"high":t==="max"&&!Yn(e)?Vo(e)?"xhigh":"high":t}};var Ls=o=>[_o,He].includes(o.trim()),Ha=o=>[B,ne,W,We].includes(o.trim()),Ji=(o,e)=>{if(Ls(o)&&!e)throw new Error("OpenRouter Auto Router returned no visible content. Please retry.")},vs=o=>o.blocks.some(e=>e.type!=="text"||e.text.trim().length>0),Tt=class{constructor(e,t=B,n=B,i,r=eo,s,a,l,p,c,h){this.provider="openrouter";this.lastRequestTime=0;this.requestCount=0;this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.appName=a,this.appUrl=l,this.reasoning_effort=p,this.includeReasoning=c,this.reasoningMaxTokens=h,this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async applyRateLimiting(){if(!ve(this.model))return;let e=Date.now(),t=e-this.lastRequestTime;if(t>6e4&&(this.requestCount=0),this.requestCount>=Oi){let n=6e4-t;n>0&&(console.log(`Rate limit reached for free tier. Waiting ${n}ms...`),await new Promise(i=>setTimeout(i,n)),this.requestCount=0)}this.lastRequestTime=e,this.requestCount++}async processChat(e,t,n){await this.applyRateLimiting(),await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenRouter(e,this.model,!0);return this.handleStream(i,t,this.model)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!qe(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await this.applyRateLimiting();try{await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callOpenRouter(e,this.visionModel,!0);return this.handleStream(i,t,this.visionModel)},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}catch(i){throw console.error("Error in processVisionChat:",i),i}}async chatOnce(e,t=!0,n=()=>{},i){await this.applyRateLimiting();let r=await this.callOpenRouter(e,this.model,t,i);return t?this.parseStream(r,n,this.model):this.parseOneShot(await r.json(),this.model)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!qe(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await this.applyRateLimiting();let r=await this.callOpenRouter(e,this.visionModel,t,i);return t?this.parseStream(r,n,this.visionModel):this.parseOneShot(await r.json(),this.visionModel)}async callOpenRouter(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i),s={Authorization:`Bearer ${this.apiKey}`};return this.appUrl&&(s["HTTP-Referer"]=this.appUrl),this.appName&&(s["X-Title"]=this.appName),await O.post(this.endpoint,r,s)}buildRequestBody(e,t,n,i){let r={model:t,messages:e,stream:n},s=i!==void 0?i:x(this.responseLength),a=Ha(t)||Ls(t)&&i===void 0;s&&a?console.warn(`OpenRouter: Token limits are disabled for ${t} because this model can return empty content when a token limit is set.`):s&&(r.max_tokens=s);let l=hi.includes(t.trim())?void 0:this.reasoningMaxTokens;if(t.trim()!==oe){let p=An(t),c=Mi(t,this.reasoning_effort);if(c!==void 0||this.includeReasoning!==void 0||l||p){if(r.reasoning={},c){let h=c==="minimal"&&t!==Ee&&t!==Oe&&t!==fe&&t!==me?"low":c;r.reasoning.effort=h}else p&&(r.reasoning.effort=p);(c==="none"||this.includeReasoning!==!0)&&(r.reasoning.exclude=!0),l&&(r.reasoning.max_tokens=l)}else r.reasoning={exclude:!0}}return this.tools.length>0&&(r.tools=F(this.tools,"chat-completions"),t!==ge&&(r.tool_choice="auto")),r}async handleStream(e,t,n){let i=await X(e,t,{onJsonError:r=>console.debug("Failed to parse SSE data:",r),throwOnApiError:!0});return Ji(n,i.trim().length>0),i}async parseStream(e,t,n){let i=await G(e,t,{onJsonError:r=>console.debug("Failed to parse SSE data:",r),throwOnApiError:!0});return Ji(n,vs(i)),i}parseOneShot(e,t){let n=V(e,{throwOnApiError:!0});return Ji(t,vs(n)),n}};var Rt=class{createChatService(e){let t=T({model:e.model,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:e.model||this.getDefaultModel(),supportsVisionForModel:s=>this.supportsVisionForModel(s),validate:"explicit"}),n=e.tools,i=e.appName,r=e.appUrl;return new Tt(e.apiKey,e.model||this.getDefaultModel(),t,n,e.endpoint,e.responseLength,i,r,e.reasoning_effort,e.includeReasoning,e.reasoningMaxTokens)}getProviderName(){return"openrouter"}getSupportedModels(){return[to,fe,me,we,ke,oo,no,io,ro,so,ao,lo,po,ge,co,uo,Ge,Wo,Ve,Fe,Ee,Oe,ho,Ue,Ke,_o,He,di,B,jo,Zo,Jo,Yo,Qo,en,tn,on,nn,rn,sn,an,ln,pn,cn,un,Be,hn,mo,dn,_n,fn,mn,gn,En,On,Mn,Sn,vn,Ln,ne,W,Me,We,_i,fi,Cn,Tn,Rn,ze,$e,Xe,Se,go,qo,$o,zo,fo,Xo,mi,gi,oe,Ne]}getDefaultModel(){return B}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return this.getSupportedModels().some(e=>this.supportsVisionForModel(e))?"supported":"unsupported"}supportsVisionForModel(e){return qe(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}getFreeModels(){return Ei}isModelFree(e){return ve(e)}};var Pt=class extends I{constructor(e,t=pt,n=t,i,r=yo,s,a){super(e,t,n,i,r,[],s,void 0,a,!1,"plamo",!1)}};var At=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=e.tools;return new Pt(e.apiKey,t,e.visionModel??t,n,this.resolveEndpoint(e),e.responseLength,e.reasoning_effort)}getProviderName(){return"plamo"}getSupportedModels(){return[...Wi]}getDefaultModel(){return pt}supportsVision(){return!1}getVisionSupportLevel(){return"unsupported"}supportsVisionForModel(e){return!1}getVisionSupportLevelForModel(e){return"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("plamo provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return yo}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var xt=class extends I{constructor(e,t=lt,n=t,i,r=Io,s,a){super(e,t,n,i,r,[],s,void 0,void 0,!1,"sakana",!1,void 0,a?.type==="enabled")}};var It=class{createChatService(e){this.validateRequiredOptions(e);let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:Re,supportsVisionForModel:s=>this.supportsVisionForModel(s),validate:"explicit"}),i=e.tools;if(e.thinking!==void 0&&t!==Re)throw new Error("Sakana thinking control is only supported for sakana-namazu.");let r=t===Re?e.thinking??{type:"disabled"}:void 0;return new xt(e.apiKey,t,n,i,this.resolveEndpoint(e),e.responseLength,r)}getProviderName(){return"sakana"}getSupportedModels(){return[...Hi]}getDefaultModel(){return lt}supportsVision(){return!0}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Bi(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}validateRequiredOptions(e){if(!e.apiKey?.trim())throw new Error("sakana provider requires apiKey.")}resolveEndpoint(e){if(e.endpoint)return this.normalizeUrl(e.endpoint);if(e.baseUrl){let t=this.normalizeUrl(e.baseUrl);return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}return Io}normalizeUrl(e){return e.trim().replace(/\/+$/,"")}};var yt=class{constructor(e,t=K,n=K,i,r=So,s,a="none"){this.provider="xai";this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.visionModel=n,this.reasoningEffort=a}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callXAI(e,this.model,!0);return this.handleStream(i,t)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!tt(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callXAI(e,this.visionModel,!0);return this.handleStream(i,t)},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callXAI(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!tt(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);let r=await this.callXAI(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callXAI(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i);return await O.post(this.endpoint,r,{Authorization:`Bearer ${this.apiKey}`})}buildRequestBody(e,t,n,i){let r={model:t,stream:n,messages:e},s=i!==void 0?i:x(this.responseLength);s!==void 0&&(r.max_tokens=s),this.reasoningEffort&&kn(t)&&(r.reasoning_effort=vo(t,this.reasoningEffort));let a=this.buildToolsDefinition();return a.length>0&&(r.tools=a,r.tool_choice="auto"),r}buildToolsDefinition(){return F(this.tools,"chat-completions")}async handleStream(e,t){return X(e,t,{onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}async parseStream(e,t){return G(e,t,{onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}parseOneShot(e){return V(e)}};var Dt=class{createChatService(e){let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:r=>this.supportsVisionForModel(r),validate:"explicit"}),i=e.tools;return new yt(e.apiKey,t,n,i,e.endpoint||So,e.responseLength,vo(t,e.reasoning_effort??Gn(t)))}getProviderName(){return"xai"}getSupportedModels(){return[Ye,Qe,et,K,Nn,wn]}getDefaultModel(){return K}getDefaultVisionModel(){return K}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return tt(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}};var bt=class{constructor(e,t=re,n=Le,i,r=Eo,s,a,l,p){this.provider="zai";this.apiKey=e,this.model=t,this.tools=i||[],this.endpoint=r,this.responseLength=s,this.responseFormat=a,this.thinking=l??{type:"disabled"},this.reasoningEffort=p,this.visionModel=n}getModel(){return this.model}getVisionModel(){return this.visionModel}async processChat(e,t,n){await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callZAI(e,this.model,!0);return this.handleStream(i,t)},runWithTools:()=>this.chatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled."})}async processVisionChat(e,t,n){if(!Je(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);await S({hasTools:this.tools.length>0,runWithoutTools:async()=>{let i=await this.callZAI(e,this.visionModel,!0);return this.handleStream(i,t)},runWithTools:()=>this.visionChatOnce(e,!0,t),onCompleteResponse:n,toolErrorMessage:"processVisionChat received tool_calls. ChatProcessor must use visionChatOnce() loop when tools are enabled."})}async chatOnce(e,t=!0,n=()=>{},i){let r=await this.callZAI(e,this.model,t,i);return this.parseResponse(r,t,n)}async visionChatOnce(e,t=!1,n=()=>{},i){if(!Je(this.visionModel))throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);let r=await this.callZAI(e,this.visionModel,t,i);return this.parseResponse(r,t,n)}async parseResponse(e,t,n){return t?this.parseStream(e,n):this.parseOneShot(await e.json())}async callZAI(e,t,n=!1,i){let r=this.buildRequestBody(e,t,n,i);return await O.post(this.endpoint,r,{Authorization:`Bearer ${this.apiKey}`})}buildRequestBody(e,t,n,i){let r={model:t,stream:n,messages:e},s=i!==void 0?i:x(this.responseLength);s!==void 0&&(r.max_tokens=s),this.responseFormat&&(r.response_format=this.responseFormat),t===ie?(r.thinking={type:"enabled",clear_thinking:this.thinking?.clear_thinking??!0},r.reasoning_effort=Mo(t,this.reasoningEffort)):this.thinking&&(r.thinking=this.thinking),t!==ie&&bn(t)&&this.reasoningEffort&&(r.reasoning_effort=this.reasoningEffort);let a=this.buildToolsDefinition();return a.length>0&&(r.tools=a,r.tool_choice="auto",n&&Ai(t)&&(r.tool_stream=!0)),r}buildToolsDefinition(){return F(this.tools,"chat-completions")}async handleStream(e,t){return X(e,t,{throwOnApiError:!0,onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}async parseStream(e,t){return G(e,t,{throwOnApiError:!0,onJsonError:n=>console.debug("Failed to parse SSE data:",n)})}parseOneShot(e){return V(e,{throwOnApiError:!0})}};var Nt=class{createChatService(e){let t=e.model||this.getDefaultModel(),n=T({model:t,visionModel:e.visionModel,defaultModel:this.getDefaultModel(),defaultVisionModel:this.getDefaultVisionModel(),supportsVisionForModel:h=>this.supportsVisionForModel(h),validate:"explicit"}),i=e.tools,r=Ze(t);if(e.reasoning_effort!==void 0&&!r.includes(e.reasoning_effort)){let h=r.length>0?`Supported values: ${r.join(", ")}.`:"This model does not expose configurable effort.";throw new Error(`Model ${t} does not support Z.ai reasoning_effort: ${e.reasoning_effort}. ${h}`)}let s=Mo(t,e.reasoning_effort),a=je(t),l=e.thinking!==void 0,p=a?{type:"enabled",clear_thinking:e.thinking?.clear_thinking??!0}:l&&e.reasoning_effort===void 0?e.thinking:s==="high"||s==="max"?{type:"enabled",clear_thinking:e.thinking?.clear_thinking}:{type:"disabled",clear_thinking:e.thinking?.clear_thinking},c=a||p?.type==="enabled"&&e.reasoning_effort!==void 0?s:void 0;return new bt(e.apiKey,t,n,i,e.endpoint||Eo,e.responseLength,e.responseFormat,p,c)}getProviderName(){return"zai"}getSupportedModels(){return[xn,Oo,ie,re,Si,vi,Li,In,Ci,Ti,Ri,Pi,yn,Dn,Le]}getDefaultModel(){return re}getDefaultVisionModel(){return Le}supportsVision(){return this.getVisionSupportLevel()!=="unsupported"}getVisionSupportLevel(){return"supported"}supportsVisionForModel(e){return Je(e)}getVisionSupportLevelForModel(e){return this.supportsVisionForModel(e)?"supported":"unsupported"}};var Cs=[new Ct,new Lt,new mt,new Et,new ht,new Rt,new Nt,new Dt,new Mt,new _t,new vt,new It,new At];var Ba=new Set(["claude","claude-agent-sdk","codex-sdk","copilot-sdk","cursor-sdk","deepseek","gemini","gemini-nano","kimi","mistral","openai","openai-compatible","openrouter","plamo","sakana","xai","zai"]),Wa=new Set(["claude","deepseek","gemini","kimi","mistral","openai","openai-compatible","openrouter","plamo","sakana","xai","zai"]),$a=new Set(["codex-sdk"]);function Yi(o){if(Ba.has(o))return{text:!0,streaming:!$a.has(o),tools:Wa.has(o)}}function za(o){let e=o.provider==="claude",t=o.messages.filter(r=>!Ts(e,r)),n=o.completion.blocks.filter(r=>r.type==="tool_use"),i=o.completion.assistant_message??Xa(e,n);return Ts(e,i)||t.push({...i}),t.push(...qa(e,o.toolResults)),t}function Ts(o,e){if(!o||e.role!=="assistant")return!1;let t=e.content;return Array.isArray(t)&&t.length===0}function Xa(o,e){return o?{role:"assistant",content:e.map(t=>({type:"tool_use",id:t.id,name:t.name,input:t.input??{}}))}:{role:"assistant",content:[],tool_calls:e.map(t=>({id:t.id,type:"function",function:{name:t.name,arguments:JSON.stringify(t.input??{})}}))}}function qa(o,e){return o?e.map(t=>({role:"user",content:[{type:"tool_result",tool_use_id:t.tool_use_id,content:t.content}]})):e.map(t=>({role:"tool",tool_call_id:t.tool_use_id,content:t.content}))}var ja=new Set(["openai","gemini","claude"]),Za=new Set(["openai","openai-compatible","zai","kimi"]),Ja={openai:["none","minimal","low","medium","high","xhigh","max"],claude:["low","medium","high","xhigh","max"],gemini:["minimal","low","medium","high"],openrouter:["none","minimal","low","medium","high","xhigh","max"],kimi:["low","high","max"],mistral:["low","medium","high"],plamo:["none","medium"],xai:["none","low","medium","high","xhigh"],deepseek:["none","low","high","max"],zai:["none","minimal","low","medium","high","xhigh","max"]},wt=class{static registerProvider(e){this.providers.set(e.getProviderName(),e)}static createChatService(e,t){let n=this.providers.get(e);if(!n)throw new Error(`Unknown chat provider: ${e}`);return n.createChatService(t)}static getProviders(){return this.providers}static getAvailableProviders(){return Array.from(this.providers.keys())}static getSupportedModels(e){let t=this.providers.get(e);return t?t.getSupportedModels():[]}static getProviderCapabilities(e,t){let n=this.providers.get(e);if(!n)return;let i=t?this.getVisionSupportLevelForModel(e,t):n.getVisionSupportLevel(),r=Yi(e);return{provider:e,models:n.getSupportedModels(),defaultModel:typeof n.getDefaultModel=="function"?n.getDefaultModel():void 0,text:!0,streaming:r?.streaming??!0,vision:i,tools:r?.tools??!1,mcp:ja.has(e),jsonMode:Za.has(e),responseLength:!0,reasoningEffort:e==="openai"&&(t===R||t===A)?["low","medium","high","xhigh","max"]:e==="openai"&&t===b?["none","low","medium","high","xhigh","max"]:e==="openai"&&t===N?["none","low","medium","high","xhigh","max"]:e==="claude"&&t?[...H(t)]:e==="gemini"&&t?[...De(t)]:e==="kimi"&&t?[...se(t)]:e==="deepseek"&&t?[...Po(t)]:e==="openrouter"&&t?[...Pn(t)]:e==="xai"&&t?[...ot(t)]:e==="zai"&&t?[...Ze(t)]:Ja[e]??[]}}static getAllProviderCapabilities(){return this.getAvailableProviders().map(e=>this.getProviderCapabilities(e)).filter(e=>e!==void 0)}static getVisionSupportLevel(e){let t=this.providers.get(e);return t?t.getVisionSupportLevel():"unsupported"}static getVisionSupportLevelForModel(e,t){let n=this.providers.get(e);return n?n.getVisionSupportLevelForModel?n.getVisionSupportLevelForModel(t):n.supportsVisionForModel?n.supportsVisionForModel(t)?"supported":"unsupported":n.getVisionSupportLevel():"unsupported"}};wt.providers=new Map;Cs.forEach(o=>wt.registerProvider(o));function Rs(){O.setFetch(async(o,e={})=>{let t=(e.method||"GET").toString().toUpperCase(),n=e.headers,i={};if(Array.isArray(n))for(let[h,u]of n)i[h]=String(u);else if(n&&typeof n=="object")for(let[h,u]of Object.entries(n))i[h]=String(u);let r={method:t,headers:i,muteHttpExceptions:!0},s=e.body;typeof s=="string"?r.payload=s:s!=null&&(i["Content-Type"]||(i["Content-Type"]="application/json"),r.payload=JSON.stringify(s));let a=UrlFetchApp.fetch(o,r),l=a.getResponseCode(),p=a.getContentText();return{ok:l>=200&&l<300,status:l,statusText:String(l),text:async()=>p,json:async()=>p?JSON.parse(p):null}})}return bs(Ya);})();
|