@aituber-onair/chat 0.50.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.ja.md +63 -35
  2. package/README.md +62 -36
  3. package/dist/cjs/backend.d.ts +20 -0
  4. package/dist/cjs/backend.d.ts.map +1 -0
  5. package/dist/cjs/backend.js +115 -0
  6. package/dist/cjs/backend.js.map +1 -0
  7. package/dist/cjs/constants/claude.d.ts +2 -0
  8. package/dist/cjs/constants/claude.d.ts.map +1 -1
  9. package/dist/cjs/constants/claude.js +13 -4
  10. package/dist/cjs/constants/claude.js.map +1 -1
  11. package/dist/cjs/constants/gemini.d.ts +1 -0
  12. package/dist/cjs/constants/gemini.d.ts.map +1 -1
  13. package/dist/cjs/constants/gemini.js +11 -1
  14. package/dist/cjs/constants/gemini.js.map +1 -1
  15. package/dist/cjs/constants/mistral.d.ts +2 -0
  16. package/dist/cjs/constants/mistral.d.ts.map +1 -1
  17. package/dist/cjs/constants/mistral.js +3 -3
  18. package/dist/cjs/constants/mistral.js.map +1 -1
  19. package/dist/cjs/constants/openrouter.d.ts +5 -0
  20. package/dist/cjs/constants/openrouter.d.ts.map +1 -1
  21. package/dist/cjs/constants/openrouter.js +39 -9
  22. package/dist/cjs/constants/openrouter.js.map +1 -1
  23. package/dist/cjs/constants/plamo.d.ts +2 -0
  24. package/dist/cjs/constants/plamo.d.ts.map +1 -1
  25. package/dist/cjs/constants/plamo.js +4 -5
  26. package/dist/cjs/constants/plamo.js.map +1 -1
  27. package/dist/cjs/constants/sakana.d.ts +3 -0
  28. package/dist/cjs/constants/sakana.d.ts.map +1 -1
  29. package/dist/cjs/constants/sakana.js +7 -3
  30. package/dist/cjs/constants/sakana.js.map +1 -1
  31. package/dist/cjs/constants/xai.d.ts +7 -1
  32. package/dist/cjs/constants/xai.d.ts.map +1 -1
  33. package/dist/cjs/constants/xai.js +35 -9
  34. package/dist/cjs/constants/xai.js.map +1 -1
  35. package/dist/cjs/constants/zai.d.ts +8 -0
  36. package/dist/cjs/constants/zai.d.ts.map +1 -1
  37. package/dist/cjs/constants/zai.js +38 -0
  38. package/dist/cjs/constants/zai.js.map +1 -1
  39. package/dist/cjs/index.d.ts +1 -0
  40. package/dist/cjs/index.d.ts.map +1 -1
  41. package/dist/cjs/index.js +1 -0
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
  44. package/dist/cjs/services/ChatServiceFactory.js +22 -24
  45. package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
  46. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +5 -1
  47. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  48. package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts +2 -3
  49. package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
  50. package/dist/cjs/services/providers/claude/ClaudeChatService.js +23 -15
  51. package/dist/cjs/services/providers/claude/ClaudeChatService.js.map +1 -1
  52. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  53. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +1 -3
  54. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  55. package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
  56. package/dist/cjs/services/providers/gemini/GeminiChatService.js +3 -0
  57. package/dist/cjs/services/providers/gemini/GeminiChatService.js.map +1 -1
  58. package/dist/cjs/services/providers/gemini/geminiMessageConverter.d.ts +5 -0
  59. package/dist/cjs/services/providers/gemini/geminiMessageConverter.d.ts.map +1 -1
  60. package/dist/cjs/services/providers/gemini/geminiMessageConverter.js +16 -0
  61. package/dist/cjs/services/providers/gemini/geminiMessageConverter.js.map +1 -1
  62. package/dist/cjs/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -1
  63. package/dist/cjs/services/providers/openai/openaiRequestBuilder.js +27 -5
  64. package/dist/cjs/services/providers/openai/openaiRequestBuilder.js.map +1 -1
  65. package/dist/cjs/services/providers/openai/responsesParser.d.ts.map +1 -1
  66. package/dist/cjs/services/providers/openai/responsesParser.js +71 -6
  67. package/dist/cjs/services/providers/openai/responsesParser.js.map +1 -1
  68. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +4 -4
  69. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
  70. package/dist/cjs/services/providers/xai/XAIChatService.d.ts.map +1 -1
  71. package/dist/cjs/services/providers/xai/XAIChatService.js +1 -1
  72. package/dist/cjs/services/providers/xai/XAIChatService.js.map +1 -1
  73. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
  74. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +3 -4
  75. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
  76. package/dist/cjs/services/providers/zai/ZAIChatService.d.ts +3 -1
  77. package/dist/cjs/services/providers/zai/ZAIChatService.d.ts.map +1 -1
  78. package/dist/cjs/services/providers/zai/ZAIChatService.js +5 -1
  79. package/dist/cjs/services/providers/zai/ZAIChatService.js.map +1 -1
  80. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
  81. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +27 -2
  82. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
  83. package/dist/cjs/types/toolChat.d.ts +6 -0
  84. package/dist/cjs/types/toolChat.d.ts.map +1 -1
  85. package/dist/esm/backend.d.ts +20 -0
  86. package/dist/esm/backend.d.ts.map +1 -0
  87. package/dist/esm/backend.js +111 -0
  88. package/dist/esm/backend.js.map +1 -0
  89. package/dist/esm/constants/claude.d.ts +2 -0
  90. package/dist/esm/constants/claude.d.ts.map +1 -1
  91. package/dist/esm/constants/claude.js +12 -3
  92. package/dist/esm/constants/claude.js.map +1 -1
  93. package/dist/esm/constants/gemini.d.ts +1 -0
  94. package/dist/esm/constants/gemini.d.ts.map +1 -1
  95. package/dist/esm/constants/gemini.js +10 -0
  96. package/dist/esm/constants/gemini.js.map +1 -1
  97. package/dist/esm/constants/mistral.d.ts +2 -0
  98. package/dist/esm/constants/mistral.d.ts.map +1 -1
  99. package/dist/esm/constants/mistral.js +2 -2
  100. package/dist/esm/constants/mistral.js.map +1 -1
  101. package/dist/esm/constants/openrouter.d.ts +5 -0
  102. package/dist/esm/constants/openrouter.d.ts.map +1 -1
  103. package/dist/esm/constants/openrouter.js +37 -7
  104. package/dist/esm/constants/openrouter.js.map +1 -1
  105. package/dist/esm/constants/plamo.d.ts +2 -0
  106. package/dist/esm/constants/plamo.d.ts.map +1 -1
  107. package/dist/esm/constants/plamo.js +3 -4
  108. package/dist/esm/constants/plamo.js.map +1 -1
  109. package/dist/esm/constants/sakana.d.ts +3 -0
  110. package/dist/esm/constants/sakana.d.ts.map +1 -1
  111. package/dist/esm/constants/sakana.js +6 -2
  112. package/dist/esm/constants/sakana.js.map +1 -1
  113. package/dist/esm/constants/xai.d.ts +7 -1
  114. package/dist/esm/constants/xai.d.ts.map +1 -1
  115. package/dist/esm/constants/xai.js +33 -8
  116. package/dist/esm/constants/xai.js.map +1 -1
  117. package/dist/esm/constants/zai.d.ts +8 -0
  118. package/dist/esm/constants/zai.d.ts.map +1 -1
  119. package/dist/esm/constants/zai.js +34 -0
  120. package/dist/esm/constants/zai.js.map +1 -1
  121. package/dist/esm/index.d.ts +1 -0
  122. package/dist/esm/index.d.ts.map +1 -1
  123. package/dist/esm/index.js +1 -0
  124. package/dist/esm/index.js.map +1 -1
  125. package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
  126. package/dist/esm/services/ChatServiceFactory.js +22 -24
  127. package/dist/esm/services/ChatServiceFactory.js.map +1 -1
  128. package/dist/esm/services/providers/ChatServiceProvider.d.ts +5 -1
  129. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  130. package/dist/esm/services/providers/claude/ClaudeChatService.d.ts +2 -3
  131. package/dist/esm/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
  132. package/dist/esm/services/providers/claude/ClaudeChatService.js +23 -15
  133. package/dist/esm/services/providers/claude/ClaudeChatService.js.map +1 -1
  134. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  135. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +2 -4
  136. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  137. package/dist/esm/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
  138. package/dist/esm/services/providers/gemini/GeminiChatService.js +4 -1
  139. package/dist/esm/services/providers/gemini/GeminiChatService.js.map +1 -1
  140. package/dist/esm/services/providers/gemini/geminiMessageConverter.d.ts +5 -0
  141. package/dist/esm/services/providers/gemini/geminiMessageConverter.d.ts.map +1 -1
  142. package/dist/esm/services/providers/gemini/geminiMessageConverter.js +15 -0
  143. package/dist/esm/services/providers/gemini/geminiMessageConverter.js.map +1 -1
  144. package/dist/esm/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -1
  145. package/dist/esm/services/providers/openai/openaiRequestBuilder.js +27 -5
  146. package/dist/esm/services/providers/openai/openaiRequestBuilder.js.map +1 -1
  147. package/dist/esm/services/providers/openai/responsesParser.d.ts.map +1 -1
  148. package/dist/esm/services/providers/openai/responsesParser.js +71 -6
  149. package/dist/esm/services/providers/openai/responsesParser.js.map +1 -1
  150. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +5 -5
  151. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
  152. package/dist/esm/services/providers/xai/XAIChatService.d.ts.map +1 -1
  153. package/dist/esm/services/providers/xai/XAIChatService.js +2 -2
  154. package/dist/esm/services/providers/xai/XAIChatService.js.map +1 -1
  155. package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
  156. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +4 -5
  157. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
  158. package/dist/esm/services/providers/zai/ZAIChatService.d.ts +3 -1
  159. package/dist/esm/services/providers/zai/ZAIChatService.d.ts.map +1 -1
  160. package/dist/esm/services/providers/zai/ZAIChatService.js +5 -1
  161. package/dist/esm/services/providers/zai/ZAIChatService.js.map +1 -1
  162. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
  163. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +28 -3
  164. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
  165. package/dist/esm/types/toolChat.d.ts +6 -0
  166. package/dist/esm/types/toolChat.d.ts.map +1 -1
  167. package/dist/umd/aituber-onair-chat.js +432 -83
  168. package/dist/umd/aituber-onair-chat.min.js +9 -9
  169. package/package.json +6 -1
