@code-yeongyu/senpi 2026.6.16 → 2026.6.17-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/bun/restore-sandbox-env.d.ts +4 -0
  3. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  4. package/dist/bun/restore-sandbox-env.js +4 -0
  5. package/dist/bun/restore-sandbox-env.js.map +1 -1
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +8 -5
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/auth-storage.d.ts +5 -0
  10. package/dist/core/auth-storage.d.ts.map +1 -1
  11. package/dist/core/auth-storage.js +8 -1
  12. package/dist/core/auth-storage.js.map +1 -1
  13. package/dist/core/compaction/branch-summarization.d.ts +2 -0
  14. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  15. package/dist/core/compaction/branch-summarization.js +2 -2
  16. package/dist/core/compaction/branch-summarization.js.map +1 -1
  17. package/dist/core/compaction/compaction.d.ts +2 -4
  18. package/dist/core/compaction/compaction.d.ts.map +1 -1
  19. package/dist/core/compaction/compaction.js +11 -10
  20. package/dist/core/compaction/compaction.js.map +1 -1
  21. package/dist/core/export-html/vendor/marked.min.js +75 -3
  22. package/dist/core/http-dispatcher.d.ts +1 -0
  23. package/dist/core/http-dispatcher.d.ts.map +1 -1
  24. package/dist/core/http-dispatcher.js +17 -1
  25. package/dist/core/http-dispatcher.js.map +1 -1
  26. package/dist/core/model-registry.d.ts +1 -0
  27. package/dist/core/model-registry.d.ts.map +1 -1
  28. package/dist/core/model-registry.js +10 -4
  29. package/dist/core/model-registry.js.map +1 -1
  30. package/dist/core/provider-attribution.d.ts.map +1 -1
  31. package/dist/core/provider-attribution.js +10 -0
  32. package/dist/core/provider-attribution.js.map +1 -1
  33. package/dist/core/resolve-config-value.d.ts +10 -6
  34. package/dist/core/resolve-config-value.d.ts.map +1 -1
  35. package/dist/core/resolve-config-value.js +32 -17
  36. package/dist/core/resolve-config-value.js.map +1 -1
  37. package/dist/core/sdk.d.ts.map +1 -1
  38. package/dist/core/sdk.js +2 -0
  39. package/dist/core/sdk.js.map +1 -1
  40. package/dist/core/settings-manager.d.ts +1 -0
  41. package/dist/core/settings-manager.d.ts.map +1 -1
  42. package/dist/core/settings-manager.js.map +1 -1
  43. package/dist/core/tools/bash.js +1 -1
  44. package/dist/core/tools/bash.js.map +1 -1
  45. package/dist/core/tools/edit.js +2 -2
  46. package/dist/core/tools/edit.js.map +1 -1
  47. package/dist/core/tools/write.js +1 -1
  48. package/dist/core/tools/write.js.map +1 -1
  49. package/dist/main.d.ts.map +1 -1
  50. package/dist/main.js +17 -5
  51. package/dist/main.js.map +1 -1
  52. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  53. package/dist/modes/interactive/components/login-dialog.js +0 -1
  54. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  55. package/dist/modes/interactive/components/tool-execution.js +1 -1
  56. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  57. package/docs/providers.md +20 -2
  58. package/docs/settings.md +12 -0
  59. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  60. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  61. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  62. package/examples/extensions/gondolin/package-lock.json +2 -2
  63. package/examples/extensions/gondolin/package.json +1 -1
  64. package/examples/extensions/sandbox/package-lock.json +2 -2
  65. package/examples/extensions/sandbox/package.json +1 -1
  66. package/examples/extensions/with-deps/package-lock.json +2 -2
  67. package/examples/extensions/with-deps/package.json +1 -1
  68. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  69. package/node_modules/@earendil-works/pi-ai/README.md +19 -0
  70. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts +5 -5
  71. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  72. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +21 -57
  73. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  74. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +149 -3
  75. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  76. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +149 -39
  77. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  78. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  79. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +52 -33
  80. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  81. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  82. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +28 -12
  83. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
  84. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
  85. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +7 -4
  86. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
  87. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts +3 -3
  88. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts.map +1 -1
  89. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.js +4 -3
  90. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.js.map +1 -1
  91. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts.map +1 -1
  92. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js +13 -4
  93. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js.map +1 -1
  94. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
  95. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +107 -57
  96. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  97. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  98. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +15 -7
  99. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
  100. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
  101. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js +2 -1
  102. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
  103. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
  104. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +8 -7
  105. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
  106. package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts.map +1 -1
  107. package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js +1 -0
  108. package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js.map +1 -1
  109. package/node_modules/@earendil-works/pi-ai/dist/stream.js +1 -1
  110. package/node_modules/@earendil-works/pi-ai/dist/stream.js.map +1 -1
  111. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +8 -0
  112. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  113. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  114. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.d.ts +2 -8
  115. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.d.ts.map +1 -1
  116. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.js +17 -22
  117. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.js.map +1 -1
  118. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts.map +1 -1
  119. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js +2 -1
  120. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js.map +1 -1
  121. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  122. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +2 -1
  123. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  124. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-env.d.ts +7 -0
  125. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-env.d.ts.map +1 -0
  126. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-env.js +44 -0
  127. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-env.js.map +1 -0
  128. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  129. package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts +3 -0
  130. package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +1 -1
  131. package/node_modules/@earendil-works/pi-tui/dist/components/box.js +18 -0
  132. package/node_modules/@earendil-works/pi-tui/dist/components/box.js.map +1 -1
  133. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +1 -0
  134. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
  135. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +5 -1
  136. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
  137. package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts +1 -0
  138. package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts.map +1 -1
  139. package/node_modules/@earendil-works/pi-tui/dist/components/loader.js +3 -0
  140. package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +1 -1
  141. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +5 -0
  142. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
  143. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +57 -15
  144. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
  145. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
  146. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
  147. package/node_modules/@earendil-works/pi-tui/dist/index.js +1 -1
  148. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
  149. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +5 -0
  150. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  151. package/node_modules/@earendil-works/pi-tui/dist/tui.js +22 -0
  152. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  153. package/node_modules/@earendil-works/pi-tui/package.json +2 -2
  154. package/npm-shrinkwrap.json +11 -11
  155. package/package.json +5 -5
