@code-yeongyu/senpi 2026.7.13 → 2026.7.14-3

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 (196) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/core/agent-session.js +1 -1
  3. package/dist/core/agent-session.js.map +1 -1
  4. package/dist/core/compaction/branch-summarization.d.ts +1 -1
  5. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  6. package/dist/core/compaction/branch-summarization.js.map +1 -1
  7. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
  8. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +14 -5
  9. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  10. package/dist/core/extensions/builtin/terminal/runtime-session.d.ts +1 -1
  11. package/dist/core/extensions/builtin/terminal/runtime-session.d.ts.map +1 -1
  12. package/dist/core/extensions/builtin/terminal/runtime-session.js +3 -2
  13. package/dist/core/extensions/builtin/terminal/runtime-session.js.map +1 -1
  14. package/dist/core/extensions/builtin/websearch/websearch/native.d.ts +1 -1
  15. package/dist/core/extensions/builtin/websearch/websearch/native.d.ts.map +1 -1
  16. package/dist/core/extensions/builtin/websearch/websearch/native.js +83 -33
  17. package/dist/core/extensions/builtin/websearch/websearch/native.js.map +1 -1
  18. package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.d.ts.map +1 -1
  19. package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.js +2 -1
  20. package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.js.map +1 -1
  21. package/dist/core/extensions/builtin/websearch/websearch/tool.d.ts.map +1 -1
  22. package/dist/core/extensions/builtin/websearch/websearch/tool.js +3 -3
  23. package/dist/core/extensions/builtin/websearch/websearch/tool.js.map +1 -1
  24. package/dist/core/model-registry.d.ts.map +1 -1
  25. package/dist/core/model-registry.js +18 -3
  26. package/dist/core/model-registry.js.map +1 -1
  27. package/dist/core/model-resolver.d.ts.map +1 -1
  28. package/dist/core/model-resolver.js +1 -0
  29. package/dist/core/model-resolver.js.map +1 -1
  30. package/dist/core/package-manager.d.ts.map +1 -1
  31. package/dist/core/package-manager.js +7 -2
  32. package/dist/core/package-manager.js.map +1 -1
  33. package/dist/core/provider-display-names.d.ts.map +1 -1
  34. package/dist/core/provider-display-names.js +1 -0
  35. package/dist/core/provider-display-names.js.map +1 -1
  36. package/dist/core/radius.d.ts +21 -0
  37. package/dist/core/radius.d.ts.map +1 -0
  38. package/dist/core/radius.js +30 -0
  39. package/dist/core/radius.js.map +1 -0
  40. package/dist/core/system-prompt.d.ts.map +1 -1
  41. package/dist/core/system-prompt.js +1 -11
  42. package/dist/core/system-prompt.js.map +1 -1
  43. package/dist/modes/interactive/interactive-mode.js +2 -2
  44. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  45. package/docs/custom-provider.md +2 -0
  46. package/docs/models.md +2 -0
  47. package/examples/AGENTS.md +34 -0
  48. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  49. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  50. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  51. package/examples/extensions/gondolin/package-lock.json +2 -2
  52. package/examples/extensions/gondolin/package.json +1 -1
  53. package/examples/extensions/sandbox/package-lock.json +2 -2
  54. package/examples/extensions/sandbox/package.json +1 -1
  55. package/examples/extensions/with-deps/package-lock.json +2 -2
  56. package/examples/extensions/with-deps/package.json +1 -1
  57. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +26 -0
  58. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  59. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +16 -23
  60. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  61. package/node_modules/@earendil-works/pi-ai/README.md +3 -2
  62. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  63. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +23 -42
  64. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  65. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  66. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +10 -6
  67. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
  68. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts +1 -0
  69. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
  70. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +1 -1
  71. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
  72. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  73. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +12 -3
  74. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  75. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts.map +1 -1
  76. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +23 -0
  77. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
  78. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts +1 -0
  79. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
  80. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +22 -6
  81. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  82. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts +97 -0
  83. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts.map +1 -0
  84. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +307 -0
  85. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -0
  86. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.d.ts +3 -0
  87. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.d.ts.map +1 -0
  88. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.js +3 -0
  89. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.js.map +1 -0
  90. package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts +2 -0
  91. package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts.map +1 -1
  92. package/node_modules/@earendil-works/pi-ai/dist/compat.js +3 -0
  93. package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -1
  94. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  95. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +1 -0
  96. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  97. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
  98. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  99. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  100. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +233 -164
  101. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  102. package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts +9 -5
  103. package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts.map +1 -1
  104. package/node_modules/@earendil-works/pi-ai/dist/providers/all.js.map +1 -1
  105. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +60 -0
  106. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  107. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +54 -0
  108. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -1
  109. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +1 -1
  110. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js.map +1 -1
  111. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts +92 -0
  112. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  113. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +72 -0
  114. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  115. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts +1 -6
  116. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts.map +1 -1
  117. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +1 -2
  118. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -1
  119. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts +57 -0
  120. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts.map +1 -1
  121. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +19 -0
  122. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js.map +1 -1
  123. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +23 -22
  124. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  125. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +54 -54
  126. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  127. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +0 -136
  128. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  129. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +2 -138
  130. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  131. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.d.ts.map +1 -1
  132. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js +9 -0
  133. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js.map +1 -1
  134. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts +1 -1
  135. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts.map +1 -1
  136. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js +6 -2
  137. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js.map +1 -1
  138. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts +8 -0
  139. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts.map +1 -0
  140. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js +92 -0
  141. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js.map +1 -0
  142. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts +6 -0
  143. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts.map +1 -0
  144. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.js +54 -0
  145. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.js.map +1 -0
  146. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/index.d.ts +4 -0
  147. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/index.d.ts.map +1 -0
  148. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/index.js +4 -0
  149. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/index.js.map +1 -0
  150. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.d.ts +7 -0
  151. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.d.ts.map +1 -0
  152. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.js +16 -0
  153. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.js.map +1 -0
  154. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts +19 -0
  155. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts.map +1 -0
  156. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js +217 -0
  157. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js.map +1 -0
  158. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts +4 -0
  159. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts.map +1 -0
  160. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.js +46 -0
  161. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.js.map +1 -0
  162. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.d.ts +13 -0
  163. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.d.ts.map +1 -0
  164. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.js +144 -0
  165. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.js.map +1 -0
  166. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts +5 -0
  167. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts.map +1 -0
  168. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.js +208 -0
  169. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.js.map +1 -0
  170. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts +4 -0
  171. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts.map +1 -0
  172. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js +17 -0
  173. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js.map +1 -0
  174. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.d.ts +5 -0
  175. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.d.ts.map +1 -0
  176. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.js +34 -0
  177. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.js.map +1 -0
  178. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.d.ts +3 -1
  179. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.d.ts.map +1 -1
  180. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.js.map +1 -1
  181. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +10 -5
  182. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  183. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  184. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.d.ts +1 -0
  185. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.d.ts.map +1 -1
  186. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js +9 -0
  187. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js.map +1 -1
  188. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/radius.d.ts +39 -0
  189. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/radius.d.ts.map +1 -0
  190. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/radius.js +413 -0
  191. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/radius.js.map +1 -0
  192. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  193. package/node_modules/@earendil-works/pi-pty/native/prebuilds/darwin-arm64/senpi_pty.darwin-arm64.node +0 -0
  194. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  195. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  196. package/package.json +6 -6
