summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-09 20:24:18 -0400
committerDax Raad <[email protected]>2025-06-09 20:24:18 -0400
commitfed659c582dd548cb0a586e115829a7dc22ac312 (patch)
tree4f3526d3dcea0932ade52b80f34fa909d932317d
parentbffc612a4e0160af508240202a3c1bb7fb641259 (diff)
downloadopencode-fed659c582dd548cb0a586e115829a7dc22ac312.tar.gz
opencode-fed659c582dd548cb0a586e115829a7dc22ac312.zip
properly support codex mini
-rw-r--r--packages/opencode/opencode.json8
-rw-r--r--packages/opencode/src/provider/provider.ts4
-rw-r--r--packages/opencode/src/session/index.ts2
-rw-r--r--packages/opencode/src/tool/bash.ts3
-rw-r--r--packages/opencode/src/tool/edit.ts2
-rw-r--r--packages/opencode/src/tool/glob.ts4
-rw-r--r--packages/opencode/src/tool/grep.ts9
-rw-r--r--packages/opencode/src/tool/ls.ts12
-rw-r--r--packages/opencode/src/tool/read.ts4
-rw-r--r--packages/opencode/src/tool/webfetch.ts2
10 files changed, 26 insertions, 24 deletions
diff --git a/packages/opencode/opencode.json b/packages/opencode/opencode.json
deleted file mode 100644
index 1c0c3faa8..000000000
--- a/packages/opencode/opencode.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "mcp": {
- "planetscale": {
- "type": "local",
- "command": ["pscale", "mcp", "server"]
- }
- }
-}
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index de5c94579..23ae48047 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -207,7 +207,9 @@ export namespace Provider {
const sdk = await getSDK(providerID)
try {
- const language = sdk.languageModel(modelID)
+ const language =
+ // @ts-expect-error
+ "responses" in sdk ? sdk.responses(modelID) : sdk.languageModel(modelID)
log.info("found", { providerID, modelID })
s.models.set(key, {
info,
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 4754e986d..67e4081fd 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -549,7 +549,7 @@ export namespace Session {
abortSignal: abort.signal,
stopWhen: stepCountIs(1000),
messages: convertToModelMessages(msgs),
- temperature: 0,
+ temperature: model.info.id === "codex-mini-latest" ? undefined : 0,
tools: {
...(await MCP.tools()),
...tools,
diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts
index 0e19ecffb..43f39c726 100644
--- a/packages/opencode/src/tool/bash.ts
+++ b/packages/opencode/src/tool/bash.ts
@@ -35,8 +35,7 @@ export const BashTool = Tool.define({
.min(0)
.max(MAX_TIMEOUT)
.describe("Optional timeout in milliseconds")
- .optional()
- .describe("Optional timeout in milliseconds"),
+ .nullable(),
description: z
.string()
.describe(
diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts
index 23c6b92a6..c00a3a116 100644
--- a/packages/opencode/src/tool/edit.ts
+++ b/packages/opencode/src/tool/edit.ts
@@ -20,7 +20,7 @@ export const EditTool = Tool.define({
),
replaceAll: z
.boolean()
- .default(false)
+ .nullable()
.describe("Replace all occurences of old_string (default false)"),
}),
async execute(params, ctx) {
diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts
index c8ad66b6d..55021d1fa 100644
--- a/packages/opencode/src/tool/glob.ts
+++ b/packages/opencode/src/tool/glob.ts
@@ -11,10 +11,10 @@ export const GlobTool = Tool.define({
pattern: z.string().describe("The glob pattern to match files against"),
path: z
.string()
+ .nullable()
.describe(
`The directory to search in. If not specified, the current working directory will be used. IMPORTANT: Omit this field to use the default directory. DO NOT enter "undefined" or "null" - simply omit it for the default behavior. Must be a valid directory path if provided.`,
- )
- .optional(),
+ ),
}),
async execute(params) {
const app = App.info()
diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts
index bfe71f8a4..e4fa8b1d1 100644
--- a/packages/opencode/src/tool/grep.ts
+++ b/packages/opencode/src/tool/grep.ts
@@ -11,19 +11,20 @@ export const GrepTool = Tool.define({
parameters: z.object({
pattern: z
.string()
+ .nullable()
.describe("The regex pattern to search for in file contents"),
path: z
.string()
+ .nullable()
.describe(
"The directory to search in. Defaults to the current working directory.",
- )
- .optional(),
+ ),
include: z
.string()
+ .nullable()
.describe(
'File pattern to include in the search (e.g. "*.js", "*.{ts,tsx}")',
- )
- .optional(),
+ ),
}),
async execute(params) {
if (!params.pattern) {
diff --git a/packages/opencode/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts
index 4d481a648..a494211b6 100644
--- a/packages/opencode/src/tool/ls.ts
+++ b/packages/opencode/src/tool/ls.ts
@@ -22,8 +22,16 @@ export const ListTool = Tool.define({
id: "opencode.list",
description: DESCRIPTION,
parameters: z.object({
- path: z.string().describe("The absolute path to the directory to list (must be absolute, not relative)").optional(),
- ignore: z.array(z.string()).describe("List of glob patterns to ignore").optional(),
+ path: z
+ .string()
+ .describe(
+ "The absolute path to the directory to list (must be absolute, not relative)",
+ )
+ .nullable(),
+ ignore: z
+ .array(z.string())
+ .describe("List of glob patterns to ignore")
+ .nullable(),
}),
async execute(params) {
const app = App.info()
diff --git a/packages/opencode/src/tool/read.ts b/packages/opencode/src/tool/read.ts
index 8685d19f9..0ace57e2a 100644
--- a/packages/opencode/src/tool/read.ts
+++ b/packages/opencode/src/tool/read.ts
@@ -18,11 +18,11 @@ export const ReadTool = Tool.define({
offset: z
.number()
.describe("The line number to start reading from (0-based)")
- .optional(),
+ .nullable(),
limit: z
.number()
.describe("The number of lines to read (defaults to 2000)")
- .optional(),
+ .nullable(),
}),
async execute(params, ctx) {
let filePath = params.filePath
diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts
index f1636bfc3..bca97e500 100644
--- a/packages/opencode/src/tool/webfetch.ts
+++ b/packages/opencode/src/tool/webfetch.ts
@@ -22,7 +22,7 @@ export const WebFetchTool = Tool.define({
.min(0)
.max(MAX_TIMEOUT / 1000)
.describe("Optional timeout in seconds (max 120)")
- .optional(),
+ .nullable(),
}),
async execute(params) {
// Validate URL