@@ -3882,6 +3882,24 @@ export const MODELS = {
3882
3882
  contextWindow: 131072,
3883
3883
  maxTokens: 131072,
3884
3884
  },
3885
+ "@cf/zai-org/glm-5.2": {
3886
+ id: "@cf/zai-org/glm-5.2",
3887
+ name: "Glm 5.2",
3888
+ api: "openai-completions",
3889
+ provider: "cloudflare-workers-ai",
3890
+ baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
3891
+ compat: { "sendSessionAffinityHeaders": true },
3892
+ reasoning: true,
3893
+ input: ["text"],
3894
+ cost: {
3895
+ input: 1.4,
3896
+ output: 4.4,
3897
+ cacheRead: 0.26,
3898
+ cacheWrite: 0,
3899
+ },
3900
+ contextWindow: 262144,
3901
+ maxTokens: 262144,
3902
+ },
3885
3903
  },
3886
3904
  "deepseek": {
3887
3905
  "deepseek-v4-flash": {
@@ -3936,7 +3954,7 @@ export const MODELS = {
3936
3954
  cost: {
3937
3955
  input: 0.14,
3938
3956
  output: 0.28,
3939
- cacheRead: 0.03,
3957
+ cacheRead: 0.028,
3940
3958
  cacheWrite: 0,
3941
3959
  },
3942
3960
  contextWindow: 1000000,
@@ -3978,6 +3996,24 @@ export const MODELS = {
3978
3996
  contextWindow: 202800,
3979
3997
  maxTokens: 131072,
3980
3998
  },
3999
+ "accounts/fireworks/models/glm-5p2": {
4000
+ id: "accounts/fireworks/models/glm-5p2",
4001
+ name: "GLM 5.2",
4002
+ api: "anthropic-messages",
4003
+ provider: "fireworks",
4004
+ baseUrl: "https://api.fireworks.ai/inference",
4005
+ compat: { "sendSessionAffinityHeaders": true, "supportsEagerToolInputStreaming": false, "supportsCacheControlOnTools": false, "supportsLongCacheRetention": false },
4006
+ reasoning: true,
4007
+ input: ["text"],
4008
+ cost: {
4009
+ input: 1.4,
4010
+ output: 4.4,
4011
+ cacheRead: 0.26,
4012
+ cacheWrite: 0,
4013
+ },
4014
+ contextWindow: 1048576,
4015
+ maxTokens: 131072,
4016
+ },
3981
4017
  "accounts/fireworks/models/gpt-oss-120b": {
3982
4018
  id: "accounts/fireworks/models/gpt-oss-120b",
3983
4019
  name: "GPT OSS 120B",
@@ -4168,7 +4204,7 @@ export const MODELS = {
4168
4204
  reasoning: true,
4169
4205
  input: ["text", "image"],
4170
4206
  cost: {
4171
- input: 2,
4207
+ input: 1.9,
4172
4208
  output: 8,
4173
4209
  cacheRead: 0.38,
4174
4210
  cacheWrite: 0,
@@ -6459,6 +6495,25 @@ export const MODELS = {
6459
6495
  contextWindow: 262144,
6460
6496
  maxTokens: 262144,
6461
6497
  },
6498
+ "kimi-k2.7-code-highspeed": {
6499
+ id: "kimi-k2.7-code-highspeed",
6500
+ name: "Kimi K2.7 Code HighSpeed",
6501
+ api: "openai-completions",
6502
+ provider: "moonshotai",
6503
+ baseUrl: "https://api.moonshot.ai/v1",
6504
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsStrictMode": false, "thinkingFormat": "deepseek" },
6505
+ reasoning: true,
6506
+ thinkingLevelMap: { "off": null },
6507
+ input: ["text", "image"],
6508
+ cost: {
6509
+ input: 1.9,
6510
+ output: 8,
6511
+ cacheRead: 0.38,
6512
+ cacheWrite: 0,
6513
+ },
6514
+ contextWindow: 262144,
6515
+ maxTokens: 262144,
6516
+ },
6462
6517
  },
6463
6518
  "moonshotai-cn": {
6464
6519
  "kimi-k2-0711-preview": {
@@ -6606,6 +6661,25 @@ export const MODELS = {
6606
6661
  contextWindow: 262144,
6607
6662
  maxTokens: 262144,
6608
6663
  },
6664
+ "kimi-k2.7-code-highspeed": {
6665
+ id: "kimi-k2.7-code-highspeed",
6666
+ name: "Kimi K2.7 Code HighSpeed",
6667
+ api: "openai-completions",
6668
+ provider: "moonshotai-cn",
6669
+ baseUrl: "https://api.moonshot.cn/v1",
6670
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsStrictMode": false, "thinkingFormat": "deepseek" },
6671
+ reasoning: true,
6672
+ thinkingLevelMap: { "off": null },
6673
+ input: ["text", "image"],
6674
+ cost: {
6675
+ input: 1.9,
6676
+ output: 8,
6677
+ cacheRead: 0.38,
6678
+ cacheWrite: 0,
6679
+ },
6680
+ contextWindow: 262144,
6681
+ maxTokens: 262144,
6682
+ },
6609
6683
  },
6610
6684
  "nvidia": {
6611
6685
  "meta/llama-3.1-70b-instruct": {
@@ -7969,7 +8043,7 @@ export const MODELS = {
7969
8043
  api: "openai-completions",
7970
8044
  provider: "opencode",
7971
8045
  baseUrl: "https://opencode.ai/zen/v1",
7972
- compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
8046
+ compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true },
7973
8047
  reasoning: true,
7974
8048
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
7975
8049
  input: ["text"],
@@ -7988,7 +8062,7 @@ export const MODELS = {
7988
8062
  api: "openai-completions",
7989
8063
  provider: "opencode",
7990
8064
  baseUrl: "https://opencode.ai/zen/v1",
7991
- compat: { "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
8065
+ compat: { "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true },
7992
8066
  reasoning: true,
7993
8067
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
7994
8068
  input: ["text"],
@@ -8007,7 +8081,7 @@ export const MODELS = {
8007
8081
  api: "openai-completions",
8008
8082
  provider: "opencode",
8009
8083
  baseUrl: "https://opencode.ai/zen/v1",
8010
- compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
8084
+ compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true },
8011
8085
  reasoning: true,
8012
8086
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
8013
8087
  input: ["text"],
@@ -9512,13 +9586,13 @@ export const MODELS = {
9512
9586
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "xhigh" },
9513
9587
  input: ["text"],
9514
9588
  cost: {
9515
- input: 0.098,
9516
- output: 0.196,
9589
+ input: 0.09,
9590
+ output: 0.18,
9517
9591
  cacheRead: 0.02,
9518
9592
  cacheWrite: 0,
9519
9593
  },
9520
9594
  contextWindow: 1048576,
9521
- maxTokens: 4096,
9595
+ maxTokens: 65536,
9522
9596
  },
9523
9597
  "deepseek/deepseek-v4-pro": {
9524
9598
  id: "deepseek/deepseek-v4-pro",
@@ -9962,8 +10036,8 @@ export const MODELS = {
9962
10036
  cacheRead: 0.06,
9963
10037
  cacheWrite: 0,
9964
10038
  },
9965
- contextWindow: 256000,
9966
- maxTokens: 80000,
10039
+ contextWindow: 262144,
10040
+ maxTokens: 144000,
9967
10041
  },
9968
10042
  "meta-llama/llama-3.1-70b-instruct": {
9969
10043
  id: "meta-llama/llama-3.1-70b-instruct",
@@ -10167,7 +10241,7 @@ export const MODELS = {
10167
10241
  cacheWrite: 0,
10168
10242
  },
10169
10243
  contextWindow: 1048576,
10170
- maxTokens: 512000,
10244
+ maxTokens: 131072,
10171
10245
  },
10172
10246
  "mistralai/codestral-2508": {
10173
10247
  id: "mistralai/codestral-2508",
@@ -10503,7 +10577,7 @@ export const MODELS = {
10503
10577
  cost: {
10504
10578
  input: 0.6,
10505
10579
  output: 2.5,
10506
- cacheRead: 0,
10580
+ cacheRead: 0.6,
10507
10581
  cacheWrite: 0,
10508
10582
  },
10509
10583
  contextWindow: 262144,
@@ -10553,13 +10627,13 @@ export const MODELS = {
10553
10627
  reasoning: true,
10554
10628
  input: ["text", "image"],
10555
10629
  cost: {
10556
- input: 0.75,
10630
+ input: 0.74,
10557
10631
  output: 3.5,
10558
- cacheRead: 0.16,
10632
+ cacheRead: 0.15,
10559
10633
  cacheWrite: 0,
10560
10634
  },
10561
10635
  contextWindow: 262144,
10562
- maxTokens: 262144,
10636
+ maxTokens: 16384,
10563
10637
  },
10564
10638
  "nex-agi/nex-n2-pro:free": {
10565
10639
  id: "nex-agi/nex-n2-pro:free",
@@ -10690,8 +10764,8 @@ export const MODELS = {
10690
10764
  input: ["text"],
10691
10765
  cost: {
10692
10766
  input: 0.5,
10693
- output: 2.5,
10694
- cacheRead: 0.15,
10767
+ output: 2.2,
10768
+ cacheRead: 0.1,
10695
10769
  cacheWrite: 0,
10696
10770
  },
10697
10771
  contextWindow: 1000000,
@@ -10882,7 +10956,7 @@ export const MODELS = {
10882
10956
  cacheWrite: 0,
10883
10957
  },
10884
10958
  contextWindow: 1047576,
10885
- maxTokens: 32768,
10959
+ maxTokens: 4096,
10886
10960
  },
10887
10961
  "openai/gpt-4.1-nano": {
10888
10962
  id: "openai/gpt-4.1-nano",
@@ -10912,7 +10986,7 @@ export const MODELS = {
10912
10986
  cost: {
10913
10987
  input: 2.5,
10914
10988
  output: 10,
10915
- cacheRead: 0,
10989
+ cacheRead: 1.25,
10916
10990
  cacheWrite: 0,
10917
10991
  },
10918
10992
  contextWindow: 128000,
@@ -11048,11 +11122,11 @@ export const MODELS = {
11048
11122
  cost: {
11049
11123
  input: 0.25,
11050
11124
  output: 2,
11051
- cacheRead: 0.025,
11125
+ cacheRead: 0.03,
11052
11126
  cacheWrite: 0,
11053
11127
  },
11054
11128
  contextWindow: 400000,
11055
- maxTokens: 128000,
11129
+ maxTokens: 4096,
11056
11130
  },
11057
11131
  "openai/gpt-5-nano": {
11058
11132
  id: "openai/gpt-5-nano",
@@ -11116,11 +11190,11 @@ export const MODELS = {
11116
11190
  cost: {
11117
11191
  input: 1.25,
11118
11192
  output: 10,
11119
- cacheRead: 0.13,
11193
+ cacheRead: 0.125,
11120
11194
  cacheWrite: 0,
11121
11195
  },
11122
11196
  contextWindow: 128000,
11123
- maxTokens: 32000,
11197
+ maxTokens: 16384,
11124
11198
  },
11125
11199
  "openai/gpt-5.1-codex": {
11126
11200
  id: "openai/gpt-5.1-codex",
@@ -11207,7 +11281,7 @@ export const MODELS = {
11207
11281
  cacheWrite: 0,
11208
11282
  },
11209
11283
  contextWindow: 128000,
11210
- maxTokens: 16384,
11284
+ maxTokens: 32000,
11211
11285
  },
11212
11286
  "openai/gpt-5.2-codex": {
11213
11287
  id: "openai/gpt-5.2-codex",
@@ -12322,7 +12396,7 @@ export const MODELS = {
12322
12396
  cacheWrite: 0,
12323
12397
  },
12324
12398
  contextWindow: 262144,
12325
- maxTokens: 262144,
12399
+ maxTokens: 65536,
12326
12400
  },
12327
12401
  "qwen/qwen3.5-27b": {
12328
12402
  id: "qwen/qwen3.5-27b",
@@ -12389,8 +12463,8 @@ export const MODELS = {
12389
12463
  cacheRead: 0,
12390
12464
  cacheWrite: 0,
12391
12465
  },
12392
- contextWindow: 262144,
12393
- maxTokens: 262144,
12466
+ contextWindow: 256000,
12467
+ maxTokens: 32768,
12394
12468
  },
12395
12469
  "qwen/qwen3.5-flash-02-23": {
12396
12470
  id: "qwen/qwen3.5-flash-02-23",
@@ -12656,13 +12730,13 @@ export const MODELS = {
12656
12730
  reasoning: true,
12657
12731
  input: ["text"],
12658
12732
  cost: {
12659
- input: 0.063,
12660
- output: 0.21,
12661
- cacheRead: 0.021,
12733
+ input: 0.066,
12734
+ output: 0.26,
12735
+ cacheRead: 0.029,
12662
12736
  cacheWrite: 0,
12663
12737
  },
12664
12738
  contextWindow: 262144,
12665
- maxTokens: 4096,
12739
+ maxTokens: 262144,
12666
12740
  },
12667
12741
  "thedrummer/rocinante-12b": {
12668
12742
  id: "thedrummer/rocinante-12b",
@@ -12843,13 +12917,13 @@ export const MODELS = {
12843
12917
  reasoning: true,
12844
12918
  input: ["text"],
12845
12919
  cost: {
12846
- input: 0.125,
12920
+ input: 0.13,
12847
12921
  output: 0.85,
12848
- cacheRead: 0.06,
12922
+ cacheRead: 0.025,
12849
12923
  cacheWrite: 0,
12850
12924
  },
12851
12925
  contextWindow: 131072,
12852
- maxTokens: 131070,
12926
+ maxTokens: 98304,
12853
12927
  },
12854
12928
  "z-ai/glm-4.5v": {
12855
12929
  id: "z-ai/glm-4.5v",
@@ -12987,6 +13061,23 @@ export const MODELS = {
12987
13061
  contextWindow: 202752,
12988
13062
  maxTokens: 4096,
12989
13063
  },
13064
+ "z-ai/glm-5.2": {
13065
+ id: "z-ai/glm-5.2",
13066
+ name: "Z.ai: GLM 5.2",
13067
+ api: "openai-completions",
13068
+ provider: "openrouter",
13069
+ baseUrl: "https://openrouter.ai/api/v1",
13070
+ reasoning: true,
13071
+ input: ["text"],
13072
+ cost: {
13073
+ input: 1.4,
13074
+ output: 4.4,
13075
+ cacheRead: 0.26,
13076
+ cacheWrite: 0,
13077
+ },
13078
+ contextWindow: 1048576,
13079
+ maxTokens: 131072,
13080
+ },
12990
13081
  "~anthropic/claude-fable-latest": {
12991
13082
  id: "~anthropic/claude-fable-latest",
12992
13083
  name: "Anthropic: Claude Fable Latest",
@@ -13283,8 +13374,8 @@ export const MODELS = {
13283
13374
  reasoning: false,
13284
13375
  input: ["text"],
13285
13376
  cost: {
13286
- input: 2.5,
13287
- output: 7.5,
13377
+ input: 1.25,
13378
+ output: 3.75,
13288
13379
  cacheRead: 0,
13289
13380
  cacheWrite: 0,
13290
13381
  },
@@ -15103,7 +15194,7 @@ export const MODELS = {
15103
15194
  cacheWrite: 0,
15104
15195
  },
15105
15196
  contextWindow: 262144,
15106
- maxTokens: 4096,
15197
+ maxTokens: 262144,
15107
15198
  },
15108
15199
  "nvidia/nemotron-3-super-120b-a12b": {
15109
15200
  id: "nvidia/nemotron-3-super-120b-a12b",
@@ -16341,6 +16432,23 @@ export const MODELS = {
16341
16432
  contextWindow: 202800,
16342
16433
  maxTokens: 64000,
16343
16434
  },
16435
+ "zai/glm-5.2": {
16436
+ id: "zai/glm-5.2",
16437
+ name: "GLM 5.2",
16438
+ api: "anthropic-messages",
16439
+ provider: "vercel-ai-gateway",
16440
+ baseUrl: "https://ai-gateway.vercel.sh",
16441
+ reasoning: true,
16442
+ input: ["text"],
16443
+ cost: {
16444
+ input: 1.4,
16445
+ output: 4.4,
16446
+ cacheRead: 0.26,
16447
+ cacheWrite: 0,
16448
+ },
16449
+ contextWindow: 1000000,
16450
+ maxTokens: 128000,
16451
+ },
16344
16452
  "zai/glm-5v-turbo": {
16345
16453
  id: "zai/glm-5v-turbo",
16346
16454
  name: "GLM 5V Turbo",
@@ -16945,8 +17053,9 @@ export const MODELS = {
16945
17053
  api: "openai-completions",
16946
17054
  provider: "zai",
16947
17055
  baseUrl: "https://api.z.ai/api/coding/paas/v4",
16948
- compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "zaiToolStream": true },
17056
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "supportsReasoningEffort": true, "zaiToolStream": true },
16949
17057
  reasoning: true,
17058
+ thinkingLevelMap: { "minimal": null, "low": "high", "medium": "high", "high": "high", "xhigh": "max" },
16950
17059
  input: ["text"],
16951
17060
  cost: {
16952
17061
  input: 0,
@@ -17055,8 +17164,9 @@ export const MODELS = {
17055
17164
  api: "openai-completions",
17056
17165
  provider: "zai-coding-cn",
17057
17166
  baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
17058
- compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "zaiToolStream": true },
17167
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "supportsReasoningEffort": true, "zaiToolStream": true },
17059
17168
  reasoning: true,
17169
+ thinkingLevelMap: { "minimal": null, "low": "high", "medium": "high", "high": "high", "xhigh": "max" },
17060
17170
  input: ["text"],
17061
17171
  cost: {
17062
17172
  input: 0,