summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-08-08 20:42:22 -0400
committerDax Raad <[email protected]>2025-08-08 20:42:22 -0400
commit53630ebdce8a3dc64dd11b0fb38205b35fad74fc (patch)
treefa414666d730d2f2234c0f6ff36dbb4bbc4308da /packages
parent85eaa5b58bb9c78f164d9a1cb5303977dfebb4b4 (diff)
downloadopencode-53630ebdce8a3dc64dd11b0fb38205b35fad74fc.tar.gz
opencode-53630ebdce8a3dc64dd11b0fb38205b35fad74fc.zip
gpt-5 lower verbosity
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/global/index.ts2
-rw-r--r--packages/opencode/src/provider/provider.ts30
-rw-r--r--packages/opencode/src/provider/transform.ts9
-rw-r--r--packages/opencode/src/session/index.ts23
4 files changed, 39 insertions, 25 deletions
diff --git a/packages/opencode/src/global/index.ts b/packages/opencode/src/global/index.ts
index a2e4b4b1f..ca83b4695 100644
--- a/packages/opencode/src/global/index.ts
+++ b/packages/opencode/src/global/index.ts
@@ -27,7 +27,7 @@ await Promise.all([
fs.mkdir(Global.Path.log, { recursive: true }),
])
-const CACHE_VERSION = "4"
+const CACHE_VERSION = "5"
const version = await Bun.file(path.join(Global.Path.cache, "version"))
.text()
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 759e3b917..6c8273c33 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -97,7 +97,7 @@ export namespace Provider {
Array.isArray(msg.content) && msg.content.some((part: any) => part.type === "image_url"),
)
}
- } catch { }
+ } catch {}
const headers: Record<string, string> = {
...init.headers,
...copilot.HEADERS,
@@ -283,26 +283,26 @@ export namespace Provider {
cost:
!model.cost && !existing?.cost
? {
- input: 0,
- output: 0,
- cache_read: 0,
- cache_write: 0,
- }
+ input: 0,
+ output: 0,
+ cache_read: 0,
+ cache_write: 0,
+ }
: {
- cache_read: 0,
- cache_write: 0,
- ...existing?.cost,
- ...model.cost,
- },
+ cache_read: 0,
+ cache_write: 0,
+ ...existing?.cost,
+ ...model.cost,
+ },
options: {
...existing?.options,
...model.options,
},
limit: model.limit ??
existing?.limit ?? {
- context: 0,
- output: 0,
- },
+ context: 0,
+ output: 0,
+ },
}
parsed.models[modelID] = parsedModel
}
@@ -373,7 +373,7 @@ export namespace Provider {
const existing = s.sdk.get(provider.id)
if (existing) return existing
const pkg = provider.npm ?? provider.id
- const mod = await import(await BunProc.install(pkg, "beta"))
+ const mod = await import(await BunProc.install(pkg, "latest"))
const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!]
const loaded = fn({
name: provider.id,
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index 3264dd05d..9bebda346 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -81,4 +81,13 @@ export namespace ProviderTransform {
if (modelID.toLowerCase().includes("qwen")) return 1
return undefined
}
+
+ export function options(_providerID: string, modelID: string) {
+ if (modelID.includes("gpt-5")) {
+ return {
+ reasoningEffort: "low",
+ textVerbosity: "low",
+ }
+ }
+ }
}
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index b562c433a..3e82610b3 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -322,9 +322,9 @@ export namespace Session {
for (const child of await children(sessionID)) {
await remove(child.id, false)
}
- await unshare(sessionID).catch(() => { })
- await Storage.remove(`session/info/${sessionID}`).catch(() => { })
- await Storage.removeDir(`session/message/${sessionID}/`).catch(() => { })
+ await unshare(sessionID).catch(() => {})
+ await Storage.remove(`session/info/${sessionID}`).catch(() => {})
+ await Storage.removeDir(`session/message/${sessionID}/`).catch(() => {})
state().sessions.delete(sessionID)
state().messages.delete(sessionID)
if (emitEvent) {
@@ -523,7 +523,7 @@ export namespace Session {
sessionID: input.sessionID,
abort: new AbortController().signal,
messageID: userMsg.id,
- metadata: async () => { },
+ metadata: async () => {},
}),
)
return [
@@ -632,7 +632,7 @@ export namespace Session {
// mark session as updated
// used for session list sorting (indicates when session was most recently interacted with)
- await update(input.sessionID, (_draft) => { })
+ await update(input.sessionID, (_draft) => {})
if (isLocked(input.sessionID)) {
return new Promise((resolve) => {
@@ -679,7 +679,9 @@ export namespace Session {
generateText({
maxOutputTokens: small.info.reasoning ? 1024 : 20,
providerOptions: {
- [input.providerID]: small.info.options,
+ [input.providerID]: {
+ ...small.info.options,
+ },
},
messages: [
...SystemPrompt.title(input.providerID).map(
@@ -712,7 +714,7 @@ export namespace Session {
draft.title = title.trim()
})
})
- .catch(() => { })
+ .catch(() => {})
}
const agent = await Agent.get(inputAgent)
@@ -927,11 +929,14 @@ export namespace Session {
},
maxRetries: 3,
activeTools: Object.keys(tools).filter((x) => x !== "invalid"),
- maxOutputTokens: model.info.id.startsWith("gpt-5") ? undefined : outputLimit,
+ maxOutputTokens: outputLimit,
abortSignal: abort.signal,
stopWhen: stepCountIs(1000),
providerOptions: {
- [input.providerID]: model.info.options,
+ [input.providerID]: {
+ ...ProviderTransform.options(input.providerID, input.modelID),
+ ...model.info.options,
+ },
},
temperature: params.temperature,
topP: params.topP,