@botiverse/raft-daemon 0.66.0 → 0.68.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/dist/{chunk-EX73HXGE.js → chunk-RXK2KSYW.js} +1616 -757
- package/dist/cli/index.js +456 -359
- package/dist/core.js +1 -1
- package/dist/{dist-PCKZII47.js → dist-Y3VRAU5E.js} +456 -359
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -28126,427 +28126,420 @@ var PI_BUILTIN_PROVIDER_MODELS_GENERATED = {
|
|
|
28126
28126
|
{ id: "deepseek/deepseek-v4-flash", label: "DeepSeek V4 Flash" }
|
|
28127
28127
|
],
|
|
28128
28128
|
"minimax": [
|
|
28129
|
+
{ id: "minimax/MiniMax-M3", label: "MiniMax-M3" },
|
|
28129
28130
|
{ id: "minimax/MiniMax-M2.7", label: "MiniMax-M2.7" },
|
|
28130
|
-
{ id: "minimax/MiniMax-M2.7-highspeed", label: "MiniMax-M2.7-highspeed" }
|
|
28131
|
-
{ id: "minimax/MiniMax-M3", label: "MiniMax-M3" }
|
|
28131
|
+
{ id: "minimax/MiniMax-M2.7-highspeed", label: "MiniMax-M2.7-highspeed" }
|
|
28132
28132
|
],
|
|
28133
28133
|
"minimax-cn": [
|
|
28134
|
+
{ id: "minimax-cn/MiniMax-M3", label: "MiniMax-M3" },
|
|
28134
28135
|
{ id: "minimax-cn/MiniMax-M2.7", label: "MiniMax-M2.7" },
|
|
28135
|
-
{ id: "minimax-cn/MiniMax-M2.7-highspeed", label: "MiniMax-M2.7-highspeed" }
|
|
28136
|
-
{ id: "minimax-cn/MiniMax-M3", label: "MiniMax-M3" }
|
|
28136
|
+
{ id: "minimax-cn/MiniMax-M2.7-highspeed", label: "MiniMax-M2.7-highspeed" }
|
|
28137
28137
|
],
|
|
28138
28138
|
"zai": [
|
|
28139
|
+
{ id: "zai/glm-5.2", label: "GLM-5.2" },
|
|
28139
28140
|
{ id: "zai/glm-5.1", label: "GLM-5.1" },
|
|
28140
|
-
{ id: "zai/glm-4.5-air", label: "GLM-4.5-Air" },
|
|
28141
28141
|
{ id: "zai/glm-4.7", label: "GLM-4.7" },
|
|
28142
|
+
{ id: "zai/glm-4.5-air", label: "GLM-4.5-Air" },
|
|
28142
28143
|
{ id: "zai/glm-5-turbo", label: "GLM-5-Turbo" },
|
|
28143
|
-
{ id: "zai/glm-5.2", label: "GLM-5.2" },
|
|
28144
28144
|
{ id: "zai/glm-5v-turbo", label: "GLM-5V-Turbo" }
|
|
28145
28145
|
],
|
|
28146
28146
|
"zai-coding-cn": [
|
|
28147
|
+
{ id: "zai-coding-cn/glm-5.2", label: "GLM-5.2" },
|
|
28147
28148
|
{ id: "zai-coding-cn/glm-5.1", label: "GLM-5.1" },
|
|
28148
|
-
{ id: "zai-coding-cn/glm-4.5-air", label: "GLM-4.5-Air" },
|
|
28149
28149
|
{ id: "zai-coding-cn/glm-4.7", label: "GLM-4.7" },
|
|
28150
|
+
{ id: "zai-coding-cn/glm-4.5-air", label: "GLM-4.5-Air" },
|
|
28150
28151
|
{ id: "zai-coding-cn/glm-5-turbo", label: "GLM-5-Turbo" },
|
|
28151
|
-
{ id: "zai-coding-cn/glm-5.2", label: "GLM-5.2" },
|
|
28152
28152
|
{ id: "zai-coding-cn/glm-5v-turbo", label: "GLM-5V-Turbo" }
|
|
28153
28153
|
],
|
|
28154
28154
|
"moonshotai": [
|
|
28155
|
-
{ id: "moonshotai/kimi-k2.
|
|
28156
|
-
{ id: "moonshotai/kimi-k2-0711-preview", label: "Kimi K2 0711" },
|
|
28157
|
-
{ id: "moonshotai/kimi-k2-0905-preview", label: "Kimi K2 0905" },
|
|
28155
|
+
{ id: "moonshotai/kimi-k2.7-code", label: "Kimi K2.7 Code" },
|
|
28158
28156
|
{ id: "moonshotai/kimi-k2-thinking", label: "Kimi K2 Thinking" },
|
|
28157
|
+
{ id: "moonshotai/kimi-k2.7-code-highspeed", label: "Kimi K2.7 Code HighSpeed" },
|
|
28159
28158
|
{ id: "moonshotai/kimi-k2-thinking-turbo", label: "Kimi K2 Thinking Turbo" },
|
|
28160
|
-
{ id: "moonshotai/kimi-k2-
|
|
28159
|
+
{ id: "moonshotai/kimi-k2-0905-preview", label: "Kimi K2 0905" },
|
|
28160
|
+
{ id: "moonshotai/kimi-k2-0711-preview", label: "Kimi K2 0711" },
|
|
28161
|
+
{ id: "moonshotai/kimi-k2.6", label: "Kimi K2.6" },
|
|
28161
28162
|
{ id: "moonshotai/kimi-k2.5", label: "Kimi K2.5" },
|
|
28162
|
-
{ id: "moonshotai/kimi-k2
|
|
28163
|
-
{ id: "moonshotai/kimi-k2.7-code-highspeed", label: "Kimi K2.7 Code HighSpeed" }
|
|
28163
|
+
{ id: "moonshotai/kimi-k2-turbo-preview", label: "Kimi K2 Turbo" }
|
|
28164
28164
|
],
|
|
28165
28165
|
"moonshotai-cn": [
|
|
28166
|
-
{ id: "moonshotai-cn/kimi-k2.
|
|
28167
|
-
{ id: "moonshotai-cn/kimi-k2-0711-preview", label: "Kimi K2 0711" },
|
|
28168
|
-
{ id: "moonshotai-cn/kimi-k2-0905-preview", label: "Kimi K2 0905" },
|
|
28166
|
+
{ id: "moonshotai-cn/kimi-k2.7-code", label: "Kimi K2.7 Code" },
|
|
28169
28167
|
{ id: "moonshotai-cn/kimi-k2-thinking", label: "Kimi K2 Thinking" },
|
|
28168
|
+
{ id: "moonshotai-cn/kimi-k2.7-code-highspeed", label: "Kimi K2.7 Code HighSpeed" },
|
|
28170
28169
|
{ id: "moonshotai-cn/kimi-k2-thinking-turbo", label: "Kimi K2 Thinking Turbo" },
|
|
28171
|
-
{ id: "moonshotai-cn/kimi-k2-
|
|
28170
|
+
{ id: "moonshotai-cn/kimi-k2-0905-preview", label: "Kimi K2 0905" },
|
|
28171
|
+
{ id: "moonshotai-cn/kimi-k2-0711-preview", label: "Kimi K2 0711" },
|
|
28172
|
+
{ id: "moonshotai-cn/kimi-k2.6", label: "Kimi K2.6" },
|
|
28172
28173
|
{ id: "moonshotai-cn/kimi-k2.5", label: "Kimi K2.5" },
|
|
28173
|
-
{ id: "moonshotai-cn/kimi-k2
|
|
28174
|
-
{ id: "moonshotai-cn/kimi-k2.7-code-highspeed", label: "Kimi K2.7 Code HighSpeed" }
|
|
28174
|
+
{ id: "moonshotai-cn/kimi-k2-turbo-preview", label: "Kimi K2 Turbo" }
|
|
28175
28175
|
],
|
|
28176
28176
|
"kimi-coding": [
|
|
28177
|
-
{ id: "kimi-coding/kimi-
|
|
28177
|
+
{ id: "kimi-coding/kimi-k2-thinking", label: "Kimi K2 Thinking" },
|
|
28178
28178
|
{ id: "kimi-coding/k2p7", label: "Kimi K2.7 Code" },
|
|
28179
|
-
{ id: "kimi-coding/kimi-
|
|
28179
|
+
{ id: "kimi-coding/kimi-for-coding", label: "Kimi For Coding" }
|
|
28180
28180
|
],
|
|
28181
28181
|
"openrouter": [
|
|
28182
|
-
{ id: "openrouter/moonshotai/kimi-k2.6", label: "MoonshotAI: Kimi K2.6" },
|
|
28183
|
-
{ id: "openrouter/ai21/jamba-large-1.7", label: "AI21: Jamba Large 1.7" },
|
|
28184
|
-
{ id: "openrouter/amazon/nova-2-lite-v1", label: "Amazon: Nova 2 Lite" },
|
|
28185
|
-
{ id: "openrouter/amazon/nova-lite-v1", label: "Amazon: Nova Lite 1.0" },
|
|
28186
|
-
{ id: "openrouter/amazon/nova-micro-v1", label: "Amazon: Nova Micro 1.0" },
|
|
28187
|
-
{ id: "openrouter/amazon/nova-premier-v1", label: "Amazon: Nova Premier 1.0" },
|
|
28188
|
-
{ id: "openrouter/amazon/nova-pro-v1", label: "Amazon: Nova Pro 1.0" },
|
|
28189
|
-
{ id: "openrouter/anthropic/claude-3-haiku", label: "Anthropic: Claude 3 Haiku" },
|
|
28190
|
-
{ id: "openrouter/anthropic/claude-3.5-haiku", label: "Anthropic: Claude 3.5 Haiku" },
|
|
28191
28182
|
{ id: "openrouter/anthropic/claude-fable-5", label: "Anthropic: Claude Fable 5" },
|
|
28192
|
-
{ id: "openrouter
|
|
28193
|
-
{ id: "openrouter/anthropic/claude-opus-4", label: "Anthropic: Claude Opus 4" },
|
|
28194
|
-
{ id: "openrouter/anthropic/claude-opus-4.1", label: "Anthropic: Claude Opus 4.1" },
|
|
28195
|
-
{ id: "openrouter/anthropic/claude-opus-4.5", label: "Anthropic: Claude Opus 4.5" },
|
|
28196
|
-
{ id: "openrouter/anthropic/claude-opus-4.6", label: "Anthropic: Claude Opus 4.6" },
|
|
28197
|
-
{ id: "openrouter/anthropic/claude-opus-4.6-fast", label: "Anthropic: Claude Opus 4.6 (Fast)" },
|
|
28198
|
-
{ id: "openrouter/anthropic/claude-opus-4.7", label: "Anthropic: Claude Opus 4.7" },
|
|
28199
|
-
{ id: "openrouter/anthropic/claude-opus-4.7-fast", label: "Anthropic: Claude Opus 4.7 (Fast)" },
|
|
28183
|
+
{ id: "openrouter/~anthropic/claude-fable-latest", label: "Anthropic: Claude Fable Latest" },
|
|
28200
28184
|
{ id: "openrouter/anthropic/claude-opus-4.8", label: "Anthropic: Claude Opus 4.8" },
|
|
28185
|
+
{ id: "openrouter/anthropic/claude-opus-4.7", label: "Anthropic: Claude Opus 4.7" },
|
|
28186
|
+
{ id: "openrouter/anthropic/claude-opus-4.6", label: "Anthropic: Claude Opus 4.6" },
|
|
28187
|
+
{ id: "openrouter/anthropic/claude-opus-4.5", label: "Anthropic: Claude Opus 4.5" },
|
|
28188
|
+
{ id: "openrouter/anthropic/claude-opus-4.1", label: "Anthropic: Claude Opus 4.1" },
|
|
28189
|
+
{ id: "openrouter/anthropic/claude-opus-4", label: "Anthropic: Claude Opus 4" },
|
|
28190
|
+
{ id: "openrouter/~anthropic/claude-opus-latest", label: "Anthropic: Claude Opus Latest" },
|
|
28201
28191
|
{ id: "openrouter/anthropic/claude-opus-4.8-fast", label: "Anthropic: Claude Opus 4.8 (Fast)" },
|
|
28202
|
-
{ id: "openrouter/anthropic/claude-
|
|
28203
|
-
{ id: "openrouter/anthropic/claude-sonnet-
|
|
28192
|
+
{ id: "openrouter/anthropic/claude-opus-4.7-fast", label: "Anthropic: Claude Opus 4.7 (Fast)" },
|
|
28193
|
+
{ id: "openrouter/anthropic/claude-sonnet-5", label: "Anthropic: Claude Sonnet 5" },
|
|
28204
28194
|
{ id: "openrouter/anthropic/claude-sonnet-4.6", label: "Anthropic: Claude Sonnet 4.6" },
|
|
28205
|
-
{ id: "openrouter/
|
|
28206
|
-
{ id: "openrouter/
|
|
28207
|
-
{ id: "openrouter/
|
|
28208
|
-
{ id: "openrouter/
|
|
28209
|
-
{ id: "openrouter/
|
|
28210
|
-
{ id: "openrouter/
|
|
28211
|
-
{ id: "openrouter/
|
|
28212
|
-
{ id: "openrouter/
|
|
28213
|
-
{ id: "openrouter/
|
|
28214
|
-
{ id: "openrouter/
|
|
28215
|
-
{ id: "openrouter/cohere/north-mini-code:free", label: "Cohere: North Mini Code (free)" },
|
|
28216
|
-
{ id: "openrouter/deepseek/deepseek-chat", label: "DeepSeek: DeepSeek V3" },
|
|
28217
|
-
{ id: "openrouter/deepseek/deepseek-chat-v3-0324", label: "DeepSeek: DeepSeek V3 0324" },
|
|
28218
|
-
{ id: "openrouter/deepseek/deepseek-chat-v3.1", label: "DeepSeek: DeepSeek V3.1" },
|
|
28219
|
-
{ id: "openrouter/deepseek/deepseek-r1", label: "DeepSeek: R1" },
|
|
28220
|
-
{ id: "openrouter/deepseek/deepseek-r1-0528", label: "DeepSeek: R1 0528" },
|
|
28221
|
-
{ id: "openrouter/deepseek/deepseek-v3.1-terminus", label: "DeepSeek: DeepSeek V3.1 Terminus" },
|
|
28222
|
-
{ id: "openrouter/deepseek/deepseek-v3.2", label: "DeepSeek: DeepSeek V3.2" },
|
|
28223
|
-
{ id: "openrouter/deepseek/deepseek-v3.2-exp", label: "DeepSeek: DeepSeek V3.2 Exp" },
|
|
28224
|
-
{ id: "openrouter/deepseek/deepseek-v4-flash", label: "DeepSeek: DeepSeek V4 Flash" },
|
|
28225
|
-
{ id: "openrouter/deepseek/deepseek-v4-pro", label: "DeepSeek: DeepSeek V4 Pro" },
|
|
28226
|
-
{ id: "openrouter/essentialai/rnj-1-instruct", label: "EssentialAI: Rnj 1 Instruct" },
|
|
28227
|
-
{ id: "openrouter/google/gemini-2.5-flash", label: "Google: Gemini 2.5 Flash" },
|
|
28228
|
-
{ id: "openrouter/google/gemini-2.5-flash-lite", label: "Google: Gemini 2.5 Flash Lite" },
|
|
28229
|
-
{ id: "openrouter/google/gemini-2.5-flash-lite-preview-09-2025", label: "Google: Gemini 2.5 Flash Lite Preview 09-2025" },
|
|
28230
|
-
{ id: "openrouter/google/gemini-2.5-pro", label: "Google: Gemini 2.5 Pro" },
|
|
28195
|
+
{ id: "openrouter/anthropic/claude-sonnet-4.5", label: "Anthropic: Claude Sonnet 4.5" },
|
|
28196
|
+
{ id: "openrouter/anthropic/claude-sonnet-4", label: "Anthropic: Claude Sonnet 4" },
|
|
28197
|
+
{ id: "openrouter/~anthropic/claude-sonnet-latest", label: "Anthropic Claude Sonnet Latest" },
|
|
28198
|
+
{ id: "openrouter/anthropic/claude-haiku-4.5", label: "Anthropic: Claude Haiku 4.5" },
|
|
28199
|
+
{ id: "openrouter/anthropic/claude-3-haiku", label: "Anthropic: Claude 3 Haiku" },
|
|
28200
|
+
{ id: "openrouter/~anthropic/claude-haiku-latest", label: "Anthropic Claude Haiku Latest" },
|
|
28201
|
+
{ id: "openrouter/openai/gpt-5.1-codex-max", label: "OpenAI: GPT-5.1-Codex-Max" },
|
|
28202
|
+
{ id: "openrouter/kwaipilot/kat-coder-pro-v2", label: "Kwaipilot: KAT-Coder-Pro V2" },
|
|
28203
|
+
{ id: "openrouter/qwen/qwen3-max-thinking", label: "Qwen: Qwen3 Max Thinking" },
|
|
28204
|
+
{ id: "openrouter/nvidia/nemotron-3-ultra-550b-a55b", label: "NVIDIA: Nemotron 3 Ultra" },
|
|
28231
28205
|
{ id: "openrouter/google/gemini-2.5-pro-preview", label: "Google: Gemini 2.5 Pro Preview 06-05" },
|
|
28232
28206
|
{ id: "openrouter/google/gemini-2.5-pro-preview-05-06", label: "Google: Gemini 2.5 Pro Preview 05-06" },
|
|
28233
|
-
{ id: "openrouter/
|
|
28234
|
-
{ id: "openrouter/
|
|
28235
|
-
{ id: "openrouter/
|
|
28236
|
-
{ id: "openrouter/
|
|
28207
|
+
{ id: "openrouter/openai/gpt-5.5-pro", label: "OpenAI: GPT-5.5 Pro" },
|
|
28208
|
+
{ id: "openrouter/openai/gpt-5.4-pro", label: "OpenAI: GPT-5.4 Pro" },
|
|
28209
|
+
{ id: "openrouter/openai/gpt-5.2-pro", label: "OpenAI: GPT-5.2 Pro" },
|
|
28210
|
+
{ id: "openrouter/openai/gpt-5-pro", label: "OpenAI: GPT-5 Pro" },
|
|
28211
|
+
{ id: "openrouter/deepseek/deepseek-v4-pro", label: "DeepSeek: DeepSeek V4 Pro" },
|
|
28212
|
+
{ id: "openrouter/qwen/qwen3.7-max", label: "Qwen: Qwen3.7 Max" },
|
|
28213
|
+
{ id: "openrouter/qwen/qwen3.6-max-preview", label: "Qwen: Qwen3.6 Max Preview" },
|
|
28237
28214
|
{ id: "openrouter/google/gemini-3.1-pro-preview", label: "Google: Gemini 3.1 Pro Preview" },
|
|
28238
28215
|
{ id: "openrouter/google/gemini-3.1-pro-preview-customtools", label: "Google: Gemini 3.1 Pro Preview Custom Tools" },
|
|
28239
|
-
{ id: "openrouter/
|
|
28240
|
-
{ id: "openrouter/
|
|
28241
|
-
{ id: "openrouter/
|
|
28242
|
-
{ id: "openrouter/google/
|
|
28243
|
-
{ id: "openrouter/
|
|
28244
|
-
{ id: "openrouter/
|
|
28245
|
-
{ id: "openrouter/
|
|
28246
|
-
{ id: "openrouter/
|
|
28247
|
-
{ id: "openrouter/
|
|
28248
|
-
{ id: "openrouter/
|
|
28249
|
-
{ id: "openrouter/
|
|
28250
|
-
{ id: "openrouter/
|
|
28251
|
-
{ id: "openrouter/
|
|
28252
|
-
{ id: "openrouter/
|
|
28253
|
-
{ id: "openrouter/
|
|
28254
|
-
{ id: "openrouter/
|
|
28255
|
-
{ id: "openrouter/
|
|
28256
|
-
{ id: "openrouter/
|
|
28257
|
-
{ id: "openrouter/
|
|
28258
|
-
{ id: "openrouter/
|
|
28259
|
-
{ id: "openrouter/
|
|
28260
|
-
{ id: "openrouter/
|
|
28261
|
-
{ id: "openrouter/
|
|
28262
|
-
{ id: "openrouter/
|
|
28263
|
-
{ id: "openrouter/
|
|
28264
|
-
{ id: "openrouter/
|
|
28265
|
-
{ id: "openrouter/
|
|
28216
|
+
{ id: "openrouter/openai/o3-pro", label: "OpenAI: o3 Pro" },
|
|
28217
|
+
{ id: "openrouter/qwen/qwen3-max", label: "Qwen: Qwen3 Max" },
|
|
28218
|
+
{ id: "openrouter/upstage/solar-pro-3", label: "Upstage: Solar Pro 3" },
|
|
28219
|
+
{ id: "openrouter/google/gemini-2.5-pro", label: "Google: Gemini 2.5 Pro" },
|
|
28220
|
+
{ id: "openrouter/xiaomi/mimo-v2.5-pro", label: "Xiaomi: MiMo-V2.5-Pro" },
|
|
28221
|
+
{ id: "openrouter/amazon/nova-premier-v1", label: "Amazon: Nova Premier 1.0" },
|
|
28222
|
+
{ id: "openrouter/amazon/nova-pro-v1", label: "Amazon: Nova Pro 1.0" },
|
|
28223
|
+
{ id: "openrouter/~google/gemini-pro-latest", label: "Google Gemini Pro Latest" },
|
|
28224
|
+
{ id: "openrouter/sakana/fugu-ultra", label: "Sakana: Fugu Ultra" },
|
|
28225
|
+
{ id: "openrouter/arcee-ai/trinity-large-thinking", label: "Arcee AI: Trinity Large Thinking" },
|
|
28226
|
+
{ id: "openrouter/qwen/qwen3-coder", label: "Qwen: Qwen3 Coder 480B A35B" },
|
|
28227
|
+
{ id: "openrouter/qwen/qwen3-coder-30b-a3b-instruct", label: "Qwen: Qwen3 Coder 30B A3B Instruct" },
|
|
28228
|
+
{ id: "openrouter/openai/gpt-5.3-codex", label: "OpenAI: GPT-5.3-Codex" },
|
|
28229
|
+
{ id: "openrouter/openai/gpt-5.2-codex", label: "OpenAI: GPT-5.2-Codex" },
|
|
28230
|
+
{ id: "openrouter/openai/gpt-5.1-codex", label: "OpenAI: GPT-5.1-Codex" },
|
|
28231
|
+
{ id: "openrouter/openai/gpt-5-codex", label: "OpenAI: GPT-5 Codex" },
|
|
28232
|
+
{ id: "openrouter/qwen/qwen3-coder-next", label: "Qwen: Qwen3 Coder Next" },
|
|
28233
|
+
{ id: "openrouter/qwen/qwen3-coder-plus", label: "Qwen: Qwen3 Coder Plus" },
|
|
28234
|
+
{ id: "openrouter/moonshotai/kimi-k2.7-code", label: "MoonshotAI: Kimi K2.7 Code" },
|
|
28235
|
+
{ id: "openrouter/qwen/qwen3-235b-a22b-thinking-2507", label: "Qwen: Qwen3 235B A22B Thinking 2507" },
|
|
28236
|
+
{ id: "openrouter/qwen/qwen3-30b-a3b-thinking-2507", label: "Qwen: Qwen3 30B A3B Thinking 2507" },
|
|
28237
|
+
{ id: "openrouter/qwen/qwen-plus-2025-07-28:thinking", label: "Qwen: Qwen Plus 0728 (thinking)" },
|
|
28238
|
+
{ id: "openrouter/qwen/qwen3-vl-235b-a22b-thinking", label: "Qwen: Qwen3 VL 235B A22B Thinking" },
|
|
28239
|
+
{ id: "openrouter/qwen/qwen3-next-80b-a3b-thinking", label: "Qwen: Qwen3 Next 80B A3B Thinking" },
|
|
28240
|
+
{ id: "openrouter/qwen/qwen3-vl-30b-a3b-thinking", label: "Qwen: Qwen3 VL 30B A3B Thinking" },
|
|
28241
|
+
{ id: "openrouter/qwen/qwen3-vl-8b-thinking", label: "Qwen: Qwen3 VL 8B Thinking" },
|
|
28242
|
+
{ id: "openrouter/google/gemini-3-pro-image", label: "Google: Nano Banana Pro (Gemini 3 Pro Image)" },
|
|
28243
|
+
{ id: "openrouter/moonshotai/kimi-k2-thinking", label: "MoonshotAI: Kimi K2 Thinking" },
|
|
28244
|
+
{ id: "openrouter/qwen/qwen3-coder-flash", label: "Qwen: Qwen3 Coder Flash" },
|
|
28245
|
+
{ id: "openrouter/mistralai/mistral-large-2512", label: "Mistral: Mistral Large 3 2512" },
|
|
28246
|
+
{ id: "openrouter/mistralai/mistral-large-2407", label: "Mistral Large 2407" },
|
|
28247
|
+
{ id: "openrouter/nvidia/nemotron-3-super-120b-a12b", label: "NVIDIA: Nemotron 3 Super" },
|
|
28248
|
+
{ id: "openrouter/nvidia/llama-3.3-nemotron-super-49b-v1.5", label: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5" },
|
|
28249
|
+
{ id: "openrouter/ai21/jamba-large-1.7", label: "AI21: Jamba Large 1.7" },
|
|
28250
|
+
{ id: "openrouter/arcee-ai/virtuoso-large", label: "Arcee AI: Virtuoso Large" },
|
|
28251
|
+
{ id: "openrouter/mistralai/mistral-large", label: "Mistral Large" },
|
|
28252
|
+
{ id: "openrouter/nvidia/nemotron-3-ultra-550b-a55b:free", label: "NVIDIA: Nemotron 3 Ultra (free)" },
|
|
28253
|
+
{ id: "openrouter/openai/gpt-5.1-codex-mini", label: "OpenAI: GPT-5.1-Codex-Mini" },
|
|
28254
|
+
{ id: "openrouter/qwen/qwen3.5-plus-20260420", label: "Qwen: Qwen3.5 Plus 2026-04-20" },
|
|
28255
|
+
{ id: "openrouter/mistralai/mistral-small-2603", label: "Mistral: Mistral Small 4" },
|
|
28266
28256
|
{ id: "openrouter/mistralai/devstral-2512", label: "Mistral: Devstral 2 2512" },
|
|
28267
28257
|
{ id: "openrouter/mistralai/ministral-14b-2512", label: "Mistral: Ministral 3 14B 2512" },
|
|
28268
28258
|
{ id: "openrouter/mistralai/ministral-3b-2512", label: "Mistral: Ministral 3 3B 2512" },
|
|
28269
28259
|
{ id: "openrouter/mistralai/ministral-8b-2512", label: "Mistral: Ministral 3 8B 2512" },
|
|
28270
|
-
{ id: "openrouter/mistralai/
|
|
28271
|
-
{ id: "openrouter/mistralai/mistral-large-2407", label: "Mistral Large 2407" },
|
|
28272
|
-
{ id: "openrouter/mistralai/mistral-large-2512", label: "Mistral: Mistral Large 3 2512" },
|
|
28273
|
-
{ id: "openrouter/mistralai/mistral-medium-3", label: "Mistral: Mistral Medium 3" },
|
|
28274
|
-
{ id: "openrouter/mistralai/mistral-medium-3-5", label: "Mistral: Mistral Medium 3.5" },
|
|
28275
|
-
{ id: "openrouter/mistralai/mistral-medium-3.1", label: "Mistral: Mistral Medium 3.1" },
|
|
28276
|
-
{ id: "openrouter/mistralai/mistral-nemo", label: "Mistral: Mistral Nemo" },
|
|
28277
|
-
{ id: "openrouter/mistralai/mistral-saba", label: "Mistral: Saba" },
|
|
28278
|
-
{ id: "openrouter/mistralai/mistral-small-2603", label: "Mistral: Mistral Small 4" },
|
|
28279
|
-
{ id: "openrouter/mistralai/mistral-small-3.2-24b-instruct", label: "Mistral: Mistral Small 3.2 24B" },
|
|
28280
|
-
{ id: "openrouter/mistralai/mixtral-8x22b-instruct", label: "Mistral: Mixtral 8x22B Instruct" },
|
|
28260
|
+
{ id: "openrouter/mistralai/codestral-2508", label: "Mistral: Codestral 2508" },
|
|
28281
28261
|
{ id: "openrouter/mistralai/voxtral-small-24b-2507", label: "Mistral: Voxtral Small 24B 2507" },
|
|
28282
|
-
{ id: "openrouter/
|
|
28283
|
-
{ id: "openrouter/
|
|
28284
|
-
{ id: "openrouter/
|
|
28285
|
-
{ id: "openrouter/
|
|
28286
|
-
{ id: "openrouter/moonshotai/kimi-k2.7-code", label: "MoonshotAI: Kimi K2.7 Code" },
|
|
28287
|
-
{ id: "openrouter/nex-agi/nex-n2-pro:free", label: "Nex AGI: Nex-N2-Pro (free)" },
|
|
28288
|
-
{ id: "openrouter/nvidia/llama-3.3-nemotron-super-49b-v1.5", label: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5" },
|
|
28289
|
-
{ id: "openrouter/nvidia/nemotron-3-nano-30b-a3b", label: "NVIDIA: Nemotron 3 Nano 30B A3B" },
|
|
28290
|
-
{ id: "openrouter/nvidia/nemotron-3-nano-30b-a3b:free", label: "NVIDIA: Nemotron 3 Nano 30B A3B (free)" },
|
|
28291
|
-
{ id: "openrouter/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", label: "NVIDIA: Nemotron 3 Nano Omni (free)" },
|
|
28292
|
-
{ id: "openrouter/nvidia/nemotron-3-super-120b-a12b", label: "NVIDIA: Nemotron 3 Super" },
|
|
28293
|
-
{ id: "openrouter/nvidia/nemotron-3-super-120b-a12b:free", label: "NVIDIA: Nemotron 3 Super (free)" },
|
|
28294
|
-
{ id: "openrouter/nvidia/nemotron-3-ultra-550b-a55b", label: "NVIDIA: Nemotron 3 Ultra" },
|
|
28295
|
-
{ id: "openrouter/nvidia/nemotron-3-ultra-550b-a55b:free", label: "NVIDIA: Nemotron 3 Ultra (free)" },
|
|
28296
|
-
{ id: "openrouter/nvidia/nemotron-nano-12b-v2-vl:free", label: "NVIDIA: Nemotron Nano 12B 2 VL (free)" },
|
|
28297
|
-
{ id: "openrouter/nvidia/nemotron-nano-9b-v2:free", label: "NVIDIA: Nemotron Nano 9B V2 (free)" },
|
|
28298
|
-
{ id: "openrouter/openai/gpt-3.5-turbo", label: "OpenAI: GPT-3.5 Turbo" },
|
|
28299
|
-
{ id: "openrouter/openai/gpt-3.5-turbo-0613", label: "OpenAI: GPT-3.5 Turbo (older v0613)" },
|
|
28300
|
-
{ id: "openrouter/openai/gpt-3.5-turbo-16k", label: "OpenAI: GPT-3.5 Turbo 16k" },
|
|
28301
|
-
{ id: "openrouter/openai/gpt-4", label: "OpenAI: GPT-4" },
|
|
28302
|
-
{ id: "openrouter/openai/gpt-4-turbo", label: "OpenAI: GPT-4 Turbo" },
|
|
28303
|
-
{ id: "openrouter/openai/gpt-4-turbo-preview", label: "OpenAI: GPT-4 Turbo Preview" },
|
|
28304
|
-
{ id: "openrouter/openai/gpt-4.1", label: "OpenAI: GPT-4.1" },
|
|
28305
|
-
{ id: "openrouter/openai/gpt-4.1-mini", label: "OpenAI: GPT-4.1 Mini" },
|
|
28306
|
-
{ id: "openrouter/openai/gpt-4.1-nano", label: "OpenAI: GPT-4.1 Nano" },
|
|
28307
|
-
{ id: "openrouter/openai/gpt-4o", label: "OpenAI: GPT-4o" },
|
|
28308
|
-
{ id: "openrouter/openai/gpt-4o-2024-05-13", label: "OpenAI: GPT-4o (2024-05-13)" },
|
|
28309
|
-
{ id: "openrouter/openai/gpt-4o-2024-08-06", label: "OpenAI: GPT-4o (2024-08-06)" },
|
|
28262
|
+
{ id: "openrouter/qwen/qwen3-235b-a22b-2507", label: "Qwen: Qwen3 235B A22B Instruct 2507" },
|
|
28263
|
+
{ id: "openrouter/qwen/qwen3-30b-a3b-instruct-2507", label: "Qwen: Qwen3 30B A3B Instruct 2507" },
|
|
28264
|
+
{ id: "openrouter/qwen/qwen3.5-plus-02-15", label: "Qwen: Qwen3.5 Plus 2026-02-15" },
|
|
28265
|
+
{ id: "openrouter/qwen/qwen-plus-2025-07-28", label: "Qwen: Qwen Plus 0728" },
|
|
28310
28266
|
{ id: "openrouter/openai/gpt-4o-2024-11-20", label: "OpenAI: GPT-4o (2024-11-20)" },
|
|
28311
|
-
{ id: "openrouter/openai/gpt-4o-
|
|
28312
|
-
{ id: "openrouter/openai/gpt-4o-
|
|
28313
|
-
{ id: "openrouter/
|
|
28314
|
-
{ id: "openrouter/
|
|
28315
|
-
{ id: "openrouter/
|
|
28316
|
-
{ id: "openrouter/
|
|
28317
|
-
{ id: "openrouter/
|
|
28318
|
-
{ id: "openrouter/
|
|
28319
|
-
{ id: "openrouter/
|
|
28320
|
-
{ id: "openrouter/
|
|
28321
|
-
{ id: "openrouter/openai/gpt-5.1-codex-max", label: "OpenAI: GPT-5.1-Codex-Max" },
|
|
28322
|
-
{ id: "openrouter/openai/gpt-5.1-codex-mini", label: "OpenAI: GPT-5.1-Codex-Mini" },
|
|
28323
|
-
{ id: "openrouter/openai/gpt-5.2", label: "OpenAI: GPT-5.2" },
|
|
28324
|
-
{ id: "openrouter/openai/gpt-5.2-chat", label: "OpenAI: GPT-5.2 Chat" },
|
|
28325
|
-
{ id: "openrouter/openai/gpt-5.2-codex", label: "OpenAI: GPT-5.2-Codex" },
|
|
28326
|
-
{ id: "openrouter/openai/gpt-5.2-pro", label: "OpenAI: GPT-5.2 Pro" },
|
|
28327
|
-
{ id: "openrouter/openai/gpt-5.3-chat", label: "OpenAI: GPT-5.3 Chat" },
|
|
28328
|
-
{ id: "openrouter/openai/gpt-5.3-codex", label: "OpenAI: GPT-5.3-Codex" },
|
|
28329
|
-
{ id: "openrouter/openai/gpt-5.4", label: "OpenAI: GPT-5.4" },
|
|
28330
|
-
{ id: "openrouter/openai/gpt-5.4-mini", label: "OpenAI: GPT-5.4 Mini" },
|
|
28331
|
-
{ id: "openrouter/openai/gpt-5.4-nano", label: "OpenAI: GPT-5.4 Nano" },
|
|
28332
|
-
{ id: "openrouter/openai/gpt-5.4-pro", label: "OpenAI: GPT-5.4 Pro" },
|
|
28333
|
-
{ id: "openrouter/openai/gpt-5.5", label: "OpenAI: GPT-5.5" },
|
|
28334
|
-
{ id: "openrouter/openai/gpt-5.5-pro", label: "OpenAI: GPT-5.5 Pro" },
|
|
28335
|
-
{ id: "openrouter/openai/gpt-audio", label: "OpenAI: GPT Audio" },
|
|
28336
|
-
{ id: "openrouter/openai/gpt-audio-mini", label: "OpenAI: GPT Audio Mini" },
|
|
28337
|
-
{ id: "openrouter/openai/gpt-chat-latest", label: "OpenAI: GPT Chat Latest" },
|
|
28267
|
+
{ id: "openrouter/openai/gpt-4o-2024-08-06", label: "OpenAI: GPT-4o (2024-08-06)" },
|
|
28268
|
+
{ id: "openrouter/openai/gpt-4o-2024-05-13", label: "OpenAI: GPT-4o (2024-05-13)" },
|
|
28269
|
+
{ id: "openrouter/moonshotai/kimi-k2-0905", label: "MoonshotAI: Kimi K2 0905" },
|
|
28270
|
+
{ id: "openrouter/moonshotai/kimi-k2", label: "MoonshotAI: Kimi K2 0711" },
|
|
28271
|
+
{ id: "openrouter/deepseek/deepseek-r1-0528", label: "DeepSeek: R1 0528" },
|
|
28272
|
+
{ id: "openrouter/qwen/qwen3-coder:free", label: "Qwen: Qwen3 Coder 480B A35B (free)" },
|
|
28273
|
+
{ id: "openrouter/qwen/qwen3.5-397b-a17b", label: "Qwen: Qwen3.5 397B A17B" },
|
|
28274
|
+
{ id: "openrouter/deepseek/deepseek-chat-v3-0324", label: "DeepSeek: DeepSeek V3 0324" },
|
|
28275
|
+
{ id: "openrouter/qwen/qwen3-235b-a22b", label: "Qwen: Qwen3 235B A22B" },
|
|
28276
|
+
{ id: "openrouter/qwen/qwen3-vl-235b-a22b-instruct", label: "Qwen: Qwen3 VL 235B A22B Instruct" },
|
|
28338
28277
|
{ id: "openrouter/openai/gpt-oss-120b", label: "OpenAI: gpt-oss-120b" },
|
|
28339
|
-
{ id: "openrouter/
|
|
28278
|
+
{ id: "openrouter/qwen/qwen3-next-80b-a3b-instruct", label: "Qwen: Qwen3 Next 80B A3B Instruct" },
|
|
28279
|
+
{ id: "openrouter/qwen/qwen-2.5-72b-instruct", label: "Qwen2.5 72B Instruct" },
|
|
28280
|
+
{ id: "openrouter/meta-llama/llama-3.1-70b-instruct", label: "Meta: Llama 3.1 70B Instruct" },
|
|
28281
|
+
{ id: "openrouter/meta-llama/llama-3.3-70b-instruct", label: "Meta: Llama 3.3 70B Instruct" },
|
|
28282
|
+
{ id: "openrouter/sao10k/l3.1-euryale-70b", label: "Sao10K: Llama 3.1 Euryale 70B v2.2" },
|
|
28283
|
+
{ id: "openrouter/qwen/qwen3.6-35b-a3b", label: "Qwen: Qwen3.6 35B A3B" },
|
|
28284
|
+
{ id: "openrouter/qwen/qwen3-32b", label: "Qwen: Qwen3 32B" },
|
|
28285
|
+
{ id: "openrouter/qwen/qwen3-vl-32b-instruct", label: "Qwen: Qwen3 VL 32B Instruct" },
|
|
28286
|
+
{ id: "openrouter/google/gemma-4-31b-it", label: "Google: Gemma 4 31B" },
|
|
28287
|
+
{ id: "openrouter/qwen/qwen3-30b-a3b", label: "Qwen: Qwen3 30B A3B" },
|
|
28288
|
+
{ id: "openrouter/qwen/qwen3-vl-30b-a3b-instruct", label: "Qwen: Qwen3 VL 30B A3B Instruct" },
|
|
28289
|
+
{ id: "openrouter/cohere/command-r-08-2024", label: "Cohere: Command R (08-2024)" },
|
|
28290
|
+
{ id: "openrouter/cohere/command-r-plus-08-2024", label: "Cohere: Command R+ (08-2024)" },
|
|
28291
|
+
{ id: "openrouter/google/gemma-3-27b-it", label: "Google: Gemma 3 27B" },
|
|
28292
|
+
{ id: "openrouter/qwen/qwen3.6-27b", label: "Qwen: Qwen3.6 27B" },
|
|
28293
|
+
{ id: "openrouter/google/gemma-4-26b-a4b-it", label: "Google: Gemma 4 26B A4B " },
|
|
28294
|
+
{ id: "openrouter/mistralai/mistral-small-3.2-24b-instruct", label: "Mistral: Mistral Small 3.2 24B" },
|
|
28295
|
+
{ id: "openrouter/mistralai/mixtral-8x22b-instruct", label: "Mistral: Mixtral 8x22B Instruct" },
|
|
28340
28296
|
{ id: "openrouter/openai/gpt-oss-20b", label: "OpenAI: gpt-oss-20b" },
|
|
28341
|
-
{ id: "openrouter/openai/gpt-oss-20b:free", label: "OpenAI: gpt-oss-20b (free)" },
|
|
28342
28297
|
{ id: "openrouter/openai/gpt-oss-safeguard-20b", label: "OpenAI: gpt-oss-safeguard-20b" },
|
|
28343
|
-
{ id: "openrouter/openai/o1", label: "OpenAI: o1" },
|
|
28344
|
-
{ id: "openrouter/openai/o3", label: "OpenAI: o3" },
|
|
28345
|
-
{ id: "openrouter/openai/o3-deep-research", label: "OpenAI: o3 Deep Research" },
|
|
28346
|
-
{ id: "openrouter/openai/o3-mini", label: "OpenAI: o3 Mini" },
|
|
28347
|
-
{ id: "openrouter/openai/o3-mini-high", label: "OpenAI: o3 Mini High" },
|
|
28348
|
-
{ id: "openrouter/openai/o3-pro", label: "OpenAI: o3 Pro" },
|
|
28349
|
-
{ id: "openrouter/openai/o4-mini", label: "OpenAI: o4 Mini" },
|
|
28350
|
-
{ id: "openrouter/openai/o4-mini-deep-research", label: "OpenAI: o4 Mini Deep Research" },
|
|
28351
|
-
{ id: "openrouter/openai/o4-mini-high", label: "OpenAI: o4 Mini High" },
|
|
28352
|
-
{ id: "openrouter/openrouter/auto", label: "Auto Router" },
|
|
28353
|
-
{ id: "openrouter/openrouter/free", label: "Free Models Router" },
|
|
28354
|
-
{ id: "openrouter/openrouter/fusion", label: "OpenRouter: Fusion" },
|
|
28355
|
-
{ id: "openrouter/openrouter/owl-alpha", label: "Owl Alpha" },
|
|
28356
|
-
{ id: "openrouter/poolside/laguna-m.1", label: "Poolside: Laguna M.1" },
|
|
28357
|
-
{ id: "openrouter/poolside/laguna-m.1:free", label: "Poolside: Laguna M.1 (free)" },
|
|
28358
|
-
{ id: "openrouter/poolside/laguna-xs.2", label: "Poolside: Laguna XS.2" },
|
|
28359
|
-
{ id: "openrouter/poolside/laguna-xs.2:free", label: "Poolside: Laguna XS.2 (free)" },
|
|
28360
|
-
{ id: "openrouter/prime-intellect/intellect-3", label: "Prime Intellect: INTELLECT-3" },
|
|
28361
|
-
{ id: "openrouter/qwen/qwen-2.5-72b-instruct", label: "Qwen2.5 72B Instruct" },
|
|
28362
|
-
{ id: "openrouter/qwen/qwen-2.5-7b-instruct", label: "Qwen: Qwen2.5 7B Instruct" },
|
|
28363
|
-
{ id: "openrouter/qwen/qwen-plus", label: "Qwen: Qwen-Plus" },
|
|
28364
|
-
{ id: "openrouter/qwen/qwen-plus-2025-07-28", label: "Qwen: Qwen Plus 0728" },
|
|
28365
|
-
{ id: "openrouter/qwen/qwen-plus-2025-07-28:thinking", label: "Qwen: Qwen Plus 0728 (thinking)" },
|
|
28366
28298
|
{ id: "openrouter/qwen/qwen3-14b", label: "Qwen: Qwen3 14B" },
|
|
28367
|
-
{ id: "openrouter/
|
|
28368
|
-
{ id: "openrouter/
|
|
28369
|
-
{ id: "openrouter/qwen/qwen3-
|
|
28370
|
-
{ id: "openrouter/
|
|
28371
|
-
{ id: "openrouter/
|
|
28372
|
-
{ id: "openrouter/qwen/qwen3-30b-a3b-thinking-2507", label: "Qwen: Qwen3 30B A3B Thinking 2507" },
|
|
28373
|
-
{ id: "openrouter/qwen/qwen3-32b", label: "Qwen: Qwen3 32B" },
|
|
28299
|
+
{ id: "openrouter/google/gemma-3-12b-it", label: "Google: Gemma 3 12B" },
|
|
28300
|
+
{ id: "openrouter/thedrummer/unslopnemo-12b", label: "TheDrummer: UnslopNemo 12B" },
|
|
28301
|
+
{ id: "openrouter/qwen/qwen3.5-122b-a10b", label: "Qwen: Qwen3.5-122B-A10B" },
|
|
28302
|
+
{ id: "openrouter/ibm-granite/granite-4.1-8b", label: "IBM: Granite 4.1 8B" },
|
|
28303
|
+
{ id: "openrouter/meta-llama/llama-3.1-8b-instruct", label: "Meta: Llama 3.1 8B Instruct" },
|
|
28374
28304
|
{ id: "openrouter/qwen/qwen3-8b", label: "Qwen: Qwen3 8B" },
|
|
28375
|
-
{ id: "openrouter/qwen/qwen3-coder", label: "Qwen: Qwen3 Coder 480B A35B" },
|
|
28376
|
-
{ id: "openrouter/qwen/qwen3-coder-30b-a3b-instruct", label: "Qwen: Qwen3 Coder 30B A3B Instruct" },
|
|
28377
|
-
{ id: "openrouter/qwen/qwen3-coder-flash", label: "Qwen: Qwen3 Coder Flash" },
|
|
28378
|
-
{ id: "openrouter/qwen/qwen3-coder-next", label: "Qwen: Qwen3 Coder Next" },
|
|
28379
|
-
{ id: "openrouter/qwen/qwen3-coder-plus", label: "Qwen: Qwen3 Coder Plus" },
|
|
28380
|
-
{ id: "openrouter/qwen/qwen3-coder:free", label: "Qwen: Qwen3 Coder 480B A35B (free)" },
|
|
28381
|
-
{ id: "openrouter/qwen/qwen3-max", label: "Qwen: Qwen3 Max" },
|
|
28382
|
-
{ id: "openrouter/qwen/qwen3-max-thinking", label: "Qwen: Qwen3 Max Thinking" },
|
|
28383
|
-
{ id: "openrouter/qwen/qwen3-next-80b-a3b-instruct", label: "Qwen: Qwen3 Next 80B A3B Instruct" },
|
|
28384
|
-
{ id: "openrouter/qwen/qwen3-next-80b-a3b-instruct:free", label: "Qwen: Qwen3 Next 80B A3B Instruct (free)" },
|
|
28385
|
-
{ id: "openrouter/qwen/qwen3-next-80b-a3b-thinking", label: "Qwen: Qwen3 Next 80B A3B Thinking" },
|
|
28386
|
-
{ id: "openrouter/qwen/qwen3-vl-235b-a22b-instruct", label: "Qwen: Qwen3 VL 235B A22B Instruct" },
|
|
28387
|
-
{ id: "openrouter/qwen/qwen3-vl-235b-a22b-thinking", label: "Qwen: Qwen3 VL 235B A22B Thinking" },
|
|
28388
|
-
{ id: "openrouter/qwen/qwen3-vl-30b-a3b-instruct", label: "Qwen: Qwen3 VL 30B A3B Instruct" },
|
|
28389
|
-
{ id: "openrouter/qwen/qwen3-vl-30b-a3b-thinking", label: "Qwen: Qwen3 VL 30B A3B Thinking" },
|
|
28390
|
-
{ id: "openrouter/qwen/qwen3-vl-32b-instruct", label: "Qwen: Qwen3 VL 32B Instruct" },
|
|
28391
28305
|
{ id: "openrouter/qwen/qwen3-vl-8b-instruct", label: "Qwen: Qwen3 VL 8B Instruct" },
|
|
28392
|
-
{ id: "openrouter/qwen/
|
|
28393
|
-
{ id: "openrouter/
|
|
28394
|
-
{ id: "openrouter/
|
|
28395
|
-
{ id: "openrouter/
|
|
28396
|
-
{ id: "openrouter/
|
|
28397
|
-
{ id: "openrouter/
|
|
28398
|
-
{ id: "openrouter/
|
|
28399
|
-
{ id: "openrouter/
|
|
28400
|
-
{ id: "openrouter/
|
|
28401
|
-
{ id: "openrouter/
|
|
28402
|
-
{ id: "openrouter/
|
|
28403
|
-
{ id: "openrouter/
|
|
28404
|
-
{ id: "openrouter/
|
|
28405
|
-
{ id: "openrouter/
|
|
28406
|
-
{ id: "openrouter/
|
|
28306
|
+
{ id: "openrouter/qwen/qwen-2.5-7b-instruct", label: "Qwen: Qwen2.5 7B Instruct" },
|
|
28307
|
+
{ id: "openrouter/openai/gpt-5.5", label: "OpenAI: GPT-5.5" },
|
|
28308
|
+
{ id: "openrouter/openai/gpt-5.4", label: "OpenAI: GPT-5.4" },
|
|
28309
|
+
{ id: "openrouter/openai/gpt-5.3-chat", label: "OpenAI: GPT-5.3 Chat" },
|
|
28310
|
+
{ id: "openrouter/openai/gpt-5.2", label: "OpenAI: GPT-5.2" },
|
|
28311
|
+
{ id: "openrouter/openai/gpt-5.2-chat", label: "OpenAI: GPT-5.2 Chat" },
|
|
28312
|
+
{ id: "openrouter/z-ai/glm-5.2", label: "Z.ai: GLM 5.2" },
|
|
28313
|
+
{ id: "openrouter/openai/gpt-5.1", label: "OpenAI: GPT-5.1" },
|
|
28314
|
+
{ id: "openrouter/openai/gpt-5.1-chat", label: "OpenAI: GPT-5.1 Chat" },
|
|
28315
|
+
{ id: "openrouter/z-ai/glm-5.1", label: "Z.ai: GLM 5.1" },
|
|
28316
|
+
{ id: "openrouter/openai/gpt-5", label: "OpenAI: GPT-5" },
|
|
28317
|
+
{ id: "openrouter/z-ai/glm-5", label: "Z.ai: GLM 5" },
|
|
28318
|
+
{ id: "openrouter/x-ai/grok-4.20", label: "xAI: Grok 4.20" },
|
|
28319
|
+
{ id: "openrouter/z-ai/glm-4.7", label: "Z.ai: GLM 4.7" },
|
|
28320
|
+
{ id: "openrouter/z-ai/glm-4.6", label: "Z.ai: GLM 4.6" },
|
|
28321
|
+
{ id: "openrouter/z-ai/glm-4.6v", label: "Z.ai: GLM 4.6V" },
|
|
28322
|
+
{ id: "openrouter/z-ai/glm-4.5", label: "Z.ai: GLM 4.5" },
|
|
28323
|
+
{ id: "openrouter/z-ai/glm-4.5-air", label: "Z.ai: GLM 4.5 Air" },
|
|
28324
|
+
{ id: "openrouter/z-ai/glm-4.5v", label: "Z.ai: GLM 4.5V" },
|
|
28325
|
+
{ id: "openrouter/x-ai/grok-4.3", label: "xAI: Grok 4.3" },
|
|
28326
|
+
{ id: "openrouter/openai/gpt-4.1", label: "OpenAI: GPT-4.1" },
|
|
28327
|
+
{ id: "openrouter/meta-llama/llama-4-maverick", label: "Meta: Llama 4 Maverick" },
|
|
28328
|
+
{ id: "openrouter/meta-llama/llama-4-scout", label: "Meta: Llama 4 Scout" },
|
|
28329
|
+
{ id: "openrouter/openai/gpt-4", label: "OpenAI: GPT-4" },
|
|
28330
|
+
{ id: "openrouter/openai/gpt-4o", label: "OpenAI: GPT-4o" },
|
|
28407
28331
|
{ id: "openrouter/qwen/qwen3.7-plus", label: "Qwen: Qwen3.7 Plus" },
|
|
28408
|
-
{ id: "openrouter/
|
|
28409
|
-
{ id: "openrouter/
|
|
28410
|
-
{ id: "openrouter/
|
|
28411
|
-
{ id: "openrouter/
|
|
28412
|
-
{ id: "openrouter/
|
|
28332
|
+
{ id: "openrouter/qwen/qwen3.6-plus", label: "Qwen: Qwen3.6 Plus" },
|
|
28333
|
+
{ id: "openrouter/qwen/qwen3.5-35b-a3b", label: "Qwen: Qwen3.5-35B-A3B" },
|
|
28334
|
+
{ id: "openrouter/qwen/qwen3.5-27b", label: "Qwen: Qwen3.5-27B" },
|
|
28335
|
+
{ id: "openrouter/qwen/qwen3.5-9b", label: "Qwen: Qwen3.5-9B" },
|
|
28336
|
+
{ id: "openrouter/mistralai/mistral-medium-3-5", label: "Mistral: Mistral Medium 3.5" },
|
|
28337
|
+
{ id: "openrouter/deepseek/deepseek-v3.2", label: "DeepSeek: DeepSeek V3.2" },
|
|
28338
|
+
{ id: "openrouter/deepseek/deepseek-v3.2-exp", label: "DeepSeek: DeepSeek V3.2 Exp" },
|
|
28339
|
+
{ id: "openrouter/deepseek/deepseek-chat-v3.1", label: "DeepSeek: DeepSeek V3.1" },
|
|
28340
|
+
{ id: "openrouter/deepseek/deepseek-v3.1-terminus", label: "DeepSeek: DeepSeek V3.1 Terminus" },
|
|
28341
|
+
{ id: "openrouter/mistralai/mistral-medium-3.1", label: "Mistral: Mistral Medium 3.1" },
|
|
28342
|
+
{ id: "openrouter/deepseek/deepseek-chat", label: "DeepSeek: DeepSeek V3" },
|
|
28343
|
+
{ id: "openrouter/minimax/minimax-m3", label: "MiniMax: MiniMax M3" },
|
|
28344
|
+
{ id: "openrouter/mistralai/mistral-medium-3", label: "Mistral: Mistral Medium 3" },
|
|
28345
|
+
{ id: "openrouter/openai/o3", label: "OpenAI: o3" },
|
|
28346
|
+
{ id: "openrouter/openai/o3-deep-research", label: "OpenAI: o3 Deep Research" },
|
|
28413
28347
|
{ id: "openrouter/tencent/hy3-preview", label: "Tencent: Hy3 preview" },
|
|
28414
|
-
{ id: "openrouter/
|
|
28415
|
-
{ id: "openrouter/
|
|
28416
|
-
{ id: "openrouter/
|
|
28417
|
-
{ id: "openrouter/
|
|
28418
|
-
{ id: "openrouter/
|
|
28419
|
-
{ id: "openrouter/
|
|
28348
|
+
{ id: "openrouter/minimax/minimax-m2.7", label: "MiniMax: MiniMax M2.7" },
|
|
28349
|
+
{ id: "openrouter/inclusionai/ling-2.6-1t", label: "inclusionAI: Ling-2.6-1T" },
|
|
28350
|
+
{ id: "openrouter/inclusionai/ring-2.6-1t", label: "inclusionAI: Ring-2.6-1T" },
|
|
28351
|
+
{ id: "openrouter/moonshotai/kimi-k2.6", label: "MoonshotAI: Kimi K2.6" },
|
|
28352
|
+
{ id: "openrouter/minimax/minimax-m2.5", label: "MiniMax: MiniMax M2.5" },
|
|
28353
|
+
{ id: "openrouter/moonshotai/kimi-k2.5", label: "MoonshotAI: Kimi K2.5" },
|
|
28420
28354
|
{ id: "openrouter/xiaomi/mimo-v2.5", label: "Xiaomi: MiMo-V2.5" },
|
|
28421
|
-
{ id: "openrouter/
|
|
28422
|
-
{ id: "openrouter/
|
|
28423
|
-
{ id: "openrouter/
|
|
28424
|
-
{ id: "openrouter/
|
|
28425
|
-
{ id: "openrouter/
|
|
28426
|
-
{ id: "openrouter/
|
|
28427
|
-
{ id: "openrouter/
|
|
28428
|
-
{ id: "openrouter/
|
|
28429
|
-
{ id: "openrouter/
|
|
28430
|
-
{ id: "openrouter/
|
|
28431
|
-
{ id: "openrouter/
|
|
28432
|
-
{ id: "openrouter/
|
|
28433
|
-
{ id: "openrouter
|
|
28434
|
-
{ id: "openrouter
|
|
28435
|
-
{ id: "openrouter/~anthropic/claude-opus-latest", label: "Anthropic: Claude Opus Latest" },
|
|
28436
|
-
{ id: "openrouter/~anthropic/claude-sonnet-latest", label: "Anthropic Claude Sonnet Latest" },
|
|
28437
|
-
{ id: "openrouter/~google/gemini-flash-latest", label: "Google Gemini Flash Latest" },
|
|
28438
|
-
{ id: "openrouter/~google/gemini-pro-latest", label: "Google Gemini Pro Latest" },
|
|
28355
|
+
{ id: "openrouter/minimax/minimax-m2.1", label: "MiniMax: MiniMax M2.1" },
|
|
28356
|
+
{ id: "openrouter/inception/mercury-2", label: "Inception: Mercury 2" },
|
|
28357
|
+
{ id: "openrouter/minimax/minimax-m2", label: "MiniMax: MiniMax M2" },
|
|
28358
|
+
{ id: "openrouter/poolside/laguna-xs.2", label: "Poolside: Laguna XS.2" },
|
|
28359
|
+
{ id: "openrouter/bytedance-seed/seed-1.6", label: "ByteDance Seed: Seed 1.6" },
|
|
28360
|
+
{ id: "openrouter/deepseek/deepseek-r1", label: "DeepSeek: R1" },
|
|
28361
|
+
{ id: "openrouter/minimax/minimax-m1", label: "MiniMax: MiniMax M1" },
|
|
28362
|
+
{ id: "openrouter/openai/o1", label: "OpenAI: o1" },
|
|
28363
|
+
{ id: "openrouter/poolside/laguna-m.1", label: "Poolside: Laguna M.1" },
|
|
28364
|
+
{ id: "openrouter/x-ai/grok-build-0.1", label: "xAI: Grok Build 0.1" },
|
|
28365
|
+
{ id: "openrouter/auto", label: "Auto" },
|
|
28366
|
+
{ id: "openrouter/openrouter/auto", label: "Auto Router" },
|
|
28367
|
+
{ id: "openrouter/mistralai/mistral-nemo", label: "Mistral: Mistral Nemo" },
|
|
28368
|
+
{ id: "openrouter/mistralai/mistral-saba", label: "Mistral: Saba" },
|
|
28439
28369
|
{ id: "openrouter/~moonshotai/kimi-latest", label: "MoonshotAI Kimi Latest" },
|
|
28440
28370
|
{ id: "openrouter/~openai/gpt-latest", label: "OpenAI GPT Latest" },
|
|
28441
|
-
{ id: "openrouter
|
|
28371
|
+
{ id: "openrouter/openai/gpt-audio", label: "OpenAI: GPT Audio" },
|
|
28372
|
+
{ id: "openrouter/openai/gpt-chat-latest", label: "OpenAI: GPT Chat Latest" },
|
|
28373
|
+
{ id: "openrouter/openrouter/fusion", label: "OpenRouter: Fusion" },
|
|
28374
|
+
{ id: "openrouter/qwen/qwen-plus", label: "Qwen: Qwen-Plus" },
|
|
28375
|
+
{ id: "openrouter/rekaai/reka-edge", label: "Reka Edge" },
|
|
28376
|
+
{ id: "openrouter/relace/relace-search", label: "Relace: Relace Search" },
|
|
28377
|
+
{ id: "openrouter/liquid/lfm-2.5-1.2b-thinking:free", label: "LiquidAI: LFM2.5-1.2B-Thinking (free)" },
|
|
28378
|
+
{ id: "openrouter/openai/gpt-3.5-turbo-0613", label: "OpenAI: GPT-3.5 Turbo (older v0613)" },
|
|
28379
|
+
{ id: "openrouter/openai/gpt-3.5-turbo-16k", label: "OpenAI: GPT-3.5 Turbo 16k" },
|
|
28380
|
+
{ id: "openrouter/z-ai/glm-5-turbo", label: "Z.ai: GLM 5 Turbo" },
|
|
28381
|
+
{ id: "openrouter/z-ai/glm-5v-turbo", label: "Z.ai: GLM 5V Turbo" },
|
|
28382
|
+
{ id: "openrouter/z-ai/glm-4.7-flash", label: "Z.ai: GLM 4.7 Flash" },
|
|
28383
|
+
{ id: "openrouter/deepseek/deepseek-v4-flash", label: "DeepSeek: DeepSeek V4 Flash" },
|
|
28384
|
+
{ id: "openrouter/openai/gpt-4-turbo", label: "OpenAI: GPT-4 Turbo" },
|
|
28385
|
+
{ id: "openrouter/openai/gpt-4-turbo-preview", label: "OpenAI: GPT-4 Turbo Preview" },
|
|
28386
|
+
{ id: "openrouter/stepfun/step-3.7-flash", label: "StepFun: Step 3.7 Flash" },
|
|
28387
|
+
{ id: "openrouter/qwen/qwen3.6-flash", label: "Qwen: Qwen3.6 Flash" },
|
|
28388
|
+
{ id: "openrouter/google/gemini-3.5-flash", label: "Google: Gemini 3.5 Flash" },
|
|
28389
|
+
{ id: "openrouter/openai/gpt-3.5-turbo", label: "OpenAI: GPT-3.5 Turbo" },
|
|
28390
|
+
{ id: "openrouter/qwen/qwen3.5-flash-02-23", label: "Qwen: Qwen3.5-Flash" },
|
|
28391
|
+
{ id: "openrouter/stepfun/step-3.5-flash", label: "StepFun: Step 3.5 Flash" },
|
|
28392
|
+
{ id: "openrouter/google/gemini-3-flash-preview", label: "Google: Gemini 3 Flash Preview" },
|
|
28393
|
+
{ id: "openrouter/inclusionai/ling-2.6-flash", label: "inclusionAI: Ling-2.6-flash" },
|
|
28394
|
+
{ id: "openrouter/google/gemini-2.5-flash", label: "Google: Gemini 2.5 Flash" },
|
|
28395
|
+
{ id: "openrouter/bytedance-seed/seed-1.6-flash", label: "ByteDance Seed: Seed 1.6 Flash" },
|
|
28396
|
+
{ id: "openrouter/~google/gemini-flash-latest", label: "Google Gemini Flash Latest" },
|
|
28397
|
+
{ id: "openrouter/nvidia/nemotron-3-super-120b-a12b:free", label: "NVIDIA: Nemotron 3 Super (free)" },
|
|
28398
|
+
{ id: "openrouter/openai/gpt-4o-mini-2024-07-18", label: "OpenAI: GPT-4o-mini (2024-07-18)" },
|
|
28399
|
+
{ id: "openrouter/nvidia/nemotron-3-nano-30b-a3b", label: "NVIDIA: Nemotron 3 Nano 30B A3B" },
|
|
28400
|
+
{ id: "openrouter/openai/gpt-5.4-mini", label: "OpenAI: GPT-5.4 Mini" },
|
|
28401
|
+
{ id: "openrouter/openai/gpt-5.4-nano", label: "OpenAI: GPT-5.4 Nano" },
|
|
28402
|
+
{ id: "openrouter/openai/gpt-5-mini", label: "OpenAI: GPT-5 Mini" },
|
|
28403
|
+
{ id: "openrouter/openai/gpt-5-nano", label: "OpenAI: GPT-5 Nano" },
|
|
28404
|
+
{ id: "openrouter/openai/gpt-4.1-mini", label: "OpenAI: GPT-4.1 Mini" },
|
|
28405
|
+
{ id: "openrouter/openai/gpt-4.1-nano", label: "OpenAI: GPT-4.1 Nano" },
|
|
28406
|
+
{ id: "openrouter/openai/gpt-4o-mini", label: "OpenAI: GPT-4o-mini" },
|
|
28407
|
+
{ id: "openrouter/openai/o4-mini", label: "OpenAI: o4 Mini" },
|
|
28408
|
+
{ id: "openrouter/openai/o4-mini-deep-research", label: "OpenAI: o4 Mini Deep Research" },
|
|
28409
|
+
{ id: "openrouter/openai/o4-mini-high", label: "OpenAI: o4 Mini High" },
|
|
28410
|
+
{ id: "openrouter/openai/o3-mini", label: "OpenAI: o3 Mini" },
|
|
28411
|
+
{ id: "openrouter/openai/o3-mini-high", label: "OpenAI: o3 Mini High" },
|
|
28412
|
+
{ id: "openrouter/amazon/nova-2-lite-v1", label: "Amazon: Nova 2 Lite" },
|
|
28413
|
+
{ id: "openrouter/bytedance-seed/seed-2.0-lite", label: "ByteDance Seed: Seed-2.0-Lite" },
|
|
28414
|
+
{ id: "openrouter/bytedance-seed/seed-2.0-mini", label: "ByteDance Seed: Seed-2.0-Mini" },
|
|
28415
|
+
{ id: "openrouter/amazon/nova-lite-v1", label: "Amazon: Nova Lite 1.0" },
|
|
28416
|
+
{ id: "openrouter/amazon/nova-micro-v1", label: "Amazon: Nova Micro 1.0" },
|
|
28417
|
+
{ id: "openrouter/arcee-ai/trinity-mini", label: "Arcee AI: Trinity Mini" },
|
|
28418
|
+
{ id: "openrouter/cohere/north-mini-code:free", label: "Cohere: North Mini Code (free)" },
|
|
28419
|
+
{ id: "openrouter/~openai/gpt-mini-latest", label: "OpenAI GPT Mini Latest" },
|
|
28420
|
+
{ id: "openrouter/openai/gpt-audio-mini", label: "OpenAI: GPT Audio Mini" },
|
|
28421
|
+
{ id: "openrouter/openai/gpt-oss-120b:free", label: "OpenAI: gpt-oss-120b (free)" },
|
|
28422
|
+
{ id: "openrouter/qwen/qwen3-next-80b-a3b-instruct:free", label: "Qwen: Qwen3 Next 80B A3B Instruct (free)" },
|
|
28423
|
+
{ id: "openrouter/meta-llama/llama-3.3-70b-instruct:free", label: "Meta: Llama 3.3 70B Instruct (free)" },
|
|
28424
|
+
{ id: "openrouter/google/gemma-4-31b-it:free", label: "Google: Gemma 4 31B (free)" },
|
|
28425
|
+
{ id: "openrouter/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", label: "NVIDIA: Nemotron 3 Nano Omni (free)" },
|
|
28426
|
+
{ id: "openrouter/google/gemma-4-26b-a4b-it:free", label: "Google: Gemma 4 26B A4B (free)" },
|
|
28427
|
+
{ id: "openrouter/openai/gpt-oss-20b:free", label: "OpenAI: gpt-oss-20b (free)" },
|
|
28428
|
+
{ id: "openrouter/poolside/laguna-xs.2:free", label: "Poolside: Laguna XS.2 (free)" },
|
|
28429
|
+
{ id: "openrouter/poolside/laguna-m.1:free", label: "Poolside: Laguna M.1 (free)" },
|
|
28430
|
+
{ id: "openrouter/openrouter/free", label: "Free Models Router" },
|
|
28431
|
+
{ id: "openrouter/google/gemini-2.5-flash-lite-preview-09-2025", label: "Google: Gemini 2.5 Flash Lite Preview 09-2025" },
|
|
28432
|
+
{ id: "openrouter/google/gemini-3.1-flash-lite", label: "Google: Gemini 3.1 Flash Lite" },
|
|
28433
|
+
{ id: "openrouter/google/gemini-3.1-flash-lite-preview", label: "Google: Gemini 3.1 Flash Lite Preview" },
|
|
28434
|
+
{ id: "openrouter/google/gemini-2.5-flash-lite", label: "Google: Gemini 2.5 Flash Lite" },
|
|
28435
|
+
{ id: "openrouter/nvidia/nemotron-3-nano-30b-a3b:free", label: "NVIDIA: Nemotron 3 Nano 30B A3B (free)" },
|
|
28436
|
+
{ id: "openrouter/nvidia/nemotron-nano-12b-v2-vl:free", label: "NVIDIA: Nemotron Nano 12B 2 VL (free)" },
|
|
28437
|
+
{ id: "openrouter/nvidia/nemotron-nano-9b-v2:free", label: "NVIDIA: Nemotron Nano 9B V2 (free)" }
|
|
28442
28438
|
],
|
|
28443
28439
|
"openai": [
|
|
28444
|
-
{ id: "openai/gpt-5.4", label: "GPT-5.4" },
|
|
28445
|
-
{ id: "openai/gpt-4", label: "GPT-4" },
|
|
28446
|
-
{ id: "openai/gpt-4-turbo", label: "GPT-4 Turbo" },
|
|
28447
|
-
{ id: "openai/gpt-4.1", label: "GPT-4.1" },
|
|
28448
|
-
{ id: "openai/gpt-4.1-mini", label: "GPT-4.1 mini" },
|
|
28449
|
-
{ id: "openai/gpt-4.1-nano", label: "GPT-4.1 nano" },
|
|
28450
|
-
{ id: "openai/gpt-4o", label: "GPT-4o" },
|
|
28451
|
-
{ id: "openai/gpt-4o-2024-05-13", label: "GPT-4o (2024-05-13)" },
|
|
28452
|
-
{ id: "openai/gpt-4o-2024-08-06", label: "GPT-4o (2024-08-06)" },
|
|
28453
|
-
{ id: "openai/gpt-4o-2024-11-20", label: "GPT-4o (2024-11-20)" },
|
|
28454
|
-
{ id: "openai/gpt-4o-mini", label: "GPT-4o mini" },
|
|
28455
|
-
{ id: "openai/gpt-5", label: "GPT-5" },
|
|
28456
|
-
{ id: "openai/gpt-5-chat-latest", label: "GPT-5 Chat Latest" },
|
|
28457
|
-
{ id: "openai/gpt-5-codex", label: "GPT-5-Codex" },
|
|
28458
|
-
{ id: "openai/gpt-5-mini", label: "GPT-5 Mini" },
|
|
28459
|
-
{ id: "openai/gpt-5-nano", label: "GPT-5 Nano" },
|
|
28460
|
-
{ id: "openai/gpt-5-pro", label: "GPT-5 Pro" },
|
|
28461
|
-
{ id: "openai/gpt-5.1", label: "GPT-5.1" },
|
|
28462
|
-
{ id: "openai/gpt-5.1-chat-latest", label: "GPT-5.1 Chat" },
|
|
28463
|
-
{ id: "openai/gpt-5.1-codex", label: "GPT-5.1 Codex" },
|
|
28464
28440
|
{ id: "openai/gpt-5.1-codex-max", label: "GPT-5.1 Codex Max" },
|
|
28465
|
-
{ id: "openai/gpt-5.
|
|
28466
|
-
{ id: "openai/gpt-5.
|
|
28467
|
-
{ id: "openai/gpt-5.2-chat-latest", label: "GPT-5.2 Chat" },
|
|
28468
|
-
{ id: "openai/gpt-5.2-codex", label: "GPT-5.2 Codex" },
|
|
28441
|
+
{ id: "openai/gpt-5.5-pro", label: "GPT-5.5 Pro" },
|
|
28442
|
+
{ id: "openai/gpt-5.4-pro", label: "GPT-5.4 Pro" },
|
|
28469
28443
|
{ id: "openai/gpt-5.2-pro", label: "GPT-5.2 Pro" },
|
|
28470
|
-
{ id: "openai/gpt-5
|
|
28444
|
+
{ id: "openai/gpt-5-pro", label: "GPT-5 Pro" },
|
|
28445
|
+
{ id: "openai/o3-pro", label: "o3-pro" },
|
|
28446
|
+
{ id: "openai/o1-pro", label: "o1-pro" },
|
|
28471
28447
|
{ id: "openai/gpt-5.3-codex", label: "GPT-5.3 Codex" },
|
|
28472
28448
|
{ id: "openai/gpt-5.3-codex-spark", label: "GPT-5.3 Codex Spark" },
|
|
28473
|
-
{ id: "openai/gpt-5.
|
|
28474
|
-
{ id: "openai/gpt-5.
|
|
28475
|
-
{ id: "openai/gpt-5
|
|
28449
|
+
{ id: "openai/gpt-5.2-codex", label: "GPT-5.2 Codex" },
|
|
28450
|
+
{ id: "openai/gpt-5.1-codex", label: "GPT-5.1 Codex" },
|
|
28451
|
+
{ id: "openai/gpt-5-codex", label: "GPT-5-Codex" },
|
|
28452
|
+
{ id: "openai/gpt-5.1-codex-mini", label: "GPT-5.1 Codex mini" },
|
|
28453
|
+
{ id: "openai/gpt-4o-2024-11-20", label: "GPT-4o (2024-11-20)" },
|
|
28454
|
+
{ id: "openai/gpt-4o-2024-08-06", label: "GPT-4o (2024-08-06)" },
|
|
28455
|
+
{ id: "openai/gpt-4o-2024-05-13", label: "GPT-4o (2024-05-13)" },
|
|
28476
28456
|
{ id: "openai/gpt-5.5", label: "GPT-5.5" },
|
|
28477
|
-
{ id: "openai/gpt-5.
|
|
28478
|
-
{ id: "openai/
|
|
28479
|
-
{ id: "openai/
|
|
28457
|
+
{ id: "openai/gpt-5.4", label: "GPT-5.4" },
|
|
28458
|
+
{ id: "openai/gpt-5.3-chat-latest", label: "GPT-5.3 Chat (latest)" },
|
|
28459
|
+
{ id: "openai/gpt-5.2", label: "GPT-5.2" },
|
|
28460
|
+
{ id: "openai/gpt-5.2-chat-latest", label: "GPT-5.2 Chat" },
|
|
28461
|
+
{ id: "openai/gpt-5.1", label: "GPT-5.1" },
|
|
28462
|
+
{ id: "openai/gpt-5.1-chat-latest", label: "GPT-5.1 Chat" },
|
|
28463
|
+
{ id: "openai/gpt-5", label: "GPT-5" },
|
|
28464
|
+
{ id: "openai/gpt-5-chat-latest", label: "GPT-5 Chat Latest" },
|
|
28465
|
+
{ id: "openai/gpt-4.1", label: "GPT-4.1" },
|
|
28466
|
+
{ id: "openai/gpt-4", label: "GPT-4" },
|
|
28467
|
+
{ id: "openai/gpt-4o", label: "GPT-4o" },
|
|
28480
28468
|
{ id: "openai/o3", label: "o3" },
|
|
28481
28469
|
{ id: "openai/o3-deep-research", label: "o3-deep-research" },
|
|
28482
|
-
{ id: "openai/
|
|
28483
|
-
{ id: "openai/
|
|
28470
|
+
{ id: "openai/o1", label: "o1" },
|
|
28471
|
+
{ id: "openai/gpt-4-turbo", label: "GPT-4 Turbo" },
|
|
28472
|
+
{ id: "openai/gpt-5.4-mini", label: "GPT-5.4 mini" },
|
|
28473
|
+
{ id: "openai/gpt-5.4-nano", label: "GPT-5.4 nano" },
|
|
28474
|
+
{ id: "openai/gpt-5-mini", label: "GPT-5 Mini" },
|
|
28475
|
+
{ id: "openai/gpt-5-nano", label: "GPT-5 Nano" },
|
|
28476
|
+
{ id: "openai/gpt-4.1-mini", label: "GPT-4.1 mini" },
|
|
28477
|
+
{ id: "openai/gpt-4.1-nano", label: "GPT-4.1 nano" },
|
|
28478
|
+
{ id: "openai/gpt-4o-mini", label: "GPT-4o mini" },
|
|
28484
28479
|
{ id: "openai/o4-mini", label: "o4-mini" },
|
|
28485
|
-
{ id: "openai/o4-mini-deep-research", label: "o4-mini-deep-research" }
|
|
28480
|
+
{ id: "openai/o4-mini-deep-research", label: "o4-mini-deep-research" },
|
|
28481
|
+
{ id: "openai/o3-mini", label: "o3-mini" }
|
|
28486
28482
|
],
|
|
28487
28483
|
"anthropic": [
|
|
28488
|
-
{ id: "anthropic/claude-opus-4-8", label: "Claude Opus 4.8" },
|
|
28489
|
-
{ id: "anthropic/claude-3-5-haiku-20241022", label: "Claude Haiku 3.5" },
|
|
28490
|
-
{ id: "anthropic/claude-3-5-haiku-latest", label: "Claude Haiku 3.5 (latest)" },
|
|
28491
|
-
{ id: "anthropic/claude-3-5-sonnet-20240620", label: "Claude Sonnet 3.5" },
|
|
28492
|
-
{ id: "anthropic/claude-3-5-sonnet-20241022", label: "Claude Sonnet 3.5 v2" },
|
|
28493
|
-
{ id: "anthropic/claude-3-7-sonnet-20250219", label: "Claude Sonnet 3.7" },
|
|
28494
|
-
{ id: "anthropic/claude-3-haiku-20240307", label: "Claude Haiku 3" },
|
|
28495
|
-
{ id: "anthropic/claude-3-opus-20240229", label: "Claude Opus 3" },
|
|
28496
|
-
{ id: "anthropic/claude-3-sonnet-20240229", label: "Claude Sonnet 3" },
|
|
28497
28484
|
{ id: "anthropic/claude-fable-5", label: "Claude Fable 5" },
|
|
28498
|
-
{ id: "anthropic/claude-
|
|
28499
|
-
{ id: "anthropic/claude-haiku-4-5-20251001", label: "Claude Haiku 4.5" },
|
|
28500
|
-
{ id: "anthropic/claude-opus-4-0", label: "Claude Opus 4 (latest)" },
|
|
28501
|
-
{ id: "anthropic/claude-opus-4-1", label: "Claude Opus 4.1 (latest)" },
|
|
28502
|
-
{ id: "anthropic/claude-opus-4-1-20250805", label: "Claude Opus 4.1" },
|
|
28485
|
+
{ id: "anthropic/claude-3-opus-20240229", label: "Claude Opus 3" },
|
|
28503
28486
|
{ id: "anthropic/claude-opus-4-20250514", label: "Claude Opus 4" },
|
|
28504
|
-
{ id: "anthropic/claude-opus-4-5", label: "Claude Opus 4.5 (latest)" },
|
|
28505
28487
|
{ id: "anthropic/claude-opus-4-5-20251101", label: "Claude Opus 4.5" },
|
|
28506
|
-
{ id: "anthropic/claude-opus-4-
|
|
28488
|
+
{ id: "anthropic/claude-opus-4-1-20250805", label: "Claude Opus 4.1" },
|
|
28489
|
+
{ id: "anthropic/claude-opus-4-8", label: "Claude Opus 4.8" },
|
|
28507
28490
|
{ id: "anthropic/claude-opus-4-7", label: "Claude Opus 4.7" },
|
|
28508
|
-
{ id: "anthropic/claude-
|
|
28491
|
+
{ id: "anthropic/claude-opus-4-6", label: "Claude Opus 4.6" },
|
|
28492
|
+
{ id: "anthropic/claude-opus-4-5", label: "Claude Opus 4.5 (latest)" },
|
|
28493
|
+
{ id: "anthropic/claude-opus-4-1", label: "Claude Opus 4.1 (latest)" },
|
|
28494
|
+
{ id: "anthropic/claude-opus-4-0", label: "Claude Opus 4 (latest)" },
|
|
28495
|
+
{ id: "anthropic/claude-3-7-sonnet-20250219", label: "Claude Sonnet 3.7" },
|
|
28496
|
+
{ id: "anthropic/claude-3-5-sonnet-20241022", label: "Claude Sonnet 3.5 v2" },
|
|
28497
|
+
{ id: "anthropic/claude-3-5-sonnet-20240620", label: "Claude Sonnet 3.5" },
|
|
28498
|
+
{ id: "anthropic/claude-3-sonnet-20240229", label: "Claude Sonnet 3" },
|
|
28509
28499
|
{ id: "anthropic/claude-sonnet-4-20250514", label: "Claude Sonnet 4" },
|
|
28510
|
-
{ id: "anthropic/claude-sonnet-4-5", label: "Claude Sonnet 4.5 (latest)" },
|
|
28511
28500
|
{ id: "anthropic/claude-sonnet-4-5-20250929", label: "Claude Sonnet 4.5" },
|
|
28512
|
-
{ id: "anthropic/claude-sonnet-
|
|
28501
|
+
{ id: "anthropic/claude-sonnet-5", label: "Claude Sonnet 5" },
|
|
28502
|
+
{ id: "anthropic/claude-sonnet-4-6", label: "Claude Sonnet 4.6" },
|
|
28503
|
+
{ id: "anthropic/claude-sonnet-4-5", label: "Claude Sonnet 4.5 (latest)" },
|
|
28504
|
+
{ id: "anthropic/claude-sonnet-4-0", label: "Claude Sonnet 4 (latest)" },
|
|
28505
|
+
{ id: "anthropic/claude-3-haiku-20240307", label: "Claude Haiku 3" },
|
|
28506
|
+
{ id: "anthropic/claude-haiku-4-5-20251001", label: "Claude Haiku 4.5" },
|
|
28507
|
+
{ id: "anthropic/claude-haiku-4-5", label: "Claude Haiku 4.5 (latest)" }
|
|
28513
28508
|
],
|
|
28514
28509
|
"google": [
|
|
28515
28510
|
{ id: "google/gemini-3.1-pro-preview", label: "Gemini 3.1 Pro Preview" },
|
|
28516
|
-
{ id: "google/gemini-
|
|
28517
|
-
{ id: "google/gemini-
|
|
28518
|
-
{ id: "google/gemini-2.5-flash", label: "Gemini 2.5 Flash" },
|
|
28519
|
-
{ id: "google/gemini-2.5-flash-lite", label: "Gemini 2.5 Flash-Lite" },
|
|
28511
|
+
{ id: "google/gemini-3.1-pro-preview-customtools", label: "Gemini 3.1 Pro Preview Custom Tools" },
|
|
28512
|
+
{ id: "google/gemini-3-pro-preview", label: "Gemini 3 Pro Preview" },
|
|
28520
28513
|
{ id: "google/gemini-2.5-pro", label: "Gemini 2.5 Pro" },
|
|
28514
|
+
{ id: "google/gemma-4-31b-it", label: "Gemma 4 31B IT" },
|
|
28515
|
+
{ id: "google/gemma-4-26b-a4b-it", label: "Gemma 4 26B A4B IT" },
|
|
28516
|
+
{ id: "google/gemini-3.5-flash", label: "Gemini 3.5 Flash" },
|
|
28521
28517
|
{ id: "google/gemini-3-flash-preview", label: "Gemini 3 Flash Preview" },
|
|
28522
|
-
{ id: "google/gemini-
|
|
28518
|
+
{ id: "google/gemini-2.5-flash", label: "Gemini 2.5 Flash" },
|
|
28519
|
+
{ id: "google/gemini-2.0-flash", label: "Gemini 2.0 Flash" },
|
|
28520
|
+
{ id: "google/gemini-flash-latest", label: "Gemini Flash Latest" },
|
|
28523
28521
|
{ id: "google/gemini-3.1-flash-lite", label: "Gemini 3.1 Flash Lite" },
|
|
28524
28522
|
{ id: "google/gemini-3.1-flash-lite-preview", label: "Gemini 3.1 Flash Lite Preview" },
|
|
28525
|
-
{ id: "google/gemini-
|
|
28526
|
-
{ id: "google/gemini-
|
|
28527
|
-
{ id: "google/gemini-flash-latest", label: "Gemini Flash Latest" }
|
|
28528
|
-
{ id: "google/gemini-flash-lite-latest", label: "Gemini Flash-Lite Latest" },
|
|
28529
|
-
{ id: "google/gemma-4-26b-a4b-it", label: "Gemma 4 26B A4B IT" },
|
|
28530
|
-
{ id: "google/gemma-4-31b-it", label: "Gemma 4 31B IT" },
|
|
28531
|
-
{ id: "google/gemma-4-E2B-it", label: "Gemma 4 E2B IT" },
|
|
28532
|
-
{ id: "google/gemma-4-E4B-it", label: "Gemma 4 E4B IT" }
|
|
28523
|
+
{ id: "google/gemini-2.5-flash-lite", label: "Gemini 2.5 Flash-Lite" },
|
|
28524
|
+
{ id: "google/gemini-2.0-flash-lite", label: "Gemini 2.0 Flash-Lite" },
|
|
28525
|
+
{ id: "google/gemini-flash-lite-latest", label: "Gemini Flash-Lite Latest" }
|
|
28533
28526
|
],
|
|
28534
28527
|
"xai": [
|
|
28535
|
-
{ id: "xai/grok-4.20-0309-reasoning", label: "Grok 4.20 (Reasoning)" },
|
|
28536
|
-
{ id: "xai/grok-3", label: "Grok 3" },
|
|
28537
|
-
{ id: "xai/grok-3-fast", label: "Grok 3 Fast" },
|
|
28538
28528
|
{ id: "xai/grok-4.20-0309-non-reasoning", label: "Grok 4.20 (Non-Reasoning)" },
|
|
28529
|
+
{ id: "xai/grok-4.20-0309-reasoning", label: "Grok 4.20 (Reasoning)" },
|
|
28530
|
+
{ id: "xai/grok-code-fast-1", label: "Grok Code Fast 1" },
|
|
28539
28531
|
{ id: "xai/grok-4.3", label: "Grok 4.3" },
|
|
28532
|
+
{ id: "xai/grok-3", label: "Grok 3" },
|
|
28540
28533
|
{ id: "xai/grok-build-0.1", label: "Grok Build 0.1" },
|
|
28541
|
-
{ id: "xai/grok-
|
|
28534
|
+
{ id: "xai/grok-3-fast", label: "Grok 3 Fast" }
|
|
28542
28535
|
],
|
|
28543
28536
|
"xiaomi": [
|
|
28544
28537
|
{ id: "xiaomi/mimo-v2.5-pro", label: "MiMo-V2.5-Pro" },
|
|
28545
|
-
{ id: "xiaomi/mimo-v2-
|
|
28546
|
-
{ id: "xiaomi/mimo-v2-omni", label: "MiMo-V2-Omni" },
|
|
28538
|
+
{ id: "xiaomi/mimo-v2.5-pro-ultraspeed", label: "MiMo-V2.5-Pro-UltraSpeed" },
|
|
28547
28539
|
{ id: "xiaomi/mimo-v2-pro", label: "MiMo-V2-Pro" },
|
|
28548
28540
|
{ id: "xiaomi/mimo-v2.5", label: "MiMo-V2.5" },
|
|
28549
|
-
{ id: "xiaomi/mimo-v2
|
|
28541
|
+
{ id: "xiaomi/mimo-v2-omni", label: "MiMo-V2-Omni" },
|
|
28542
|
+
{ id: "xiaomi/mimo-v2-flash", label: "MiMo-V2-Flash" }
|
|
28550
28543
|
]
|
|
28551
28544
|
};
|
|
28552
28545
|
|
|
@@ -43086,6 +43079,9 @@ var agentApiServerInfoResponseSchema = passthroughObject({
|
|
|
43086
43079
|
})),
|
|
43087
43080
|
agents: external_exports.array(passthroughObject({
|
|
43088
43081
|
name: external_exports.string(),
|
|
43082
|
+
status: external_exports.string().optional(),
|
|
43083
|
+
activity: external_exports.string().nullable().optional(),
|
|
43084
|
+
activityDetail: external_exports.string().nullable().optional(),
|
|
43089
43085
|
role: external_exports.enum(["owner", "admin", "member"]).nullable().optional()
|
|
43090
43086
|
})),
|
|
43091
43087
|
humans: external_exports.array(passthroughObject({
|
|
@@ -44844,6 +44840,45 @@ var BUILTIN_RUNTIME_HOST_PROVIDER_ENV_SCRUB_KEYS = Array.from(/* @__PURE__ */ ne
|
|
|
44844
44840
|
var PI_BUILTIN_PROVIDER_MODELS = PI_BUILTIN_PROVIDER_MODELS_GENERATED;
|
|
44845
44841
|
var AGENT_ACTIVITIES = ["online", "thinking", "working", "error", "offline"];
|
|
44846
44842
|
var isAgentActivity = makeIsMember(AGENT_ACTIVITIES);
|
|
44843
|
+
var AGENT_ACTIVITY_DETAIL_KINDS = [
|
|
44844
|
+
"none",
|
|
44845
|
+
"message_received",
|
|
44846
|
+
"starting",
|
|
44847
|
+
"runtime_starting",
|
|
44848
|
+
"idle",
|
|
44849
|
+
"running_command",
|
|
44850
|
+
"checking_messages",
|
|
44851
|
+
"compacting_context",
|
|
44852
|
+
"compaction_finished",
|
|
44853
|
+
"compaction_stale",
|
|
44854
|
+
"reviewing_changes",
|
|
44855
|
+
"review_finished",
|
|
44856
|
+
"runtime_reconnecting",
|
|
44857
|
+
"runtime_error",
|
|
44858
|
+
"runtime_crashed",
|
|
44859
|
+
"runtime_unavailable",
|
|
44860
|
+
"runtime_stalled",
|
|
44861
|
+
"stalled_recovery",
|
|
44862
|
+
"stopped",
|
|
44863
|
+
"ready",
|
|
44864
|
+
"runtime_interrupted",
|
|
44865
|
+
"machine_disconnected",
|
|
44866
|
+
"daemon_activity",
|
|
44867
|
+
"external_activity",
|
|
44868
|
+
"synthetic_repair",
|
|
44869
|
+
"slock_action",
|
|
44870
|
+
"system_message",
|
|
44871
|
+
// Generic structured runtime-progress heartbeat (Claude --include-partial-messages
|
|
44872
|
+
// stream events / system status) — a "working" liveness signal with no rendered
|
|
44873
|
+
// content. NOT a subagent. (APM 1.6 6a)
|
|
44874
|
+
"runtime_progress",
|
|
44875
|
+
// A subagent (Claude `Agent` tool) lifecycle/activity row, marked from explicit
|
|
44876
|
+
// parent_tool_use_id / task-lifecycle lineage — never inferred from display text.
|
|
44877
|
+
// (APM 1.6 6b)
|
|
44878
|
+
"subagent_activity",
|
|
44879
|
+
"other"
|
|
44880
|
+
];
|
|
44881
|
+
var isAgentActivityDetailKind = makeIsMember(AGENT_ACTIVITY_DETAIL_KINDS);
|
|
44847
44882
|
var VALID_ACTIVITIES = new Set(AGENT_ACTIVITIES);
|
|
44848
44883
|
var EXTERNAL_AGENT_ACTIVITY_EVENT_SCHEMA = "raft-activity.v1";
|
|
44849
44884
|
var EXTERNAL_AGENT_ACTIVITY_DRAIN_SCHEMA = "raft-activity-drain.v1";
|
|
@@ -44883,13 +44918,15 @@ var RUNTIME_MODELS = {
|
|
|
44883
44918
|
builtin: Object.values(PI_BUILTIN_PROVIDER_MODELS).flat().map((model) => ({ id: model.id, label: model.label || formatRuntimeProviderModelLabel(model.id), verified: "launchable" })),
|
|
44884
44919
|
claude: [
|
|
44885
44920
|
{ id: "opus", label: "Claude Opus" },
|
|
44921
|
+
{ id: "fable", label: "Claude Fable" },
|
|
44922
|
+
{ id: "sonnet", label: "Claude Sonnet" },
|
|
44923
|
+
{ id: "haiku", label: "Claude Haiku" },
|
|
44886
44924
|
{ id: "claude-opus-4-8", label: "Claude Opus 4.8" },
|
|
44887
44925
|
{ id: "claude-opus-4-7", label: "Claude Opus 4.7" },
|
|
44888
44926
|
{ id: "claude-opus-4-6", label: "Claude Opus 4.6" },
|
|
44889
|
-
{ id: "fable", label: "Claude Fable" },
|
|
44890
|
-
{ id: "sonnet", label: "Claude Sonnet" },
|
|
44927
|
+
{ id: "claude-fable-5", label: "Claude Fable 5" },
|
|
44928
|
+
{ id: "claude-sonnet-5", label: "Claude Sonnet 5" },
|
|
44891
44929
|
{ id: "claude-sonnet-4-6", label: "Claude Sonnet 4.6" },
|
|
44892
|
-
{ id: "haiku", label: "Claude Haiku" },
|
|
44893
44930
|
{ id: "claude-haiku-4-5", label: "Claude Haiku 4.5" }
|
|
44894
44931
|
],
|
|
44895
44932
|
codex: [
|
|
@@ -48264,6 +48301,13 @@ function formatRuntimeContext(ctx) {
|
|
|
48264
48301
|
function roleLabel(role) {
|
|
48265
48302
|
return role && role !== "member" ? ` (${role})` : "";
|
|
48266
48303
|
}
|
|
48304
|
+
function agentStatusLabel(agent) {
|
|
48305
|
+
const lifecycle2 = agent.status?.trim() || "unknown";
|
|
48306
|
+
const activity = agent.activity?.trim();
|
|
48307
|
+
if (!activity) return lifecycle2;
|
|
48308
|
+
const activityWithDetail = agent.activityDetail?.trim() ? `${activity}: ${agent.activityDetail.trim()}` : activity;
|
|
48309
|
+
return activity === lifecycle2 ? lifecycle2 : `${lifecycle2}; ${activityWithDetail}`;
|
|
48310
|
+
}
|
|
48267
48311
|
function formatCurrentAgent(data) {
|
|
48268
48312
|
if (!data.serverRole) return "";
|
|
48269
48313
|
const lines = ["### Current Agent"];
|
|
@@ -48298,8 +48342,9 @@ function formatServerInfo(data) {
|
|
|
48298
48342
|
if (agents.length > 0) {
|
|
48299
48343
|
for (const a of agents) {
|
|
48300
48344
|
const role = roleLabel(a.role);
|
|
48301
|
-
|
|
48302
|
-
|
|
48345
|
+
const status = agentStatusLabel(a);
|
|
48346
|
+
text += a.description ? ` - @${a.name} (${status})${role} \u2014 ${a.description}
|
|
48347
|
+
` : ` - @${a.name} (${status})${role}
|
|
48303
48348
|
`;
|
|
48304
48349
|
}
|
|
48305
48350
|
} else {
|
|
@@ -48335,8 +48380,9 @@ function formatChannelMembers(data) {
|
|
|
48335
48380
|
if (agents.length > 0) {
|
|
48336
48381
|
for (const a of agents) {
|
|
48337
48382
|
const role = roleLabel(a.role);
|
|
48338
|
-
|
|
48339
|
-
|
|
48383
|
+
const status = agentStatusLabel(a);
|
|
48384
|
+
text += a.description ? ` - @${a.name} (${status})${role} \u2014 ${a.description}
|
|
48385
|
+
` : ` - @${a.name} (${status})${role}
|
|
48340
48386
|
`;
|
|
48341
48387
|
}
|
|
48342
48388
|
} else {
|
|
@@ -50090,7 +50136,8 @@ var messageSendCommand = defineCommand(
|
|
|
50090
50136
|
]
|
|
50091
50137
|
},
|
|
50092
50138
|
async (ctx, positionalContent, opts) => {
|
|
50093
|
-
|
|
50139
|
+
const target = opts.target?.trim() ?? "";
|
|
50140
|
+
if (!target) {
|
|
50094
50141
|
throw cliError("INVALID_ARG", "--target is required");
|
|
50095
50142
|
}
|
|
50096
50143
|
try {
|
|
@@ -50131,14 +50178,14 @@ var messageSendCommand = defineCommand(
|
|
|
50131
50178
|
const agentContext = ctx.loadAgentContext();
|
|
50132
50179
|
const client = ctx.createApiClient(agentContext);
|
|
50133
50180
|
if (opts.sendDraft) {
|
|
50134
|
-
const savedDraft = getSavedDraft(agentContext.agentId,
|
|
50181
|
+
const savedDraft = getSavedDraft(agentContext.agentId, target);
|
|
50135
50182
|
if (!savedDraft) {
|
|
50136
50183
|
throw cliError(
|
|
50137
50184
|
"SEND_DRAFT_NOT_FOUND",
|
|
50138
50185
|
[
|
|
50139
50186
|
"No saved draft exists for this target.",
|
|
50140
50187
|
"To create or update a draft, send message content normally:",
|
|
50141
|
-
` raft message send --target "${
|
|
50188
|
+
` raft message send --target "${target}" <<'${MESSAGE_HEREDOC_DELIMITER}'`,
|
|
50142
50189
|
" message body",
|
|
50143
50190
|
` ${MESSAGE_HEREDOC_DELIMITER}`
|
|
50144
50191
|
].join("\n")
|
|
@@ -50150,15 +50197,15 @@ var messageSendCommand = defineCommand(
|
|
|
50150
50197
|
previousDraftReholdCount = savedDraft.reholdCount;
|
|
50151
50198
|
seenUpToSeq = savedDraft.seenUpToSeq;
|
|
50152
50199
|
} else {
|
|
50153
|
-
const previousDraft = getSavedDraft(agentContext.agentId,
|
|
50200
|
+
const previousDraft = getSavedDraft(agentContext.agentId, target);
|
|
50154
50201
|
previousDraftReholdCount = previousDraft?.reholdCount ?? 0;
|
|
50155
50202
|
seenUpToSeq = previousDraft?.seenUpToSeq;
|
|
50156
50203
|
}
|
|
50157
50204
|
if (seenUpToSeq === void 0) {
|
|
50158
|
-
seenUpToSeq = getConsumedSeq(agentContext.agentId,
|
|
50205
|
+
seenUpToSeq = getConsumedSeq(agentContext.agentId, target);
|
|
50159
50206
|
}
|
|
50160
50207
|
const body = {
|
|
50161
|
-
target
|
|
50208
|
+
target,
|
|
50162
50209
|
content: outgoingContent,
|
|
50163
50210
|
draftReholdCount: previousDraftReholdCount
|
|
50164
50211
|
};
|
|
@@ -50186,21 +50233,21 @@ var messageSendCommand = defineCommand(
|
|
|
50186
50233
|
}
|
|
50187
50234
|
if (data.state === "held") {
|
|
50188
50235
|
if (typeof data.seenUpToSeq === "number" && Number.isFinite(data.seenUpToSeq)) {
|
|
50189
|
-
recordConsumedSeqs(agentContext.agentId, { [
|
|
50236
|
+
recordConsumedSeqs(agentContext.agentId, { [target]: data.seenUpToSeq });
|
|
50190
50237
|
}
|
|
50191
|
-
setSavedDraft(agentContext.agentId,
|
|
50238
|
+
setSavedDraft(agentContext.agentId, target, {
|
|
50192
50239
|
content: outgoingContent,
|
|
50193
50240
|
attachmentIds: outgoingAttachmentIds,
|
|
50194
50241
|
savedAt: Date.now(),
|
|
50195
50242
|
reholdCount: previousDraftReholdCount + 1,
|
|
50196
50243
|
seenUpToSeq: data.seenUpToSeq
|
|
50197
50244
|
});
|
|
50198
|
-
writeText(ctx.io, formatHeldSendOutput(
|
|
50245
|
+
writeText(ctx.io, formatHeldSendOutput(target, data));
|
|
50199
50246
|
return;
|
|
50200
50247
|
}
|
|
50201
|
-
clearSavedDraft(agentContext.agentId,
|
|
50248
|
+
clearSavedDraft(agentContext.agentId, target);
|
|
50202
50249
|
const shortId = data.messageId ? data.messageId.slice(0, 8) : null;
|
|
50203
|
-
const replyHint = shortId ? ` (to reply in this message's thread, use target "${
|
|
50250
|
+
const replyHint = shortId ? ` (to reply in this message's thread, use target "${target.includes(":") ? target : target + ":" + shortId}")` : "";
|
|
50204
50251
|
let unreadSection = "";
|
|
50205
50252
|
if (data.recentUnread && data.recentUnread.length > 0) {
|
|
50206
50253
|
unreadSection = `
|
|
@@ -50212,7 +50259,7 @@ ${formatMessages(data.recentUnread)}`;
|
|
|
50212
50259
|
const mentionSection = pendingMentionActions.length > 0 ? `
|
|
50213
50260
|
|
|
50214
50261
|
${formatPendingMentionActions(pendingMentionActions, { source: "send" }).trimEnd()}` : "";
|
|
50215
|
-
writeText(ctx.io, `Message sent to ${
|
|
50262
|
+
writeText(ctx.io, `Message sent to ${target}. Message ID: ${data.messageId}${replyHint}${mentionSection}${unreadSection}
|
|
50216
50263
|
`);
|
|
50217
50264
|
}
|
|
50218
50265
|
);
|
|
@@ -52307,17 +52354,60 @@ function resolveActionUrl(input) {
|
|
|
52307
52354
|
const baseUrl = safeUrl(base, "action base URL");
|
|
52308
52355
|
return new URL(input.action.endpoint.path, baseUrl);
|
|
52309
52356
|
}
|
|
52310
|
-
function
|
|
52357
|
+
function setCookieHeaderValues(headers) {
|
|
52311
52358
|
const getSetCookie = headers.getSetCookie;
|
|
52312
|
-
|
|
52313
|
-
|
|
52314
|
-
|
|
52359
|
+
return typeof getSetCookie === "function" ? getSetCookie.call(headers) : [headers.get("set-cookie")].filter((value) => Boolean(value));
|
|
52360
|
+
}
|
|
52361
|
+
function defaultCookiePath(pathname) {
|
|
52362
|
+
if (!pathname.startsWith("/") || pathname === "/") return "/";
|
|
52363
|
+
const lastSlash = pathname.lastIndexOf("/");
|
|
52364
|
+
if (lastSlash <= 0) return "/";
|
|
52365
|
+
return pathname.slice(0, lastSlash);
|
|
52366
|
+
}
|
|
52367
|
+
function parseSessionCookie(value, sourceUrl) {
|
|
52368
|
+
const parts = value.split(";").map((part) => part.trim()).filter(Boolean);
|
|
52369
|
+
const pair = parts.shift();
|
|
52370
|
+
if (!pair || !pair.includes("=") || pair.startsWith("=")) return null;
|
|
52371
|
+
const sourceHost = sourceUrl.hostname.toLowerCase();
|
|
52372
|
+
let host = sourceHost;
|
|
52373
|
+
let path9 = defaultCookiePath(sourceUrl.pathname);
|
|
52374
|
+
let secure = false;
|
|
52375
|
+
for (const part of parts) {
|
|
52376
|
+
const separator = part.indexOf("=");
|
|
52377
|
+
const rawName = separator >= 0 ? part.slice(0, separator) : part;
|
|
52378
|
+
const rawValue = separator >= 0 ? part.slice(separator + 1) : "";
|
|
52379
|
+
const name = rawName.trim().toLowerCase();
|
|
52380
|
+
if (name === "secure") {
|
|
52381
|
+
secure = true;
|
|
52382
|
+
} else if (name === "path" && rawValue.trim().startsWith("/")) {
|
|
52383
|
+
path9 = rawValue.trim();
|
|
52384
|
+
} else if (name === "domain") {
|
|
52385
|
+
const domain2 = rawValue.trim().replace(/^\./, "").toLowerCase();
|
|
52386
|
+
if (domain2 !== sourceHost) return null;
|
|
52387
|
+
host = domain2;
|
|
52388
|
+
}
|
|
52389
|
+
}
|
|
52390
|
+
return { pair, host, path: path9, secure };
|
|
52391
|
+
}
|
|
52392
|
+
function cookiePathMatches(requestPath, cookiePath) {
|
|
52393
|
+
if (requestPath === cookiePath) return true;
|
|
52394
|
+
if (cookiePath.endsWith("/")) return requestPath.startsWith(cookiePath);
|
|
52395
|
+
return requestPath.startsWith(`${cookiePath}/`);
|
|
52396
|
+
}
|
|
52397
|
+
function cookieHeaderForUrl(cookies, url2) {
|
|
52398
|
+
const host = url2.hostname.toLowerCase();
|
|
52399
|
+
const valid = cookies.filter((cookie) => cookie.host === host).filter((cookie) => !cookie.secure || url2.protocol === "https:").filter((cookie) => cookiePathMatches(url2.pathname || "/", cookie.path)).map((cookie) => cookie.pair);
|
|
52400
|
+
return valid.length > 0 ? valid.join("; ") : null;
|
|
52401
|
+
}
|
|
52402
|
+
function sessionCookiesFromSetCookie(headers, sourceUrl) {
|
|
52403
|
+
return setCookieHeaderValues(headers).map((value) => parseSessionCookie(value, sourceUrl)).filter((value) => Boolean(value));
|
|
52315
52404
|
}
|
|
52316
52405
|
async function establishServiceSession(input) {
|
|
52317
52406
|
const callbackUrl = buildAgentCallbackHandoffUrl(input.service.returnUrl, input.login.requestId);
|
|
52318
52407
|
if (!callbackUrl) {
|
|
52319
52408
|
throw cliError("INTEGRATION_INVOKE_FAILED", "service return URL cannot be used for Agent Login callback handoff");
|
|
52320
52409
|
}
|
|
52410
|
+
const parsedCallbackUrl = safeUrl(callbackUrl, "service callback URL");
|
|
52321
52411
|
const response = await fetch(callbackUrl, {
|
|
52322
52412
|
method: "GET",
|
|
52323
52413
|
redirect: "manual",
|
|
@@ -52326,14 +52416,14 @@ async function establishServiceSession(input) {
|
|
|
52326
52416
|
if (response.status < 200 || response.status >= 400) {
|
|
52327
52417
|
throw cliError("INTEGRATION_INVOKE_FAILED", `service callback handoff failed with HTTP ${response.status}`);
|
|
52328
52418
|
}
|
|
52329
|
-
const
|
|
52330
|
-
if (
|
|
52419
|
+
const cookies = sessionCookiesFromSetCookie(response.headers, parsedCallbackUrl);
|
|
52420
|
+
if (cookies.length === 0) {
|
|
52331
52421
|
throw cliError(
|
|
52332
52422
|
"INTEGRATION_INVOKE_FAILED",
|
|
52333
52423
|
"service callback handoff did not set a session cookie; the service may not support stateless Agent Login API actions yet"
|
|
52334
52424
|
);
|
|
52335
52425
|
}
|
|
52336
|
-
return
|
|
52426
|
+
return cookies;
|
|
52337
52427
|
}
|
|
52338
52428
|
function appendPayloadAsQuery(url2, payload) {
|
|
52339
52429
|
for (const [key, value] of Object.entries(payload)) {
|
|
@@ -52343,9 +52433,16 @@ function appendPayloadAsQuery(url2, payload) {
|
|
|
52343
52433
|
}
|
|
52344
52434
|
async function invokeHttpAction(input) {
|
|
52345
52435
|
const url2 = new URL(input.url);
|
|
52436
|
+
const cookie = cookieHeaderForUrl(input.cookies, url2);
|
|
52437
|
+
if (!cookie) {
|
|
52438
|
+
throw cliError(
|
|
52439
|
+
"INTEGRATION_INVOKE_FAILED",
|
|
52440
|
+
"service callback handoff did not set a session cookie usable for the action URL; ensure the cookie host and Path cover the action endpoint"
|
|
52441
|
+
);
|
|
52442
|
+
}
|
|
52346
52443
|
const headers = {
|
|
52347
52444
|
accept: "application/json,text/plain,*/*",
|
|
52348
|
-
cookie
|
|
52445
|
+
cookie
|
|
52349
52446
|
};
|
|
52350
52447
|
const init = {
|
|
52351
52448
|
method: input.action.endpoint.method,
|
|
@@ -52524,9 +52621,9 @@ var integrationInvokeCommand = defineCommand(
|
|
|
52524
52621
|
{ suggestedNextAction: "Ask a server owner/admin to approve the integration login request, then rerun the command." }
|
|
52525
52622
|
);
|
|
52526
52623
|
}
|
|
52527
|
-
const
|
|
52624
|
+
const cookies = await establishServiceSession({ login: loginRes.data, service });
|
|
52528
52625
|
const url2 = resolveActionUrl({ service, manifest, action });
|
|
52529
|
-
const result2 = await invokeHttpAction({ url: url2, action, payload,
|
|
52626
|
+
const result2 = await invokeHttpAction({ url: url2, action, payload, cookies });
|
|
52530
52627
|
if (opts.json) {
|
|
52531
52628
|
writeJson(cmdCtx.io, {
|
|
52532
52629
|
ok: true,
|