summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-15 14:00:39 -0400
committerDax Raad <[email protected]>2025-07-15 14:00:52 -0400
commitb1ab6419054e6ee2fd34edbdcf8c2d7c6cd3b5d3 (patch)
tree115080a899ef9edb518d342950c7d60c1ae4fa61
parent76e256ed64e5654802617c07187d6c51d36db3b5 (diff)
downloadopencode-b1ab6419054e6ee2fd34edbdcf8c2d7c6cd3b5d3.tar.gz
opencode-b1ab6419054e6ee2fd34edbdcf8c2d7c6cd3b5d3.zip
add small model for title generation
-rw-r--r--package.json4
-rw-r--r--packages/opencode/src/provider/provider.ts11
-rw-r--r--packages/opencode/src/session/index.ts4
-rw-r--r--packages/opencode/src/tool/read.ts4
-rw-r--r--packages/tui/internal/tui/tui.go2
-rw-r--r--patches/[email protected]13
6 files changed, 16 insertions, 22 deletions
diff --git a/package.json b/package.json
index 77dcb5167..7e0141ae6 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,5 @@
"protobufjs",
"sharp"
],
- "patchedDependencies": {
- }
+ "patchedDependencies": {}
}
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 8e7243ba5..14261320e 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -408,6 +408,17 @@ export namespace Provider {
}
}
+ export async function getSmallModel(providerID: string) {
+ const provider = await state().then((state) => state.providers[providerID])
+ if (!provider) return
+ const priority = ["3-5-haiku", "3.5-haiku", "gemini-2.5-flash"]
+ for (const item of priority) {
+ for (const model of Object.keys(provider.info.models)) {
+ if (model.includes(item)) return getModel(providerID, model)
+ }
+ }
+ }
+
const priority = ["gemini-2.5-pro-preview", "codex-mini", "claude-sonnet-4"]
export function sort(models: ModelsDev.Model[]) {
return sortBy(
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 71514a295..4877d91d7 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -504,6 +504,7 @@ export namespace Session {
})
if (msgs.length === 0 && !session.parentID) {
+ const small = (await Provider.getSmallModel(input.providerID)) ?? model
generateText({
maxOutputTokens: input.providerID === "google" ? 1024 : 20,
providerOptions: model.info.options,
@@ -528,7 +529,7 @@ export namespace Session {
},
]),
],
- model: model.language,
+ model: small.language,
})
.then((result) => {
if (result.text)
@@ -1012,6 +1013,7 @@ export namespace Session {
const processor = createProcessor(next, model.info)
const stream = streamText({
+ maxRetries: 10,
abortSignal: abort.signal,
model: model.language,
messages: [
diff --git a/packages/opencode/src/tool/read.ts b/packages/opencode/src/tool/read.ts
index ccc60e7bc..81414186d 100644
--- a/packages/opencode/src/tool/read.ts
+++ b/packages/opencode/src/tool/read.ts
@@ -7,7 +7,6 @@ import { FileTime } from "../file/time"
import DESCRIPTION from "./read.txt"
import { App } from "../app/app"
-const MAX_READ_SIZE = 250 * 1024
const DEFAULT_READ_LIMIT = 2000
const MAX_LINE_LENGTH = 2000
@@ -45,10 +44,7 @@ export const ReadTool = Tool.define({
throw new Error(`File not found: ${filePath}`)
}
- const stats = await file.stat()
- if (stats.size > MAX_READ_SIZE)
- throw new Error(`File is too large (${stats.size} bytes). Maximum size is ${MAX_READ_SIZE} bytes`)
const limit = params.limit ?? DEFAULT_READ_LIMIT
const offset = params.offset || 0
const isImage = isImageFile(filePath)
diff --git a/packages/tui/internal/tui/tui.go b/packages/tui/internal/tui/tui.go
index 1e0e95ac6..0e65e63be 100644
--- a/packages/tui/internal/tui/tui.go
+++ b/packages/tui/internal/tui/tui.go
@@ -492,7 +492,7 @@ func (a appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case app.SessionSelectedMsg:
messages, err := a.app.ListMessages(context.Background(), msg.ID)
if err != nil {
- slog.Error("Failed to list messages", "error", err)
+ slog.Error("Failed to list messages", "error", err.Error())
return a, toast.NewErrorToast("Failed to open session")
}
a.app.Session = msg
diff --git a/patches/[email protected] b/patches/[email protected]
deleted file mode 100644
index 7d6df589d..000000000
--- a/patches/[email protected]
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/dist/index.mjs b/dist/index.mjs
-index 92a80377692488c4ba8801ce33e7736ad7055e43..add6281bbecaa1c03d3b48eb99aead4a7a7336b2 100644
---- a/dist/index.mjs
-+++ b/dist/index.mjs
-@@ -1593,7 +1593,7 @@ function prepareCallSettings({
- return {
- maxTokens,
- // TODO v5 remove default 0 for temperature
-- temperature: temperature != null ? temperature : 0,
-+ temperature: temperature,
- topP,
- topK,
- presencePenalty,