@code-yeongyu/senpi 2026.6.30 → 2026.7.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 (272) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/core/agent-session.d.ts +6 -1
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +42 -25
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/auth-storage.d.ts.map +1 -1
  7. package/dist/core/auth-storage.js +13 -5
  8. package/dist/core/auth-storage.js.map +1 -1
  9. package/dist/core/compaction/compaction.d.ts.map +1 -1
  10. package/dist/core/compaction/compaction.js +5 -8
  11. package/dist/core/compaction/compaction.js.map +1 -1
  12. package/dist/core/dynamic-prompt/build.d.ts +13 -0
  13. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  14. package/dist/core/dynamic-prompt/build.js +24 -21
  15. package/dist/core/dynamic-prompt/build.js.map +1 -1
  16. package/dist/core/dynamic-prompt/exploration.d.ts.map +1 -1
  17. package/dist/core/dynamic-prompt/exploration.js +1 -3
  18. package/dist/core/dynamic-prompt/exploration.js.map +1 -1
  19. package/dist/core/dynamic-prompt/index.d.ts +1 -1
  20. package/dist/core/dynamic-prompt/index.d.ts.map +1 -1
  21. package/dist/core/dynamic-prompt/index.js.map +1 -1
  22. package/dist/core/dynamic-prompt/intent-gate.d.ts.map +1 -1
  23. package/dist/core/dynamic-prompt/intent-gate.js +20 -35
  24. package/dist/core/dynamic-prompt/intent-gate.js.map +1 -1
  25. package/dist/core/dynamic-prompt/parallel-tools.d.ts.map +1 -1
  26. package/dist/core/dynamic-prompt/parallel-tools.js +2 -4
  27. package/dist/core/dynamic-prompt/parallel-tools.js.map +1 -1
  28. package/dist/core/dynamic-prompt/style.d.ts.map +1 -1
  29. package/dist/core/dynamic-prompt/style.js +7 -26
  30. package/dist/core/dynamic-prompt/style.js.map +1 -1
  31. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.d.ts +3 -0
  32. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.d.ts.map +1 -0
  33. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js +16 -0
  34. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js.map +1 -0
  35. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.d.ts.map +1 -1
  36. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js +3 -1
  37. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js.map +1 -1
  38. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.d.ts.map +1 -1
  39. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js +3 -1
  40. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js.map +1 -1
  41. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.d.ts.map +1 -1
  42. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js +6 -2
  43. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js.map +1 -1
  44. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts.map +1 -1
  45. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js +5 -3
  46. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js.map +1 -1
  47. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.d.ts.map +1 -1
  48. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js +68 -8
  49. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js.map +1 -1
  50. package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
  51. package/dist/core/extensions/builtin/prompt-preset/presets.js +9 -0
  52. package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
  53. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
  54. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
  55. package/dist/core/extensions/builtin/prompt-preset/settings.js +1 -0
  56. package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
  57. package/dist/core/extensions/index.d.ts +1 -1
  58. package/dist/core/extensions/index.d.ts.map +1 -1
  59. package/dist/core/extensions/index.js.map +1 -1
  60. package/dist/core/extensions/loader.d.ts.map +1 -1
  61. package/dist/core/extensions/loader.js +6 -0
  62. package/dist/core/extensions/loader.js.map +1 -1
  63. package/dist/core/extensions/runner.d.ts +2 -1
  64. package/dist/core/extensions/runner.d.ts.map +1 -1
  65. package/dist/core/extensions/runner.js +33 -1
  66. package/dist/core/extensions/runner.js.map +1 -1
  67. package/dist/core/extensions/types.d.ts +16 -2
  68. package/dist/core/extensions/types.d.ts.map +1 -1
  69. package/dist/core/extensions/types.js.map +1 -1
  70. package/dist/core/http-dispatcher.d.ts.map +1 -1
  71. package/dist/core/http-dispatcher.js +28 -1
  72. package/dist/core/http-dispatcher.js.map +1 -1
  73. package/dist/core/model-resolver.d.ts +10 -0
  74. package/dist/core/model-resolver.d.ts.map +1 -1
  75. package/dist/core/model-resolver.js +21 -27
  76. package/dist/core/model-resolver.js.map +1 -1
  77. package/dist/core/session-manager.d.ts +20 -1
  78. package/dist/core/session-manager.d.ts.map +1 -1
  79. package/dist/core/session-manager.js +87 -68
  80. package/dist/core/session-manager.js.map +1 -1
  81. package/dist/core/settings-manager.d.ts +3 -0
  82. package/dist/core/settings-manager.d.ts.map +1 -1
  83. package/dist/core/settings-manager.js +8 -0
  84. package/dist/core/settings-manager.js.map +1 -1
  85. package/dist/core/tools/bash.d.ts.map +1 -1
  86. package/dist/core/tools/bash.js +20 -5
  87. package/dist/core/tools/bash.js.map +1 -1
  88. package/dist/extension-system-migration.d.ts +2 -0
  89. package/dist/extension-system-migration.d.ts.map +1 -0
  90. package/dist/extension-system-migration.js +51 -0
  91. package/dist/extension-system-migration.js.map +1 -0
  92. package/dist/index.d.ts +3 -2
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +2 -1
  95. package/dist/index.js.map +1 -1
  96. package/dist/legacy-senpi-dir-migration.d.ts +2 -0
  97. package/dist/legacy-senpi-dir-migration.d.ts.map +1 -0
  98. package/dist/legacy-senpi-dir-migration.js +76 -0
  99. package/dist/legacy-senpi-dir-migration.js.map +1 -0
  100. package/dist/migrations.d.ts.map +1 -1
  101. package/dist/migrations.js +3 -95
  102. package/dist/migrations.js.map +1 -1
  103. package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
  104. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  105. package/dist/modes/interactive/components/assistant-message.js +15 -7
  106. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  107. package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  108. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  109. package/dist/modes/interactive/components/custom-entry.js +49 -0
  110. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  111. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  112. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  113. package/dist/modes/interactive/components/settings-selector.js +13 -1
  114. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  115. package/dist/modes/interactive/components/status-indicator.d.ts +27 -0
  116. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  117. package/dist/modes/interactive/components/status-indicator.js +64 -0
  118. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  119. package/dist/modes/interactive/components/user-message.d.ts +6 -2
  120. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  121. package/dist/modes/interactive/components/user-message.js +15 -4
  122. package/dist/modes/interactive/components/user-message.js.map +1 -1
  123. package/dist/modes/interactive/interactive-mode.d.ts +14 -15
  124. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  125. package/dist/modes/interactive/interactive-mode.js +177 -137
  126. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  127. package/dist/modes/rpc/rpc-client.d.ts +15 -0
  128. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  129. package/dist/modes/rpc/rpc-client.js +14 -0
  130. package/dist/modes/rpc/rpc-client.js.map +1 -1
  131. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  132. package/dist/modes/rpc/rpc-mode.js +16 -0
  133. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  134. package/dist/modes/rpc/rpc-types.d.ts +26 -0
  135. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  136. package/dist/modes/rpc/rpc-types.js.map +1 -1
  137. package/docs/extensions.md +55 -8
  138. package/docs/rpc.md +58 -0
  139. package/docs/sdk.md +28 -0
  140. package/docs/session-format.md +18 -8
  141. package/docs/settings.md +2 -1
  142. package/examples/extensions/README.md +1 -0
  143. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  144. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  145. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  146. package/examples/extensions/entry-renderer.ts +41 -0
  147. package/examples/extensions/gondolin/package-lock.json +2 -2
  148. package/examples/extensions/gondolin/package.json +1 -1
  149. package/examples/extensions/question.ts +1 -0
  150. package/examples/extensions/sandbox/package-lock.json +2 -2
  151. package/examples/extensions/sandbox/package.json +1 -1
  152. package/examples/extensions/with-deps/package-lock.json +2 -2
  153. package/examples/extensions/with-deps/package.json +1 -1
  154. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +3 -1
  155. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
  156. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +9 -1
  157. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
  158. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
  159. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +4 -6
  160. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
  161. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
  162. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +20 -2
  163. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
  164. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  165. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  166. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +6 -0
  167. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  168. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
  169. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +2 -14
  170. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
  171. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  172. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +16 -5
  173. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
  174. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
  175. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +2 -1
  176. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
  177. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
  178. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +2 -1
  179. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
  180. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
  181. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +56 -39
  182. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
  183. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  184. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +8 -3
  185. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  186. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
  187. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +2 -14
  188. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  189. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.d.ts.map +1 -1
  190. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +2 -1
  191. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js.map +1 -1
  192. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +15 -45
  193. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  194. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +15 -45
  195. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  196. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +456 -37
  197. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  198. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +123 -0
  199. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  200. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +124 -4
  201. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -1
  202. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts +20 -0
  203. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts.map +1 -1
  204. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +18 -0
  205. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js.map +1 -1
  206. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts +21 -0
  207. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts.map +1 -1
  208. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +18 -0
  209. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js.map +1 -1
  210. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts +21 -0
  211. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  212. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +18 -0
  213. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  214. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts +10 -5
  215. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts.map +1 -1
  216. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +4 -3
  217. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js.map +1 -1
  218. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts +82 -0
  219. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts.map +1 -1
  220. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +57 -0
  221. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -1
  222. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts +0 -28
  223. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts.map +1 -1
  224. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +0 -19
  225. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js.map +1 -1
  226. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +5 -5
  227. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js.map +1 -1
  228. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts +89 -0
  229. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts.map +1 -1
  230. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +75 -2
  231. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js.map +1 -1
  232. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +46 -4
  233. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  234. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +91 -55
  235. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  236. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +2 -2
  237. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js.map +1 -1
  238. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +44 -0
  239. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  240. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +41 -4
  241. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  242. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts +25 -0
  243. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts.map +1 -0
  244. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +109 -0
  245. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js.map +1 -0
  246. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts +1 -0
  247. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts.map +1 -1
  248. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +6 -0
  249. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js.map +1 -1
  250. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  251. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +1 -0
  252. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  253. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +1 -0
  254. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  255. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +3 -0
  256. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  257. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  258. package/node_modules/@earendil-works/pi-tui/dist/mux.d.ts +4 -0
  259. package/node_modules/@earendil-works/pi-tui/dist/mux.d.ts.map +1 -0
  260. package/node_modules/@earendil-works/pi-tui/dist/mux.js +10 -0
  261. package/node_modules/@earendil-works/pi-tui/dist/mux.js.map +1 -0
  262. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +42 -1
  263. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  264. package/node_modules/@earendil-works/pi-tui/dist/tui.js +422 -101
  265. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  266. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +10 -0
  267. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
  268. package/node_modules/@earendil-works/pi-tui/dist/utils.js +53 -13
  269. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
  270. package/node_modules/@earendil-works/pi-tui/package.json +2 -1
  271. package/npm-shrinkwrap.json +9 -9
  272. package/package.json +4 -4
