@code-yeongyu/senpi 2026.7.9 → 2026.7.10

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 (207) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/README.md +1 -1
  3. package/dist/cli/args.js +3 -3
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/config-selector.d.ts +4 -2
  6. package/dist/cli/config-selector.d.ts.map +1 -1
  7. package/dist/cli/config-selector.js +1 -1
  8. package/dist/cli/config-selector.js.map +1 -1
  9. package/dist/core/agent-session.d.ts +18 -3
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +153 -36
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/cache-stats.d.ts +49 -0
  14. package/dist/core/cache-stats.d.ts.map +1 -0
  15. package/dist/core/cache-stats.js +101 -0
  16. package/dist/core/cache-stats.js.map +1 -0
  17. package/dist/core/compaction/compaction.d.ts +1 -2
  18. package/dist/core/compaction/compaction.d.ts.map +1 -1
  19. package/dist/core/compaction/compaction.js +54 -79
  20. package/dist/core/compaction/compaction.js.map +1 -1
  21. package/dist/core/extensions/builtin/goal/continuation.js +1 -1
  22. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  23. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  24. package/dist/core/extensions/builtin/goal/index.js +1 -0
  25. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  26. package/dist/core/extensions/builtin/import-repro.d.ts.map +1 -1
  27. package/dist/core/extensions/builtin/import-repro.js +100 -6
  28. package/dist/core/extensions/builtin/import-repro.js.map +1 -1
  29. package/dist/core/extensions/builtin/mcp/connection.d.ts +1 -0
  30. package/dist/core/extensions/builtin/mcp/connection.d.ts.map +1 -1
  31. package/dist/core/extensions/builtin/mcp/connection.js +15 -0
  32. package/dist/core/extensions/builtin/mcp/connection.js.map +1 -1
  33. package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
  34. package/dist/core/extensions/builtin/mcp/service.js +3 -1
  35. package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
  36. package/dist/core/extensions/index.d.ts +1 -1
  37. package/dist/core/extensions/index.d.ts.map +1 -1
  38. package/dist/core/extensions/index.js.map +1 -1
  39. package/dist/core/extensions/runner.d.ts +4 -3
  40. package/dist/core/extensions/runner.d.ts.map +1 -1
  41. package/dist/core/extensions/runner.js +30 -24
  42. package/dist/core/extensions/runner.js.map +1 -1
  43. package/dist/core/extensions/types.d.ts +23 -3
  44. package/dist/core/extensions/types.d.ts.map +1 -1
  45. package/dist/core/extensions/types.js.map +1 -1
  46. package/dist/core/model-registry.d.ts +3 -0
  47. package/dist/core/model-registry.d.ts.map +1 -1
  48. package/dist/core/model-registry.js +20 -3
  49. package/dist/core/model-registry.js.map +1 -1
  50. package/dist/core/package-manager.d.ts +4 -1
  51. package/dist/core/package-manager.d.ts.map +1 -1
  52. package/dist/core/package-manager.js +68 -26
  53. package/dist/core/package-manager.js.map +1 -1
  54. package/dist/core/resource-loader.d.ts +2 -2
  55. package/dist/core/resource-loader.d.ts.map +1 -1
  56. package/dist/core/resource-loader.js +6 -7
  57. package/dist/core/resource-loader.js.map +1 -1
  58. package/dist/core/sdk.d.ts +1 -1
  59. package/dist/core/sdk.d.ts.map +1 -1
  60. package/dist/core/sdk.js +9 -2
  61. package/dist/core/sdk.js.map +1 -1
  62. package/dist/core/session-manager.d.ts.map +1 -1
  63. package/dist/core/session-manager.js +11 -2
  64. package/dist/core/session-manager.js.map +1 -1
  65. package/dist/core/settings-manager.d.ts +5 -0
  66. package/dist/core/settings-manager.d.ts.map +1 -1
  67. package/dist/core/settings-manager.js +8 -0
  68. package/dist/core/settings-manager.js.map +1 -1
  69. package/dist/core/slash-commands.d.ts +1 -0
  70. package/dist/core/slash-commands.d.ts.map +1 -1
  71. package/dist/core/slash-commands.js +3 -3
  72. package/dist/core/slash-commands.js.map +1 -1
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/main.d.ts +2 -2
  77. package/dist/main.d.ts.map +1 -1
  78. package/dist/main.js +1 -0
  79. package/dist/main.js.map +1 -1
  80. package/dist/modes/interactive/components/config-selector.d.ts +34 -3
  81. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  82. package/dist/modes/interactive/components/config-selector.js +272 -24
  83. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  84. package/dist/modes/interactive/components/footer.d.ts +4 -0
  85. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  86. package/dist/modes/interactive/components/footer.js +5 -2
  87. package/dist/modes/interactive/components/footer.js.map +1 -1
  88. package/dist/modes/interactive/components/oauth-selector.d.ts +3 -1
  89. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  90. package/dist/modes/interactive/components/oauth-selector.js +16 -6
  91. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  92. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  93. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  94. package/dist/modes/interactive/components/settings-selector.js +10 -0
  95. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  96. package/dist/modes/interactive/interactive-mode.d.ts +10 -0
  97. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  98. package/dist/modes/interactive/interactive-mode.js +261 -37
  99. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  100. package/dist/modes/print-mode.js +1 -1
  101. package/dist/modes/print-mode.js.map +1 -1
  102. package/dist/modes/rpc/rpc-client.d.ts +6 -6
  103. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  104. package/dist/modes/rpc/rpc-client.js +3 -3
  105. package/dist/modes/rpc/rpc-client.js.map +1 -1
  106. package/dist/package-manager-cli.d.ts +2 -2
  107. package/dist/package-manager-cli.d.ts.map +1 -1
  108. package/dist/package-manager-cli.js +64 -17
  109. package/dist/package-manager-cli.js.map +1 -1
  110. package/dist/utils/clipboard-image.js +1 -1
  111. package/dist/utils/clipboard-image.js.map +1 -1
  112. package/docs/extensions.md +33 -9
  113. package/docs/models.md +4 -4
  114. package/docs/packages.md +7 -10
  115. package/docs/rpc.md +13 -3
  116. package/docs/sdk.md +22 -0
  117. package/docs/settings.md +1 -0
  118. package/docs/usage.md +1 -1
  119. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  120. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  121. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  122. package/examples/extensions/gondolin/package-lock.json +2 -2
  123. package/examples/extensions/gondolin/package.json +1 -1
  124. package/examples/extensions/reload-runtime.ts +2 -2
  125. package/examples/extensions/sandbox/package-lock.json +2 -2
  126. package/examples/extensions/sandbox/package.json +1 -1
  127. package/examples/extensions/with-deps/package-lock.json +2 -2
  128. package/examples/extensions/with-deps/package.json +1 -1
  129. package/examples/sdk/README.md +1 -1
  130. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  131. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  132. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +37 -2
  133. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  134. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -1
  135. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js +2 -0
  136. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +1 -1
  137. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +1 -0
  138. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -1
  139. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js +7 -0
  140. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +1 -1
  141. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +18 -4
  142. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
  143. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +72 -37
  144. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
  145. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +2 -0
  146. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
  147. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
  148. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +2 -0
  149. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
  150. package/node_modules/@earendil-works/pi-agent-core/dist/index.js +2 -0
  151. package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
  152. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  153. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  154. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +2 -1
  155. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  156. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +1 -1
  157. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
  158. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.d.ts.map +1 -1
  159. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js +4 -1
  160. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -1
  161. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +446 -195
  162. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  163. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts +84 -0
  164. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  165. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +72 -0
  166. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js.map +1 -1
  167. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +4 -4
  168. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -1
  169. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts +63 -0
  170. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts.map +1 -1
  171. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +54 -0
  172. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js.map +1 -1
  173. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts +84 -0
  174. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts.map +1 -1
  175. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +72 -0
  176. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js.map +1 -1
  177. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +138 -63
  178. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  179. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +136 -76
  180. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  181. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +77 -0
  182. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  183. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +72 -1
  184. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  185. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts +0 -44
  186. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  187. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +9 -45
  188. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  189. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts +0 -44
  190. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  191. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +9 -45
  192. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  193. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts +0 -44
  194. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  195. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +9 -45
  196. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  197. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
  198. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +3 -0
  199. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
  200. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  201. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  202. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
  203. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +22 -1
  204. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
  205. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  206. package/package.json +7 -8
  207. package/npm-shrinkwrap.json +0 -3479