@@ -667,8 +667,8 @@ export const OPENROUTER_MODELS = {
667
667
  reasoning: true,
668
668
  input: ["text"],
669
669
  cost: {
670
- input: 0.21,
671
- output: 0.79,
670
+ input: 0.25,
671
+ output: 0.95,
672
672
  cacheRead: 0.13,
673
673
  cacheWrite: 0,
674
674
  },
@@ -776,13 +776,13 @@ export const OPENROUTER_MODELS = {
776
776
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "max": null, "xhigh": "xhigh" },
777
777
  input: ["text"],
778
778
  cost: {
779
- input: 0.077,
780
- output: 0.154,
781
- cacheRead: 0.0154,
779
+ input: 0.09,
780
+ output: 0.18,
781
+ cacheRead: 0.018,
782
782
  cacheWrite: 0,
783
783
  },
784
- contextWindow: 1024000,
785
- maxTokens: 384000,
784
+ contextWindow: 1048576,
785
+ maxTokens: 65536,
786
786
  },
787
787
  "deepseek/deepseek-v4-pro": {
788
788
  id: "deepseek/deepseek-v4-pro",
@@ -1101,13 +1101,13 @@ export const OPENROUTER_MODELS = {
1101
1101
  reasoning: true,
1102
1102
  input: ["text", "image"],
1103
1103
  cost: {
1104
- input: 0.12,
1104
+ input: 0.06,
1105
1105
  output: 0.35,
1106
- cacheRead: 0.09,
1106
+ cacheRead: 0,
1107
1107
  cacheWrite: 0,
1108
1108
  },
1109
1109
  contextWindow: 262144,
1110
- maxTokens: 262144,
1110
+ maxTokens: 8192,
1111
1111
  },
1112
1112
  "google/gemma-4-31b-it:free": {
1113
1113
  id: "google/gemma-4-31b-it:free",
@@ -1125,7 +1125,7 @@ export const OPENROUTER_MODELS = {
1125
1125
  cacheWrite: 0,
1126
1126
  },
1127
1127
  contextWindow: 262144,
1128
- maxTokens: 8192,
1128
+ maxTokens: 32768,
1129
1129
  },
1130
1130
  "ibm-granite/granite-4.1-8b": {
1131
1131
  id: "ibm-granite/granite-4.1-8b",
@@ -1218,6 +1218,24 @@ export const OPENROUTER_MODELS = {
1218
1218
  contextWindow: 262144,
1219
1219
  maxTokens: 65536,
1220
1220
  },
1221
+ "kwaipilot/kat-coder-air-v2.5": {
1222
+ id: "kwaipilot/kat-coder-air-v2.5",
1223
+ name: "Kwaipilot: KAT-Coder-Air V2.5",
1224
+ api: "openai-completions",
1225
+ provider: "openrouter",
1226
+ baseUrl: "https://openrouter.ai/api/v1",
1227
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1228
+ reasoning: false,
1229
+ input: ["text"],
1230
+ cost: {
1231
+ input: 0.15,
1232
+ output: 0.6,
1233
+ cacheRead: 0.03,
1234
+ cacheWrite: 0,
1235
+ },
1236
+ contextWindow: 256000,
1237
+ maxTokens: 80000,
1238
+ },
1221
1239
  "kwaipilot/kat-coder-pro-v2": {
1222
1240
  id: "kwaipilot/kat-coder-pro-v2",
1223
1241
  name: "Kwaipilot: KAT-Coder-Pro V2",
@@ -1236,23 +1254,23 @@ export const OPENROUTER_MODELS = {
1236
1254
  contextWindow: 256000,
1237
1255
  maxTokens: 80000,
1238
1256
  },
1239
- "liquid/lfm-2.5-1.2b-thinking:free": {
1240
- id: "liquid/lfm-2.5-1.2b-thinking:free",
1241
- name: "LiquidAI: LFM2.5-1.2B-Thinking (free)",
1257
+ "kwaipilot/kat-coder-pro-v2.5": {
1258
+ id: "kwaipilot/kat-coder-pro-v2.5",
1259
+ name: "Kwaipilot: KAT-Coder-Pro V2.5",
1242
1260
  api: "openai-completions",
1243
1261
  provider: "openrouter",
1244
1262
  baseUrl: "https://openrouter.ai/api/v1",
1245
1263
  compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1246
- reasoning: true,
1264
+ reasoning: false,
1247
1265
  input: ["text"],
1248
1266
  cost: {
1249
- input: 0,
1250
- output: 0,
1251
- cacheRead: 0,
1267
+ input: 0.74,
1268
+ output: 2.96,
1269
+ cacheRead: 0.15,
1252
1270
  cacheWrite: 0,
1253
1271
  },
1254
- contextWindow: 32768,
1255
- maxTokens: 4096,
1272
+ contextWindow: 256000,
1273
+ maxTokens: 80000,
1256
1274
  },
1257
1275
  "meta-llama/llama-3.1-70b-instruct": {
1258
1276
  id: "meta-llama/llama-3.1-70b-instruct",
@@ -2436,11 +2454,11 @@ export const OPENROUTER_MODELS = {
2436
2454
  cost: {
2437
2455
  input: 0.05,
2438
2456
  output: 0.4,
2439
- cacheRead: 0.01,
2457
+ cacheRead: 0.005,
2440
2458
  cacheWrite: 0,
2441
2459
  },
2442
2460
  contextWindow: 400000,
2443
- maxTokens: 4096,
2461
+ maxTokens: 128000,
2444
2462
  },
2445
2463
  "openai/gpt-5-pro": {
2446
2464
  id: "openai/gpt-5-pro",
@@ -2472,7 +2490,7 @@ export const OPENROUTER_MODELS = {
2472
2490
  cost: {
2473
2491
  input: 1.25,
2474
2492
  output: 10,
2475
- cacheRead: 0.13,
2493
+ cacheRead: 0.125,
2476
2494
  cacheWrite: 0,
2477
2495
  },
2478
2496
  contextWindow: 400000,
@@ -2956,26 +2974,8 @@ export const OPENROUTER_MODELS = {
2956
2974
  reasoning: true,
2957
2975
  input: ["text"],
2958
2976
  cost: {
2959
- input: 0.036,
2960
- output: 0.18,
2961
- cacheRead: 0,
2962
- cacheWrite: 0,
2963
- },
2964
- contextWindow: 131072,
2965
- maxTokens: 4096,
2966
- },
2967
- "openai/gpt-oss-120b:free": {
2968
- id: "openai/gpt-oss-120b:free",
2969
- name: "OpenAI: gpt-oss-120b (free)",
2970
- api: "openai-completions",
2971
- provider: "openrouter",
2972
- baseUrl: "https://openrouter.ai/api/v1",
2973
- compat: { "thinkingFormat": "openrouter" },
2974
- reasoning: true,
2975
- input: ["text"],
2976
- cost: {
2977
- input: 0,
2978
- output: 0,
2977
+ input: 0.03,
2978
+ output: 0.15,
2979
2979
  cacheRead: 0,
2980
2980
  cacheWrite: 0,
2981
2981
  },
@@ -4054,13 +4054,13 @@ export const OPENROUTER_MODELS = {
4054
4054
  reasoning: true,
4055
4055
  input: ["text", "image"],
4056
4056
  cost: {
4057
- input: 0.285,
4057
+ input: 0.289,
4058
4058
  output: 2.4,
4059
- cacheRead: 0.15,
4059
+ cacheRead: 0,
4060
4060
  cacheWrite: 0,
4061
4061
  },
4062
- contextWindow: 262140,
4063
- maxTokens: 262140,
4062
+ contextWindow: 131072,
4063
+ maxTokens: 131072,
4064
4064
  },
4065
4065
  "qwen/qwen3.6-35b-a3b": {
4066
4066
  id: "qwen/qwen3.6-35b-a3b",
@@ -4617,8 +4617,8 @@ export const OPENROUTER_MODELS = {
4617
4617
  cacheRead: 0.119,
4618
4618
  cacheWrite: 0,
4619
4619
  },
4620
- contextWindow: 202752,
4621
- maxTokens: 4096,
4620
+ contextWindow: 198000,
4621
+ maxTokens: 128000,
4622
4622
  },
4623
4623
  "z-ai/glm-5-turbo": {
4624
4624
  id: "z-ai/glm-5-turbo",
@@ -4667,13 +4667,13 @@ export const OPENROUTER_MODELS = {
4667
4667
  thinkingLevelMap: { "xhigh": "xhigh" },
4668
4668
  input: ["text"],
4669
4669
  cost: {
4670
- input: 0.93,
4671
- output: 3,
4672
- cacheRead: 0.18,
4670
+ input: 0.91,
4671
+ output: 2.86,
4672
+ cacheRead: 0.169,
4673
4673
  cacheWrite: 0,
4674
4674
  },
4675
- contextWindow: 1048576,
4676
- maxTokens: 32768,
4675
+ contextWindow: 1024000,
4676
+ maxTokens: 128000,
4677
4677
  },
4678
4678
  "z-ai/glm-5v-turbo": {
4679
4679
  id: "z-ai/glm-5v-turbo",