jawcode 1.0.9 → 1.1.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.
@@ -14714,7 +14714,7 @@ function once(fn) {
14714
14714
  }
14715
14715
  var init_abortable = () => {};
14716
14716
  // ../utils/package.json
14717
- var version2 = "1.0.2", engines;
14717
+ var version2 = "1.1.0", engines;
14718
14718
  var init_package = __esm(() => {
14719
14719
  engines = {
14720
14720
  bun: ">=1.3.14"
@@ -129906,6 +129906,9 @@ function inferAnthropicSupportedEfforts(parsedModel, model) {
129906
129906
  return inferFallbackEfforts(model);
129907
129907
  }
129908
129908
  function inferFallbackEfforts(model) {
129909
+ if (model.api === "kiro-streaming") {
129910
+ return KIRO_REASONING_EFFORTS;
129911
+ }
129909
129912
  if (model.api === "anthropic-messages") {
129910
129913
  return DEFAULT_REASONING_EFFORTS_WITH_XHIGH;
129911
129914
  }
@@ -130026,7 +130029,7 @@ function getCanonicalModelId(modelId) {
130026
130029
  const p = modelId.lastIndexOf("/");
130027
130030
  return p !== -1 ? modelId.slice(p + 1) : modelId;
130028
130031
  }
130029
- var THINKING_EFFORTS, DEFAULT_REASONING_EFFORTS, DEFAULT_REASONING_EFFORTS_WITH_XHIGH, DEFAULT_REASONING_EFFORTS_WITH_MAX, DEFAULT_REASONING_EFFORTS_WITH_XHIGH_AND_MAX, GEMINI_3_PRO_EFFORTS, GEMINI_3_FLASH_EFFORTS, GPT_5_2_PLUS_EFFORTS, GPT_5_5_DEFAULT_EFFORT = "xhigh" /* XHigh */, GPT_5_1_CODEX_MINI_EFFORTS, kEnrichedModel, GEMINI_SUFFIX = "-preview", precomputeTable;
130032
+ var THINKING_EFFORTS, DEFAULT_REASONING_EFFORTS, DEFAULT_REASONING_EFFORTS_WITH_XHIGH, DEFAULT_REASONING_EFFORTS_WITH_MAX, DEFAULT_REASONING_EFFORTS_WITH_XHIGH_AND_MAX, GEMINI_3_PRO_EFFORTS, GEMINI_3_FLASH_EFFORTS, GPT_5_2_PLUS_EFFORTS, GPT_5_5_DEFAULT_EFFORT = "xhigh" /* XHigh */, KIRO_REASONING_EFFORTS, GPT_5_1_CODEX_MINI_EFFORTS, kEnrichedModel, GEMINI_SUFFIX = "-preview", precomputeTable;
130030
130033
  var init_model_thinking = __esm(() => {
130031
130034
  init_tool_choice_capability();
130032
130035
  THINKING_EFFORTS = [
@@ -130063,6 +130066,7 @@ var init_model_thinking = __esm(() => {
130063
130066
  GEMINI_3_PRO_EFFORTS = ["low" /* Low */, "high" /* High */];
130064
130067
  GEMINI_3_FLASH_EFFORTS = ["minimal" /* Minimal */, "low" /* Low */, "medium" /* Medium */, "high" /* High */];
130065
130068
  GPT_5_2_PLUS_EFFORTS = ["low" /* Low */, "medium" /* Medium */, "high" /* High */, "xhigh" /* XHigh */];
130069
+ KIRO_REASONING_EFFORTS = ["low" /* Low */, "medium" /* Medium */, "high" /* High */, "xhigh" /* XHigh */];
130066
130070
  GPT_5_1_CODEX_MINI_EFFORTS = ["medium" /* Medium */, "high" /* High */];
130067
130071
  kEnrichedModel = Symbol("model-thinking.enrichedModel");
130068
130072
  precomputeTable = {};
@@ -149415,6 +149419,25 @@ var init_models3 = __esm(() => {
149415
149419
  contextWindow: 222222,
149416
149420
  maxTokens: 8888
149417
149421
  },
149422
+ "cohere/north-mini-code:free": {
149423
+ id: "cohere/north-mini-code:free",
149424
+ name: "Cohere: North Mini Code (free)",
149425
+ api: "openai-completions",
149426
+ provider: "kilo",
149427
+ baseUrl: "https://api.kilo.ai/api/gateway",
149428
+ reasoning: false,
149429
+ input: [
149430
+ "text"
149431
+ ],
149432
+ cost: {
149433
+ input: 0,
149434
+ output: 0,
149435
+ cacheRead: 0,
149436
+ cacheWrite: 0
149437
+ },
149438
+ contextWindow: 222222,
149439
+ maxTokens: 8888
149440
+ },
149418
149441
  "corethink:free": {
149419
149442
  id: "corethink:free",
149420
149443
  name: "CoreThink (free)",
@@ -150081,6 +150104,25 @@ var init_models3 = __esm(() => {
150081
150104
  maxLevel: "high"
150082
150105
  }
150083
150106
  },
150107
+ "google/gemini-3-pro-image": {
150108
+ id: "google/gemini-3-pro-image",
150109
+ name: "Google: Nano Banana Pro (Gemini 3 Pro Image)",
150110
+ api: "openai-completions",
150111
+ provider: "kilo",
150112
+ baseUrl: "https://api.kilo.ai/api/gateway",
150113
+ reasoning: false,
150114
+ input: [
150115
+ "text"
150116
+ ],
150117
+ cost: {
150118
+ input: 0,
150119
+ output: 0,
150120
+ cacheRead: 0,
150121
+ cacheWrite: 0
150122
+ },
150123
+ contextWindow: 222222,
150124
+ maxTokens: 8888
150125
+ },
150084
150126
  "google/gemini-3-pro-image-preview": {
150085
150127
  id: "google/gemini-3-pro-image-preview",
150086
150128
  name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)",
@@ -150139,6 +150181,25 @@ var init_models3 = __esm(() => {
150139
150181
  ]
150140
150182
  }
150141
150183
  },
150184
+ "google/gemini-3.1-flash-image": {
150185
+ id: "google/gemini-3.1-flash-image",
150186
+ name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image)",
150187
+ api: "openai-completions",
150188
+ provider: "kilo",
150189
+ baseUrl: "https://api.kilo.ai/api/gateway",
150190
+ reasoning: false,
150191
+ input: [
150192
+ "text"
150193
+ ],
150194
+ cost: {
150195
+ input: 0,
150196
+ output: 0,
150197
+ cacheRead: 0,
150198
+ cacheWrite: 0
150199
+ },
150200
+ contextWindow: 222222,
150201
+ maxTokens: 8888
150202
+ },
150142
150203
  "google/gemini-3.1-flash-image-preview": {
150143
150204
  id: "google/gemini-3.1-flash-image-preview",
150144
150205
  name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)",
@@ -150769,6 +150830,25 @@ var init_models3 = __esm(() => {
150769
150830
  contextWindow: 222222,
150770
150831
  maxTokens: 8888
150771
150832
  },
150833
+ "kilo-auto/efficient": {
150834
+ id: "kilo-auto/efficient",
150835
+ name: "Auto Efficient",
150836
+ api: "openai-completions",
150837
+ provider: "kilo",
150838
+ baseUrl: "https://api.kilo.ai/api/gateway",
150839
+ reasoning: false,
150840
+ input: [
150841
+ "text"
150842
+ ],
150843
+ cost: {
150844
+ input: 0,
150845
+ output: 0,
150846
+ cacheRead: 0,
150847
+ cacheWrite: 0
150848
+ },
150849
+ contextWindow: 222222,
150850
+ maxTokens: 8888
150851
+ },
150772
150852
  "kilo-auto/free": {
150773
150853
  id: "kilo-auto/free",
150774
150854
  name: "Auto Free",
@@ -152414,6 +152494,25 @@ var init_models3 = __esm(() => {
152414
152494
  contextWindow: 222222,
152415
152495
  maxTokens: 8888
152416
152496
  },
152497
+ "nex-agi/nex-n2-pro": {
152498
+ id: "nex-agi/nex-n2-pro",
152499
+ name: "Nex AGI: Nex-N2-Pro",
152500
+ api: "openai-completions",
152501
+ provider: "kilo",
152502
+ baseUrl: "https://api.kilo.ai/api/gateway",
152503
+ reasoning: false,
152504
+ input: [
152505
+ "text"
152506
+ ],
152507
+ cost: {
152508
+ input: 0,
152509
+ output: 0,
152510
+ cacheRead: 0,
152511
+ cacheWrite: 0
152512
+ },
152513
+ contextWindow: 222222,
152514
+ maxTokens: 8888
152515
+ },
152417
152516
  "nex-agi/nex-n2-pro:free": {
152418
152517
  id: "nex-agi/nex-n2-pro:free",
152419
152518
  name: "Nex AGI: Nex-N2-Pro (free)",
@@ -153502,7 +153601,7 @@ var init_models3 = __esm(() => {
153502
153601
  },
153503
153602
  "openai/gpt-5.2-chat": {
153504
153603
  id: "openai/gpt-5.2-chat",
153505
- name: "OpenAI: GPT-5.2 Chat (retires Aug 10)",
153604
+ name: "OpenAI: GPT-5.2 Chat",
153506
153605
  api: "openai-completions",
153507
153606
  provider: "kilo",
153508
153607
  baseUrl: "https://api.kilo.ai/api/gateway",
@@ -154441,6 +154540,25 @@ var init_models3 = __esm(() => {
154441
154540
  contextWindow: 222222,
154442
154541
  maxTokens: 8888
154443
154542
  },
154543
+ "poolside/laguna-m.1": {
154544
+ id: "poolside/laguna-m.1",
154545
+ name: "Poolside: Laguna M.1",
154546
+ api: "openai-completions",
154547
+ provider: "kilo",
154548
+ baseUrl: "https://api.kilo.ai/api/gateway",
154549
+ reasoning: false,
154550
+ input: [
154551
+ "text"
154552
+ ],
154553
+ cost: {
154554
+ input: 0,
154555
+ output: 0,
154556
+ cacheRead: 0,
154557
+ cacheWrite: 0
154558
+ },
154559
+ contextWindow: 222222,
154560
+ maxTokens: 8888
154561
+ },
154444
154562
  "poolside/laguna-m.1:free": {
154445
154563
  id: "poolside/laguna-m.1:free",
154446
154564
  name: "Poolside: Laguna M.1 (free)",
@@ -154460,6 +154578,25 @@ var init_models3 = __esm(() => {
154460
154578
  contextWindow: 222222,
154461
154579
  maxTokens: 8888
154462
154580
  },
154581
+ "poolside/laguna-xs.2": {
154582
+ id: "poolside/laguna-xs.2",
154583
+ name: "Poolside: Laguna XS.2",
154584
+ api: "openai-completions",
154585
+ provider: "kilo",
154586
+ baseUrl: "https://api.kilo.ai/api/gateway",
154587
+ reasoning: false,
154588
+ input: [
154589
+ "text"
154590
+ ],
154591
+ cost: {
154592
+ input: 0,
154593
+ output: 0,
154594
+ cacheRead: 0,
154595
+ cacheWrite: 0
154596
+ },
154597
+ contextWindow: 222222,
154598
+ maxTokens: 8888
154599
+ },
154463
154600
  "poolside/laguna-xs.2:free": {
154464
154601
  id: "poolside/laguna-xs.2:free",
154465
154602
  name: "Poolside: Laguna XS.2 (free)",
@@ -157017,6 +157154,30 @@ var init_models3 = __esm(() => {
157017
157154
  maxLevel: "xhigh"
157018
157155
  }
157019
157156
  },
157157
+ "z-ai/glm-5.2": {
157158
+ id: "z-ai/glm-5.2",
157159
+ name: "GLM 5.2",
157160
+ api: "openai-completions",
157161
+ provider: "kilo",
157162
+ baseUrl: "https://api.kilo.ai/api/gateway",
157163
+ reasoning: true,
157164
+ input: [
157165
+ "text"
157166
+ ],
157167
+ cost: {
157168
+ input: 0,
157169
+ output: 0,
157170
+ cacheRead: 0,
157171
+ cacheWrite: 0
157172
+ },
157173
+ contextWindow: 1e6,
157174
+ maxTokens: 131072,
157175
+ thinking: {
157176
+ mode: "effort",
157177
+ minLevel: "minimal",
157178
+ maxLevel: "xhigh"
157179
+ }
157180
+ },
157020
157181
  "z-ai/glm-5v-turbo": {
157021
157182
  id: "z-ai/glm-5v-turbo",
157022
157183
  name: "GLM 5V Turbo",
@@ -157174,6 +157335,417 @@ var init_models3 = __esm(() => {
157174
157335
  }
157175
157336
  }
157176
157337
  },
157338
+ kiro: {
157339
+ auto: {
157340
+ id: "auto",
157341
+ name: "Auto",
157342
+ api: "kiro-streaming",
157343
+ provider: "kiro",
157344
+ baseUrl: "",
157345
+ reasoning: false,
157346
+ input: [
157347
+ "text",
157348
+ "image"
157349
+ ],
157350
+ cost: {
157351
+ input: 0,
157352
+ output: 0,
157353
+ cacheRead: 0,
157354
+ cacheWrite: 0
157355
+ },
157356
+ contextWindow: 1e6,
157357
+ maxTokens: 16384
157358
+ },
157359
+ "claude-haiku-4.5": {
157360
+ id: "claude-haiku-4.5",
157361
+ name: "Anthropic Haiku 4.5 (latest)",
157362
+ api: "kiro-streaming",
157363
+ provider: "kiro",
157364
+ baseUrl: "",
157365
+ reasoning: true,
157366
+ input: [
157367
+ "text",
157368
+ "image"
157369
+ ],
157370
+ cost: {
157371
+ input: 0,
157372
+ output: 0,
157373
+ cacheRead: 0,
157374
+ cacheWrite: 0
157375
+ },
157376
+ contextWindow: 200000,
157377
+ maxTokens: 16384,
157378
+ thinking: {
157379
+ mode: "effort",
157380
+ minLevel: "low",
157381
+ maxLevel: "xhigh",
157382
+ levels: [
157383
+ "low",
157384
+ "medium",
157385
+ "high",
157386
+ "xhigh"
157387
+ ],
157388
+ defaultLevel: "high"
157389
+ }
157390
+ },
157391
+ "claude-opus-4.5": {
157392
+ id: "claude-opus-4.5",
157393
+ name: "Anthropic Opus 4.5 (latest)",
157394
+ api: "kiro-streaming",
157395
+ provider: "kiro",
157396
+ baseUrl: "",
157397
+ reasoning: true,
157398
+ input: [
157399
+ "text",
157400
+ "image"
157401
+ ],
157402
+ cost: {
157403
+ input: 0,
157404
+ output: 0,
157405
+ cacheRead: 0,
157406
+ cacheWrite: 0
157407
+ },
157408
+ contextWindow: 200000,
157409
+ maxTokens: 16384,
157410
+ thinking: {
157411
+ mode: "effort",
157412
+ minLevel: "low",
157413
+ maxLevel: "xhigh",
157414
+ levels: [
157415
+ "low",
157416
+ "medium",
157417
+ "high",
157418
+ "xhigh"
157419
+ ],
157420
+ defaultLevel: "high"
157421
+ }
157422
+ },
157423
+ "claude-opus-4.6": {
157424
+ id: "claude-opus-4.6",
157425
+ name: "Anthropic Opus 4.6",
157426
+ api: "kiro-streaming",
157427
+ provider: "kiro",
157428
+ baseUrl: "",
157429
+ reasoning: true,
157430
+ input: [
157431
+ "text",
157432
+ "image"
157433
+ ],
157434
+ cost: {
157435
+ input: 0,
157436
+ output: 0,
157437
+ cacheRead: 0,
157438
+ cacheWrite: 0
157439
+ },
157440
+ contextWindow: 1e6,
157441
+ maxTokens: 16384,
157442
+ thinking: {
157443
+ mode: "effort",
157444
+ minLevel: "low",
157445
+ maxLevel: "xhigh",
157446
+ levels: [
157447
+ "low",
157448
+ "medium",
157449
+ "high",
157450
+ "xhigh"
157451
+ ],
157452
+ defaultLevel: "high"
157453
+ }
157454
+ },
157455
+ "claude-opus-4.7": {
157456
+ id: "claude-opus-4.7",
157457
+ name: "Anthropic Opus 4.7",
157458
+ api: "kiro-streaming",
157459
+ provider: "kiro",
157460
+ baseUrl: "",
157461
+ reasoning: true,
157462
+ input: [
157463
+ "text",
157464
+ "image"
157465
+ ],
157466
+ cost: {
157467
+ input: 0,
157468
+ output: 0,
157469
+ cacheRead: 0,
157470
+ cacheWrite: 0
157471
+ },
157472
+ contextWindow: 1e6,
157473
+ maxTokens: 16384,
157474
+ thinking: {
157475
+ mode: "effort",
157476
+ minLevel: "low",
157477
+ maxLevel: "xhigh",
157478
+ levels: [
157479
+ "low",
157480
+ "medium",
157481
+ "high",
157482
+ "xhigh"
157483
+ ],
157484
+ defaultLevel: "high"
157485
+ }
157486
+ },
157487
+ "claude-opus-4.8": {
157488
+ id: "claude-opus-4.8",
157489
+ name: "Anthropic Opus 4.8",
157490
+ api: "kiro-streaming",
157491
+ provider: "kiro",
157492
+ baseUrl: "",
157493
+ reasoning: true,
157494
+ input: [
157495
+ "text",
157496
+ "image"
157497
+ ],
157498
+ cost: {
157499
+ input: 0,
157500
+ output: 0,
157501
+ cacheRead: 0,
157502
+ cacheWrite: 0
157503
+ },
157504
+ contextWindow: 1e6,
157505
+ maxTokens: 16384,
157506
+ thinking: {
157507
+ mode: "effort",
157508
+ minLevel: "low",
157509
+ maxLevel: "xhigh",
157510
+ levels: [
157511
+ "low",
157512
+ "medium",
157513
+ "high",
157514
+ "xhigh"
157515
+ ],
157516
+ defaultLevel: "high"
157517
+ }
157518
+ },
157519
+ "claude-sonnet-4": {
157520
+ id: "claude-sonnet-4",
157521
+ name: "Anthropic Sonnet 4",
157522
+ api: "kiro-streaming",
157523
+ provider: "kiro",
157524
+ baseUrl: "",
157525
+ reasoning: true,
157526
+ input: [
157527
+ "text",
157528
+ "image"
157529
+ ],
157530
+ cost: {
157531
+ input: 0,
157532
+ output: 0,
157533
+ cacheRead: 0,
157534
+ cacheWrite: 0
157535
+ },
157536
+ contextWindow: 200000,
157537
+ maxTokens: 16384,
157538
+ thinking: {
157539
+ mode: "effort",
157540
+ minLevel: "low",
157541
+ maxLevel: "xhigh",
157542
+ levels: [
157543
+ "low",
157544
+ "medium",
157545
+ "high",
157546
+ "xhigh"
157547
+ ],
157548
+ defaultLevel: "high"
157549
+ }
157550
+ },
157551
+ "claude-sonnet-4.5": {
157552
+ id: "claude-sonnet-4.5",
157553
+ name: "Anthropic Sonnet 4.5 (latest)",
157554
+ api: "kiro-streaming",
157555
+ provider: "kiro",
157556
+ baseUrl: "",
157557
+ reasoning: true,
157558
+ input: [
157559
+ "text",
157560
+ "image"
157561
+ ],
157562
+ cost: {
157563
+ input: 0,
157564
+ output: 0,
157565
+ cacheRead: 0,
157566
+ cacheWrite: 0
157567
+ },
157568
+ contextWindow: 200000,
157569
+ maxTokens: 16384,
157570
+ thinking: {
157571
+ mode: "effort",
157572
+ minLevel: "low",
157573
+ maxLevel: "xhigh",
157574
+ levels: [
157575
+ "low",
157576
+ "medium",
157577
+ "high",
157578
+ "xhigh"
157579
+ ],
157580
+ defaultLevel: "high"
157581
+ }
157582
+ },
157583
+ "claude-sonnet-4.6": {
157584
+ id: "claude-sonnet-4.6",
157585
+ name: "Anthropic Sonnet 4.6",
157586
+ api: "kiro-streaming",
157587
+ provider: "kiro",
157588
+ baseUrl: "",
157589
+ reasoning: true,
157590
+ input: [
157591
+ "text",
157592
+ "image"
157593
+ ],
157594
+ cost: {
157595
+ input: 0,
157596
+ output: 0,
157597
+ cacheRead: 0,
157598
+ cacheWrite: 0
157599
+ },
157600
+ contextWindow: 1e6,
157601
+ maxTokens: 16384,
157602
+ thinking: {
157603
+ mode: "effort",
157604
+ minLevel: "low",
157605
+ maxLevel: "xhigh",
157606
+ levels: [
157607
+ "low",
157608
+ "medium",
157609
+ "high",
157610
+ "xhigh"
157611
+ ],
157612
+ defaultLevel: "high"
157613
+ }
157614
+ },
157615
+ "deepseek-3.2": {
157616
+ id: "deepseek-3.2",
157617
+ name: "DeepSeek 3.2",
157618
+ api: "kiro-streaming",
157619
+ provider: "kiro",
157620
+ baseUrl: "",
157621
+ reasoning: true,
157622
+ input: [
157623
+ "text",
157624
+ "image"
157625
+ ],
157626
+ cost: {
157627
+ input: 0,
157628
+ output: 0,
157629
+ cacheRead: 0,
157630
+ cacheWrite: 0
157631
+ },
157632
+ contextWindow: 164000,
157633
+ maxTokens: 8192,
157634
+ thinking: {
157635
+ mode: "effort",
157636
+ minLevel: "low",
157637
+ maxLevel: "xhigh",
157638
+ levels: [
157639
+ "low",
157640
+ "medium",
157641
+ "high",
157642
+ "xhigh"
157643
+ ],
157644
+ defaultLevel: "high"
157645
+ }
157646
+ },
157647
+ "glm-5": {
157648
+ id: "glm-5",
157649
+ name: "GLM-5",
157650
+ api: "kiro-streaming",
157651
+ provider: "kiro",
157652
+ baseUrl: "",
157653
+ reasoning: true,
157654
+ input: [
157655
+ "text"
157656
+ ],
157657
+ cost: {
157658
+ input: 0,
157659
+ output: 0,
157660
+ cacheRead: 0,
157661
+ cacheWrite: 0
157662
+ },
157663
+ contextWindow: 200000,
157664
+ maxTokens: 8192,
157665
+ thinking: {
157666
+ mode: "effort",
157667
+ minLevel: "low",
157668
+ maxLevel: "xhigh",
157669
+ levels: [
157670
+ "low",
157671
+ "medium",
157672
+ "high",
157673
+ "xhigh"
157674
+ ],
157675
+ defaultLevel: "high"
157676
+ }
157677
+ },
157678
+ "minimax-m2.1": {
157679
+ id: "minimax-m2.1",
157680
+ name: "MiniMax M2.1",
157681
+ api: "kiro-streaming",
157682
+ provider: "kiro",
157683
+ baseUrl: "",
157684
+ reasoning: false,
157685
+ input: [
157686
+ "text",
157687
+ "image"
157688
+ ],
157689
+ cost: {
157690
+ input: 0,
157691
+ output: 0,
157692
+ cacheRead: 0,
157693
+ cacheWrite: 0
157694
+ },
157695
+ contextWindow: 196000,
157696
+ maxTokens: 8192
157697
+ },
157698
+ "minimax-m2.5": {
157699
+ id: "minimax-m2.5",
157700
+ name: "MiniMax M2.5",
157701
+ api: "kiro-streaming",
157702
+ provider: "kiro",
157703
+ baseUrl: "",
157704
+ reasoning: true,
157705
+ input: [
157706
+ "text"
157707
+ ],
157708
+ cost: {
157709
+ input: 0,
157710
+ output: 0,
157711
+ cacheRead: 0,
157712
+ cacheWrite: 0
157713
+ },
157714
+ contextWindow: 196000,
157715
+ maxTokens: 8192,
157716
+ thinking: {
157717
+ mode: "effort",
157718
+ minLevel: "low",
157719
+ maxLevel: "xhigh",
157720
+ levels: [
157721
+ "low",
157722
+ "medium",
157723
+ "high",
157724
+ "xhigh"
157725
+ ],
157726
+ defaultLevel: "high"
157727
+ }
157728
+ },
157729
+ "qwen3-coder-next": {
157730
+ id: "qwen3-coder-next",
157731
+ name: "Qwen3 Coder Next",
157732
+ api: "kiro-streaming",
157733
+ provider: "kiro",
157734
+ baseUrl: "",
157735
+ reasoning: false,
157736
+ input: [
157737
+ "text"
157738
+ ],
157739
+ cost: {
157740
+ input: 0,
157741
+ output: 0,
157742
+ cacheRead: 0,
157743
+ cacheWrite: 0
157744
+ },
157745
+ contextWindow: 256000,
157746
+ maxTokens: 8192
157747
+ }
157748
+ },
157177
157749
  litellm: {
157178
157750
  "abacusai/Dracarys-72B-Instruct": {
157179
157751
  id: "abacusai/Dracarys-72B-Instruct",
@@ -173866,12 +174438,12 @@ var init_models3 = __esm(() => {
173866
174438
  "image"
173867
174439
  ],
173868
174440
  cost: {
173869
- input: 0.6,
173870
- output: 2.4,
173871
- cacheRead: 0.12,
174441
+ input: 0.3,
174442
+ output: 1.2,
174443
+ cacheRead: 0.06,
173872
174444
  cacheWrite: 0
173873
174445
  },
173874
- contextWindow: 512000,
174446
+ contextWindow: 1e6,
173875
174447
  maxTokens: 128000,
173876
174448
  thinking: {
173877
174449
  mode: "budget",
@@ -174086,12 +174658,12 @@ var init_models3 = __esm(() => {
174086
174658
  "image"
174087
174659
  ],
174088
174660
  cost: {
174089
- input: 0.6,
174090
- output: 2.4,
174091
- cacheRead: 0.12,
174661
+ input: 0.3,
174662
+ output: 1.2,
174663
+ cacheRead: 0.06,
174092
174664
  cacheWrite: 0
174093
174665
  },
174094
- contextWindow: 512000,
174666
+ contextWindow: 1e6,
174095
174667
  maxTokens: 128000,
174096
174668
  thinking: {
174097
174669
  mode: "budget",
@@ -174389,7 +174961,7 @@ var init_models3 = __esm(() => {
174389
174961
  cacheRead: 0,
174390
174962
  cacheWrite: 0
174391
174963
  },
174392
- contextWindow: 512000,
174964
+ contextWindow: 1e6,
174393
174965
  maxTokens: 128000,
174394
174966
  compat: {
174395
174967
  supportsStore: false,
@@ -174693,7 +175265,7 @@ var init_models3 = __esm(() => {
174693
175265
  cacheRead: 0,
174694
175266
  cacheWrite: 0
174695
175267
  },
174696
- contextWindow: 512000,
175268
+ contextWindow: 1e6,
174697
175269
  maxTokens: 128000,
174698
175270
  compat: {
174699
175271
  supportsStore: false,
@@ -190008,6 +190580,31 @@ var init_models3 = __esm(() => {
190008
190580
  maxLevel: "xhigh"
190009
190581
  }
190010
190582
  },
190583
+ "minimaxai/minimax-m3": {
190584
+ id: "minimaxai/minimax-m3",
190585
+ name: "MiniMax-M3",
190586
+ api: "openai-completions",
190587
+ provider: "nvidia",
190588
+ baseUrl: "https://integrate.api.nvidia.com/v1",
190589
+ reasoning: true,
190590
+ input: [
190591
+ "text",
190592
+ "image"
190593
+ ],
190594
+ cost: {
190595
+ input: 0,
190596
+ output: 0,
190597
+ cacheRead: 0,
190598
+ cacheWrite: 0
190599
+ },
190600
+ contextWindow: 1e6,
190601
+ maxTokens: 16384,
190602
+ thinking: {
190603
+ mode: "effort",
190604
+ minLevel: "minimal",
190605
+ maxLevel: "xhigh"
190606
+ }
190607
+ },
190011
190608
  "mistralai/codestral-22b-instruct-v0.1": {
190012
190609
  id: "mistralai/codestral-22b-instruct-v0.1",
190013
190610
  name: "Codestral 22b Instruct V0.1",
@@ -192660,7 +193257,7 @@ var init_models3 = __esm(() => {
192660
193257
  contextWindow: 272000,
192661
193258
  maxTokens: 128000,
192662
193259
  preferWebsockets: true,
192663
- priority: 9,
193260
+ priority: 7,
192664
193261
  thinking: {
192665
193262
  mode: "effort",
192666
193263
  minLevel: "low",
@@ -192902,6 +193499,30 @@ var init_models3 = __esm(() => {
192902
193499
  maxLevel: "xhigh"
192903
193500
  }
192904
193501
  },
193502
+ "glm-5.2": {
193503
+ id: "glm-5.2",
193504
+ name: "GLM-5.2",
193505
+ api: "openai-completions",
193506
+ provider: "opencode-go",
193507
+ baseUrl: "https://opencode.ai/zen/go/v1",
193508
+ reasoning: true,
193509
+ input: [
193510
+ "text"
193511
+ ],
193512
+ cost: {
193513
+ input: 1.4,
193514
+ output: 4.4,
193515
+ cacheRead: 0.26,
193516
+ cacheWrite: 0
193517
+ },
193518
+ contextWindow: 1e6,
193519
+ maxTokens: 131072,
193520
+ thinking: {
193521
+ mode: "effort",
193522
+ minLevel: "minimal",
193523
+ maxLevel: "xhigh"
193524
+ }
193525
+ },
192905
193526
  "kimi-k2.5": {
192906
193527
  id: "kimi-k2.5",
192907
193528
  name: "Kimi K2.5",
@@ -193140,7 +193761,7 @@ var init_models3 = __esm(() => {
193140
193761
  cacheRead: 0.02,
193141
193762
  cacheWrite: 0
193142
193763
  },
193143
- contextWindow: 512000,
193764
+ contextWindow: 1e6,
193144
193765
  maxTokens: 131072,
193145
193766
  thinking: {
193146
193767
  mode: "budget",
@@ -193801,6 +194422,30 @@ var init_models3 = __esm(() => {
193801
194422
  maxLevel: "xhigh"
193802
194423
  }
193803
194424
  },
194425
+ "glm-5.2": {
194426
+ id: "glm-5.2",
194427
+ name: "GLM-5.2",
194428
+ api: "openai-completions",
194429
+ provider: "opencode-zen",
194430
+ baseUrl: "https://opencode.ai/zen/v1",
194431
+ reasoning: true,
194432
+ input: [
194433
+ "text"
194434
+ ],
194435
+ cost: {
194436
+ input: 1.4,
194437
+ output: 4.4,
194438
+ cacheRead: 0.26,
194439
+ cacheWrite: 0
194440
+ },
194441
+ contextWindow: 1e6,
194442
+ maxTokens: 131072,
194443
+ thinking: {
194444
+ mode: "effort",
194445
+ minLevel: "minimal",
194446
+ maxLevel: "xhigh"
194447
+ }
194448
+ },
193804
194449
  "gpt-5": {
193805
194450
  id: "gpt-5",
193806
194451
  name: "GPT-5",
@@ -194934,13 +195579,13 @@ var init_models3 = __esm(() => {
194934
195579
  "image"
194935
195580
  ],
194936
195581
  cost: {
194937
- input: 0.6799999999999999,
195582
+ input: 0.66,
194938
195583
  output: 3.41,
194939
- cacheRead: 0.33999999999999997,
195584
+ cacheRead: 0.144,
194940
195585
  cacheWrite: 0
194941
195586
  },
194942
195587
  contextWindow: 262144,
194943
- maxTokens: 262142,
195588
+ maxTokens: 262144,
194944
195589
  thinking: {
194945
195590
  mode: "effort",
194946
195591
  minLevel: "minimal",
@@ -195685,13 +196330,13 @@ var init_models3 = __esm(() => {
195685
196330
  "text"
195686
196331
  ],
195687
196332
  cost: {
195688
- input: 0.22,
195689
- output: 0.85,
196333
+ input: 0.25,
196334
+ output: 0.7999999999999999,
195690
196335
  cacheRead: 0.06,
195691
196336
  cacheWrite: 0
195692
196337
  },
195693
196338
  contextWindow: 262144,
195694
- maxTokens: 262144,
196339
+ maxTokens: 80000,
195695
196340
  thinking: {
195696
196341
  mode: "effort",
195697
196342
  minLevel: "minimal",
@@ -196023,6 +196668,30 @@ var init_models3 = __esm(() => {
196023
196668
  contextWindow: 128000,
196024
196669
  maxTokens: 4000
196025
196670
  },
196671
+ "cohere/north-mini-code:free": {
196672
+ id: "cohere/north-mini-code:free",
196673
+ name: "Cohere: North Mini Code (free)",
196674
+ api: "openai-completions",
196675
+ provider: "openrouter",
196676
+ baseUrl: "https://openrouter.ai/api/v1",
196677
+ reasoning: true,
196678
+ input: [
196679
+ "text"
196680
+ ],
196681
+ cost: {
196682
+ input: 0,
196683
+ output: 0,
196684
+ cacheRead: 0,
196685
+ cacheWrite: 0
196686
+ },
196687
+ contextWindow: 256000,
196688
+ maxTokens: 64000,
196689
+ thinking: {
196690
+ mode: "effort",
196691
+ minLevel: "minimal",
196692
+ maxLevel: "high"
196693
+ }
196694
+ },
196026
196695
  "deepseek/deepseek-chat": {
196027
196696
  id: "deepseek/deepseek-chat",
196028
196697
  name: "DeepSeek-V3.2 (Non-thinking Mode)",
@@ -196199,7 +196868,7 @@ var init_models3 = __esm(() => {
196199
196868
  cost: {
196200
196869
  input: 0.2288,
196201
196870
  output: 0.3432,
196202
- cacheRead: 0.0252,
196871
+ cacheRead: 0.02288,
196203
196872
  cacheWrite: 0
196204
196873
  },
196205
196874
  contextWindow: 131072,
@@ -196553,13 +197222,42 @@ var init_models3 = __esm(() => {
196553
197222
  cacheWrite: 0.08333333333333334
196554
197223
  },
196555
197224
  contextWindow: 1048576,
196556
- maxTokens: 65536,
197225
+ maxTokens: 65535,
196557
197226
  thinking: {
196558
197227
  mode: "effort",
196559
197228
  minLevel: "minimal",
196560
197229
  maxLevel: "high"
196561
197230
  }
196562
197231
  },
197232
+ "google/gemini-3-pro-image": {
197233
+ id: "google/gemini-3-pro-image",
197234
+ name: "Google: Nano Banana Pro (Gemini 3 Pro Image)",
197235
+ api: "openai-completions",
197236
+ provider: "openrouter",
197237
+ baseUrl: "https://openrouter.ai/api/v1",
197238
+ reasoning: true,
197239
+ input: [
197240
+ "text",
197241
+ "image"
197242
+ ],
197243
+ cost: {
197244
+ input: 2,
197245
+ output: 12,
197246
+ cacheRead: 0.19999999999999998,
197247
+ cacheWrite: 0.375
197248
+ },
197249
+ contextWindow: 65536,
197250
+ maxTokens: 32768,
197251
+ thinking: {
197252
+ mode: "effort",
197253
+ minLevel: "low",
197254
+ maxLevel: "high",
197255
+ levels: [
197256
+ "low",
197257
+ "high"
197258
+ ]
197259
+ }
197260
+ },
196563
197261
  "google/gemini-3-pro-preview": {
196564
197262
  id: "google/gemini-3-pro-preview",
196565
197263
  name: "Gemini 3 Pro Preview",
@@ -196875,7 +197573,7 @@ var init_models3 = __esm(() => {
196875
197573
  cacheWrite: 0
196876
197574
  },
196877
197575
  contextWindow: 262144,
196878
- maxTokens: 32768,
197576
+ maxTokens: 8192,
196879
197577
  thinking: {
196880
197578
  mode: "effort",
196881
197579
  minLevel: "minimal",
@@ -197125,6 +197823,30 @@ var init_models3 = __esm(() => {
197125
197823
  contextWindow: 256000,
197126
197824
  maxTokens: 80000
197127
197825
  },
197826
+ "liquid/lfm-2.5-1.2b-thinking:free": {
197827
+ id: "liquid/lfm-2.5-1.2b-thinking:free",
197828
+ name: "LiquidAI: LFM2.5-1.2B-Thinking (free)",
197829
+ api: "openai-completions",
197830
+ provider: "openrouter",
197831
+ baseUrl: "https://openrouter.ai/api/v1",
197832
+ reasoning: true,
197833
+ input: [
197834
+ "text"
197835
+ ],
197836
+ cost: {
197837
+ input: 0,
197838
+ output: 0,
197839
+ cacheRead: 0,
197840
+ cacheWrite: 0
197841
+ },
197842
+ contextWindow: 32768,
197843
+ maxTokens: 8888,
197844
+ thinking: {
197845
+ mode: "effort",
197846
+ minLevel: "minimal",
197847
+ maxLevel: "high"
197848
+ }
197849
+ },
197128
197850
  "meituan/longcat-flash-chat": {
197129
197851
  id: "meituan/longcat-flash-chat",
197130
197852
  name: "Meituan: LongCat Flash Chat",
@@ -197381,8 +198103,8 @@ var init_models3 = __esm(() => {
197381
198103
  "text"
197382
198104
  ],
197383
198105
  cost: {
197384
- input: 0.15,
197385
- output: 0.8999999999999999,
198106
+ input: 0.12,
198107
+ output: 0.48,
197386
198108
  cacheRead: 0.049999999999999996,
197387
198109
  cacheWrite: 0
197388
198110
  },
@@ -197432,13 +198154,13 @@ var init_models3 = __esm(() => {
197432
198154
  "text"
197433
198155
  ],
197434
198156
  cost: {
197435
- input: 0.25,
197436
- output: 1,
198157
+ input: 0.18,
198158
+ output: 0.72,
197437
198159
  cacheRead: 0.049999999999999996,
197438
198160
  cacheWrite: 0
197439
198161
  },
197440
198162
  contextWindow: 204800,
197441
- maxTokens: 131072,
198163
+ maxTokens: 196608,
197442
198164
  thinking: {
197443
198165
  mode: "effort",
197444
198166
  minLevel: "minimal",
@@ -198056,7 +198778,7 @@ var init_models3 = __esm(() => {
198056
198778
  cost: {
198057
198779
  input: 0.6,
198058
198780
  output: 2.5,
198059
- cacheRead: 0.15,
198781
+ cacheRead: 0.6,
198060
198782
  cacheWrite: 0
198061
198783
  },
198062
198784
  contextWindow: 262144,
@@ -198104,13 +198826,13 @@ var init_models3 = __esm(() => {
198104
198826
  "image"
198105
198827
  ],
198106
198828
  cost: {
198107
- input: 0.6799999999999999,
198829
+ input: 0.66,
198108
198830
  output: 3.41,
198109
- cacheRead: 0.33999999999999997,
198831
+ cacheRead: 0.144,
198110
198832
  cacheWrite: 0
198111
198833
  },
198112
198834
  contextWindow: 262144,
198113
- maxTokens: 262142,
198835
+ maxTokens: 262144,
198114
198836
  thinking: {
198115
198837
  mode: "effort",
198116
198838
  minLevel: "minimal",
@@ -198154,13 +198876,13 @@ var init_models3 = __esm(() => {
198154
198876
  "image"
198155
198877
  ],
198156
198878
  cost: {
198157
- input: 0.75,
198879
+ input: 0.74,
198158
198880
  output: 3.5,
198159
- cacheRead: 0.16,
198881
+ cacheRead: 0.15,
198160
198882
  cacheWrite: 0
198161
198883
  },
198162
198884
  contextWindow: 262144,
198163
- maxTokens: 262144,
198885
+ maxTokens: 16384,
198164
198886
  thinking: {
198165
198887
  mode: "effort",
198166
198888
  minLevel: "minimal",
@@ -198386,13 +199108,13 @@ var init_models3 = __esm(() => {
198386
199108
  "text"
198387
199109
  ],
198388
199110
  cost: {
198389
- input: 0.09,
198390
- output: 0.44999999999999996,
199111
+ input: 0.08499999999999999,
199112
+ output: 0.39999999999999997,
198391
199113
  cacheRead: 0.09999999999999999,
198392
199114
  cacheWrite: 0
198393
199115
  },
198394
199116
  contextWindow: 1e6,
198395
- maxTokens: 262144,
199117
+ maxTokens: 16384,
198396
199118
  thinking: {
198397
199119
  mode: "effort",
198398
199120
  minLevel: "minimal",
@@ -198435,8 +199157,8 @@ var init_models3 = __esm(() => {
198435
199157
  ],
198436
199158
  cost: {
198437
199159
  input: 0.5,
198438
- output: 2.5,
198439
- cacheRead: 0.15,
199160
+ output: 2.2,
199161
+ cacheRead: 0.09999999999999999,
198440
199162
  cacheWrite: 0
198441
199163
  },
198442
199164
  contextWindow: 1e6,
@@ -199557,13 +200279,13 @@ var init_models3 = __esm(() => {
199557
200279
  "text"
199558
200280
  ],
199559
200281
  cost: {
199560
- input: 0.039,
199561
- output: 0.18,
200282
+ input: 0.03,
200283
+ output: 0.15,
199562
200284
  cacheRead: 0,
199563
200285
  cacheWrite: 0
199564
200286
  },
199565
200287
  contextWindow: 131072,
199566
- maxTokens: 65536,
200288
+ maxTokens: 131072,
199567
200289
  thinking: {
199568
200290
  mode: "effort",
199569
200291
  minLevel: "minimal",
@@ -199659,7 +200381,7 @@ var init_models3 = __esm(() => {
199659
200381
  cacheWrite: 0
199660
200382
  },
199661
200383
  contextWindow: 131072,
199662
- maxTokens: 8192,
200384
+ maxTokens: 32768,
199663
200385
  thinking: {
199664
200386
  mode: "effort",
199665
200387
  minLevel: "minimal",
@@ -199679,7 +200401,7 @@ var init_models3 = __esm(() => {
199679
200401
  cost: {
199680
200402
  input: 0.075,
199681
200403
  output: 0.3,
199682
- cacheRead: 0.037,
200404
+ cacheRead: 0.0375,
199683
200405
  cacheWrite: 0
199684
200406
  },
199685
200407
  contextWindow: 131072,
@@ -200077,6 +200799,30 @@ var init_models3 = __esm(() => {
200077
200799
  supportsToolChoice: false
200078
200800
  }
200079
200801
  },
200802
+ "poolside/laguna-m.1": {
200803
+ id: "poolside/laguna-m.1",
200804
+ name: "Poolside: Laguna M.1",
200805
+ api: "openai-completions",
200806
+ provider: "openrouter",
200807
+ baseUrl: "https://openrouter.ai/api/v1",
200808
+ reasoning: true,
200809
+ input: [
200810
+ "text"
200811
+ ],
200812
+ cost: {
200813
+ input: 0.19999999999999998,
200814
+ output: 0.39999999999999997,
200815
+ cacheRead: 0.09999999999999999,
200816
+ cacheWrite: 0
200817
+ },
200818
+ contextWindow: 262144,
200819
+ maxTokens: 32768,
200820
+ thinking: {
200821
+ mode: "effort",
200822
+ minLevel: "minimal",
200823
+ maxLevel: "high"
200824
+ }
200825
+ },
200080
200826
  "poolside/laguna-m.1:free": {
200081
200827
  id: "poolside/laguna-m.1:free",
200082
200828
  name: "Poolside: Laguna M.1 (free)",
@@ -200101,6 +200847,30 @@ var init_models3 = __esm(() => {
200101
200847
  maxLevel: "high"
200102
200848
  }
200103
200849
  },
200850
+ "poolside/laguna-xs.2": {
200851
+ id: "poolside/laguna-xs.2",
200852
+ name: "Poolside: Laguna XS.2",
200853
+ api: "openai-completions",
200854
+ provider: "openrouter",
200855
+ baseUrl: "https://openrouter.ai/api/v1",
200856
+ reasoning: true,
200857
+ input: [
200858
+ "text"
200859
+ ],
200860
+ cost: {
200861
+ input: 0.09999999999999999,
200862
+ output: 0.19999999999999998,
200863
+ cacheRead: 0.049999999999999996,
200864
+ cacheWrite: 0
200865
+ },
200866
+ contextWindow: 262144,
200867
+ maxTokens: 32768,
200868
+ thinking: {
200869
+ mode: "effort",
200870
+ minLevel: "minimal",
200871
+ maxLevel: "high"
200872
+ }
200873
+ },
200104
200874
  "poolside/laguna-xs.2:free": {
200105
200875
  id: "poolside/laguna-xs.2:free",
200106
200876
  name: "Poolside: Laguna XS.2 (free)",
@@ -201032,7 +201802,7 @@ var init_models3 = __esm(() => {
201032
201802
  cacheWrite: 0
201033
201803
  },
201034
201804
  contextWindow: 262144,
201035
- maxTokens: 262144,
201805
+ maxTokens: 81920,
201036
201806
  thinking: {
201037
201807
  mode: "effort",
201038
201808
  minLevel: "minimal",
@@ -201051,13 +201821,13 @@ var init_models3 = __esm(() => {
201051
201821
  "image"
201052
201822
  ],
201053
201823
  cost: {
201054
- input: 0.39,
201055
- output: 2.34,
201824
+ input: 0.385,
201825
+ output: 2.4499999999999997,
201056
201826
  cacheRead: 0.195,
201057
201827
  cacheWrite: 0
201058
201828
  },
201059
- contextWindow: 262144,
201060
- maxTokens: 65536,
201829
+ contextWindow: 256000,
201830
+ maxTokens: 8192,
201061
201831
  thinking: {
201062
201832
  mode: "effort",
201063
201833
  minLevel: "minimal",
@@ -201176,8 +201946,8 @@ var init_models3 = __esm(() => {
201176
201946
  "image"
201177
201947
  ],
201178
201948
  cost: {
201179
- input: 0.28850000000000003,
201180
- output: 3.17,
201949
+ input: 0.2596,
201950
+ output: 2.3850000000000002,
201181
201951
  cacheRead: 0,
201182
201952
  cacheWrite: 0
201183
201953
  },
@@ -201201,7 +201971,7 @@ var init_models3 = __esm(() => {
201201
201971
  "image"
201202
201972
  ],
201203
201973
  cost: {
201204
- input: 0.15,
201974
+ input: 0.14,
201205
201975
  output: 1,
201206
201976
  cacheRead: 0.049999999999999996,
201207
201977
  cacheWrite: 0
@@ -201468,6 +202238,31 @@ var init_models3 = __esm(() => {
201468
202238
  contextWindow: 256000,
201469
202239
  maxTokens: 128000
201470
202240
  },
202241
+ "sakana/fugu-ultra": {
202242
+ id: "sakana/fugu-ultra",
202243
+ name: "Sakana: Fugu Ultra",
202244
+ api: "openai-completions",
202245
+ provider: "openrouter",
202246
+ baseUrl: "https://openrouter.ai/api/v1",
202247
+ reasoning: true,
202248
+ input: [
202249
+ "text",
202250
+ "image"
202251
+ ],
202252
+ cost: {
202253
+ input: 5,
202254
+ output: 30,
202255
+ cacheRead: 0.5,
202256
+ cacheWrite: 0
202257
+ },
202258
+ contextWindow: 1e6,
202259
+ maxTokens: 128000,
202260
+ thinking: {
202261
+ mode: "effort",
202262
+ minLevel: "minimal",
202263
+ maxLevel: "high"
202264
+ }
202265
+ },
201471
202266
  "sao10k/l3-euryale-70b": {
201472
202267
  id: "sao10k/l3-euryale-70b",
201473
202268
  name: "Sao10k: Llama 3 Euryale 70B v2.1",
@@ -202135,7 +202930,7 @@ var init_models3 = __esm(() => {
202135
202930
  "image"
202136
202931
  ],
202137
202932
  cost: {
202138
- input: 0.14,
202933
+ input: 0.105,
202139
202934
  output: 0.28,
202140
202935
  cacheRead: 0.0028,
202141
202936
  cacheWrite: 0
@@ -202226,13 +203021,13 @@ var init_models3 = __esm(() => {
202226
203021
  "text"
202227
203022
  ],
202228
203023
  cost: {
202229
- input: 0.125,
203024
+ input: 0.13,
202230
203025
  output: 0.85,
202231
- cacheRead: 0.06,
203026
+ cacheRead: 0.024999999999999998,
202232
203027
  cacheWrite: 0
202233
203028
  },
202234
203029
  contextWindow: 131072,
202235
- maxTokens: 131070,
203030
+ maxTokens: 98304,
202236
203031
  thinking: {
202237
203032
  mode: "effort",
202238
203033
  minLevel: "minimal",
@@ -202481,6 +203276,30 @@ var init_models3 = __esm(() => {
202481
203276
  maxLevel: "high"
202482
203277
  }
202483
203278
  },
203279
+ "z-ai/glm-5.2": {
203280
+ id: "z-ai/glm-5.2",
203281
+ name: "GLM 5.2",
203282
+ api: "openai-completions",
203283
+ provider: "openrouter",
203284
+ baseUrl: "https://openrouter.ai/api/v1",
203285
+ reasoning: true,
203286
+ input: [
203287
+ "text"
203288
+ ],
203289
+ cost: {
203290
+ input: 0.95,
203291
+ output: 3,
203292
+ cacheRead: 0.18,
203293
+ cacheWrite: 0
203294
+ },
203295
+ contextWindow: 1048576,
203296
+ maxTokens: 32768,
203297
+ thinking: {
203298
+ mode: "effort",
203299
+ minLevel: "minimal",
203300
+ maxLevel: "high"
203301
+ }
203302
+ },
202484
203303
  "z-ai/glm-5v-turbo": {
202485
203304
  id: "z-ai/glm-5v-turbo",
202486
203305
  name: "GLM 5V Turbo",
@@ -203758,6 +204577,28 @@ var init_models3 = __esm(() => {
203758
204577
  supportsUsageInStreaming: false
203759
204578
  }
203760
204579
  },
204580
+ "e2ee-glm-5-2-p": {
204581
+ id: "e2ee-glm-5-2-p",
204582
+ name: "e2ee-glm-5-2-p",
204583
+ api: "openai-completions",
204584
+ provider: "venice",
204585
+ baseUrl: "https://api.venice.ai/api/v1",
204586
+ reasoning: false,
204587
+ input: [
204588
+ "text"
204589
+ ],
204590
+ cost: {
204591
+ input: 0,
204592
+ output: 0,
204593
+ cacheRead: 0,
204594
+ cacheWrite: 0
204595
+ },
204596
+ contextWindow: 222222,
204597
+ maxTokens: 8888,
204598
+ compat: {
204599
+ supportsUsageInStreaming: false
204600
+ }
204601
+ },
203761
204602
  "e2ee-gpt-oss-120b-p": {
203762
204603
  id: "e2ee-gpt-oss-120b-p",
203763
204604
  name: "e2ee-gpt-oss-120b-p",
@@ -204452,6 +205293,28 @@ var init_models3 = __esm(() => {
204452
205293
  supportsUsageInStreaming: false
204453
205294
  }
204454
205295
  },
205296
+ "kimi-k2-7-code": {
205297
+ id: "kimi-k2-7-code",
205298
+ name: "kimi-k2-7-code",
205299
+ api: "openai-completions",
205300
+ provider: "venice",
205301
+ baseUrl: "https://api.venice.ai/api/v1",
205302
+ reasoning: false,
205303
+ input: [
205304
+ "text"
205305
+ ],
205306
+ cost: {
205307
+ input: 0,
205308
+ output: 0,
205309
+ cacheRead: 0,
205310
+ cacheWrite: 0
205311
+ },
205312
+ contextWindow: 222222,
205313
+ maxTokens: 8888,
205314
+ compat: {
205315
+ supportsUsageInStreaming: false
205316
+ }
205317
+ },
204455
205318
  "kimi-k2-thinking": {
204456
205319
  id: "kimi-k2-thinking",
204457
205320
  name: "Kimi K2 Thinking",
@@ -204665,7 +205528,7 @@ var init_models3 = __esm(() => {
204665
205528
  cacheRead: 0,
204666
205529
  cacheWrite: 0
204667
205530
  },
204668
- contextWindow: 222222,
205531
+ contextWindow: 524288,
204669
205532
  maxTokens: 8888,
204670
205533
  compat: {
204671
205534
  supportsUsageInStreaming: false
@@ -204782,7 +205645,7 @@ var init_models3 = __esm(() => {
204782
205645
  cacheRead: 0,
204783
205646
  cacheWrite: 0
204784
205647
  },
204785
- contextWindow: 222222,
205648
+ contextWindow: 256000,
204786
205649
  maxTokens: 8888,
204787
205650
  compat: {
204788
205651
  supportsUsageInStreaming: false
@@ -205150,7 +206013,7 @@ var init_models3 = __esm(() => {
205150
206013
  cacheRead: 0,
205151
206014
  cacheWrite: 0
205152
206015
  },
205153
- contextWindow: 222222,
206016
+ contextWindow: 1e6,
205154
206017
  maxTokens: 8888,
205155
206018
  compat: {
205156
206019
  supportsUsageInStreaming: false
@@ -205403,7 +206266,7 @@ var init_models3 = __esm(() => {
205403
206266
  cacheRead: 0,
205404
206267
  cacheWrite: 0
205405
206268
  },
205406
- contextWindow: 256000,
206269
+ contextWindow: 128000,
205407
206270
  maxTokens: 8192,
205408
206271
  compat: {
205409
206272
  supportsUsageInStreaming: false
@@ -205513,7 +206376,7 @@ var init_models3 = __esm(() => {
205513
206376
  cacheRead: 0,
205514
206377
  cacheWrite: 0
205515
206378
  },
205516
- contextWindow: 222222,
206379
+ contextWindow: 1e6,
205517
206380
  maxTokens: 8888,
205518
206381
  compat: {
205519
206382
  supportsUsageInStreaming: false
@@ -205687,6 +206550,28 @@ var init_models3 = __esm(() => {
205687
206550
  compat: {
205688
206551
  supportsUsageInStreaming: false
205689
206552
  }
206553
+ },
206554
+ "zai-org-glm-5-2": {
206555
+ id: "zai-org-glm-5-2",
206556
+ name: "zai-org-glm-5-2",
206557
+ api: "openai-completions",
206558
+ provider: "venice",
206559
+ baseUrl: "https://api.venice.ai/api/v1",
206560
+ reasoning: false,
206561
+ input: [
206562
+ "text"
206563
+ ],
206564
+ cost: {
206565
+ input: 0,
206566
+ output: 0,
206567
+ cacheRead: 0,
206568
+ cacheWrite: 0
206569
+ },
206570
+ contextWindow: 222222,
206571
+ maxTokens: 8888,
206572
+ compat: {
206573
+ supportsUsageInStreaming: false
206574
+ }
205690
206575
  }
205691
206576
  },
205692
206577
  "vercel-ai-gateway": {
@@ -206032,6 +206917,46 @@ var init_models3 = __esm(() => {
206032
206917
  maxLevel: "xhigh"
206033
206918
  }
206034
206919
  },
206920
+ "alibaba/qwen3-vl-235b-a22b-instruct": {
206921
+ id: "alibaba/qwen3-vl-235b-a22b-instruct",
206922
+ name: "Qwen3 VL 235B A22B Instruct",
206923
+ api: "anthropic-messages",
206924
+ provider: "vercel-ai-gateway",
206925
+ baseUrl: "https://ai-gateway.vercel.sh",
206926
+ reasoning: false,
206927
+ input: [
206928
+ "text",
206929
+ "image"
206930
+ ],
206931
+ cost: {
206932
+ input: 0.39999999999999997,
206933
+ output: 1.5999999999999999,
206934
+ cacheRead: 0,
206935
+ cacheWrite: 0
206936
+ },
206937
+ contextWindow: 131072,
206938
+ maxTokens: 129024
206939
+ },
206940
+ "alibaba/qwen3-vl-instruct": {
206941
+ id: "alibaba/qwen3-vl-instruct",
206942
+ name: "Qwen3 VL 235B A22B Instruct",
206943
+ api: "anthropic-messages",
206944
+ provider: "vercel-ai-gateway",
206945
+ baseUrl: "https://ai-gateway.vercel.sh",
206946
+ reasoning: false,
206947
+ input: [
206948
+ "text",
206949
+ "image"
206950
+ ],
206951
+ cost: {
206952
+ input: 0.39999999999999997,
206953
+ output: 1.5999999999999999,
206954
+ cacheRead: 0,
206955
+ cacheWrite: 0
206956
+ },
206957
+ contextWindow: 131072,
206958
+ maxTokens: 129024
206959
+ },
206035
206960
  "alibaba/qwen3-vl-thinking": {
206036
206961
  id: "alibaba/qwen3-vl-thinking",
206037
206962
  name: "Qwen3 VL 235B A22B Thinking",
@@ -206207,6 +207132,90 @@ var init_models3 = __esm(() => {
206207
207132
  maxLevel: "xhigh"
206208
207133
  }
206209
207134
  },
207135
+ "amazon/nova-2-lite": {
207136
+ id: "amazon/nova-2-lite",
207137
+ name: "Nova 2 Lite",
207138
+ api: "anthropic-messages",
207139
+ provider: "vercel-ai-gateway",
207140
+ baseUrl: "https://ai-gateway.vercel.sh",
207141
+ reasoning: true,
207142
+ input: [
207143
+ "text",
207144
+ "image"
207145
+ ],
207146
+ cost: {
207147
+ input: 0.3,
207148
+ output: 2.5,
207149
+ cacheRead: 0.075,
207150
+ cacheWrite: 0
207151
+ },
207152
+ contextWindow: 1e6,
207153
+ maxTokens: 1e6,
207154
+ thinking: {
207155
+ mode: "budget",
207156
+ minLevel: "minimal",
207157
+ maxLevel: "xhigh"
207158
+ }
207159
+ },
207160
+ "amazon/nova-lite": {
207161
+ id: "amazon/nova-lite",
207162
+ name: "Nova Lite",
207163
+ api: "anthropic-messages",
207164
+ provider: "vercel-ai-gateway",
207165
+ baseUrl: "https://ai-gateway.vercel.sh",
207166
+ reasoning: false,
207167
+ input: [
207168
+ "text",
207169
+ "image"
207170
+ ],
207171
+ cost: {
207172
+ input: 0.06,
207173
+ output: 0.24,
207174
+ cacheRead: 0,
207175
+ cacheWrite: 0
207176
+ },
207177
+ contextWindow: 300000,
207178
+ maxTokens: 8192
207179
+ },
207180
+ "amazon/nova-micro": {
207181
+ id: "amazon/nova-micro",
207182
+ name: "Nova Micro",
207183
+ api: "anthropic-messages",
207184
+ provider: "vercel-ai-gateway",
207185
+ baseUrl: "https://ai-gateway.vercel.sh",
207186
+ reasoning: false,
207187
+ input: [
207188
+ "text"
207189
+ ],
207190
+ cost: {
207191
+ input: 0.035,
207192
+ output: 0.14,
207193
+ cacheRead: 0,
207194
+ cacheWrite: 0
207195
+ },
207196
+ contextWindow: 128000,
207197
+ maxTokens: 8192
207198
+ },
207199
+ "amazon/nova-pro": {
207200
+ id: "amazon/nova-pro",
207201
+ name: "Nova Pro",
207202
+ api: "anthropic-messages",
207203
+ provider: "vercel-ai-gateway",
207204
+ baseUrl: "https://ai-gateway.vercel.sh",
207205
+ reasoning: false,
207206
+ input: [
207207
+ "text",
207208
+ "image"
207209
+ ],
207210
+ cost: {
207211
+ input: 0.7999999999999999,
207212
+ output: 3.1999999999999997,
207213
+ cacheRead: 0,
207214
+ cacheWrite: 0
207215
+ },
207216
+ contextWindow: 300000,
207217
+ maxTokens: 8192
207218
+ },
206210
207219
  "anthropic/claude-3-haiku": {
206211
207220
  id: "anthropic/claude-3-haiku",
206212
207221
  name: "Anthropic Haiku 3",
@@ -206607,6 +207616,25 @@ var init_models3 = __esm(() => {
206607
207616
  maxLevel: "xhigh"
206608
207617
  }
206609
207618
  },
207619
+ "arcee-ai/trinity-mini": {
207620
+ id: "arcee-ai/trinity-mini",
207621
+ name: "Trinity Mini",
207622
+ api: "anthropic-messages",
207623
+ provider: "vercel-ai-gateway",
207624
+ baseUrl: "https://ai-gateway.vercel.sh",
207625
+ reasoning: false,
207626
+ input: [
207627
+ "text"
207628
+ ],
207629
+ cost: {
207630
+ input: 0.045,
207631
+ output: 0.15,
207632
+ cacheRead: 0,
207633
+ cacheWrite: 0
207634
+ },
207635
+ contextWindow: 131072,
207636
+ maxTokens: 131072
207637
+ },
206610
207638
  "bytedance/seed-1.6": {
206611
207639
  id: "bytedance/seed-1.6",
206612
207640
  name: "Seed 1.6",
@@ -206615,7 +207643,8 @@ var init_models3 = __esm(() => {
206615
207643
  provider: "vercel-ai-gateway",
206616
207644
  reasoning: true,
206617
207645
  input: [
206618
- "text"
207646
+ "text",
207647
+ "image"
206619
207648
  ],
206620
207649
  cost: {
206621
207650
  input: 0.25,
@@ -206631,6 +207660,31 @@ var init_models3 = __esm(() => {
206631
207660
  maxLevel: "xhigh"
206632
207661
  }
206633
207662
  },
207663
+ "bytedance/seed-1.8": {
207664
+ id: "bytedance/seed-1.8",
207665
+ name: "Bytedance Seed 1.8",
207666
+ api: "anthropic-messages",
207667
+ provider: "vercel-ai-gateway",
207668
+ baseUrl: "https://ai-gateway.vercel.sh",
207669
+ reasoning: true,
207670
+ input: [
207671
+ "text",
207672
+ "image"
207673
+ ],
207674
+ cost: {
207675
+ input: 0.25,
207676
+ output: 2,
207677
+ cacheRead: 0.049999999999999996,
207678
+ cacheWrite: 0
207679
+ },
207680
+ contextWindow: 256000,
207681
+ maxTokens: 64000,
207682
+ thinking: {
207683
+ mode: "budget",
207684
+ minLevel: "minimal",
207685
+ maxLevel: "xhigh"
207686
+ }
207687
+ },
206634
207688
  "cohere/command-a": {
206635
207689
  id: "cohere/command-a",
206636
207690
  name: "Command A",
@@ -206704,13 +207758,13 @@ var init_models3 = __esm(() => {
206704
207758
  "text"
206705
207759
  ],
206706
207760
  cost: {
206707
- input: 0.56,
206708
- output: 1.68,
207761
+ input: 0.6,
207762
+ output: 1.7,
206709
207763
  cacheRead: 0.28,
206710
207764
  cacheWrite: 0
206711
207765
  },
206712
- contextWindow: 163840,
206713
- maxTokens: 8192,
207766
+ contextWindow: 128000,
207767
+ maxTokens: 128000,
206714
207768
  thinking: {
206715
207769
  mode: "budget",
206716
207770
  minLevel: "minimal",
@@ -207244,6 +208298,50 @@ var init_models3 = __esm(() => {
207244
208298
  contextWindow: 32000,
207245
208299
  maxTokens: 16384
207246
208300
  },
208301
+ "interfaze/interfaze-beta": {
208302
+ id: "interfaze/interfaze-beta",
208303
+ name: "Interfaze Beta",
208304
+ api: "anthropic-messages",
208305
+ provider: "vercel-ai-gateway",
208306
+ baseUrl: "https://ai-gateway.vercel.sh",
208307
+ reasoning: true,
208308
+ input: [
208309
+ "text",
208310
+ "image"
208311
+ ],
208312
+ cost: {
208313
+ input: 1.5,
208314
+ output: 3.5,
208315
+ cacheRead: 0,
208316
+ cacheWrite: 0
208317
+ },
208318
+ contextWindow: 1e6,
208319
+ maxTokens: 32000,
208320
+ thinking: {
208321
+ mode: "budget",
208322
+ minLevel: "minimal",
208323
+ maxLevel: "xhigh"
208324
+ }
208325
+ },
208326
+ "kwaipilot/kat-coder-pro-v1": {
208327
+ id: "kwaipilot/kat-coder-pro-v1",
208328
+ name: "KAT-Coder-Pro V1",
208329
+ api: "anthropic-messages",
208330
+ provider: "vercel-ai-gateway",
208331
+ baseUrl: "https://ai-gateway.vercel.sh",
208332
+ reasoning: false,
208333
+ input: [
208334
+ "text"
208335
+ ],
208336
+ cost: {
208337
+ input: 0.3,
208338
+ output: 1.2,
208339
+ cacheRead: 0.06,
208340
+ cacheWrite: 0
208341
+ },
208342
+ contextWindow: 256000,
208343
+ maxTokens: 32000
208344
+ },
207247
208345
  "kwaipilot/kat-coder-pro-v2": {
207248
208346
  id: "kwaipilot/kat-coder-pro-v2",
207249
208347
  name: "Kat Coder Pro V2",
@@ -207311,6 +208409,30 @@ var init_models3 = __esm(() => {
207311
208409
  maxLevel: "xhigh"
207312
208410
  }
207313
208411
  },
208412
+ "meituan/longcat-flash-thinking-2601": {
208413
+ id: "meituan/longcat-flash-thinking-2601",
208414
+ name: "LongCat Flash Thinking 2601",
208415
+ api: "anthropic-messages",
208416
+ provider: "vercel-ai-gateway",
208417
+ baseUrl: "https://ai-gateway.vercel.sh",
208418
+ reasoning: true,
208419
+ input: [
208420
+ "text"
208421
+ ],
208422
+ cost: {
208423
+ input: 0,
208424
+ output: 0,
208425
+ cacheRead: 0,
208426
+ cacheWrite: 0
208427
+ },
208428
+ contextWindow: 32768,
208429
+ maxTokens: 32768,
208430
+ thinking: {
208431
+ mode: "budget",
208432
+ minLevel: "minimal",
208433
+ maxLevel: "xhigh"
208434
+ }
208435
+ },
207314
208436
  "meta/llama-3.1-70b": {
207315
208437
  id: "meta/llama-3.1-70b",
207316
208438
  name: "Llama 3.1 70B Instruct",
@@ -207706,7 +208828,8 @@ var init_models3 = __esm(() => {
207706
208828
  provider: "vercel-ai-gateway",
207707
208829
  reasoning: false,
207708
208830
  input: [
207709
- "text"
208831
+ "text",
208832
+ "image"
207710
208833
  ],
207711
208834
  cost: {
207712
208835
  input: 0.09999999999999999,
@@ -207717,6 +208840,76 @@ var init_models3 = __esm(() => {
207717
208840
  contextWindow: 256000,
207718
208841
  maxTokens: 256000
207719
208842
  },
208843
+ "mistral/magistral-medium": {
208844
+ id: "mistral/magistral-medium",
208845
+ name: "Magistral Medium 2509",
208846
+ api: "anthropic-messages",
208847
+ provider: "vercel-ai-gateway",
208848
+ baseUrl: "https://ai-gateway.vercel.sh",
208849
+ reasoning: true,
208850
+ input: [
208851
+ "text",
208852
+ "image"
208853
+ ],
208854
+ cost: {
208855
+ input: 2,
208856
+ output: 5,
208857
+ cacheRead: 0,
208858
+ cacheWrite: 0
208859
+ },
208860
+ contextWindow: 128000,
208861
+ maxTokens: 64000,
208862
+ thinking: {
208863
+ mode: "budget",
208864
+ minLevel: "minimal",
208865
+ maxLevel: "xhigh"
208866
+ }
208867
+ },
208868
+ "mistral/magistral-small": {
208869
+ id: "mistral/magistral-small",
208870
+ name: "Magistral Small 2509",
208871
+ api: "anthropic-messages",
208872
+ provider: "vercel-ai-gateway",
208873
+ baseUrl: "https://ai-gateway.vercel.sh",
208874
+ reasoning: true,
208875
+ input: [
208876
+ "text",
208877
+ "image"
208878
+ ],
208879
+ cost: {
208880
+ input: 0.5,
208881
+ output: 1.5,
208882
+ cacheRead: 0,
208883
+ cacheWrite: 0
208884
+ },
208885
+ contextWindow: 128000,
208886
+ maxTokens: 64000,
208887
+ thinking: {
208888
+ mode: "budget",
208889
+ minLevel: "minimal",
208890
+ maxLevel: "xhigh"
208891
+ }
208892
+ },
208893
+ "mistral/ministral-14b": {
208894
+ id: "mistral/ministral-14b",
208895
+ name: "Ministral 14B",
208896
+ api: "anthropic-messages",
208897
+ provider: "vercel-ai-gateway",
208898
+ baseUrl: "https://ai-gateway.vercel.sh",
208899
+ reasoning: false,
208900
+ input: [
208901
+ "text",
208902
+ "image"
208903
+ ],
208904
+ cost: {
208905
+ input: 0.19999999999999998,
208906
+ output: 0.19999999999999998,
208907
+ cacheRead: 0,
208908
+ cacheWrite: 0
208909
+ },
208910
+ contextWindow: 256000,
208911
+ maxTokens: 256000
208912
+ },
207720
208913
  "mistral/ministral-3b": {
207721
208914
  id: "mistral/ministral-3b",
207722
208915
  name: "Ministral 3B",
@@ -207755,6 +208948,26 @@ var init_models3 = __esm(() => {
207755
208948
  contextWindow: 128000,
207756
208949
  maxTokens: 4000
207757
208950
  },
208951
+ "mistral/mistral-large-3": {
208952
+ id: "mistral/mistral-large-3",
208953
+ name: "Mistral Large 3",
208954
+ api: "anthropic-messages",
208955
+ provider: "vercel-ai-gateway",
208956
+ baseUrl: "https://ai-gateway.vercel.sh",
208957
+ reasoning: false,
208958
+ input: [
208959
+ "text",
208960
+ "image"
208961
+ ],
208962
+ cost: {
208963
+ input: 0.5,
208964
+ output: 1.5,
208965
+ cacheRead: 0,
208966
+ cacheWrite: 0
208967
+ },
208968
+ contextWindow: 256000,
208969
+ maxTokens: 256000
208970
+ },
207758
208971
  "mistral/mistral-medium": {
207759
208972
  id: "mistral/mistral-medium",
207760
208973
  name: "Mistral Medium 3.1",
@@ -207783,7 +208996,8 @@ var init_models3 = __esm(() => {
207783
208996
  baseUrl: "https://ai-gateway.vercel.sh",
207784
208997
  reasoning: true,
207785
208998
  input: [
207786
- "text"
208999
+ "text",
209000
+ "image"
207787
209001
  ],
207788
209002
  cost: {
207789
209003
  input: 1.5,
@@ -207810,13 +209024,13 @@ var init_models3 = __esm(() => {
207810
209024
  "text"
207811
209025
  ],
207812
209026
  cost: {
207813
- input: 0.02,
207814
- output: 0.04,
209027
+ input: 0.15,
209028
+ output: 0.15,
207815
209029
  cacheRead: 0,
207816
209030
  cacheWrite: 0
207817
209031
  },
207818
- contextWindow: 131072,
207819
- maxTokens: 131072
209032
+ contextWindow: 128000,
209033
+ maxTokens: 128000
207820
209034
  },
207821
209035
  "mistral/mistral-small": {
207822
209036
  id: "mistral/mistral-small",
@@ -207927,13 +209141,13 @@ var init_models3 = __esm(() => {
207927
209141
  "text"
207928
209142
  ],
207929
209143
  cost: {
207930
- input: 0.6,
207931
- output: 2.5,
207932
- cacheRead: 0.15,
209144
+ input: 0.47,
209145
+ output: 2,
209146
+ cacheRead: 0.14100000000000001,
207933
209147
  cacheWrite: 0
207934
209148
  },
207935
- contextWindow: 262114,
207936
- maxTokens: 262114,
209149
+ contextWindow: 216144,
209150
+ maxTokens: 216144,
207937
209151
  thinking: {
207938
209152
  mode: "budget",
207939
209153
  minLevel: "minimal",
@@ -208058,6 +209272,55 @@ var init_models3 = __esm(() => {
208058
209272
  maxLevel: "xhigh"
208059
209273
  }
208060
209274
  },
209275
+ "moonshotai/kimi-k2.7-code-highspeed": {
209276
+ id: "moonshotai/kimi-k2.7-code-highspeed",
209277
+ name: "Kimi K2.7 Code High Speed",
209278
+ api: "anthropic-messages",
209279
+ provider: "vercel-ai-gateway",
209280
+ baseUrl: "https://ai-gateway.vercel.sh",
209281
+ reasoning: true,
209282
+ input: [
209283
+ "text",
209284
+ "image"
209285
+ ],
209286
+ cost: {
209287
+ input: 1.9,
209288
+ output: 8,
209289
+ cacheRead: 0.38,
209290
+ cacheWrite: 0
209291
+ },
209292
+ contextWindow: 262144,
209293
+ maxTokens: 32768,
209294
+ thinking: {
209295
+ mode: "budget",
209296
+ minLevel: "minimal",
209297
+ maxLevel: "xhigh"
209298
+ }
209299
+ },
209300
+ "nvidia/nemotron-3-nano-30b-a3b": {
209301
+ id: "nvidia/nemotron-3-nano-30b-a3b",
209302
+ name: "nemotron-3-nano-30b-a3b",
209303
+ api: "anthropic-messages",
209304
+ provider: "vercel-ai-gateway",
209305
+ baseUrl: "https://ai-gateway.vercel.sh",
209306
+ reasoning: true,
209307
+ input: [
209308
+ "text"
209309
+ ],
209310
+ cost: {
209311
+ input: 0.049999999999999996,
209312
+ output: 0.24,
209313
+ cacheRead: 0,
209314
+ cacheWrite: 0
209315
+ },
209316
+ contextWindow: 262144,
209317
+ maxTokens: 262144,
209318
+ thinking: {
209319
+ mode: "budget",
209320
+ minLevel: "minimal",
209321
+ maxLevel: "xhigh"
209322
+ }
209323
+ },
208061
209324
  "nvidia/nemotron-3-super-120b-a12b": {
208062
209325
  id: "nvidia/nemotron-3-super-120b-a12b",
208063
209326
  name: "Nemotron 3 Super",
@@ -208180,6 +209443,25 @@ var init_models3 = __esm(() => {
208180
209443
  maxLevel: "xhigh"
208181
209444
  }
208182
209445
  },
209446
+ "openai/gpt-3.5-turbo": {
209447
+ id: "openai/gpt-3.5-turbo",
209448
+ name: "GPT-3.5 Turbo",
209449
+ api: "anthropic-messages",
209450
+ provider: "vercel-ai-gateway",
209451
+ baseUrl: "https://ai-gateway.vercel.sh",
209452
+ reasoning: false,
209453
+ input: [
209454
+ "text"
209455
+ ],
209456
+ cost: {
209457
+ input: 0.5,
209458
+ output: 1.5,
209459
+ cacheRead: 0,
209460
+ cacheWrite: 0
209461
+ },
209462
+ contextWindow: 16385,
209463
+ maxTokens: 4096
209464
+ },
208183
209465
  "openai/gpt-4-turbo": {
208184
209466
  id: "openai/gpt-4-turbo",
208185
209467
  name: "GPT-4 Turbo",
@@ -208868,13 +210150,13 @@ var init_models3 = __esm(() => {
208868
210150
  "text"
208869
210151
  ],
208870
210152
  cost: {
208871
- input: 0.35,
208872
- output: 0.75,
210153
+ input: 0.09999999999999999,
210154
+ output: 0.5,
208873
210155
  cacheRead: 0.25,
208874
210156
  cacheWrite: 0
208875
210157
  },
208876
210158
  contextWindow: 131072,
208877
- maxTokens: 131000,
210159
+ maxTokens: 131072,
208878
210160
  thinking: {
208879
210161
  mode: "budget",
208880
210162
  minLevel: "minimal",
@@ -209142,6 +210424,31 @@ var init_models3 = __esm(() => {
209142
210424
  maxLevel: "xhigh"
209143
210425
  }
209144
210426
  },
210427
+ "sakana/fugu-ultra": {
210428
+ id: "sakana/fugu-ultra",
210429
+ name: "Fugu Ultra",
210430
+ api: "anthropic-messages",
210431
+ provider: "vercel-ai-gateway",
210432
+ baseUrl: "https://ai-gateway.vercel.sh",
210433
+ reasoning: true,
210434
+ input: [
210435
+ "text",
210436
+ "image"
210437
+ ],
210438
+ cost: {
210439
+ input: 5,
210440
+ output: 30,
210441
+ cacheRead: 0.5,
210442
+ cacheWrite: 0
210443
+ },
210444
+ contextWindow: 1e6,
210445
+ maxTokens: 1e6,
210446
+ thinking: {
210447
+ mode: "budget",
210448
+ minLevel: "minimal",
210449
+ maxLevel: "xhigh"
210450
+ }
210451
+ },
209145
210452
  "stepfun/step-3.5-flash": {
209146
210453
  id: "stepfun/step-3.5-flash",
209147
210454
  name: "Step 3.5 Flash",
@@ -209155,7 +210462,7 @@ var init_models3 = __esm(() => {
209155
210462
  cost: {
209156
210463
  input: 0.09,
209157
210464
  output: 0.3,
209158
- cacheRead: 0,
210465
+ cacheRead: 0.02,
209159
210466
  cacheWrite: 0.02
209160
210467
  },
209161
210468
  contextWindow: 262114,
@@ -209750,7 +211057,7 @@ var init_models3 = __esm(() => {
209750
211057
  },
209751
211058
  "zai/glm-4.5": {
209752
211059
  id: "zai/glm-4.5",
209753
- name: "GLM-4.5",
211060
+ name: "GLM 4.5",
209754
211061
  api: "anthropic-messages",
209755
211062
  baseUrl: "https://ai-gateway.vercel.sh",
209756
211063
  provider: "vercel-ai-gateway",
@@ -209906,13 +211213,13 @@ var init_models3 = __esm(() => {
209906
211213
  "text"
209907
211214
  ],
209908
211215
  cost: {
209909
- input: 2.25,
209910
- output: 2.75,
209911
- cacheRead: 2.25,
211216
+ input: 0.6,
211217
+ output: 2.2,
211218
+ cacheRead: 0.12,
209912
211219
  cacheWrite: 0
209913
211220
  },
209914
- contextWindow: 131000,
209915
- maxTokens: 40000,
211221
+ contextWindow: 200000,
211222
+ maxTokens: 120000,
209916
211223
  thinking: {
209917
211224
  mode: "budget",
209918
211225
  minLevel: "minimal",
@@ -209978,8 +211285,8 @@ var init_models3 = __esm(() => {
209978
211285
  "text"
209979
211286
  ],
209980
211287
  cost: {
209981
- input: 1,
209982
- output: 3.1999999999999997,
211288
+ input: 0.95,
211289
+ output: 3.15,
209983
211290
  cacheRead: 0.19999999999999998,
209984
211291
  cacheWrite: 0
209985
211292
  },
@@ -210027,13 +211334,61 @@ var init_models3 = __esm(() => {
210027
211334
  "image"
210028
211335
  ],
210029
211336
  cost: {
210030
- input: 1.4,
210031
- output: 4.4,
211337
+ input: 1.3,
211338
+ output: 4.300000000000001,
210032
211339
  cacheRead: 0.26,
210033
211340
  cacheWrite: 0
210034
211341
  },
210035
- contextWindow: 202800,
210036
- maxTokens: 64000,
211342
+ contextWindow: 202000,
211343
+ maxTokens: 202000,
211344
+ thinking: {
211345
+ mode: "budget",
211346
+ minLevel: "minimal",
211347
+ maxLevel: "xhigh"
211348
+ }
211349
+ },
211350
+ "zai/glm-5.2": {
211351
+ id: "zai/glm-5.2",
211352
+ name: "GLM 5.2",
211353
+ api: "anthropic-messages",
211354
+ provider: "vercel-ai-gateway",
211355
+ baseUrl: "https://ai-gateway.vercel.sh",
211356
+ reasoning: true,
211357
+ input: [
211358
+ "text"
211359
+ ],
211360
+ cost: {
211361
+ input: 1.5,
211362
+ output: 4.5,
211363
+ cacheRead: 0.3,
211364
+ cacheWrite: 0
211365
+ },
211366
+ contextWindow: 1e6,
211367
+ maxTokens: 128000,
211368
+ thinking: {
211369
+ mode: "budget",
211370
+ minLevel: "minimal",
211371
+ maxLevel: "xhigh"
211372
+ }
211373
+ },
211374
+ "zai/glm-5.2-fast": {
211375
+ id: "zai/glm-5.2-fast",
211376
+ name: "GLM 5.2 Fast",
211377
+ api: "anthropic-messages",
211378
+ provider: "vercel-ai-gateway",
211379
+ baseUrl: "https://ai-gateway.vercel.sh",
211380
+ reasoning: true,
211381
+ input: [
211382
+ "text"
211383
+ ],
211384
+ cost: {
211385
+ input: 3,
211386
+ output: 10.25,
211387
+ cacheRead: 0.5,
211388
+ cacheWrite: 0
211389
+ },
211390
+ contextWindow: 1e6,
211391
+ maxTokens: 128000,
210037
211392
  thinking: {
210038
211393
  mode: "budget",
210039
211394
  minLevel: "minimal",
@@ -215226,6 +216581,54 @@ var init_models3 = __esm(() => {
215226
216581
  maxLevel: "xhigh"
215227
216582
  }
215228
216583
  },
216584
+ "z-ai/glm-5.2": {
216585
+ id: "z-ai/glm-5.2",
216586
+ name: "GLM 5.2",
216587
+ api: "openai-completions",
216588
+ provider: "zenmux",
216589
+ baseUrl: "https://zenmux.ai/api/v1",
216590
+ reasoning: true,
216591
+ input: [
216592
+ "text"
216593
+ ],
216594
+ cost: {
216595
+ input: 1.4,
216596
+ output: 4.5,
216597
+ cacheRead: 0.26,
216598
+ cacheWrite: 0
216599
+ },
216600
+ contextWindow: 1e6,
216601
+ maxTokens: 131072,
216602
+ thinking: {
216603
+ mode: "effort",
216604
+ minLevel: "minimal",
216605
+ maxLevel: "xhigh"
216606
+ }
216607
+ },
216608
+ "z-ai/glm-5.2-free": {
216609
+ id: "z-ai/glm-5.2-free",
216610
+ name: "GLM 5.2 (Free)",
216611
+ api: "openai-completions",
216612
+ provider: "zenmux",
216613
+ baseUrl: "https://zenmux.ai/api/v1",
216614
+ reasoning: true,
216615
+ input: [
216616
+ "text"
216617
+ ],
216618
+ cost: {
216619
+ input: 0,
216620
+ output: 0,
216621
+ cacheRead: 0,
216622
+ cacheWrite: 0
216623
+ },
216624
+ contextWindow: 1e6,
216625
+ maxTokens: 131072,
216626
+ thinking: {
216627
+ mode: "effort",
216628
+ minLevel: "minimal",
216629
+ maxLevel: "xhigh"
216630
+ }
216631
+ },
215229
216632
  "z-ai/glm-5v-turbo": {
215230
216633
  id: "z-ai/glm-5v-turbo",
215231
216634
  name: "GLM 5V Turbo",
@@ -229381,7 +230784,7 @@ var init_package2 = __esm(() => {
229381
230784
  package_default = {
229382
230785
  type: "module",
229383
230786
  name: "@jawcode-dev/ai",
229384
- version: "1.0.2",
230787
+ version: "1.1.0",
229385
230788
  description: "Unified LLM API with automatic model discovery and provider configuration",
229386
230789
  homepage: "https://gaebal-gajae.dev",
229387
230790
  author: "Yeachan-Heo",
@@ -244480,7 +245883,9 @@ var init_amazon_bedrock = __esm(() => {
244480
245883
  // ../ai/src/providers/kiro.ts
244481
245884
  var exports_kiro = {};
244482
245885
  __export(exports_kiro, {
244483
- streamKiro: () => streamKiro
245886
+ streamKiro: () => streamKiro,
245887
+ parseKiroPayload: () => parseKiroPayload,
245888
+ buildPayload: () => buildPayload
244484
245889
  });
244485
245890
  import { createHash as createHash4, randomUUID as randomUUID4 } from "crypto";
244486
245891
  import { hostname as hostname4, userInfo } from "os";
@@ -244525,36 +245930,84 @@ function convertTools7(tools) {
244525
245930
  }
244526
245931
  }));
244527
245932
  }
244528
- function buildPayload(context, modelId, conversationId, profileArn) {
244529
- const history = [];
245933
+ function kiroThinkingBudget(options) {
245934
+ if (!options?.reasoning)
245935
+ return;
245936
+ const ratio = KIRO_THINKING_RATIO[options.reasoning];
245937
+ if (ratio === undefined)
245938
+ return;
245939
+ const maxTokens = options.maxTokens || 4096;
245940
+ return Math.max(1, Math.floor(maxTokens * ratio));
245941
+ }
245942
+ function injectKiroThinkingTags(content, options) {
245943
+ const budget = kiroThinkingBudget(options);
245944
+ if (!budget)
245945
+ return content;
245946
+ const instruction = [
245947
+ "Think in English for better reasoning quality.",
245948
+ "Be thorough and systematic, consider edge cases, challenge assumptions, and verify reasoning before answering.",
245949
+ "After thinking, respond in the user's language."
245950
+ ].join(`
245951
+ `);
245952
+ return [
245953
+ "<thinking_mode>enabled</thinking_mode>",
245954
+ `<max_thinking_length>${budget}</max_thinking_length>`,
245955
+ `<thinking_instruction>${instruction}</thinking_instruction>`,
245956
+ "",
245957
+ content
245958
+ ].join(`
245959
+ `);
245960
+ }
245961
+ function buildPayload(context, modelId, conversationId, profileArn, options) {
244530
245962
  const kiroTools = context.tools ? convertTools7(context.tools) : [];
244531
- const toolResults = [];
244532
245963
  let systemPrefix = "";
244533
- if (context.systemPrompt) {
244534
- systemPrefix = `${context.systemPrompt}
245964
+ if (context.systemPrompt?.length) {
245965
+ systemPrefix = `${context.systemPrompt.join(`
245966
+
245967
+ `)}
244535
245968
 
244536
245969
  `;
244537
245970
  }
245971
+ const mkUser = (content) => ({
245972
+ userInputMessage: { content, modelId, origin: "AI_EDITOR" }
245973
+ });
245974
+ const history = [];
245975
+ let pending = [];
244538
245976
  let lastRole = "";
245977
+ const attachPending = (entry) => {
245978
+ if (pending.length === 0)
245979
+ return;
245980
+ const uim = entry.userInputMessage;
245981
+ uim.userInputMessageContext = { ...uim.userInputMessageContext ?? {}, toolResults: pending };
245982
+ pending = [];
245983
+ };
244539
245984
  for (const msg of context.messages) {
244540
245985
  if (msg.role === "user" || msg.role === "developer") {
244541
245986
  const text = typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content);
244542
- if (lastRole === "user") {
245987
+ if (pending.length === 0 && lastRole === "user") {
244543
245988
  history.push({ assistantResponseMessage: { content: "(acknowledged)" } });
244544
245989
  }
244545
- history.push({ userInputMessage: { content: text, modelId, origin: "AI_EDITOR" } });
245990
+ const entry = mkUser(text);
245991
+ attachPending(entry);
245992
+ history.push(entry);
244546
245993
  lastRole = "user";
244547
245994
  } else if (msg.role === "assistant") {
245995
+ if (pending.length > 0) {
245996
+ const carrier = mkUser("(tool results)");
245997
+ attachPending(carrier);
245998
+ history.push(carrier);
245999
+ lastRole = "user";
246000
+ }
244548
246001
  const aMsg = msg;
244549
246002
  const textParts = (aMsg.content || []).filter((b) => b.type === "text");
244550
246003
  const text = textParts.map((b) => b.text).join("");
244551
246004
  const toolUses = (aMsg.content || []).filter((b) => b.type === "toolCall").map((tc) => ({
244552
246005
  name: tc.name,
244553
- input: JSON.stringify(tc.arguments ?? {}),
244554
- toolUseId: tc.id
246006
+ input: tc.arguments ?? {},
246007
+ toolUseId: normalizeToolCallId(tc.id)
244555
246008
  }));
244556
246009
  if (lastRole === "assistant") {
244557
- history.push({ userInputMessage: { content: "(continue)", modelId, origin: "AI_EDITOR" } });
246010
+ history.push(mkUser("(continue)"));
244558
246011
  }
244559
246012
  const entry = { assistantResponseMessage: { content: text } };
244560
246013
  if (toolUses.length > 0)
@@ -244564,7 +246017,7 @@ function buildPayload(context, modelId, conversationId, profileArn) {
244564
246017
  } else if (msg.role === "toolResult") {
244565
246018
  const trMsg = msg;
244566
246019
  const parts = trMsg.content.map((c) => c.type === "text" ? c.text : "").filter(Boolean);
244567
- toolResults.push({
246020
+ pending.push({
244568
246021
  content: [{ text: parts.join(`
244569
246022
  `) || "(empty)" }],
244570
246023
  status: trMsg.isError ? "error" : "success",
@@ -244572,40 +246025,38 @@ function buildPayload(context, modelId, conversationId, profileArn) {
244572
246025
  });
244573
246026
  }
244574
246027
  }
244575
- let currentContent;
244576
- if (history.length > 0 && history[history.length - 1].userInputMessage) {
244577
- const last = history.pop();
244578
- currentContent = last.userInputMessage.content;
244579
- } else if (toolResults.length > 0) {
244580
- currentContent = "(tool results attached)";
246028
+ let currentEntry;
246029
+ if (pending.length > 0) {
246030
+ currentEntry = mkUser("(tool results)");
246031
+ attachPending(currentEntry);
246032
+ } else if (history.length > 0 && history[history.length - 1].userInputMessage) {
246033
+ currentEntry = history.pop();
244581
246034
  } else {
244582
- currentContent = "(continue)";
246035
+ currentEntry = mkUser("(continue)");
246036
+ }
246037
+ const currentUim = currentEntry.userInputMessage;
246038
+ if (options?.currentTurnOnly) {
246039
+ history.length = 0;
244583
246040
  }
244584
- if (systemPrefix) {
244585
- if (history.length > 0 && history[0].userInputMessage) {
244586
- history[0].userInputMessage.content = systemPrefix + history[0].userInputMessage.content;
246041
+ if (systemPrefix && !options?.currentTurnOnly) {
246042
+ const firstUser = history.find((e) => e.userInputMessage)?.userInputMessage;
246043
+ if (firstUser) {
246044
+ firstUser.content = systemPrefix + firstUser.content;
244587
246045
  } else {
244588
- currentContent = systemPrefix + currentContent;
246046
+ currentUim.content = systemPrefix + currentUim.content;
244589
246047
  }
244590
246048
  }
244591
- const userInputMessage = {
244592
- content: currentContent,
244593
- modelId,
244594
- origin: "AI_EDITOR"
244595
- };
244596
- const userInputMessageContext = {};
244597
- if (kiroTools.length > 0)
244598
- userInputMessageContext.tools = kiroTools;
244599
- if (toolResults.length > 0)
244600
- userInputMessageContext.toolResults = toolResults;
244601
- if (Object.keys(userInputMessageContext).length > 0) {
244602
- userInputMessage.userInputMessageContext = userInputMessageContext;
246049
+ if (!currentUim.userInputMessageContext?.toolResults?.length) {
246050
+ currentUim.content = injectKiroThinkingTags(currentUim.content, options);
246051
+ }
246052
+ if (kiroTools.length > 0) {
246053
+ currentUim.userInputMessageContext = { ...currentUim.userInputMessageContext ?? {}, tools: kiroTools };
244603
246054
  }
244604
246055
  const payload = {
244605
246056
  conversationState: {
244606
246057
  chatTriggerType: "MANUAL",
244607
246058
  conversationId,
244608
- currentMessage: { userInputMessage },
246059
+ currentMessage: { userInputMessage: currentUim },
244609
246060
  ...history.length > 0 ? { history } : {}
244610
246061
  }
244611
246062
  };
@@ -244613,6 +246064,22 @@ function buildPayload(context, modelId, conversationId, profileArn) {
244613
246064
  payload.profileArn = profileArn;
244614
246065
  return payload;
244615
246066
  }
246067
+ function kiroDebugPath() {
246068
+ const v = process.env.JWC_KIRO_DEBUG;
246069
+ if (!v)
246070
+ return null;
246071
+ return v === "1" || v === "true" ? "/tmp/jwc-kiro-debug.jsonl" : v;
246072
+ }
246073
+ function kiroDebugLog(tag, data) {
246074
+ const path11 = kiroDebugPath();
246075
+ if (!path11)
246076
+ return;
246077
+ try {
246078
+ const { appendFileSync } = __require("fs");
246079
+ appendFileSync(path11, `${JSON.stringify({ t: Date.now(), tag, data })}
246080
+ `);
246081
+ } catch {}
246082
+ }
244616
246083
  function parseKiroPayload(raw) {
244617
246084
  let text;
244618
246085
  try {
@@ -244632,27 +246099,42 @@ function parseKiroPayload(raw) {
244632
246099
  if ("content" in parsed && typeof parsed.content === "string") {
244633
246100
  return { type: "content", data: parsed.content };
244634
246101
  }
244635
- if ("name" in parsed && typeof parsed.name === "string") {
244636
- const input = typeof parsed.input === "object" && parsed.input !== null ? JSON.stringify(parsed.input) : typeof parsed.input === "string" ? parsed.input : "";
244637
- return {
244638
- type: "tool_start",
244639
- name: parsed.name,
244640
- toolUseId: parsed.toolUseId || `toolu_${randomUUID4().slice(0, 8)}`,
244641
- input
244642
- };
246102
+ const toolUseId = typeof parsed.toolUseId === "string" ? parsed.toolUseId : undefined;
246103
+ const name = typeof parsed.name === "string" ? parsed.name : undefined;
246104
+ if (parsed.stop === true) {
246105
+ return { type: "tool_stop", toolUseId };
244643
246106
  }
244644
- if ("input" in parsed && !("name" in parsed)) {
246107
+ if ("input" in parsed) {
244645
246108
  const input = typeof parsed.input === "object" && parsed.input !== null ? JSON.stringify(parsed.input) : typeof parsed.input === "string" ? parsed.input : "";
244646
- return { type: "tool_input", input };
246109
+ return { type: "tool_input", input, name, toolUseId };
244647
246110
  }
244648
- if ("stop" in parsed && parsed.stop === true) {
244649
- return { type: "tool_stop" };
246111
+ if (name !== undefined) {
246112
+ return { type: "tool_start", name, toolUseId: toolUseId || `toolu_${randomUUID4().slice(0, 8)}`, input: "" };
244650
246113
  }
244651
246114
  if ("usage" in parsed) {
244652
246115
  return { type: "usage", usage: parsed.usage };
244653
246116
  }
244654
246117
  return null;
244655
246118
  }
246119
+ function createKiroProviderSessionState() {
246120
+ const state = {
246121
+ seenConversationKeys: new Set,
246122
+ close: () => {
246123
+ state.seenConversationKeys.clear();
246124
+ }
246125
+ };
246126
+ return state;
246127
+ }
246128
+ function getKiroProviderSessionState(providerSessionState) {
246129
+ if (!providerSessionState)
246130
+ return;
246131
+ const existing = providerSessionState.get(KIRO_PROVIDER_SESSION_STATE_KEY);
246132
+ if (existing)
246133
+ return existing;
246134
+ const created = createKiroProviderSessionState();
246135
+ providerSessionState.set(KIRO_PROVIDER_SESSION_STATE_KEY, created);
246136
+ return created;
246137
+ }
244656
246138
  function readKiroCliSqlite() {
244657
246139
  const { existsSync: existsSync4 } = __require("fs");
244658
246140
  const { Database } = __require("bun:sqlite");
@@ -244793,7 +246275,15 @@ function resolveProfileArn(options) {
244793
246275
  function mapModelId(id) {
244794
246276
  return MODEL_MAP[id] || id;
244795
246277
  }
244796
- function stableConversationId(context) {
246278
+ function kiroSessionKey(options, model, profileArn, region) {
246279
+ if (!options.sessionId)
246280
+ return;
246281
+ return `${region}:${profileArn}:${model.provider}:${model.id}:${options.sessionId}`;
246282
+ }
246283
+ function stableConversationId(context, options, model, profileArn = "") {
246284
+ if (options?.sessionId && model) {
246285
+ return createHash4("sha256").update(`${profileArn}:${model.provider}:${model.id}:${options.sessionId}`).digest("hex").slice(0, 16);
246286
+ }
244797
246287
  if (!context.messages || context.messages.length === 0)
244798
246288
  return randomUUID4().slice(0, 16);
244799
246289
  const keyMsgs = context.messages.length <= 3 ? context.messages : [...context.messages.slice(0, 3), context.messages[context.messages.length - 1]];
@@ -244816,10 +246306,10 @@ var DEFAULT_REGION = "us-east-1", KIRO_HOST_TEMPLATE = "https://runtime.{region}
244816
246306
  if (p === "win32")
244817
246307
  return "win32#10.0.26100";
244818
246308
  return `linux#6.8.0`;
244819
- }, cachedFingerprint, KIRO_REFRESH_URL = "https://prod.{region}.auth.desktop.kiro.dev/refreshToken", TOKEN_KEYS, DB_PATHS = () => {
246309
+ }, cachedFingerprint, KIRO_THINKING_RATIO, KIRO_REFRESH_URL = "https://prod.{region}.auth.desktop.kiro.dev/refreshToken", TOKEN_KEYS, DB_PATHS = () => {
244820
246310
  const home = process.env.HOME || "";
244821
246311
  return [`${home}/Library/Application Support/kiro-cli/data.sqlite3`, `${home}/.kiro/sso/cache.db`];
244822
- }, authCache = null, streamKiro = (model, context, options) => {
246312
+ }, authCache = null, KIRO_PROVIDER_SESSION_STATE_KEY = "kiro", streamKiro = (model, context, options) => {
244823
246313
  const stream2 = new AssistantMessageEventStream;
244824
246314
  const opts = options ?? {};
244825
246315
  (async () => {
@@ -244849,11 +246339,19 @@ var DEFAULT_REGION = "us-east-1", KIRO_HOST_TEMPLATE = "https://runtime.{region}
244849
246339
  const spoofVersion = opts.spoofVersion || $env.KIRO_SPOOF_VERSION || KIRO_IDE_VERSION;
244850
246340
  const host = KIRO_HOST_TEMPLATE.replace("{region}", region);
244851
246341
  const url2 = `${host}/`;
244852
- const conversationId = stableConversationId(context);
246342
+ const conversationId = stableConversationId(context, opts, model, profileArn);
246343
+ const sessionState = getKiroProviderSessionState(opts.providerSessionState);
246344
+ const sessionKey = kiroSessionKey(opts, model, profileArn, region);
246345
+ const currentTurnOnly = sessionKey ? sessionState?.seenConversationKeys.has(sessionKey) ?? false : false;
244853
246346
  const kiroModelId = mapModelId(model.id);
244854
- const payload = buildPayload(context, kiroModelId, conversationId, profileArn);
246347
+ const payload = buildPayload(context, kiroModelId, conversationId, profileArn, {
246348
+ currentTurnOnly,
246349
+ reasoning: model.reasoning ? opts.reasoning : undefined,
246350
+ maxTokens: opts.maxTokens
246351
+ });
244855
246352
  const headers = buildHeaders3(token, spoofVersion, profileArn);
244856
246353
  const body = new TextEncoder().encode(JSON.stringify(payload));
246354
+ kiroDebugLog("request.payload", payload);
244857
246355
  let response = await fetchWithRetry(url2, {
244858
246356
  method: "POST",
244859
246357
  headers: { ...headers, "content-length": String(body.length) },
@@ -244887,6 +246385,9 @@ var DEFAULT_REGION = "us-east-1", KIRO_HOST_TEMPLATE = "https://runtime.{region}
244887
246385
  if (!response.body)
244888
246386
  throw new Error("Kiro response has no body");
244889
246387
  stream2.push({ type: "start", partial: output });
246388
+ if (sessionKey) {
246389
+ sessionState?.seenConversationKeys.add(sessionKey);
246390
+ }
244890
246391
  let currentToolCall = null;
244891
246392
  let contentIndex = 0;
244892
246393
  for await (const message2 of decodeEventStream(response.body)) {
@@ -244897,9 +246398,13 @@ var DEFAULT_REGION = "us-east-1", KIRO_HOST_TEMPLATE = "https://runtime.{region}
244897
246398
  }
244898
246399
  if (messageType !== "event")
244899
246400
  continue;
246401
+ if (kiroDebugPath()) {
246402
+ kiroDebugLog("event.raw", new TextDecoder().decode(message2.payload));
246403
+ }
244900
246404
  const event = parseKiroPayload(message2.payload);
244901
246405
  if (!event)
244902
246406
  continue;
246407
+ kiroDebugLog("event.parsed", event);
244903
246408
  switch (event.type) {
244904
246409
  case "content": {
244905
246410
  if (!firstTokenTime)
@@ -245025,22 +246530,42 @@ var init_kiro = __esm(() => {
245025
246530
  init_http_inspector();
245026
246531
  init_wire();
245027
246532
  init_aws_eventstream();
246533
+ KIRO_THINKING_RATIO = {
246534
+ minimal: 0.1,
246535
+ low: 0.2,
246536
+ medium: 0.5,
246537
+ high: 0.8,
246538
+ xhigh: 0.95,
246539
+ max: 0.95
246540
+ };
245028
246541
  TOKEN_KEYS = ["kirocli:social:token", "kirocli:odic:token", "codewhisperer:odic:token"];
245029
246542
  MODEL_MAP = {
245030
246543
  "kiro-auto": "auto",
246544
+ "kiro-claude-opus-4.8": "claude-opus-4.8",
246545
+ "kiro-claude-opus-4.7": "claude-opus-4.7",
246546
+ "kiro-claude-opus-4.6": "claude-opus-4.6",
246547
+ "kiro-claude-sonnet-4.6": "claude-sonnet-4.6",
246548
+ "kiro-claude-opus-4.5": "claude-opus-4.5",
245031
246549
  "kiro-claude-sonnet-4.5": "claude-sonnet-4.5",
245032
246550
  "kiro-claude-sonnet-4": "claude-sonnet-4",
245033
246551
  "kiro-claude-haiku-4.5": "claude-haiku-4.5",
245034
246552
  "kiro-deepseek-3.2": "deepseek-3.2",
245035
246553
  "kiro-minimax-m2.5": "minimax-m2.5",
246554
+ "kiro-minimax-m2.1": "minimax-m2.1",
245036
246555
  "kiro-glm-5": "glm-5",
245037
246556
  "kiro-qwen3-coder": "qwen3-coder-next",
245038
246557
  auto: "auto",
246558
+ "claude-opus-4.8": "claude-opus-4.8",
246559
+ "claude-opus-4.7": "claude-opus-4.7",
246560
+ "claude-opus-4.6": "claude-opus-4.6",
246561
+ "claude-sonnet-4.6": "claude-sonnet-4.6",
246562
+ "claude-opus-4.5": "claude-opus-4.5",
245039
246563
  "claude-sonnet-4.5": "claude-sonnet-4.5",
245040
246564
  "claude-sonnet-4": "claude-sonnet-4",
245041
246565
  "claude-haiku-4.5": "claude-haiku-4.5",
245042
246566
  "deepseek-3.2": "deepseek-3.2",
245043
246567
  "minimax-m2.5": "minimax-m2.5",
246568
+ "minimax-m2.1": "minimax-m2.1",
245044
246569
  "glm-5": "glm-5",
245045
246570
  "qwen3-coder-next": "qwen3-coder-next"
245046
246571
  };
@@ -257099,6 +258624,7 @@ var MODELS_DEV_PROVIDER_DESCRIPTORS = [
257099
258624
 
257100
258625
  // ../ai/src/provider-models/special.ts
257101
258626
  init_src2();
258627
+ init_model_thinking();
257102
258628
 
257103
258629
  // ../ai/src/utils/discovery/codex.ts
257104
258630
  init_v4();
@@ -257147,17 +258673,30 @@ function kiroModelManagerOptions(_config = {}) {
257147
258673
  return {
257148
258674
  providerId: "kiro",
257149
258675
  staticModels: [
257150
- kiroModel("kiro-auto", "Auto", 200000, 16384),
257151
- kiroModel("claude-sonnet-4.5", "Claude Sonnet 4.5", 200000, 16384),
257152
- kiroModel("claude-sonnet-4", "Claude Sonnet 4", 200000, 16384),
258676
+ kiroModel("auto", "Auto", 1e6, 16384),
258677
+ kiroModel("claude-opus-4.8", "Claude Opus 4.8", 1e6, 16384, true),
258678
+ kiroModel("claude-opus-4.7", "Claude Opus 4.7", 1e6, 16384, true),
258679
+ kiroModel("claude-opus-4.6", "Claude Opus 4.6", 1e6, 16384, true),
258680
+ kiroModel("claude-sonnet-4.6", "Claude Sonnet 4.6", 1e6, 16384, true),
258681
+ kiroModel("claude-opus-4.5", "Claude Opus 4.5", 200000, 16384, true),
258682
+ kiroModel("claude-sonnet-4.5", "Claude Sonnet 4.5", 200000, 16384, true),
258683
+ kiroModel("claude-sonnet-4", "Claude Sonnet 4", 200000, 16384, true),
257153
258684
  kiroModel("claude-haiku-4.5", "Claude Haiku 4.5", 200000, 16384),
257154
- kiroModel("deepseek-3.2", "DeepSeek 3.2", 128000, 8192, true),
257155
- kiroModel("minimax-m2.5", "MiniMax M2.5", 128000, 8192),
257156
- kiroModel("glm-5", "GLM 5", 128000, 8192),
257157
- kiroModel("qwen3-coder-next", "Qwen3 Coder Next", 128000, 8192, true)
258685
+ kiroModel("deepseek-3.2", "DeepSeek 3.2", 164000, 8192, true),
258686
+ kiroModel("minimax-m2.5", "MiniMax M2.5", 196000, 8192),
258687
+ kiroModel("minimax-m2.1", "MiniMax M2.1", 196000, 8192),
258688
+ kiroModel("glm-5", "GLM 5", 200000, 8192),
258689
+ kiroModel("qwen3-coder-next", "Qwen3 Coder Next", 256000, 8192, true)
257158
258690
  ]
257159
258691
  };
257160
258692
  }
258693
+ var KIRO_THINKING = {
258694
+ mode: "effort",
258695
+ minLevel: "low" /* Low */,
258696
+ maxLevel: "xhigh" /* XHigh */,
258697
+ levels: ["low" /* Low */, "medium" /* Medium */, "high" /* High */, "xhigh" /* XHigh */],
258698
+ defaultLevel: "high" /* High */
258699
+ };
257161
258700
  function kiroModel(id, name, contextWindow, maxTokens, reasoning = false) {
257162
258701
  return {
257163
258702
  id,
@@ -257169,7 +258708,8 @@ function kiroModel(id, name, contextWindow, maxTokens, reasoning = false) {
257169
258708
  input: ["text", "image"],
257170
258709
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
257171
258710
  contextWindow,
257172
- maxTokens
258711
+ maxTokens,
258712
+ ...reasoning ? { thinking: KIRO_THINKING } : undefined
257173
258713
  };
257174
258714
  }
257175
258715
 
@@ -257218,7 +258758,7 @@ var PROVIDER_DESCRIPTORS = [
257218
258758
  catalogDescriptor("ollama-cloud", "gpt-oss:120b", (config2) => ollamaCloudModelManagerOptions(config2), catalog("Ollama Cloud", ["OLLAMA_CLOUD_API_KEY"], { oauthProvider: "ollama-cloud" })),
257219
258759
  catalogDescriptor("cloudflare-ai-gateway", "claude-sonnet-4-5", (config2) => cloudflareAiGatewayModelManagerOptions(config2), catalog("Cloudflare AI Gateway", ["CLOUDFLARE_AI_GATEWAY_API_KEY"])),
257220
258760
  catalogDescriptor("kimi-code", "kimi-k2.5", (config2) => kimiCodeModelManagerOptions(config2), catalog("Kimi Code", ["KIMI_API_KEY"])),
257221
- catalogDescriptor("kiro", "kiro-auto", () => kiroModelManagerOptions(), catalog("Kiro", ["KIRO_ACCESS_TOKEN"])),
258761
+ catalogDescriptor("kiro", "auto", () => kiroModelManagerOptions(), catalog("Kiro", ["KIRO_ACCESS_TOKEN"], { allowUnauthenticated: true })),
257222
258762
  catalogDescriptor("qwen-portal", "coder-model", (config2) => qwenPortalModelManagerOptions(config2), catalog("Qwen Portal", ["QWEN_OAUTH_TOKEN", "QWEN_PORTAL_API_KEY"], { oauthProvider: "qwen-portal" })),
257223
258763
  catalogDescriptor("synthetic", "hf:moonshotai/Kimi-K2.5", (config2) => syntheticModelManagerOptions(config2), catalog("Synthetic", ["SYNTHETIC_API_KEY"])),
257224
258764
  catalogDescriptor("venice", "llama-3.3-70b", (config2) => veniceModelManagerOptions(config2), catalog("Venice", ["VENICE_API_KEY"], { allowUnauthenticated: true })),