@@ -854,24 +854,6 @@ export const OPENROUTER_MODELS = {
854
854
  contextWindow: 1048576,
855
855
  maxTokens: 65535,
856
856
  },
857
- "google/gemini-2.5-flash-lite-preview-09-2025": {
858
- id: "google/gemini-2.5-flash-lite-preview-09-2025",
859
- name: "Google: Gemini 2.5 Flash Lite Preview 09-2025",
860
- api: "openai-completions",
861
- provider: "openrouter",
862
- baseUrl: "https://openrouter.ai/api/v1",
863
- compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
864
- reasoning: true,
865
- input: ["text", "image"],
866
- cost: {
867
- input: 0.1,
868
- output: 0.4,
869
- cacheRead: 0.01,
870
- cacheWrite: 0.083333,
871
- },
872
- contextWindow: 1048576,
873
- maxTokens: 65535,
874
- },
875
857
  "google/gemini-2.5-pro": {
876
858
  id: "google/gemini-2.5-pro",
877
859
  name: "Google: Gemini 2.5 Pro",
@@ -1459,9 +1441,9 @@ export const OPENROUTER_MODELS = {
1459
1441
  reasoning: true,
1460
1442
  input: ["text"],
1461
1443
  cost: {
1462
- input: 0.12,
1463
- output: 0.48,
1464
- cacheRead: 0,
1444
+ input: 0.15,
1445
+ output: 0.9,
1446
+ cacheRead: 0.05,
1465
1447
  cacheWrite: 0,
1466
1448
  },
1467
1449
  contextWindow: 204800,
@@ -1477,8 +1459,8 @@ export const OPENROUTER_MODELS = {
1477
1459
  reasoning: true,
1478
1460
  input: ["text"],
1479
1461
  cost: {
1480
- input: 0.18,
1481
- output: 0.72,
1462
+ input: 0.24,
1463
+ output: 0.96,
1482
1464
  cacheRead: 0,
1483
1465
  cacheWrite: 0,
1484
1466
  },
@@ -1501,7 +1483,7 @@ export const OPENROUTER_MODELS = {
1501
1483
  cacheWrite: 0,
1502
1484
  },
1503
1485
  contextWindow: 1048576,
1504
- maxTokens: 512000,
1486
+ maxTokens: 131072,
1505
1487
  },
1506
1488
  "mistralai/codestral-2508": {
1507
1489
  id: "mistralai/codestral-2508",
@@ -1891,9 +1873,9 @@ export const OPENROUTER_MODELS = {
1891
1873
  reasoning: true,
1892
1874
  input: ["text", "image"],
1893
1875
  cost: {
1894
- input: 0.65,
1876
+ input: 0.66,
1895
1877
  output: 3.41,
1896
- cacheRead: 0.14,
1878
+ cacheRead: 0.15,
1897
1879
  cacheWrite: 0,
1898
1880
  },
1899
1881
  contextWindow: 262144,
@@ -1909,13 +1891,13 @@ export const OPENROUTER_MODELS = {
1909
1891
  reasoning: true,
1910
1892
  input: ["text", "image"],
1911
1893
  cost: {
1912
- input: 0.74,
1913
- output: 3.5,
1914
- cacheRead: 0.15,
1894
+ input: 0.72,
1895
+ output: 3.49,
1896
+ cacheRead: 0.159,
1915
1897
  cacheWrite: 0,
1916
1898
  },
1917
1899
  contextWindow: 262144,
1918
- maxTokens: 16384,
1900
+ maxTokens: 262144,
1919
1901
  },
1920
1902
  "nex-agi/nex-n2-mini": {
1921
1903
  id: "nex-agi/nex-n2-mini",
@@ -2811,6 +2793,120 @@ export const OPENROUTER_MODELS = {
2811
2793
  contextWindow: 1050000,
2812
2794
  maxTokens: 128000,
2813
2795
  },
2796
+ "openai/gpt-5.6-luna": {
2797
+ id: "openai/gpt-5.6-luna",
2798
+ name: "OpenAI: GPT-5.6 Luna",
2799
+ api: "openai-completions",
2800
+ provider: "openrouter",
2801
+ baseUrl: "https://openrouter.ai/api/v1",
2802
+ compat: { "thinkingFormat": "openrouter" },
2803
+ reasoning: true,
2804
+ thinkingLevelMap: { "xhigh": "xhigh" },
2805
+ input: ["text", "image"],
2806
+ cost: {
2807
+ input: 1,
2808
+ output: 6,
2809
+ cacheRead: 0.1,
2810
+ cacheWrite: 1.25,
2811
+ },
2812
+ contextWindow: 1050000,
2813
+ maxTokens: 128000,
2814
+ },
2815
+ "openai/gpt-5.6-luna-pro": {
2816
+ id: "openai/gpt-5.6-luna-pro",
2817
+ name: "OpenAI: GPT-5.6 Luna Pro",
2818
+ api: "openai-completions",
2819
+ provider: "openrouter",
2820
+ baseUrl: "https://openrouter.ai/api/v1",
2821
+ compat: { "thinkingFormat": "openrouter" },
2822
+ reasoning: true,
2823
+ thinkingLevelMap: { "xhigh": "xhigh" },
2824
+ input: ["text", "image"],
2825
+ cost: {
2826
+ input: 1,
2827
+ output: 6,
2828
+ cacheRead: 0.1,
2829
+ cacheWrite: 1.25,
2830
+ },
2831
+ contextWindow: 1050000,
2832
+ maxTokens: 128000,
2833
+ },
2834
+ "openai/gpt-5.6-sol": {
2835
+ id: "openai/gpt-5.6-sol",
2836
+ name: "OpenAI: GPT-5.6 Sol",
2837
+ api: "openai-completions",
2838
+ provider: "openrouter",
2839
+ baseUrl: "https://openrouter.ai/api/v1",
2840
+ compat: { "thinkingFormat": "openrouter" },
2841
+ reasoning: true,
2842
+ thinkingLevelMap: { "xhigh": "xhigh" },
2843
+ input: ["text", "image"],
2844
+ cost: {
2845
+ input: 5,
2846
+ output: 30,
2847
+ cacheRead: 0.5,
2848
+ cacheWrite: 6.25,
2849
+ },
2850
+ contextWindow: 1050000,
2851
+ maxTokens: 128000,
2852
+ },
2853
+ "openai/gpt-5.6-sol-pro": {
2854
+ id: "openai/gpt-5.6-sol-pro",
2855
+ name: "OpenAI: GPT-5.6 Sol Pro",
2856
+ api: "openai-completions",
2857
+ provider: "openrouter",
2858
+ baseUrl: "https://openrouter.ai/api/v1",
2859
+ compat: { "thinkingFormat": "openrouter" },
2860
+ reasoning: true,
2861
+ thinkingLevelMap: { "xhigh": "xhigh" },
2862
+ input: ["text", "image"],
2863
+ cost: {
2864
+ input: 5,
2865
+ output: 30,
2866
+ cacheRead: 0.5,
2867
+ cacheWrite: 6.25,
2868
+ },
2869
+ contextWindow: 1050000,
2870
+ maxTokens: 128000,
2871
+ },
2872
+ "openai/gpt-5.6-terra": {
2873
+ id: "openai/gpt-5.6-terra",
2874
+ name: "OpenAI: GPT-5.6 Terra",
2875
+ api: "openai-completions",
2876
+ provider: "openrouter",
2877
+ baseUrl: "https://openrouter.ai/api/v1",
2878
+ compat: { "thinkingFormat": "openrouter" },
2879
+ reasoning: true,
2880
+ thinkingLevelMap: { "xhigh": "xhigh" },
2881
+ input: ["text", "image"],
2882
+ cost: {
2883
+ input: 2.5,
2884
+ output: 15,
2885
+ cacheRead: 0.25,
2886
+ cacheWrite: 3.125,
2887
+ },
2888
+ contextWindow: 1050000,
2889
+ maxTokens: 128000,
2890
+ },
2891
+ "openai/gpt-5.6-terra-pro": {
2892
+ id: "openai/gpt-5.6-terra-pro",
2893
+ name: "OpenAI: GPT-5.6 Terra Pro",
2894
+ api: "openai-completions",
2895
+ provider: "openrouter",
2896
+ baseUrl: "https://openrouter.ai/api/v1",
2897
+ compat: { "thinkingFormat": "openrouter" },
2898
+ reasoning: true,
2899
+ thinkingLevelMap: { "xhigh": "xhigh" },
2900
+ input: ["text", "image"],
2901
+ cost: {
2902
+ input: 2.5,
2903
+ output: 15,
2904
+ cacheRead: 0.25,
2905
+ cacheWrite: 3.125,
2906
+ },
2907
+ contextWindow: 1050000,
2908
+ maxTokens: 128000,
2909
+ },
2814
2910
  "openai/gpt-audio": {
2815
2911
  id: "openai/gpt-audio",
2816
2912
  name: "OpenAI: GPT Audio",
@@ -2875,13 +2971,13 @@ export const OPENROUTER_MODELS = {
2875
2971
  reasoning: true,
2876
2972
  input: ["text"],
2877
2973
  cost: {
2878
- input: 0.03,
2879
- output: 0.15,
2974
+ input: 0.036,
2975
+ output: 0.18,
2880
2976
  cacheRead: 0,
2881
2977
  cacheWrite: 0,
2882
2978
  },
2883
2979
  contextWindow: 131072,
2884
- maxTokens: 131072,
2980
+ maxTokens: 4096,
2885
2981
  },
2886
2982
  "openai/gpt-oss-120b:free": {
2887
2983
  id: "openai/gpt-oss-120b:free",
@@ -3243,42 +3339,6 @@ export const OPENROUTER_MODELS = {
3243
3339
  contextWindow: 262144,
3244
3340
  maxTokens: 32768,
3245
3341
  },
3246
- "poolside/laguna-xs.2": {
3247
- id: "poolside/laguna-xs.2",
3248
- name: "Poolside: Laguna XS.2",
3249
- api: "openai-completions",
3250
- provider: "openrouter",
3251
- baseUrl: "https://openrouter.ai/api/v1",
3252
- compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3253
- reasoning: true,
3254
- input: ["text"],
3255
- cost: {
3256
- input: 0.1,
3257
- output: 0.2,
3258
- cacheRead: 0.05,
3259
- cacheWrite: 0,
3260
- },
3261
- contextWindow: 262144,
3262
- maxTokens: 32768,
3263
- },
3264
- "poolside/laguna-xs.2:free": {
3265
- id: "poolside/laguna-xs.2:free",
3266
- name: "Poolside: Laguna XS.2 (free)",
3267
- api: "openai-completions",
3268
- provider: "openrouter",
3269
- baseUrl: "https://openrouter.ai/api/v1",
3270
- compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3271
- reasoning: true,
3272
- input: ["text"],
3273
- cost: {
3274
- input: 0,
3275
- output: 0,
3276
- cacheRead: 0,
3277
- cacheWrite: 0,
3278
- },
3279
- contextWindow: 262144,
3280
- maxTokens: 32768,
3281
- },
3282
3342
  "qwen/qwen-2.5-72b-instruct": {
3283
3343
  id: "qwen/qwen-2.5-72b-instruct",
3284
3344
  name: "Qwen2.5 72B Instruct",
@@ -4622,13 +4682,13 @@ export const OPENROUTER_MODELS = {
4622
4682
  thinkingLevelMap: { "xhigh": "xhigh" },
4623
4683
  input: ["text"],
4624
4684
  cost: {
4625
- input: 0.9,
4626
- output: 3.08,
4627
- cacheRead: 0.18,
4685
+ input: 0.532,
4686
+ output: 1.672,
4687
+ cacheRead: 0.0988,
4628
4688
  cacheWrite: 0,
4629
4689
  },
4630
4690
  contextWindow: 1048576,
4631
- maxTokens: 1048576,
4691
+ maxTokens: 131072,
4632
4692
  },
4633
4693
  "z-ai/glm-5v-turbo": {
4634
4694
  id: "z-ai/glm-5v-turbo",
@@ -4766,9 +4826,9 @@ export const OPENROUTER_MODELS = {
4766
4826
  reasoning: true,
4767
4827
  input: ["text", "image"],
4768
4828
  cost: {
4769
- input: 0.65,
4829
+ input: 0.66,
4770
4830
  output: 3.41,
4771
- cacheRead: 0.14,
4831
+ cacheRead: 0.15,
4772
4832
  cacheWrite: 0,
4773
4833
  },
4774
4834
  contextWindow: 262144,
@@ -4787,7 +4847,7 @@ export const OPENROUTER_MODELS = {
4787
4847
  input: 5,
4788
4848
  output: 30,
4789
4849
  cacheRead: 0.5,
4790
- cacheWrite: 0,
4850
+ cacheWrite: 6.25,
4791
4851
  },
4792
4852
  contextWindow: 1050000,
4793
4853
  maxTokens: 128000,