@code-yeongyu/senpi 2026.7.9-2 → 2026.7.9

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 +1 -25
  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 +2 -4
  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 +3 -18
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +36 -153
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/compaction/compaction.d.ts +2 -1
  14. package/dist/core/compaction/compaction.d.ts.map +1 -1
  15. package/dist/core/compaction/compaction.js +79 -54
  16. package/dist/core/compaction/compaction.js.map +1 -1
  17. package/dist/core/extensions/builtin/goal/continuation.js +1 -1
  18. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  19. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  20. package/dist/core/extensions/builtin/goal/index.js +0 -1
  21. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  22. package/dist/core/extensions/builtin/import-repro.d.ts.map +1 -1
  23. package/dist/core/extensions/builtin/import-repro.js +6 -100
  24. package/dist/core/extensions/builtin/import-repro.js.map +1 -1
  25. package/dist/core/extensions/builtin/mcp/connection.d.ts +0 -1
  26. package/dist/core/extensions/builtin/mcp/connection.d.ts.map +1 -1
  27. package/dist/core/extensions/builtin/mcp/connection.js +0 -15
  28. package/dist/core/extensions/builtin/mcp/connection.js.map +1 -1
  29. package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
  30. package/dist/core/extensions/builtin/mcp/service.js +1 -3
  31. package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
  32. package/dist/core/extensions/index.d.ts +1 -1
  33. package/dist/core/extensions/index.d.ts.map +1 -1
  34. package/dist/core/extensions/index.js.map +1 -1
  35. package/dist/core/extensions/runner.d.ts +3 -4
  36. package/dist/core/extensions/runner.d.ts.map +1 -1
  37. package/dist/core/extensions/runner.js +24 -30
  38. package/dist/core/extensions/runner.js.map +1 -1
  39. package/dist/core/extensions/types.d.ts +3 -23
  40. package/dist/core/extensions/types.d.ts.map +1 -1
  41. package/dist/core/extensions/types.js.map +1 -1
  42. package/dist/core/model-registry.d.ts +0 -3
  43. package/dist/core/model-registry.d.ts.map +1 -1
  44. package/dist/core/model-registry.js +3 -20
  45. package/dist/core/model-registry.js.map +1 -1
  46. package/dist/core/package-manager.d.ts +1 -4
  47. package/dist/core/package-manager.d.ts.map +1 -1
  48. package/dist/core/package-manager.js +26 -68
  49. package/dist/core/package-manager.js.map +1 -1
  50. package/dist/core/resource-loader.d.ts +2 -2
  51. package/dist/core/resource-loader.d.ts.map +1 -1
  52. package/dist/core/resource-loader.js +7 -6
  53. package/dist/core/resource-loader.js.map +1 -1
  54. package/dist/core/sdk.d.ts +1 -1
  55. package/dist/core/sdk.d.ts.map +1 -1
  56. package/dist/core/sdk.js +2 -9
  57. package/dist/core/sdk.js.map +1 -1
  58. package/dist/core/session-manager.d.ts.map +1 -1
  59. package/dist/core/session-manager.js +2 -11
  60. package/dist/core/session-manager.js.map +1 -1
  61. package/dist/core/settings-manager.d.ts +0 -5
  62. package/dist/core/settings-manager.d.ts.map +1 -1
  63. package/dist/core/settings-manager.js +0 -8
  64. package/dist/core/settings-manager.js.map +1 -1
  65. package/dist/core/slash-commands.d.ts +0 -1
  66. package/dist/core/slash-commands.d.ts.map +1 -1
  67. package/dist/core/slash-commands.js +3 -3
  68. package/dist/core/slash-commands.js.map +1 -1
  69. package/dist/index.d.ts +1 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/main.d.ts +2 -2
  73. package/dist/main.d.ts.map +1 -1
  74. package/dist/main.js +0 -1
  75. package/dist/main.js.map +1 -1
  76. package/dist/modes/interactive/components/config-selector.d.ts +3 -34
  77. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  78. package/dist/modes/interactive/components/config-selector.js +24 -272
  79. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  80. package/dist/modes/interactive/components/footer.d.ts +0 -4
  81. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  82. package/dist/modes/interactive/components/footer.js +2 -5
  83. package/dist/modes/interactive/components/footer.js.map +1 -1
  84. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -3
  85. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  86. package/dist/modes/interactive/components/oauth-selector.js +6 -16
  87. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  88. package/dist/modes/interactive/components/settings-selector.d.ts +0 -2
  89. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  90. package/dist/modes/interactive/components/settings-selector.js +0 -10
  91. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  92. package/dist/modes/interactive/interactive-mode.d.ts +0 -10
  93. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  94. package/dist/modes/interactive/interactive-mode.js +37 -261
  95. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  96. package/dist/modes/print-mode.js +1 -1
  97. package/dist/modes/print-mode.js.map +1 -1
  98. package/dist/modes/rpc/rpc-client.d.ts +6 -6
  99. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  100. package/dist/modes/rpc/rpc-client.js +3 -3
  101. package/dist/modes/rpc/rpc-client.js.map +1 -1
  102. package/dist/package-manager-cli.d.ts +2 -2
  103. package/dist/package-manager-cli.d.ts.map +1 -1
  104. package/dist/package-manager-cli.js +17 -64
  105. package/dist/package-manager-cli.js.map +1 -1
  106. package/dist/utils/clipboard-image.js +1 -1
  107. package/dist/utils/clipboard-image.js.map +1 -1
  108. package/docs/extensions.md +9 -33
  109. package/docs/models.md +4 -4
  110. package/docs/packages.md +10 -7
  111. package/docs/rpc.md +3 -13
  112. package/docs/sdk.md +0 -22
  113. package/docs/settings.md +0 -1
  114. package/docs/usage.md +1 -1
  115. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  116. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  117. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  118. package/examples/extensions/gondolin/package-lock.json +2 -2
  119. package/examples/extensions/gondolin/package.json +1 -1
  120. package/examples/extensions/reload-runtime.ts +2 -2
  121. package/examples/extensions/sandbox/package-lock.json +2 -2
  122. package/examples/extensions/sandbox/package.json +1 -1
  123. package/examples/extensions/with-deps/package-lock.json +2 -2
  124. package/examples/extensions/with-deps/package.json +1 -1
  125. package/examples/sdk/README.md +1 -1
  126. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  127. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  128. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +2 -37
  129. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  130. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -1
  131. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js +0 -2
  132. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +1 -1
  133. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -1
  134. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -1
  135. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js +0 -7
  136. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +1 -1
  137. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +4 -18
  138. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
  139. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +37 -72
  140. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
  141. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +0 -2
  142. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
  143. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
  144. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +0 -2
  145. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
  146. package/node_modules/@earendil-works/pi-agent-core/dist/index.js +0 -2
  147. package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
  148. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  149. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  150. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +1 -2
  151. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  152. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +1 -1
  153. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
  154. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.d.ts.map +1 -1
  155. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js +1 -4
  156. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -1
  157. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +195 -446
  158. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  159. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts +0 -84
  160. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  161. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +0 -72
  162. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js.map +1 -1
  163. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +4 -4
  164. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -1
  165. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts +0 -63
  166. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts.map +1 -1
  167. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +0 -54
  168. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js.map +1 -1
  169. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts +0 -84
  170. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts.map +1 -1
  171. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +0 -72
  172. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js.map +1 -1
  173. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +63 -138
  174. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  175. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +76 -136
  176. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  177. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +0 -77
  178. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  179. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +0 -71
  180. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  181. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts +44 -0
  182. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  183. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +45 -9
  184. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  185. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts +44 -0
  186. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  187. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +45 -9
  188. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  189. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts +44 -0
  190. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  191. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +45 -9
  192. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  193. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
  194. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +0 -3
  195. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
  196. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  197. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  198. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
  199. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +1 -22
  200. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
  201. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  202. package/npm-shrinkwrap.json +14 -14
  203. package/package.json +6 -6
  204. package/dist/core/cache-stats.d.ts +0 -49
  205. package/dist/core/cache-stats.d.ts.map +0 -1
  206. package/dist/core/cache-stats.js +0 -101
  207. package/dist/core/cache-stats.js.map +0 -1
