summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-19 09:59:12 -0400
committerDax Raad <[email protected]>2025-06-19 09:59:44 -0400
commit26bab00dabb6d20c9fd80a4873642c4df1b3f4b9 (patch)
treeb3a53bc435c1142d26e9dc3410b9ac053e0c09e1
parent568c04753ec820e6c0c7c6b15bf835b889bb8af7 (diff)
downloadopencode-26bab00dabb6d20c9fd80a4873642c4df1b3f4b9.tar.gz
opencode-26bab00dabb6d20c9fd80a4873642c4df1b3f4b9.zip
remove opencode_ prefixes from tool names. unfortunately this will break
all old sessions and share links. we'll be more backwards compatible in the future once we're more stable.
-rw-r--r--packages/opencode/src/cli/cmd/run.ts18
-rw-r--r--packages/opencode/src/provider/provider.ts4
-rw-r--r--packages/opencode/src/tool/bash.ts2
-rw-r--r--packages/opencode/src/tool/edit.ts4
-rw-r--r--packages/opencode/src/tool/glob.ts2
-rw-r--r--packages/opencode/src/tool/grep.ts2
-rw-r--r--packages/opencode/src/tool/ls.ts2
-rw-r--r--packages/opencode/src/tool/lsp-diagnostics.ts2
-rw-r--r--packages/opencode/src/tool/lsp-hover.ts2
-rw-r--r--packages/opencode/src/tool/multiedit.ts2
-rw-r--r--packages/opencode/src/tool/patch.ts2
-rw-r--r--packages/opencode/src/tool/read.ts2
-rw-r--r--packages/opencode/src/tool/task.ts2
-rw-r--r--packages/opencode/src/tool/todo.ts4
-rw-r--r--packages/opencode/src/tool/webfetch.ts2
-rw-r--r--packages/opencode/src/tool/write.ts4
-rw-r--r--packages/tui/internal/components/chat/message.go42
-rw-r--r--packages/web/src/components/Share.tsx20
18 files changed, 59 insertions, 59 deletions
diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts
index 01dcd9bf8..ccf4b50c9 100644
--- a/packages/opencode/src/cli/cmd/run.ts
+++ b/packages/opencode/src/cli/cmd/run.ts
@@ -11,15 +11,15 @@ import { Flag } from "../../flag/flag"
import { Config } from "../../config/config"
const TOOL: Record<string, [string, string]> = {
- opencode_todowrite: ["Todo", UI.Style.TEXT_WARNING_BOLD],
- opencode_todoread: ["Todo", UI.Style.TEXT_WARNING_BOLD],
- opencode_bash: ["Bash", UI.Style.TEXT_DANGER_BOLD],
- opencode_edit: ["Edit", UI.Style.TEXT_SUCCESS_BOLD],
- opencode_glob: ["Glob", UI.Style.TEXT_INFO_BOLD],
- opencode_grep: ["Grep", UI.Style.TEXT_INFO_BOLD],
- opencode_list: ["List", UI.Style.TEXT_INFO_BOLD],
- opencode_read: ["Read", UI.Style.TEXT_HIGHLIGHT_BOLD],
- opencode_write: ["Write", UI.Style.TEXT_SUCCESS_BOLD],
+ todowrite: ["Todo", UI.Style.TEXT_WARNING_BOLD],
+ todoread: ["Todo", UI.Style.TEXT_WARNING_BOLD],
+ bash: ["Bash", UI.Style.TEXT_DANGER_BOLD],
+ edit: ["Edit", UI.Style.TEXT_SUCCESS_BOLD],
+ glob: ["Glob", UI.Style.TEXT_INFO_BOLD],
+ grep: ["Grep", UI.Style.TEXT_INFO_BOLD],
+ list: ["List", UI.Style.TEXT_INFO_BOLD],
+ read: ["Read", UI.Style.TEXT_HIGHLIGHT_BOLD],
+ write: ["Write", UI.Style.TEXT_SUCCESS_BOLD],
}
export const RunCommand = cmd({
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 4fa6c8d67..2c0aa2470 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -274,7 +274,7 @@ export namespace Provider {
const cfg = await Config.get()
const provider = await list()
.then((val) => Object.values(val))
- .then((x) => x.find((p) => !cfg.provider || cfg.provider === p.info.id))
+ .then((x) => x.find((p) => !cfg.provider || Object.keys(cfg.provider).includes(p.info.id)))
if (!provider) throw new Error("no providers found")
const [model] = sort(Object.values(provider.info.models))
if (!model) throw new Error("no models found")
@@ -304,7 +304,7 @@ export namespace Provider {
]
const TOOL_MAPPING: Record<string, Tool.Info[]> = {
- anthropic: TOOLS.filter((t) => t.id !== "opencode.patch"),
+ anthropic: TOOLS.filter((t) => t.id !== "patch"),
openai: TOOLS.map((t) => ({
...t,
parameters: optionalToNullable(t.parameters),
diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts
index 7bf1c595b..a10096fe5 100644
--- a/packages/opencode/src/tool/bash.ts
+++ b/packages/opencode/src/tool/bash.ts
@@ -26,7 +26,7 @@ const DEFAULT_TIMEOUT = 1 * 60 * 1000
const MAX_TIMEOUT = 10 * 60 * 1000
export const BashTool = Tool.define({
- id: "opencode.bash",
+ id: "bash",
description: DESCRIPTION,
parameters: z.object({
command: z.string().describe("The command to execute"),
diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts
index 8af2a0eeb..784001196 100644
--- a/packages/opencode/src/tool/edit.ts
+++ b/packages/opencode/src/tool/edit.ts
@@ -9,7 +9,7 @@ import DESCRIPTION from "./edit.txt"
import { App } from "../app/app"
export const EditTool = Tool.define({
- id: "opencode.edit",
+ id: "edit",
description: DESCRIPTION,
parameters: z.object({
filePath: z.string().describe("The absolute path to the file to modify"),
@@ -35,7 +35,7 @@ export const EditTool = Tool.define({
: path.join(app.path.cwd, params.filePath)
await Permission.ask({
- id: "opencode.edit",
+ id: "edit",
sessionID: ctx.sessionID,
title: "Edit this file: " + filepath,
metadata: {
diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts
index aab5603ec..07df3abaf 100644
--- a/packages/opencode/src/tool/glob.ts
+++ b/packages/opencode/src/tool/glob.ts
@@ -5,7 +5,7 @@ import { App } from "../app/app"
import DESCRIPTION from "./glob.txt"
export const GlobTool = Tool.define({
- id: "opencode.glob",
+ id: "glob",
description: DESCRIPTION,
parameters: z.object({
pattern: z.string().describe("The glob pattern to match files against"),
diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts
index 02979b149..1142136b4 100644
--- a/packages/opencode/src/tool/grep.ts
+++ b/packages/opencode/src/tool/grep.ts
@@ -6,7 +6,7 @@ import { Ripgrep } from "../external/ripgrep"
import DESCRIPTION from "./grep.txt"
export const GrepTool = Tool.define({
- id: "opencode.grep",
+ id: "grep",
description: DESCRIPTION,
parameters: z.object({
pattern: z
diff --git a/packages/opencode/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts
index 0a0c4155e..bfceba854 100644
--- a/packages/opencode/src/tool/ls.ts
+++ b/packages/opencode/src/tool/ls.ts
@@ -21,7 +21,7 @@ export const IGNORE_PATTERNS = [
const LIMIT = 100
export const ListTool = Tool.define({
- id: "opencode.list",
+ id: "list",
description: DESCRIPTION,
parameters: z.object({
path: z
diff --git a/packages/opencode/src/tool/lsp-diagnostics.ts b/packages/opencode/src/tool/lsp-diagnostics.ts
index 8298df4ba..97ae7a269 100644
--- a/packages/opencode/src/tool/lsp-diagnostics.ts
+++ b/packages/opencode/src/tool/lsp-diagnostics.ts
@@ -6,7 +6,7 @@ import { App } from "../app/app"
import DESCRIPTION from "./lsp-diagnostics.txt"
export const LspDiagnosticTool = Tool.define({
- id: "opencode.lsp_diagnostics",
+ id: "lsp_diagnostics",
description: DESCRIPTION,
parameters: z.object({
path: z.string().describe("The path to the file to get diagnostics."),
diff --git a/packages/opencode/src/tool/lsp-hover.ts b/packages/opencode/src/tool/lsp-hover.ts
index 9d1ef4850..f5031f85f 100644
--- a/packages/opencode/src/tool/lsp-hover.ts
+++ b/packages/opencode/src/tool/lsp-hover.ts
@@ -6,7 +6,7 @@ import { App } from "../app/app"
import DESCRIPTION from "./lsp-hover.txt"
export const LspHoverTool = Tool.define({
- id: "opencode.lsp_hover",
+ id: "lsp_hover",
description: DESCRIPTION,
parameters: z.object({
file: z.string().describe("The path to the file to get diagnostics."),
diff --git a/packages/opencode/src/tool/multiedit.ts b/packages/opencode/src/tool/multiedit.ts
index f1d5ea6b1..f8d0f16c6 100644
--- a/packages/opencode/src/tool/multiedit.ts
+++ b/packages/opencode/src/tool/multiedit.ts
@@ -6,7 +6,7 @@ import path from "path"
import { App } from "../app/app"
export const MultiEditTool = Tool.define({
- id: "opencode.multiedit",
+ id: "multiedit",
description: DESCRIPTION,
parameters: z.object({
filePath: z.string().describe("The absolute path to the file to modify"),
diff --git a/packages/opencode/src/tool/patch.ts b/packages/opencode/src/tool/patch.ts
index 5d6ebb590..508814ac4 100644
--- a/packages/opencode/src/tool/patch.ts
+++ b/packages/opencode/src/tool/patch.ts
@@ -232,7 +232,7 @@ async function applyCommit(
}
export const PatchTool = Tool.define({
- id: "opencode.patch",
+ id: "patch",
description: DESCRIPTION,
parameters: PatchParams,
execute: async (params, ctx) => {
diff --git a/packages/opencode/src/tool/read.ts b/packages/opencode/src/tool/read.ts
index 69d2a0368..63e5c8efe 100644
--- a/packages/opencode/src/tool/read.ts
+++ b/packages/opencode/src/tool/read.ts
@@ -12,7 +12,7 @@ const DEFAULT_READ_LIMIT = 2000
const MAX_LINE_LENGTH = 2000
export const ReadTool = Tool.define({
- id: "opencode.read",
+ id: "read",
description: DESCRIPTION,
parameters: z.object({
filePath: z.string().describe("The path to the file to read"),
diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts
index aace941fb..a0cab347a 100644
--- a/packages/opencode/src/tool/task.ts
+++ b/packages/opencode/src/tool/task.ts
@@ -6,7 +6,7 @@ import { Bus } from "../bus"
import { Message } from "../session/message"
export const TaskTool = Tool.define({
- id: "opencode.task",
+ id: "task",
description: DESCRIPTION,
parameters: z.object({
description: z
diff --git a/packages/opencode/src/tool/todo.ts b/packages/opencode/src/tool/todo.ts
index a7c55ac9f..33ac3d12f 100644
--- a/packages/opencode/src/tool/todo.ts
+++ b/packages/opencode/src/tool/todo.ts
@@ -23,7 +23,7 @@ const state = App.state("todo-tool", () => {
})
export const TodoWriteTool = Tool.define({
- id: "opencode.todowrite",
+ id: "todowrite",
description: DESCRIPTION_WRITE,
parameters: z.object({
todos: z.array(TodoInfo).describe("The updated todo list"),
@@ -42,7 +42,7 @@ export const TodoWriteTool = Tool.define({
})
export const TodoReadTool = Tool.define({
- id: "opencode.todoread",
+ id: "todoread",
description: "Use this tool to read your todo list",
parameters: z.object({}),
async execute(_params, opts) {
diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts
index 77b673a37..cb501b44b 100644
--- a/packages/opencode/src/tool/webfetch.ts
+++ b/packages/opencode/src/tool/webfetch.ts
@@ -8,7 +8,7 @@ const DEFAULT_TIMEOUT = 30 * 1000 // 30 seconds
const MAX_TIMEOUT = 120 * 1000 // 2 minutes
export const WebFetchTool = Tool.define({
- id: "opencode.webfetch",
+ id: "webfetch",
description: DESCRIPTION,
parameters: z.object({
url: z.string().describe("The URL to fetch content from"),
diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts
index 276a57517..3cc0a0816 100644
--- a/packages/opencode/src/tool/write.ts
+++ b/packages/opencode/src/tool/write.ts
@@ -8,7 +8,7 @@ import DESCRIPTION from "./write.txt"
import { App } from "../app/app"
export const WriteTool = Tool.define({
- id: "opencode.write",
+ id: "write",
description: DESCRIPTION,
parameters: z.object({
filePath: z
@@ -29,7 +29,7 @@ export const WriteTool = Tool.define({
if (exists) await FileTimes.assert(ctx.sessionID, filepath)
await Permission.ask({
- id: "opencode.write",
+ id: "write",
sessionID: ctx.sessionID,
title: exists
? "Overwrite this file: " + filepath
diff --git a/packages/tui/internal/components/chat/message.go b/packages/tui/internal/components/chat/message.go
index 4104e028e..0176e49b6 100644
--- a/packages/tui/internal/components/chat/message.go
+++ b/packages/tui/internal/components/chat/message.go
@@ -253,7 +253,7 @@ func renderToolInvocation(
showDetails bool,
isLast bool,
) string {
- ignoredTools := []string{"opencode_todoread"}
+ ignoredTools := []string{"todoread"}
if slices.Contains(ignoredTools, toolCall.ToolName) {
return ""
}
@@ -350,7 +350,7 @@ func renderToolInvocation(
title := ""
switch toolCall.ToolName {
- case "opencode_read":
+ case "read":
toolArgs = renderArgs(&toolArgsMap, "filePath")
title = fmt.Sprintf("READ %s %s", toolArgs, elapsed)
if preview, ok := metadata.Get("preview"); ok && toolArgsMap["filePath"] != nil {
@@ -358,7 +358,7 @@ func renderToolInvocation(
body = preview.(string)
body = renderFile(filename, body, WithTruncate(6))
}
- case "opencode_edit":
+ case "edit":
if filename, ok := toolArgsMap["filePath"].(string); ok {
title = fmt.Sprintf("EDIT %s %s", relative(filename), elapsed)
if d, ok := metadata.Get("diff"); ok {
@@ -399,14 +399,14 @@ func renderToolInvocation(
)
}
}
- case "opencode_write":
+ case "write":
if filename, ok := toolArgsMap["filePath"].(string); ok {
title = fmt.Sprintf("WRITE %s %s", relative(filename), elapsed)
if content, ok := toolArgsMap["content"].(string); ok {
body = renderFile(filename, content)
}
}
- case "opencode_bash":
+ case "bash":
if description, ok := toolArgsMap["description"].(string); ok {
title = fmt.Sprintf("SHELL %s %s", description, elapsed)
}
@@ -417,7 +417,7 @@ func renderToolInvocation(
body = toMarkdown(body, innerWidth, t.BackgroundSubtle())
body = renderContentBlock(body, WithFullWidth(), WithMarginBottom(1))
}
- case "opencode_webfetch":
+ case "webfetch":
toolArgs = renderArgs(&toolArgsMap, "url")
title = fmt.Sprintf("FETCH %s %s", toolArgs, elapsed)
if format, ok := toolArgsMap["format"].(string); ok {
@@ -428,7 +428,7 @@ func renderToolInvocation(
}
body = renderContentBlock(body, WithFullWidth(), WithMarginBottom(1))
}
- case "opencode_todowrite":
+ case "todowrite":
title = fmt.Sprintf("PLAN %s", elapsed)
if to, ok := metadata.Get("todos"); ok && finished {
@@ -498,11 +498,11 @@ func renderToolName(name string) string {
switch name {
// case agent.AgentToolName:
// return "Task"
- case "opencode_ls":
+ case "list":
return "LIST"
- case "opencode_webfetch":
+ case "webfetch":
return "FETCH"
- case "opencode_todowrite":
+ case "todowrite":
return "PLAN"
default:
normalizedName := name
@@ -559,27 +559,27 @@ func renderToolAction(name string) string {
switch name {
// case agent.AgentToolName:
// return "Preparing prompt..."
- case "opencode_bash":
+ case "bash":
return "Building command..."
- case "opencode_edit":
+ case "edit":
return "Preparing edit..."
- case "opencode_fetch":
+ case "webfetch":
return "Writing fetch..."
- case "opencode_glob":
+ case "glob":
return "Finding files..."
- case "opencode_grep":
+ case "grep":
return "Searching content..."
- case "opencode_ls":
+ case "list":
return "Listing directory..."
- case "opencode_read":
+ case "read":
return "Reading file..."
- case "opencode_write":
+ case "write":
return "Preparing write..."
- case "opencode_todowrite", "opencode_todoread":
+ case "todowrite", "todoread":
return "Planning..."
- case "opencode_patch":
+ case "patch":
return "Preparing patch..."
- case "opencode_batch":
+ case "batch":
return "Running batch operations..."
}
return "Working..."
diff --git a/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx
index a76de4fcb..12a734d13 100644
--- a/packages/web/src/components/Share.tsx
+++ b/packages/web/src/components/Share.tsx
@@ -859,7 +859,7 @@ export default function Share(props: {
(partIndex() > 0 || !msg.metadata?.assistant)) ||
(msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_todoread")
+ part.toolInvocation.toolName === "todoread")
)
return null
@@ -1072,7 +1072,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_grep" &&
+ part.toolInvocation.toolName === "grep" &&
part
}
>
@@ -1175,7 +1175,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_glob" &&
+ part.toolInvocation.toolName === "glob" &&
part
}
>
@@ -1253,7 +1253,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_list" &&
+ part.toolInvocation.toolName === "list" &&
part
}
>
@@ -1322,7 +1322,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_read" &&
+ part.toolInvocation.toolName === "read" &&
part
}
>
@@ -1417,7 +1417,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_write" &&
+ part.toolInvocation.toolName === "write" &&
part
}
>
@@ -1503,7 +1503,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_edit" &&
+ part.toolInvocation.toolName === "edit" &&
part
}
>
@@ -1577,7 +1577,7 @@ export default function Share(props: {
when={
msg.role === "assistant" &&
part.type === "tool-invocation" &&
- part.toolInvocation.toolName === "opencode_bash" &&
+ part.toolInvocation.toolName === "bash" &&
part
}
>
@@ -1620,7 +1620,7 @@ export default function Share(props: {
msg.role === "assistant" &&
part.type === "tool-invocation" &&
part.toolInvocation.toolName ===
- "opencode_todowrite" &&
+ "todowrite" &&
part
}
>
@@ -1686,7 +1686,7 @@ export default function Share(props: {
msg.role === "assistant" &&
part.type === "tool-invocation" &&
part.toolInvocation.toolName ===
- "opencode_webfetch" &&
+ "webfetch" &&
part
}
>