@@ -366,6 +366,24 @@ export const OPENROUTER_MODELS = {
366
366
  contextWindow: 1000000,
367
367
  maxTokens: 128000,
368
368
  },
369
+ "anthropic/claude-sonnet-5": {
370
+ id: "anthropic/claude-sonnet-5",
371
+ name: "Anthropic: Claude Sonnet 5",
372
+ api: "openai-completions",
373
+ provider: "openrouter",
374
+ baseUrl: "https://openrouter.ai/api/v1",
375
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
376
+ reasoning: true,
377
+ input: ["text", "image"],
378
+ cost: {
379
+ input: 2,
380
+ output: 10,
381
+ cacheRead: 0.2,
382
+ cacheWrite: 2.5,
383
+ },
384
+ contextWindow: 1000000,
385
+ maxTokens: 128000,
386
+ },
369
387
  "arcee-ai/trinity-large-thinking": {
370
388
  id: "arcee-ai/trinity-large-thinking",
371
389
  name: "Arcee AI: Trinity Large Thinking",
@@ -592,8 +610,8 @@ export const OPENROUTER_MODELS = {
592
610
  reasoning: false,
593
611
  input: ["text"],
594
612
  cost: {
595
- input: 0.2,
596
- output: 0.77,
613
+ input: 0.24,
614
+ output: 0.9,
597
615
  cacheRead: 0.135,
598
616
  cacheWrite: 0,
599
617
  },
@@ -719,13 +737,13 @@ export const OPENROUTER_MODELS = {
719
737
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "xhigh" },
720
738
  input: ["text"],
721
739
  cost: {
722
- input: 0.09,
740
+ input: 0.089,
723
741
  output: 0.18,
724
- cacheRead: 0.02,
742
+ cacheRead: 0.018,
725
743
  cacheWrite: 0,
726
744
  },
727
745
  contextWindow: 1048576,
728
- maxTokens: 65536,
746
+ maxTokens: 4096,
729
747
  },
730
748
  "deepseek/deepseek-v4-pro": {
731
749
  id: "deepseek/deepseek-v4-pro",
@@ -1352,12 +1370,12 @@ export const OPENROUTER_MODELS = {
1352
1370
  input: ["text"],
1353
1371
  cost: {
1354
1372
  input: 0.255,
1355
- output: 1,
1356
- cacheRead: 0.03,
1373
+ output: 1.02,
1374
+ cacheRead: 0,
1357
1375
  cacheWrite: 0,
1358
1376
  },
1359
1377
  contextWindow: 204800,
1360
- maxTokens: 196608,
1378
+ maxTokens: 131072,
1361
1379
  },
1362
1380
  "minimax/minimax-m2.1": {
1363
1381
  id: "minimax/minimax-m2.1",
@@ -1369,13 +1387,13 @@ export const OPENROUTER_MODELS = {
1369
1387
  reasoning: true,
1370
1388
  input: ["text"],
1371
1389
  cost: {
1372
- input: 0.29,
1373
- output: 0.95,
1390
+ input: 0.3,
1391
+ output: 1.2,
1374
1392
  cacheRead: 0.03,
1375
1393
  cacheWrite: 0,
1376
1394
  },
1377
1395
  contextWindow: 204800,
1378
- maxTokens: 196608,
1396
+ maxTokens: 131072,
1379
1397
  },
1380
1398
  "minimax/minimax-m2.5": {
1381
1399
  id: "minimax/minimax-m2.5",
@@ -1785,11 +1803,11 @@ export const OPENROUTER_MODELS = {
1785
1803
  cost: {
1786
1804
  input: 0.6,
1787
1805
  output: 2.5,
1788
- cacheRead: 0.6,
1806
+ cacheRead: 0.15,
1789
1807
  cacheWrite: 0,
1790
1808
  },
1791
1809
  contextWindow: 262144,
1792
- maxTokens: 262144,
1810
+ maxTokens: 100352,
1793
1811
  },
1794
1812
  "moonshotai/kimi-k2.5": {
1795
1813
  id: "moonshotai/kimi-k2.5",
@@ -1819,9 +1837,9 @@ export const OPENROUTER_MODELS = {
1819
1837
  reasoning: true,
1820
1838
  input: ["text", "image"],
1821
1839
  cost: {
1822
- input: 0.55,
1823
- output: 3.2,
1824
- cacheRead: 0.11,
1840
+ input: 0.66,
1841
+ output: 3.41,
1842
+ cacheRead: 0.14,
1825
1843
  cacheWrite: 0,
1826
1844
  },
1827
1845
  contextWindow: 262144,
@@ -3063,14 +3081,32 @@ export const OPENROUTER_MODELS = {
3063
3081
  contextWindow: 1000000,
3064
3082
  maxTokens: 30000,
3065
3083
  },
3066
- "openrouter/owl-alpha": {
3067
- id: "openrouter/owl-alpha",
3068
- name: "Owl Alpha",
3084
+ "poolside/laguna-m.1": {
3085
+ id: "poolside/laguna-m.1",
3086
+ name: "Poolside: Laguna M.1",
3069
3087
  api: "openai-completions",
3070
3088
  provider: "openrouter",
3071
3089
  baseUrl: "https://openrouter.ai/api/v1",
3072
3090
  compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3073
- reasoning: false,
3091
+ reasoning: true,
3092
+ input: ["text"],
3093
+ cost: {
3094
+ input: 0.2,
3095
+ output: 0.4,
3096
+ cacheRead: 0.1,
3097
+ cacheWrite: 0,
3098
+ },
3099
+ contextWindow: 262144,
3100
+ maxTokens: 32768,
3101
+ },
3102
+ "poolside/laguna-m.1:free": {
3103
+ id: "poolside/laguna-m.1:free",
3104
+ name: "Poolside: Laguna M.1 (free)",
3105
+ api: "openai-completions",
3106
+ provider: "openrouter",
3107
+ baseUrl: "https://openrouter.ai/api/v1",
3108
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3109
+ reasoning: true,
3074
3110
  input: ["text"],
3075
3111
  cost: {
3076
3112
  input: 0,
@@ -3078,12 +3114,12 @@ export const OPENROUTER_MODELS = {
3078
3114
  cacheRead: 0,
3079
3115
  cacheWrite: 0,
3080
3116
  },
3081
- contextWindow: 1048756,
3082
- maxTokens: 262144,
3117
+ contextWindow: 262144,
3118
+ maxTokens: 32768,
3083
3119
  },
3084
- "poolside/laguna-m.1": {
3085
- id: "poolside/laguna-m.1",
3086
- name: "Poolside: Laguna M.1",
3120
+ "poolside/laguna-xs-2.1": {
3121
+ id: "poolside/laguna-xs-2.1",
3122
+ name: "Poolside: Laguna XS 2.1",
3087
3123
  api: "openai-completions",
3088
3124
  provider: "openrouter",
3089
3125
  baseUrl: "https://openrouter.ai/api/v1",
@@ -3091,17 +3127,17 @@ export const OPENROUTER_MODELS = {
3091
3127
  reasoning: true,
3092
3128
  input: ["text"],
3093
3129
  cost: {
3094
- input: 0.2,
3095
- output: 0.4,
3096
- cacheRead: 0.1,
3130
+ input: 0.06,
3131
+ output: 0.12,
3132
+ cacheRead: 0.03,
3097
3133
  cacheWrite: 0,
3098
3134
  },
3099
3135
  contextWindow: 262144,
3100
3136
  maxTokens: 32768,
3101
3137
  },
3102
- "poolside/laguna-m.1:free": {
3103
- id: "poolside/laguna-m.1:free",
3104
- name: "Poolside: Laguna M.1 (free)",
3138
+ "poolside/laguna-xs-2.1:free": {
3139
+ id: "poolside/laguna-xs-2.1:free",
3140
+ name: "Poolside: Laguna XS 2.1 (free)",
3105
3141
  api: "openai-completions",
3106
3142
  provider: "openrouter",
3107
3143
  baseUrl: "https://openrouter.ai/api/v1",
@@ -3307,13 +3343,13 @@ export const OPENROUTER_MODELS = {
3307
3343
  reasoning: true,
3308
3344
  input: ["text"],
3309
3345
  cost: {
3310
- input: 0.1,
3311
- output: 0.1,
3312
- cacheRead: 0.1,
3346
+ input: 0.1495,
3347
+ output: 1.495,
3348
+ cacheRead: 0,
3313
3349
  cacheWrite: 0,
3314
3350
  },
3315
3351
  contextWindow: 262144,
3316
- maxTokens: 262144,
3352
+ maxTokens: 4096,
3317
3353
  },
3318
3354
  "qwen/qwen3-30b-a3b": {
3319
3355
  id: "qwen/qwen3-30b-a3b",
@@ -3361,13 +3397,13 @@ export const OPENROUTER_MODELS = {
3361
3397
  reasoning: true,
3362
3398
  input: ["text"],
3363
3399
  cost: {
3364
- input: 0.08,
3365
- output: 0.4,
3366
- cacheRead: 0.08,
3400
+ input: 0.13,
3401
+ output: 1.56,
3402
+ cacheRead: 0,
3367
3403
  cacheWrite: 0,
3368
3404
  },
3369
3405
  contextWindow: 131072,
3370
- maxTokens: 131072,
3406
+ maxTokens: 32768,
3371
3407
  },
3372
3408
  "qwen/qwen3-32b": {
3373
3409
  id: "qwen/qwen3-32b",
@@ -3397,9 +3433,9 @@ export const OPENROUTER_MODELS = {
3397
3433
  reasoning: true,
3398
3434
  input: ["text"],
3399
3435
  cost: {
3400
- input: 0.05,
3401
- output: 0.4,
3402
- cacheRead: 0.05,
3436
+ input: 0.117,
3437
+ output: 0.455,
3438
+ cacheRead: 0,
3403
3439
  cacheWrite: 0,
3404
3440
  },
3405
3441
  contextWindow: 131072,
@@ -3703,8 +3739,8 @@ export const OPENROUTER_MODELS = {
3703
3739
  reasoning: false,
3704
3740
  input: ["text", "image"],
3705
3741
  cost: {
3706
- input: 0.08,
3707
- output: 0.5,
3742
+ input: 0.117,
3743
+ output: 0.455,
3708
3744
  cacheRead: 0,
3709
3745
  cacheWrite: 0,
3710
3746
  },
@@ -3883,8 +3919,8 @@ export const OPENROUTER_MODELS = {
3883
3919
  reasoning: true,
3884
3920
  input: ["text", "image"],
3885
3921
  cost: {
3886
- input: 0.2596,
3887
- output: 2.385,
3922
+ input: 0.285,
3923
+ output: 2.4,
3888
3924
  cacheRead: 0,
3889
3925
  cacheWrite: 0,
3890
3926
  },
@@ -4442,13 +4478,13 @@ export const OPENROUTER_MODELS = {
4442
4478
  thinkingLevelMap: { "xhigh": "xhigh" },
4443
4479
  input: ["text"],
4444
4480
  cost: {
4445
- input: 0.94,
4481
+ input: 0.93,
4446
4482
  output: 3,
4447
4483
  cacheRead: 0.18,
4448
4484
  cacheWrite: 0,
4449
4485
  },
4450
4486
  contextWindow: 1048576,
4451
- maxTokens: 4096,
4487
+ maxTokens: 32768,
4452
4488
  },
4453
4489
  "z-ai/glm-5v-turbo": {
4454
4490
  id: "z-ai/glm-5v-turbo",
@@ -4532,10 +4568,10 @@ export const OPENROUTER_MODELS = {
4532
4568
  reasoning: true,
4533
4569
  input: ["text", "image"],
4534
4570
  cost: {
4535
- input: 3,
4536
- output: 15,
4537
- cacheRead: 0.3,
4538
- cacheWrite: 3.75,
4571
+ input: 2,
4572
+ output: 10,
4573
+ cacheRead: 0.2,
4574
+ cacheWrite: 2.5,
4539
4575
  },
4540
4576
  contextWindow: 1000000,
4541
4577
  maxTokens: 128000,
@@ -4586,9 +4622,9 @@ export const OPENROUTER_MODELS = {
4586
4622
  reasoning: true,
4587
4623
  input: ["text", "image"],
4588
4624
  cost: {
4589
- input: 0.55,
4590
- output: 3.2,
4591
- cacheRead: 0.11,
4625
+ input: 0.66,
4626
+ output: 3.41,
4627
+ cacheRead: 0.14,
4592
4628
  cacheWrite: 0,
4593
4629
  },
4594
4630
  contextWindow: 262144,