@@ -854,6 +854,24 @@ 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
+ },
857
875
  "google/gemini-2.5-pro": {
858
876
  id: "google/gemini-2.5-pro",
859
877
  name: "Google: Gemini 2.5 Pro",
@@ -1441,9 +1459,9 @@ export const OPENROUTER_MODELS = {
1441
1459
  reasoning: true,
1442
1460
  input: ["text"],
1443
1461
  cost: {
1444
- input: 0.15,
1445
- output: 0.9,
1446
- cacheRead: 0.05,
1462
+ input: 0.12,
1463
+ output: 0.48,
1464
+ cacheRead: 0,
1447
1465
  cacheWrite: 0,
1448
1466
  },
1449
1467
  contextWindow: 204800,
@@ -1459,8 +1477,8 @@ export const OPENROUTER_MODELS = {
1459
1477
  reasoning: true,
1460
1478
  input: ["text"],
1461
1479
  cost: {
1462
- input: 0.24,
1463
- output: 0.96,
1480
+ input: 0.18,
1481
+ output: 0.72,
1464
1482
  cacheRead: 0,
1465
1483
  cacheWrite: 0,
1466
1484
  },
@@ -1483,7 +1501,7 @@ export const OPENROUTER_MODELS = {
1483
1501
  cacheWrite: 0,
1484
1502
  },
1485
1503
  contextWindow: 1048576,
1486
- maxTokens: 131072,
1504
+ maxTokens: 512000,
1487
1505
  },
1488
1506
  "mistralai/codestral-2508": {
1489
1507
  id: "mistralai/codestral-2508",
@@ -1873,9 +1891,9 @@ export const OPENROUTER_MODELS = {
1873
1891
  reasoning: true,
1874
1892
  input: ["text", "image"],
1875
1893
  cost: {
1876
- input: 0.66,
1894
+ input: 0.65,
1877
1895
  output: 3.41,
1878
- cacheRead: 0.15,
1896
+ cacheRead: 0.14,
1879
1897
  cacheWrite: 0,
1880
1898
  },
1881
1899
  contextWindow: 262144,
@@ -1891,13 +1909,13 @@ export const OPENROUTER_MODELS = {
1891
1909
  reasoning: true,
1892
1910
  input: ["text", "image"],
1893
1911
  cost: {
1894
- input: 0.72,
1895
- output: 3.49,
1896
- cacheRead: 0.159,
1912
+ input: 0.74,
1913
+ output: 3.5,
1914
+ cacheRead: 0.15,
1897
1915
  cacheWrite: 0,
1898
1916
  },
1899
1917
  contextWindow: 262144,
1900
- maxTokens: 262144,
1918
+ maxTokens: 16384,
1901
1919
  },
1902
1920
  "nex-agi/nex-n2-mini": {
1903
1921
  id: "nex-agi/nex-n2-mini",
@@ -2793,120 +2811,6 @@ export const OPENROUTER_MODELS = {
2793
2811
  contextWindow: 1050000,
2794
2812
  maxTokens: 128000,
2795
2813
  },
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
- },
2910
2814
  "openai/gpt-audio": {
2911
2815
  id: "openai/gpt-audio",
2912
2816
  name: "OpenAI: GPT Audio",
@@ -2971,13 +2875,13 @@ export const OPENROUTER_MODELS = {
2971
2875
  reasoning: true,
2972
2876
  input: ["text"],
2973
2877
  cost: {
2974
- input: 0.036,
2975
- output: 0.18,
2878
+ input: 0.03,
2879
+ output: 0.15,
2976
2880
  cacheRead: 0,
2977
2881
  cacheWrite: 0,
2978
2882
  },
2979
2883
  contextWindow: 131072,
2980
- maxTokens: 4096,
2884
+ maxTokens: 131072,
2981
2885
  },
2982
2886
  "openai/gpt-oss-120b:free": {
2983
2887
  id: "openai/gpt-oss-120b:free",
@@ -3339,6 +3243,42 @@ export const OPENROUTER_MODELS = {
3339
3243
  contextWindow: 262144,
3340
3244
  maxTokens: 32768,
3341
3245
  },
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
+ },
3342
3282
  "qwen/qwen-2.5-72b-instruct": {
3343
3283
  id: "qwen/qwen-2.5-72b-instruct",
3344
3284
  name: "Qwen2.5 72B Instruct",
@@ -4682,13 +4622,13 @@ export const OPENROUTER_MODELS = {
4682
4622
  thinkingLevelMap: { "xhigh": "xhigh" },
4683
4623
  input: ["text"],
4684
4624
  cost: {
4685
- input: 0.54,
4686
- output: 1.76,
4687
- cacheRead: 0.1,
4625
+ input: 0.9,
4626
+ output: 3.08,
4627
+ cacheRead: 0.18,
4688
4628
  cacheWrite: 0,
4689
4629
  },
4690
4630
  contextWindow: 1048576,
4691
- maxTokens: 101376,
4631
+ maxTokens: 1048576,
4692
4632
  },
4693
4633
  "z-ai/glm-5v-turbo": {
4694
4634
  id: "z-ai/glm-5v-turbo",
@@ -4826,9 +4766,9 @@ export const OPENROUTER_MODELS = {
4826
4766
  reasoning: true,
4827
4767
  input: ["text", "image"],
4828
4768
  cost: {
4829
- input: 0.66,
4769
+ input: 0.65,
4830
4770
  output: 3.41,
4831
- cacheRead: 0.15,
4771
+ cacheRead: 0.14,
4832
4772
  cacheWrite: 0,
4833
4773
  },
4834
4774
  contextWindow: 262144,
@@ -4847,7 +4787,7 @@ export const OPENROUTER_MODELS = {
4847
4787
  input: 5,
4848
4788
  output: 30,
4849
4789
  cacheRead: 0.5,
4850
- cacheWrite: 6.25,
4790
+ cacheWrite: 0,
4851
4791
  },
4852
4792
  contextWindow: 1050000,
4853
4793
  maxTokens: 128000,