package/README.ja.md CHANGED
@@ -581,7 +581,7 @@ const claudeService = ChatServiceFactory.createChatService('claude', {
581
581
  対応するClaudeモデルでは `reasoning_effort` を指定でき、Anthropic APIの
582
582
  `output_config.effort` に変換されます。省略時のClaude API既定値は `high` です。
583
583
 
584
- - Claude Opus 5、Sonnet 5、Opus 4.8、Opus 4.7:
584
+ - Claude Fable 5、Opus 5、Sonnet 5、Opus 4.8、Opus 4.7:
585
585
  `low`、`medium`、`high`、`xhigh`、`max`
586
586
  - Claude Opus 4.6、Sonnet 4.6:
587
587
  `low`、`medium`、`high`、`max`
@@ -591,6 +591,9 @@ effortを下げるとレイテンシーとトークン効率を優先できま
591
591
  短さは保証されません。短い回答が必要な場合は、回答長の指示も併用してください。
592
592
  複数ターンのツール呼び出しでは provider 固有の thinking / tool-use ブロックを
593
593
  保持するため、返された `completion.assistant_message` を会話履歴へ追加してください。
594
+ Claudeのrefusalはtool errorではなく終端completionとして扱います。Anthropicから
595
+ 返された場合は、streamingの`processChat` callbackを含めて
596
+ `finish_reason: 'refusal'`と`stop_details`を保持します。
594
597
 
595
598
  #### Google Gemini
596
599
 
@@ -603,9 +606,10 @@ const geminiService = ChatServiceFactory.createChatService('gemini', {
603
606
  ```
604
607
 
605
608
  `gemini-3.1-flash-lite` は既定の Flash-Lite モデルとして維持します。
606
- 最新の安定版・低遅延 Flash-Lite として `gemini-3.5-flash-lite`、
607
- より高度なエージェント・マルチモーダル用途向けに `gemini-3.6-flash`、
608
- 安定版 Flash として `gemini-3.5-flash` も利用できます。
609
+ 最新の安定版・低遅延 Flash-Lite として `gemini-3.5-flash-lite` を利用できます。
610
+ より高度なコーディング・エージェント・マルチモーダル用途向けの安定版として
611
+ `gemini-3.7-flash` を明示的に選択でき、`gemini-3.6-flash` と
612
+ `gemini-3.5-flash` も引き続き利用できます。
609
613
  `gemini-3.1-flash-lite-preview`、`gemini-3-pro-preview`、
610
614
  `gemini-2.5-flash-lite-preview-06-17` などの preview / deprecated
611
615
  モデルは後方互換のため明示的な model string では利用できますが、本番用途では
@@ -614,13 +618,14 @@ const geminiService = ChatServiceFactory.createChatService('gemini', {
614
618
  Gemini 3 モデルでは `reasoning_effort` を指定できます。この値は Gemini の
615
619
  `thinkingConfig.thinkingLevel` に変換され、`includeThoughts: false` を維持します。
616
620
 
617
- - Gemini 3 Flash / Flash-Lite: `minimal`, `low`, `medium`, `high`。
618
- 低遅延なチャット向けの既定値は `minimal` です。
619
- - Gemini 3 Pro: `low`, `medium`, `high`。Pro は `minimal` 非対応のため、
620
- 既定値は `low` です。
621
+ - Gemini 3 モデルは、低遅延なチャット向けに利用可能な最小の effort を既定値にします。
622
+ - `minimal` 対応の Flash / Flash-Lite は `minimal`, `low`, `medium`, `high`
623
+ を公開し、既定値は `minimal` です。
624
+ - `minimal` 非対応モデルは `low`, `medium`, `high` を公開し、既定値は `low`
625
+ です。現在該当するのは Gemini 3.7 Flash と Gemini 3 Pro です。
621
626
 
622
- これにより Gemini 3.6/3.5 Flash の medium thinking 既定値を上書きし、短い
623
- 出力上限を hidden thinking が使い切るリスクを抑えます。Gemini 2.5 は
627
+ これにより各モデルで利用可能な最小の thinking level を使い、短い出力上限を
628
+ hidden thinking が使い切るリスクを抑えます。Gemini 2.5 は
624
629
  `thinkingBudget` を使うため、`reasoning_effort` は送信しません。
625
630
 
626
631
  #### OpenRouter
@@ -645,9 +650,10 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
645
650
  - `openrouter/fusion` は複数モデルのパネルとジャッジモデルを実行します。単一モデルの固定単価ではなく、内部で使われた各モデル呼び出しと web search/fetch 利用分の合算で課金されます。
646
651
  - `z-ai/glm-5.2` は OpenRouter reasoning も `none` にします。
647
652
  - OpenRouterのreasoning無効化には `reasoning.effort: 'none'` を送ります。`exclude: true` はreasoning内容を返すかどうかだけを制御し、reasoning自体は無効化しません。
648
- - DeepSeek V4 Flashのスナップショットは、再現可能なバージョンを選べるようOpenRouterのデフォルトではなく明示的なテキスト専用選択肢にしています。どちらも応答性重視で`none`がデフォルトです:
653
+ - DeepSeek V4モデルは、再現可能なバージョンを選べるようOpenRouterのデフォルトではなく明示的なテキスト専用選択肢にしています。すべて応答性重視で`none`がデフォルトです:
649
654
  - `deepseek/deepseek-v4-flash-0731`: 現行の固定0731スナップショット。`none`, `low`, `high`, `max`に対応。
650
655
  - `deepseek/deepseek-v4-flash`: 旧無印0423スナップショット。`none`, `high`, `xhigh`に対応。
656
+ - `deepseek/deepseek-v4-pro-0813`: 固定Proスナップショット。`none`, `high`, `xhigh`に対応。
651
657
  - コーディング特化モデルはデフォルトではなく明示的な選択肢です。`kwaipilot/kat-coder-air-v2.5` と `kwaipilot/kat-coder-pro-v2.5` はテキスト専用です。
652
658
  - `moonshotai/kimi-k3` の可用性は上流キャパシティに依存し、混雑時はOpenRouterから429レスポンスが返る場合があります。
653
659
  - `x-ai/grok-4.5` には現在のEU制限を含む地域別の可用性制限があります。`~x-ai/grok-latest` がGrok 4.5へ解決される場合も同じ制限を受けます。
@@ -658,18 +664,18 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
658
664
  - `~openai/gpt-latest`, `~openai/gpt-mini-latest`
659
665
  - `openai/gpt-5.6-sol`, `openai/gpt-5.6-terra`, `openai/gpt-5.6-luna`
660
666
  - `openai/gpt-5.5-pro`, `openai/gpt-5.5`
661
- - `openai/gpt-5.1-chat`, `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
667
+ - `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
662
668
  - `openai/gpt-4o`, `openai/gpt-4.1-mini`, `openai/gpt-4.1-nano`
663
669
  - `~anthropic/claude-sonnet-latest`, `~anthropic/claude-haiku-latest`
664
- - `anthropic/claude-opus-5`
670
+ - `anthropic/claude-fable-5`, `anthropic/claude-opus-5`
665
671
  - `anthropic/claude-opus-4`, `anthropic/claude-sonnet-4`
666
- - `anthropic/claude-3.7-sonnet`, `anthropic/claude-3.5-sonnet`, `anthropic/claude-haiku-4.5`
672
+ - `anthropic/claude-haiku-4.5`
667
673
  - `~google/gemini-pro-latest`, `~google/gemini-flash-latest`
668
- - `google/gemini-3.6-flash`, `google/gemini-3.5-flash-lite`
674
+ - `google/gemini-3.7-flash`, `google/gemini-3.6-flash`, `google/gemini-3.5-flash-lite`
669
675
  - `google/gemini-2.5-pro`, `google/gemini-2.5-flash`, `google/gemini-2.5-flash-lite-preview-09-2025`
670
- - `z-ai/glm-5.2`, `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`, `z-ai/glm-4.5-air:free`
671
- - `~x-ai/grok-latest`, `x-ai/grok-4.5`
672
- - `deepseek/deepseek-v4-flash-0731`, `deepseek/deepseek-v4-flash`
676
+ - `z-ai/glm-5.2`, `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`
677
+ - `~x-ai/grok-latest`, `x-ai/grok-4.6`, `x-ai/grok-4.5`
678
+ - `deepseek/deepseek-v4-flash-0731`, `deepseek/deepseek-v4-flash`, `deepseek/deepseek-v4-pro-0813`
673
679
  - `~moonshotai/kimi-latest`, `moonshotai/kimi-k3`, `moonshotai/kimi-k2.7-code`, `moonshotai/kimi-k2.5`
674
680
  - `kwaipilot/kat-coder-air-v2.5`, `kwaipilot/kat-coder-pro-v2.5`
675
681
 
@@ -707,6 +713,8 @@ console.log(result.fetchedAt); // Date.now() のタイムスタンプ
707
713
  const zaiService = ChatServiceFactory.createChatService('zai', {
708
714
  apiKey: process.env.ZAI_API_KEY,
709
715
  model: 'glm-5.2',
716
+ reasoning_effort: 'none', // package既定値: thinkingを省略して低遅延化
717
+ responseLength: 'short',
710
718
  visionModel: 'glm-4.6V-Flash', // 任意: ビジョン対応モデル
711
719
  responseFormat: { type: 'json_object' } // 任意: JSONモード
712
720
  });
@@ -716,24 +724,28 @@ const zaiService = ChatServiceFactory.createChatService('zai', {
716
724
  - Z.aiはOpenAI互換のChat Completionsを利用します。
717
725
  - テキスト対応モデル: `glm-5.2`, `glm-5.1`, `glm-5`, `glm-5-turbo`, `glm-4.7`, `glm-4.7-FlashX`, `glm-4.7-Flash`, `glm-4.6`
718
726
  - ビジョン対応モデル: `glm-5v-turbo`, `glm-4.6V`, `glm-4.6V-FlashX`, `glm-4.6V-Flash`
719
- - `thinking` はデフォルトで無効化しています。
727
+ - GLM-5.2では`reasoning_effort: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'`を公開します。package既定値は低遅延チャット向けの`none`で、thinkingを無効化します。
728
+ - Z.ai側の実効tierは3段階です。`none`/`minimal`は`none`、`low`/`medium`/`high`は`high`、`xhigh`/`max`は`max`へpackage側で正規化して送信します。
729
+ - `reasoning_effort`を省略した場合は、従来の明示的な`thinking`設定も利用できます。両方を指定した場合は`reasoning_effort`を優先します。
730
+ - GLM-5.3はZ.aiの一般APIが現在「coming soon」と案内されているため、まだ対応一覧に加えていません。Coding Plan限定の利用経路は、このproviderの設定経路とは異なります。
720
731
 
721
732
  #### xAI(Grok)
722
733
 
723
734
  ```typescript
724
735
  const xaiService = ChatServiceFactory.createChatService('xai', {
725
736
  apiKey: process.env.XAI_API_KEY,
726
- model: 'grok-4.5',
727
- reasoning_effort: 'low', // 任意(Grok 4.5): low, medium, high
728
- visionModel: 'grok-4.3', // 任意: ビジョン対応の xAI モデルを指定
737
+ model: 'grok-4.6',
738
+ reasoning_effort: 'low', // 任意: low, medium, high, xhigh
739
+ visionModel: 'grok-4.6', // 任意: ビジョン対応の xAI モデルを指定
729
740
  });
730
741
  ```
731
742
 
732
743
  注意:
733
744
  - xAIはOpenAI互換のChat Completionsを利用します。
734
- - 対応モデル: `grok-4.5`, `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
735
- - `reasoning_effort` は対応モデルにのみ送信されます。`grok-4.5` は `low`, `medium`, `high` に対応し、チャット用途向けにデフォルトは `low` です。`grok-4.3` は `none`, `low`, `medium`, `high` に対応し、デフォルトは `none` です。
736
- - 対応 xAI モデルではビジョンとツール・関数呼び出しを利用できます。Grok 4.5 も React basic サンプルで画像チャットを直接検証できるようにビジョン対応として有効化しています。
745
+ - 対応モデル: `grok-4.6`, `grok-4.5`, `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`
746
+ - packageのデフォルトは`reasoning_effort: 'none'`の`grok-4.3`です。廃止済みGrok 4.1 Fastの定数はソース互換のためexportを残しますが、対応一覧には表示しません。
747
+ - `reasoning_effort` は対応モデルにのみ送信されます。`grok-4.6` は `low`, `medium`, `high`, `xhigh`、`grok-4.5` は `low`, `medium`, `high` に対応し、いずれもチャット用途向けにデフォルトは `low` です。`grok-4.3` は `none`, `low`, `medium`, `high` に対応し、デフォルトは `none` です。
748
+ - 対応 xAI モデルではビジョンとツール・関数呼び出しを利用できます。Grok 4.6 も React basic サンプルで画像チャットを直接検証できるようにビジョン対応として有効化しています。
737
749
 
738
750
  #### Kimi(Moonshot)
739
751
 
@@ -809,7 +821,8 @@ await mistralService.processChat(
809
821
  注意:
810
822
  - Mistralは`https://api.mistral.ai/v1/chat/completions`のChat Completionsを利用します。
811
823
  - デフォルトモデルは`mistral-small-latest`です。低コスト、汎用チャット品質、vision対応、adjustable reasoning対応のバランスがよいためサンプル向けの既定値にしています。
812
- - 対応モデル: `mistral-small-latest`, `ministral-3b-2512`, `ministral-8b-2512`, `ministral-14b-2512`, `mistral-medium-3-5`, `mistral-large-latest`, `mistral-large-2512`, `mistral-small-2603`, `mistral-medium-2508`
824
+ - 対応モデル: `mistral-small-latest`, `ministral-3b-2512`, `ministral-8b-2512`, `ministral-14b-2512`, `mistral-medium-3-5`, `mistral-large-latest`, `mistral-large-2512`, `mistral-small-2603`
825
+ - 廃止済みの`mistral-medium-2508`はソース互換用にのみexportを残します。
813
826
  - Ministral 3系は同じChat Completions endpointでtext、vision、streaming、function callingに対応します。
814
827
  - `reasoning_effort`は`'none' | 'high'`に対応し、Mistral公式docsに合わせて`mistral-small-latest`と`mistral-medium-3-5`にだけ送信します。それ以外のモデルでは省略します。
815
828
 
@@ -837,7 +850,7 @@ const sakanaService = ChatServiceFactory.createChatService('sakana', {
837
850
 
838
851
  注意:
839
852
  - Sakana AI Fuguは`https://api.sakana.ai/v1/chat/completions`のOpenAI互換Chat Completionsを利用します。
840
- - 対応モデル: `fugu`(デフォルト), `fugu-ultra`, `fugu-ultra-20260615`
853
+ - 対応モデル: `fugu`(デフォルト)と現行の正確なFugu Ultra ID `fugu-ultra-v1.1`。`fugu-ultra` aliasと旧日付IDは互換用にexportを残します。
841
854
  - Sakanaは新しいChat Completions連携では`max_completion_tokens`を推奨していますが、legacyな`max_tokens`も受け付けます。このproviderでは既存OpenAI互換providerの挙動に合わせて`max_tokens`を使います。
842
855
  - Sakanaは最高性能にはResponses APIを推奨していますが、このproviderはpackageのOpenAI互換chat経路に合わせてChat Completionsを利用します。
843
856
  - ブラウザから直接呼ぶ場合、Sakana側がoriginに対してCORSを許可していないと失敗します。ブラウザ単体ではなく、Node.js、backend/serverless proxy、または`examples/node-basic/sakana-example.js`を利用してください。
@@ -853,8 +866,8 @@ const plamoService = ChatServiceFactory.createChatService('plamo', {
853
866
 
854
867
  注意:
855
868
  - PLaMoは`https://api.platform.preferredai.jp/v1/chat/completions`のOpenAI互換Chat Completionsを利用します。
856
- - 対応モデル: `plamo-3.0-prime`(デフォルト), `plamo-2.2-prime`
857
- - `plamo-2.2-prime` は明示的な互換用途として残していますが、PLaMo公式docsでは2026-09-30に提供終了し、`plamo-3.0-prime`へ統合予定とされています。
869
+ - 対応モデル: `plamo-3.0-prime`(デフォルト)
870
+ - `plamo-2.2-prime`はソース互換用にexportを残しますが、PLaMO公式docsで2026-09-30の提供終了と`plamo-3.0-prime`への移行が案内されているため、対応一覧には表示しません。
858
871
  - reasoning対応モデルでは`reasoning_effort`に`none`または`medium`を指定できます。
859
872
  - このproviderではvision対応はサポート対象として扱いません。
860
873
  - PLaMoは`openai-compatible`にendpointとmodelを直接指定して使うこともできます。
@@ -1006,6 +1019,21 @@ const tools: ToolDefinition[] = [{
1006
1019
  // サービス作成時にツールハンドラーを設定してください
1007
1020
  ```
1008
1021
 
1022
+ アプリケーション側でToolを実行する場合は、backend helperを使ってprovider互換の
1023
+ assistant messageとTool結果messageを追加できます。OpenAIやClaudeなどの
1024
+ provider固有の継続データも保持します。
1025
+
1026
+ ```typescript
1027
+ import { buildToolContinuationMessages } from '@aituber-onair/chat/backend';
1028
+
1029
+ const nextMessages = buildToolContinuationMessages({
1030
+ provider: chatService.provider,
1031
+ messages,
1032
+ completion,
1033
+ toolResults,
1034
+ });
1035
+ ```
1036
+
1009
1037
  ### 応答長制御
1010
1038
 
1011
1039
  プリセットの基準トークン値は次の通りです。
@@ -1253,16 +1281,16 @@ vision、JSON mode、reasoning 設定を使うべきかを provider 固有ロジ
1253
1281
 
1254
1282
  - **OpenAI**: GPT-5.6(Sol/Terra/Luna)、GPT-5.5、GPT-5.4 Pro、GPT-5.4、GPT-5.4 Mini、GPT-5.4 Nano、GPT-5.1、GPT-5(Nano/Mini/Standard)、GPT-4.1(miniとnanoを含む), GPT-4, GPT-4o-mini, O3-mini, o1, o1-miniのモデルをサポート
1255
1283
  - **OpenAI-Compatible**: OpenAI互換 endpoint 経由で任意のローカル/セルフホスト model ID を利用できます。vision 対応可否は endpoint ごとに差があるため、原則 `unknown` 扱いです
1256
- - **Gemini**: 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 Flash は minimal thinking、Gemini 3 Pro は low thinking を既定値にします。Gemini 3.1 Flash-Lite Preview、Gemini 3 Pro Preview、Gemini 2.5 Flash Lite Preview などの lifecycle 上 deprecated なモデルは明示指定用に export を残しています
1257
- - **Claude**: 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 に加え、まだ利用可能だが非推奨の Claude 4 Opus, Claude 4 Sonnet, Claude 3 Haiku をサポート。調整可能な `reasoning_effort` は対応モデルに限り `output_config.effort` として送信します
1284
+ - **Gemini**: 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 などの推奨モデルをサポート。`minimal` 非対応の Gemini 3.7 Flash と Gemini 3 Pro は low thinking、その他の Gemini 3 Flash は minimal thinking をチャット用途向けの既定値にします。Gemini 3.1 Flash-Lite Preview、Gemini 3 Pro Preview、Gemini 2.5 Flash Lite Preview などの lifecycle 上 deprecated なモデルは明示指定用に export を残しています
1285
+ - **Claude**: 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として保持します
1258
1286
  - **OpenRouter**: OpenRouterのキュレーション済みモデル一覧(OpenAI/Claude/Gemini/Z.ai/xAI/Kimi/DeepSeek/Kwaipilot)をサポート。モデルIDはOpenRouter節を参照してください
1259
- - **Z.ai**: GLM-5.2/GLM-5.1/GLM-5/GLM-5-Turbo(テキスト)、GLM-4.7/4.6(テキスト)、GLM-5V-Turbo/GLM-4.6V系(ビジョン)をサポート
1260
- - **xAI**: Grok 4.5 をチャット用途向けに `reasoning_effort: 'low'` デフォルトでサポート。加えて Grok 4.3、Grok 4.20 の Reasoning/Non-Reasoning、Grok 4-1 Fast の Reasoning/Non-Reasoning をサポートし、全モデルでビジョン対応
1287
+ - **Z.ai**: GLM-5.2/GLM-5.1/GLM-5/GLM-5-Turbo(テキスト)、GLM-4.7/4.6(テキスト)、GLM-5V-Turbo/GLM-4.6V系(ビジョン)をサポート。GLM-5.2はモデル別`reasoning_effort`を公開し、低遅延チャット向けに`none`を既定値にします
1288
+ - **xAI**: Grok 4.6、Grok 4.5、Grok 4.3、Grok 4.20 Reasoning/Non-Reasoningをvision対応でサポート。低遅延のデフォルトは`reasoning_effort: 'none'`のGrok 4.3です
1261
1289
  - **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`、いずれもビジョン対応)をサポート
1262
1290
  - **DeepSeek**: DeepSeek V4 Flash(`deepseek-v4-flash`)と DeepSeek V4 Pro(`deepseek-v4-pro`)をOpenAI互換Chat Completions経由でサポート。低遅延チャット向けにthinkingはデフォルト無効で、モデル別の`reasoning_effort`から有効化できます。legacy alias の`deepseek-chat`と`deepseek-reasoner`はDeepSeek側で非推奨です
1263
1291
  - **Mistral**: Ministral 3系(`ministral-3b-2512`, `ministral-8b-2512`, `ministral-14b-2512`)と現行generalist modelをサポートし、streamingとvisionにも対応。adjustable `reasoning_effort`は対応モデルにだけ送信します
1264
- - **Sakana AI**: Fugu(`fugu`)と Fugu Ultra(`fugu-ultra`, `fugu-ultra-20260615`)をOpenAI互換Chat Completions経由でサポート
1265
- - **PLaMo**: PLaMo 3.0 Prime(`plamo-3.0-prime`, デフォルト)と PLaMo 2.2 Prime(`plamo-2.2-prime`)をOpenAI互換Chat Completions経由でサポート
1292
+ - **Sakana AI**: Fugu(`fugu`)と Fugu Ultra(`fugu-ultra-v1.1`)をOpenAI互換Chat Completions経由でサポート
1293
+ - **PLaMo**: PLaMo 3.0 Prime(`plamo-3.0-prime`, デフォルト)をOpenAI互換Chat Completions経由でサポートし、廃止予定の2.2定数は互換用にexportを残します
1266
1294
  - **Gemini Nano**: Chromeブラウザ内蔵AI(LanguageModel API)。デバイス上で動作し、APIキー不要。Webページでは対応するデスクトップ端末上のChrome 148以降が必要で、Chromeフラグの設定は不要。非ストリーミング、ビジョン非対応
1267
1295
 
1268
1296
  ## ライセンス
package/README.md CHANGED
@@ -595,7 +595,7 @@ the package default. Claude Opus 5 has adaptive thinking enabled by default.
595
595
  Supported Claude models accept `reasoning_effort`, which maps to Anthropic's
596
596
  `output_config.effort`. The Claude API defaults to `high` when it is omitted:
597
597
 
598
- - Claude Opus 5, Sonnet 5, Opus 4.8, and Opus 4.7:
598
+ - Claude Fable 5, Opus 5, Sonnet 5, Opus 4.8, and Opus 4.7:
599
599
  `low`, `medium`, `high`, `xhigh`, or `max`.
600
600
  - Claude Opus 4.6 and Sonnet 4.6:
601
601
  `low`, `medium`, `high`, or `max`.
@@ -607,6 +607,9 @@ output is required.
607
607
  For multi-turn tool calls, append the returned
608
608
  `completion.assistant_message` to history so its provider-native thinking and
609
609
  tool-use blocks are preserved.
610
+ Claude refusals are terminal completions rather than tool errors. The returned
611
+ completion preserves `finish_reason: 'refusal'` and Anthropic `stop_details`
612
+ when supplied, including in streaming `processChat` callbacks.
610
613
 
611
614
  #### Google Gemini
612
615
 
@@ -620,8 +623,9 @@ const geminiService = ChatServiceFactory.createChatService('gemini', {
620
623
 
621
624
  `gemini-3.1-flash-lite` remains the default Flash-Lite model.
622
625
  `gemini-3.5-flash-lite` is available as the latest stable, low-latency
623
- Flash-Lite option, while `gemini-3.6-flash` is available for stronger agentic
624
- and multimodal tasks. Deprecated
626
+ Flash-Lite option. `gemini-3.7-flash` is available as an explicit stable option
627
+ for stronger coding, agentic, and multimodal tasks, while `gemini-3.6-flash`
628
+ remains available for compatibility. Deprecated
625
629
  preview and shutdown-scheduled models such as `gemini-3.1-flash-lite-preview`,
626
630
  `gemini-3-pro-preview`, and `gemini-2.5-flash-lite-preview-06-17` remain usable
627
631
  by explicit model string for backward compatibility, but are no longer
@@ -631,13 +635,14 @@ advertised in the standard supported-model list for production use.
631
635
  Gemini 3 models accept `reasoning_effort`, which maps to Gemini
632
636
  `thinkingConfig.thinkingLevel` while keeping `includeThoughts: false`:
633
637
 
634
- - Gemini 3 Flash / Flash-Lite: `minimal`, `low`, `medium`, or `high`;
635
- defaults to `minimal` for low-latency chat.
636
- - Gemini 3 Pro: `low`, `medium`, or `high`; defaults to `low` because Pro does
637
- not support `minimal`.
638
+ - Gemini 3 models default to their lowest supported effort for low-latency chat.
639
+ - Flash / Flash-Lite models that support `minimal` expose `minimal`, `low`,
640
+ `medium`, and `high`, and default to `minimal`.
641
+ - Models that do not support `minimal` expose `low`, `medium`, and `high`, and
642
+ default to `low`. Current instances are Gemini 3.7 Flash and Gemini 3 Pro.
638
643
 
639
- This overrides the medium thinking default of Gemini 3.6/3.5 Flash and reduces
640
- the risk of hidden thinking exhausting short output limits. Gemini 2.5 uses
644
+ This uses the lowest supported thinking level for chat and reduces the risk of
645
+ hidden thinking exhausting short output limits. Gemini 2.5 uses
641
646
  `thinkingBudget` instead, so `reasoning_effort` is intentionally not sent for
642
647
  those models.
643
648
 
@@ -663,9 +668,10 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
663
668
  - `openrouter/fusion` runs a multi-model panel plus a judge model; OpenRouter bills the sum of the underlying model calls and any enabled web search/fetch usage, not a single fixed model rate.
664
669
  - For `z-ai/glm-5.2`, OpenRouter reasoning also defaults to `none`.
665
670
  - OpenRouter reasoning uses `reasoning.effort: 'none'` to disable reasoning. `exclude: true` only controls whether reasoning content is returned; it does not disable reasoning by itself.
666
- - DeepSeek V4 Flash snapshots are explicit text-only options rather than the OpenRouter default so applications can choose a reproducible version. Both default to `none` for responsive chat:
671
+ - DeepSeek V4 models are explicit text-only options rather than the OpenRouter default so applications can choose a reproducible version. All default to `none` for responsive chat:
667
672
  - `deepseek/deepseek-v4-flash-0731`: current fixed 0731 snapshot; supports `none`, `low`, `high`, and `max`.
668
673
  - `deepseek/deepseek-v4-flash`: older unversioned 0423 snapshot; supports `none`, `high`, and `xhigh`.
674
+ - `deepseek/deepseek-v4-pro-0813`: fixed Pro snapshot; supports `none`, `high`, and `xhigh`.
669
675
  - Specialized coding models are explicit options rather than defaults. This includes `kwaipilot/kat-coder-air-v2.5` and `kwaipilot/kat-coder-pro-v2.5`, which are text-only.
670
676
  - `moonshotai/kimi-k3` availability depends on upstream capacity; OpenRouter may return 429 responses when capacity is constrained.
671
677
  - `x-ai/grok-4.5` has region-specific availability, including a current EU limitation. `~x-ai/grok-latest` inherits those limits when it resolves to Grok 4.5.
@@ -676,18 +682,18 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
676
682
  - `~openai/gpt-latest`, `~openai/gpt-mini-latest`
677
683
  - `openai/gpt-5.6-sol`, `openai/gpt-5.6-terra`, `openai/gpt-5.6-luna`
678
684
  - `openai/gpt-5.5-pro`, `openai/gpt-5.5`
679
- - `openai/gpt-5.1-chat`, `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
685
+ - `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
680
686
  - `openai/gpt-4o`, `openai/gpt-4.1-mini`, `openai/gpt-4.1-nano`
681
687
  - `~anthropic/claude-sonnet-latest`, `~anthropic/claude-haiku-latest`
682
- - `anthropic/claude-opus-5`
688
+ - `anthropic/claude-fable-5`, `anthropic/claude-opus-5`
683
689
  - `anthropic/claude-opus-4`, `anthropic/claude-sonnet-4`
684
- - `anthropic/claude-3.7-sonnet`, `anthropic/claude-3.5-sonnet`, `anthropic/claude-haiku-4.5`
690
+ - `anthropic/claude-haiku-4.5`
685
691
  - `~google/gemini-pro-latest`, `~google/gemini-flash-latest`
686
- - `google/gemini-3.6-flash`, `google/gemini-3.5-flash-lite`
692
+ - `google/gemini-3.7-flash`, `google/gemini-3.6-flash`, `google/gemini-3.5-flash-lite`
687
693
  - `google/gemini-2.5-pro`, `google/gemini-2.5-flash`, `google/gemini-2.5-flash-lite-preview-09-2025`
688
- - `z-ai/glm-5.2`, `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`, `z-ai/glm-4.5-air:free`
689
- - `~x-ai/grok-latest`, `x-ai/grok-4.5`
690
- - `deepseek/deepseek-v4-flash-0731`, `deepseek/deepseek-v4-flash`
694
+ - `z-ai/glm-5.2`, `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`
695
+ - `~x-ai/grok-latest`, `x-ai/grok-4.6`, `x-ai/grok-4.5`
696
+ - `deepseek/deepseek-v4-flash-0731`, `deepseek/deepseek-v4-flash`, `deepseek/deepseek-v4-pro-0813`
691
697
  - `~moonshotai/kimi-latest`, `moonshotai/kimi-k3`, `moonshotai/kimi-k2.7-code`, `moonshotai/kimi-k2.5`
692
698
  - `kwaipilot/kat-coder-air-v2.5`, `kwaipilot/kat-coder-pro-v2.5`
693
699
 
@@ -724,6 +730,8 @@ Notes:
724
730
  const zaiService = ChatServiceFactory.createChatService('zai', {
725
731
  apiKey: process.env.ZAI_API_KEY,
726
732
  model: 'glm-5.2',
733
+ reasoning_effort: 'none', // Package default: skip thinking for low latency
734
+ responseLength: 'short',
727
735
  visionModel: 'glm-4.6V-Flash', // Optional: vision-capable model
728
736
  responseFormat: { type: 'json_object' } // Optional JSON mode
729
737
  });
@@ -733,24 +741,28 @@ Notes:
733
741
  - Z.ai uses OpenAI-compatible Chat Completions.
734
742
  - Supported text models: `glm-5.2`, `glm-5.1`, `glm-5`, `glm-5-turbo`, `glm-4.7`, `glm-4.7-FlashX`, `glm-4.7-Flash`, `glm-4.6`
735
743
  - Supported vision models: `glm-5v-turbo`, `glm-4.6V`, `glm-4.6V-FlashX`, `glm-4.6V-Flash`
736
- - `thinking` is disabled by default to match fast response behavior.
744
+ - GLM-5.2 exposes `reasoning_effort: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'`. The package defaults to `none` and disables thinking for low-latency chat.
745
+ - Z.ai currently applies only three effective tiers: `none`/`minimal` become `none`, `low`/`medium`/`high` become `high`, and `xhigh`/`max` become `max`. The package normalizes these values before sending them.
746
+ - Explicit legacy `thinking` remains available when `reasoning_effort` is omitted. `reasoning_effort` takes precedence when both are supplied.
747
+ - GLM-5.3 is not advertised yet because Z.ai currently documents its general API as coming soon; Coding Plan-only availability is not the same configuration path as this provider.
737
748
 
738
749
  #### xAI (Grok)
739
750
 
740
751
  ```typescript
741
752
  const xaiService = ChatServiceFactory.createChatService('xai', {
742
753
  apiKey: process.env.XAI_API_KEY,
743
- model: 'grok-4.5',
744
- reasoning_effort: 'low', // Optional for Grok 4.5: low, medium, high
745
- visionModel: 'grok-4.3', // Optional: use a vision-capable xAI model
754
+ model: 'grok-4.6',
755
+ reasoning_effort: 'low', // Optional: low, medium, high, xhigh
756
+ visionModel: 'grok-4.6', // Optional: use a vision-capable xAI model
746
757
  });
747
758
  ```
748
759
 
749
760
  Notes:
750
761
  - xAI uses OpenAI-compatible Chat Completions.
751
- - Supported models: `grok-4.5`, `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
752
- - `reasoning_effort` is sent only for models that support it. `grok-4.5` supports `low`, `medium`, and `high` and defaults to `low` for chat-style responses. `grok-4.3` supports `none`, `low`, `medium`, and `high` and defaults to `none`.
753
- - Supported xAI models can be used with vision and tool/function calling. Grok 4.5 vision support is enabled so image chat can be validated directly in the React basic sample.
762
+ - Supported models: `grok-4.6`, `grok-4.5`, `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`.
763
+ - `grok-4.3` is the package default with `reasoning_effort: 'none'`. Retired Grok 4.1 Fast constants remain exported for source compatibility but are no longer advertised.
764
+ - `reasoning_effort` is sent only for models that support it. `grok-4.6` supports `low`, `medium`, `high`, and `xhigh`; `grok-4.5` supports `low`, `medium`, and `high`. Both default to `low` for chat-style responses. `grok-4.3` supports `none`, `low`, `medium`, and `high` and defaults to `none`.
765
+ - Supported xAI models can be used with vision and tool/function calling. Grok 4.6 vision support is enabled so image chat can be validated directly in the React basic sample.
754
766
 
755
767
  #### Kimi (Moonshot)
756
768
 
@@ -826,7 +838,8 @@ await mistralService.processChat(
826
838
  Notes:
827
839
  - Mistral uses Chat Completions at `https://api.mistral.ai/v1/chat/completions`.
828
840
  - Default model: `mistral-small-latest`, chosen for the sample-friendly balance of low cost, strong general chat quality, vision support, and adjustable reasoning support.
829
- - Supported models: `mistral-small-latest`, `ministral-3b-2512`, `ministral-8b-2512`, `ministral-14b-2512`, `mistral-medium-3-5`, `mistral-large-latest`, `mistral-large-2512`, `mistral-small-2603`, `mistral-medium-2508`.
841
+ - Supported models: `mistral-small-latest`, `ministral-3b-2512`, `ministral-8b-2512`, `ministral-14b-2512`, `mistral-medium-3-5`, `mistral-large-latest`, `mistral-large-2512`, `mistral-small-2603`.
842
+ - Retired `mistral-medium-2508` remains exported only for source compatibility.
830
843
  - Ministral 3 models support text, vision, streaming, and function calling through the same Chat Completions endpoint.
831
844
  - `reasoning_effort` is supported as `'none' | 'high'` and is only sent for `mistral-small-latest` and `mistral-medium-3-5`, matching Mistral's adjustable reasoning docs. It is omitted for other models.
832
845
 
@@ -854,7 +867,7 @@ const sakanaService = ChatServiceFactory.createChatService('sakana', {
854
867
 
855
868
  Notes:
856
869
  - Sakana AI Fugu uses OpenAI-compatible Chat Completions at `https://api.sakana.ai/v1/chat/completions`.
857
- - Supported models: `fugu` (default), `fugu-ultra`, and `fugu-ultra-20260615`.
870
+ - Supported models: `fugu` (default) and the exact current Fugu Ultra ID `fugu-ultra-v1.1`. The `fugu-ultra` alias and former dated ID remain exported for compatibility.
858
871
  - Sakana recommends `max_completion_tokens` for new Chat Completions integrations, but also accepts legacy `max_tokens`. This provider keeps `max_tokens` to match existing OpenAI-compatible provider behavior.
859
872
  - Sakana recommends the Responses API for best performance, but this provider uses Chat Completions because it matches the package's OpenAI-compatible chat path.
860
873
  - Direct browser usage may fail with CORS unless Sakana enables CORS for your origin. Use Node.js, a backend/serverless proxy, or `examples/node-basic/sakana-example.js` instead of calling Sakana directly from browser-only apps.
@@ -870,10 +883,8 @@ const plamoService = ChatServiceFactory.createChatService('plamo', {
870
883
 
871
884
  Notes:
872
885
  - PLaMo uses OpenAI-compatible Chat Completions at `https://api.platform.preferredai.jp/v1/chat/completions`.
873
- - Supported models: `plamo-3.0-prime` (default) and `plamo-2.2-prime`.
874
- - `plamo-2.2-prime` is kept for explicit compatibility, but PLaMo docs state
875
- it is scheduled to be discontinued on 2026-09-30 and consolidated into
876
- `plamo-3.0-prime`.
886
+ - Supported model: `plamo-3.0-prime` (default).
887
+ - `plamo-2.2-prime` remains exported for source compatibility, but is no longer advertised because PLaMo documents its 2026-09-30 retirement and replacement by `plamo-3.0-prime`.
877
888
  - `reasoning_effort` can be set to `none` or `medium` for reasoning-capable PLaMo models.
878
889
  - Vision is not advertised as supported by this provider.
879
890
  - PLaMo can also be used through `openai-compatible` by manually providing the full endpoint and model.
@@ -1031,6 +1042,21 @@ const tools: ToolDefinition[] = [{
1031
1042
  // Configure tool handlers when creating the service
1032
1043
  ```
1033
1044
 
1045
+ If your application executes Tools outside ChatService, use the backend helper
1046
+ to append provider-compatible assistant and Tool-result messages. It preserves
1047
+ provider-native continuation data for providers such as OpenAI and Claude.
1048
+
1049
+ ```typescript
1050
+ import { buildToolContinuationMessages } from '@aituber-onair/chat/backend';
1051
+
1052
+ const nextMessages = buildToolContinuationMessages({
1053
+ provider: chatService.provider,
1054
+ messages,
1055
+ completion,
1056
+ toolResults,
1057
+ });
1058
+ ```
1059
+
1034
1060
  ### Response Length Control
1035
1061
 
1036
1062
  Base preset token targets are:
@@ -1278,16 +1304,16 @@ Currently, the following AI providers are built-in:
1278
1304
 
1279
1305
  - **OpenAI**: Supports models like GPT-5.6 (Sol/Terra/Luna), GPT-5.5, GPT-5.4 Pro, GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano, GPT-5.1, GPT-5 (Nano/Mini/Standard), GPT-4.1 (including mini and nano), GPT-4, GPT-4o-mini, O3-mini, o1, o1-mini
1280
1306
  - **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.
1281
- - **Gemini**: Supports recommended models like 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 Flash models default to minimal thinking for chat-style responses, while Gemini 3 Pro models default to low. 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.
1282
- - **Claude**: Supports current Claude API model IDs including 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, plus deprecated-but-still-available Claude 4 Opus, Claude 4 Sonnet, and Claude 3 Haiku. Adjustable `reasoning_effort` is sent as `output_config.effort` only for models that support it
1307
+ - **Gemini**: Supports recommended models like 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.7 Flash and Gemini 3 Pro default to low thinking because they do not support minimal; other Gemini 3 Flash models default to minimal for chat-style responses. 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.
1308
+ - **Claude**: 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.
1283
1309
  - **OpenRouter**: Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/xAI/Kimi/DeepSeek/Kwaipilot). See the OpenRouter section for model IDs.
1284
- - **Z.ai**: Supports GLM-5.2/GLM-5.1/GLM-5/GLM-5-Turbo (text), GLM-4.7/4.6 (text), and GLM-5V-Turbo/GLM-4.6V family (vision)
1285
- - **xAI**: Supports Grok 4.5 with `reasoning_effort: 'low'` by default for chat-style responses, plus Grok 4.3, Grok 4.20 Reasoning/Non-Reasoning, and Grok 4-1 Fast Reasoning/Non-Reasoning, all with vision support.
1310
+ - **Z.ai**: Supports GLM-5.2/GLM-5.1/GLM-5/GLM-5-Turbo (text), GLM-4.7/4.6 (text), and GLM-5V-Turbo/GLM-4.6V family (vision). GLM-5.2 exposes model-aware `reasoning_effort` and defaults to `none` for low-latency chat.
1311
+ - **xAI**: Supports Grok 4.6, Grok 4.5, Grok 4.3, and Grok 4.20 Reasoning/Non-Reasoning with vision. Grok 4.3 is the low-latency default with `reasoning_effort: 'none'`.
1286
1312
  - **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
1287
1313
  - **DeepSeek**: Supports DeepSeek V4 Flash (`deepseek-v4-flash`) and DeepSeek V4 Pro (`deepseek-v4-pro`) via OpenAI-compatible Chat Completions. Thinking defaults to disabled for low-latency chat and can be enabled with model-aware `reasoning_effort`. Legacy aliases `deepseek-chat` and `deepseek-reasoner` are deprecated by DeepSeek.
1288
1314
  - **Mistral**: Supports the Ministral 3 family (`ministral-3b-2512`, `ministral-8b-2512`, `ministral-14b-2512`) and current Mistral generalist models, with streaming and vision support. Adjustable `reasoning_effort` is only sent for supported models.
1289
- - **Sakana AI**: Supports Fugu (`fugu`) and Fugu Ultra (`fugu-ultra`, `fugu-ultra-20260615`) via OpenAI-compatible Chat Completions.
1290
- - **PLaMo**: Supports PLaMo 3.0 Prime (`plamo-3.0-prime`, default) and PLaMo 2.2 Prime (`plamo-2.2-prime`) via OpenAI-compatible Chat Completions.
1315
+ - **Sakana AI**: Supports Fugu (`fugu`) and Fugu Ultra (`fugu-ultra-v1.1`) via OpenAI-compatible Chat Completions.
1316
+ - **PLaMo**: Supports PLaMo 3.0 Prime (`plamo-3.0-prime`, default) via OpenAI-compatible Chat Completions; the retiring 2.2 constant remains exported for compatibility.
1291
1317
  - **Gemini Nano**: Chrome built-in AI (LanguageModel API). Runs on-device with no API key required. Web pages require Chrome 148+ on a supported desktop device; no Chrome flags are required. Non-streaming, no vision support.
1292
1318
 
1293
1319
  ## License
@@ -0,0 +1,20 @@
1
+ import type { Message, ToolChatCompletion, ToolResultBlock } from './types';
2
+ export interface ChatBackendProviderCapabilities {
3
+ readonly text: true;
4
+ readonly streaming: boolean;
5
+ readonly tools: boolean;
6
+ }
7
+ /** Returns the execution capabilities known for a built-in Chat provider. */
8
+ export declare function getChatBackendProviderCapabilities(provider: string): ChatBackendProviderCapabilities | undefined;
9
+ export interface BuildToolContinuationMessagesInput {
10
+ readonly provider: string;
11
+ readonly messages: readonly Message[];
12
+ readonly completion: Pick<ToolChatCompletion, 'assistant_message' | 'blocks'>;
13
+ readonly toolResults: readonly ToolResultBlock[];
14
+ }
15
+ /**
16
+ * Builds the provider-compatible history required after a Tool call.
17
+ * The input arrays and messages are never mutated.
18
+ */
19
+ export declare function buildToolContinuationMessages(input: BuildToolContinuationMessagesInput): Message[];
20
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAsCjB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,6EAA6E;AAC7E,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,GACf,+BAA+B,GAAG,SAAS,CAO7C;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,QAAQ,CAAC,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,OAAO,EAAE,CAkBX"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChatBackendProviderCapabilities = getChatBackendProviderCapabilities;
4
+ exports.buildToolContinuationMessages = buildToolContinuationMessages;
5
+ const KNOWN_CHAT_PROVIDERS = new Set([
6
+ 'claude',
7
+ 'claude-agent-sdk',
8
+ 'codex-sdk',
9
+ 'copilot-sdk',
10
+ 'deepseek',
11
+ 'gemini',
12
+ 'gemini-nano',
13
+ 'kimi',
14
+ 'mistral',
15
+ 'openai',
16
+ 'openai-compatible',
17
+ 'openrouter',
18
+ 'plamo',
19
+ 'sakana',
20
+ 'xai',
21
+ 'zai',
22
+ ]);
23
+ const TOOL_SUPPORTED_PROVIDERS = new Set([
24
+ 'claude',
25
+ 'deepseek',
26
+ 'gemini',
27
+ 'kimi',
28
+ 'mistral',
29
+ 'openai',
30
+ 'openai-compatible',
31
+ 'openrouter',
32
+ 'plamo',
33
+ 'sakana',
34
+ 'xai',
35
+ 'zai',
36
+ ]);
37
+ const NON_STREAMING_PROVIDERS = new Set(['codex-sdk']);
38
+ /** Returns the execution capabilities known for a built-in Chat provider. */
39
+ function getChatBackendProviderCapabilities(provider) {
40
+ if (!KNOWN_CHAT_PROVIDERS.has(provider))
41
+ return undefined;
42
+ return {
43
+ text: true,
44
+ streaming: !NON_STREAMING_PROVIDERS.has(provider),
45
+ tools: TOOL_SUPPORTED_PROVIDERS.has(provider),
46
+ };
47
+ }
48
+ /**
49
+ * Builds the provider-compatible history required after a Tool call.
50
+ * The input arrays and messages are never mutated.
51
+ */
52
+ function buildToolContinuationMessages(input) {
53
+ const isClaude = input.provider === 'claude';
54
+ const messages = input.messages.filter((message) => !isEmptyClaudeAssistantMessage(isClaude, message));
55
+ const toolUses = input.completion.blocks.filter((block) => block.type === 'tool_use');
56
+ const assistantMessage = input.completion.assistant_message ??
57
+ buildAssistantToolCall(isClaude, toolUses);
58
+ if (!isEmptyClaudeAssistantMessage(isClaude, assistantMessage)) {
59
+ messages.push({ ...assistantMessage });
60
+ }
61
+ messages.push(...buildToolResultMessages(isClaude, input.toolResults));
62
+ return messages;
63
+ }
64
+ function isEmptyClaudeAssistantMessage(isClaude, message) {
65
+ if (!isClaude || message.role !== 'assistant') {
66
+ return false;
67
+ }
68
+ const content = message.content;
69
+ return Array.isArray(content) && content.length === 0;
70
+ }
71
+ function buildAssistantToolCall(isClaude, toolUses) {
72
+ if (isClaude) {
73
+ return {
74
+ role: 'assistant',
75
+ content: toolUses.map((toolUse) => ({
76
+ type: 'tool_use',
77
+ id: toolUse.id,
78
+ name: toolUse.name,
79
+ input: toolUse.input ?? {},
80
+ })),
81
+ };
82
+ }
83
+ return {
84
+ role: 'assistant',
85
+ content: [],
86
+ tool_calls: toolUses.map((toolUse) => ({
87
+ id: toolUse.id,
88
+ type: 'function',
89
+ function: {
90
+ name: toolUse.name,
91
+ arguments: JSON.stringify(toolUse.input ?? {}),
92
+ },
93
+ })),
94
+ };
95
+ }
96
+ function buildToolResultMessages(isClaude, toolResults) {
97
+ if (isClaude) {
98
+ return toolResults.map((result) => ({
99
+ role: 'user',
100
+ content: [
101
+ {
102
+ type: 'tool_result',
103
+ tool_use_id: result.tool_use_id,
104
+ content: result.content,
105
+ },
106
+ ],
107
+ }));
108
+ }
109
+ return toolResults.map((result) => ({
110
+ role: 'tool',
111
+ tool_call_id: result.tool_use_id,
112
+ content: result.content,
113
+ }));
114
+ }
115
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,10 @@ export declare const MODEL_CLAUDE_4_6_SONNET = "claude-sonnet-4-6";
12
12
  export declare const MODEL_CLAUDE_4_6_OPUS = "claude-opus-4-6";
13
13
  export declare const MODEL_CLAUDE_4_7_OPUS = "claude-opus-4-7";
14
14
  export declare const MODEL_CLAUDE_4_8_OPUS = "claude-opus-4-8";
15
+ export declare const MODEL_CLAUDE_5_FABLE = "claude-fable-5";
15
16
  export declare const MODEL_CLAUDE_5_SONNET = "claude-sonnet-5";
16
17
  export declare const MODEL_CLAUDE_5_OPUS = "claude-opus-5";
18
+ export declare const CLAUDE_DEPRECATED_MODELS: string[];
17
19
  export type ClaudeReasoningEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
18
20
  export declare const CLAUDE_VISION_SUPPORTED_MODELS: string[];
19
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/constants/claude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAG3E,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAgChF,eAAO,MAAM,8BAA8B,UAa1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,MAAM,GACZ,SAAS,qBAAqB,EAAE,CAElC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GACZ,qBAAqB,GAAG,SAAS,CAEnC;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,qBAAqB,GAC7B,qBAAqB,GAAG,SAAS,CAenC"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/constants/claude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAG3E,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAGnD,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAiChF,eAAO,MAAM,8BAA8B,UAW1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,MAAM,GACZ,SAAS,qBAAqB,EAAE,CAElC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GACZ,qBAAqB,GAAG,SAAS,CAEnC;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,qBAAqB,GAC7B,qBAAqB,GAAG,SAAS,CAenC"}