From bf420e7df6c9c01e445bcd262fbc6b4480a9c312 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:55:46 -0600 Subject: chore: cleanup --- packages/util/src/sanitize.ts | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 packages/util/src/sanitize.ts (limited to 'packages/util') diff --git a/packages/util/src/sanitize.ts b/packages/util/src/sanitize.ts deleted file mode 100644 index 4bb762393..000000000 --- a/packages/util/src/sanitize.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { Part } from "@opencode-ai/sdk/v2/client" - -export const sanitize = (text: string | undefined, remove?: RegExp) => (remove ? text?.replace(remove, "") : text) ?? "" - -export const sanitizePart = (part: Part, remove: RegExp | undefined) => { - if (part.type === "text") { - part.text = sanitize(part.text, remove) - } else if (part.type === "reasoning") { - part.text = sanitize(part.text, remove) - } else if (part.type === "tool") { - if (part.state.status === "completed" || part.state.status === "error") { - for (const key in part.state.metadata) { - if (typeof part.state.metadata[key] === "string") { - part.state.metadata[key] = sanitize(part.state.metadata[key] as string, remove) - } - } - for (const key in part.state.input) { - if (typeof part.state.input[key] === "string") { - part.state.input[key] = sanitize(part.state.input[key] as string, remove) - } - } - if ("error" in part.state) { - part.state.error = sanitize(part.state.error as string, remove) - } - } - } - return part -} -- cgit v1.2.3 From 379c4ecab3b6c95165bfb75936e336221bb58f42 Mon Sep 17 00:00:00 2001 From: opencode Date: Fri, 12 Dec 2025 21:34:32 +0000 Subject: release: v1.0.151 --- bun.lock | 30 +++++++++++++++--------------- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 ++++++------ packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 4 ++-- packages/sdk/js/package.json | 4 ++-- packages/slack/package.json | 2 +- packages/tauri/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 18 files changed, 39 insertions(+), 39 deletions(-) (limited to 'packages/util') diff --git a/bun.lock b/bun.lock index e15a3ba36..2e56041b6 100644 --- a/bun.lock +++ b/bun.lock @@ -20,7 +20,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -48,7 +48,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -75,7 +75,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -99,7 +99,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -123,7 +123,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -169,7 +169,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -198,7 +198,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "22.0.0", @@ -214,7 +214,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.0.150", + "version": "1.0.151", "bin": { "opencode": "./bin/opencode", }, @@ -306,7 +306,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -326,7 +326,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.0.150", + "version": "1.0.151", "devDependencies": { "@hey-api/openapi-ts": "0.88.1", "@tsconfig/node22": "catalog:", @@ -337,7 +337,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -350,7 +350,7 @@ }, "packages/tauri": { "name": "@opencode-ai/tauri", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@opencode-ai/desktop": "workspace:*", "@tauri-apps/api": "^2", @@ -375,7 +375,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -410,7 +410,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "zod": "catalog:", }, @@ -421,7 +421,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 9831346f2..957739169 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.0.150", + "version": "1.0.151", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 86a59d6bb..24082194b 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.0.150", + "version": "1.0.151", "private": true, "type": "module", "dependencies": { diff --git a/packages/console/function/package.json b/packages/console/function/package.json index d32bde30c..690349d49 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.0.150", + "version": "1.0.151", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 764daf918..00f38283d 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.0.150", + "version": "1.0.151", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index a2b995a4a..df0ed23ac 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/desktop", - "version": "1.0.150", + "version": "1.0.151", "description": "", "type": "module", "exports": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 637d9cc0b..a6dabf666 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.0.150", + "version": "1.0.151", "private": true, "type": "module", "scripts": { diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index e7cb19deb..578f8ef3c 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.0.150" +version = "1.0.151" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/sst/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.150/opencode-darwin-arm64.zip" +archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.150/opencode-darwin-x64.zip" +archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.150/opencode-linux-arm64.tar.gz" +archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.150/opencode-linux-x64.tar.gz" +archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.150/opencode-windows-x64.zip" +archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index 591dcfb3c..5009f0d5b 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.0.150", + "version": "1.0.151", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 972568983..663dd0d2a 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.0.150", + "version": "1.0.151", "name": "opencode", "type": "module", "private": true, diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 3256079a5..918ca59a4 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.0.150", + "version": "1.0.151", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", @@ -24,4 +24,4 @@ "typescript": "catalog:", "@typescript/native-preview": "catalog:" } -} +} \ No newline at end of file diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 0ff29129e..083e148a8 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.0.150", + "version": "1.0.151", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", @@ -29,4 +29,4 @@ "publishConfig": { "directory": "dist" } -} +} \ No newline at end of file diff --git a/packages/slack/package.json b/packages/slack/package.json index ab046fc40..69390ad2e 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.0.150", + "version": "1.0.151", "type": "module", "scripts": { "dev": "bun run src/index.ts", diff --git a/packages/tauri/package.json b/packages/tauri/package.json index d712f15f4..6d76cb76b 100644 --- a/packages/tauri/package.json +++ b/packages/tauri/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/tauri", "private": true, - "version": "1.0.150", + "version": "1.0.151", "type": "module", "scripts": { "typecheck": "tsgo -b", diff --git a/packages/ui/package.json b/packages/ui/package.json index c4902e96f..cebcd0272 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.0.150", + "version": "1.0.151", "type": "module", "exports": { "./*": "./src/components/*.tsx", diff --git a/packages/util/package.json b/packages/util/package.json index 496987ebb..d6d9919d4 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.0.150", + "version": "1.0.151", "private": true, "type": "module", "exports": { diff --git a/packages/web/package.json b/packages/web/package.json index 5b82ae78b..46119d972 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/web", "type": "module", - "version": "1.0.150", + "version": "1.0.151", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 22c0e0578..02be235a7 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.0.150", + "version": "1.0.151", "publisher": "sst-dev", "repository": { "type": "git", -- cgit v1.2.3 From 15caecdb459804facae05090b8caf64b85aba4bd Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:11:07 -0800 Subject: shell tweaks, better handling for windows (#5455) Co-authored-by: GitHub Action --- packages/opencode/src/flag/flag.ts | 1 + packages/opencode/src/pty/index.ts | 4 +- packages/opencode/src/session/prompt.ts | 45 +++++++++++++++++++--- packages/opencode/src/shell/shell.ts | 67 +++++++++++++++++++++++++++++++++ packages/opencode/src/tool/bash.ts | 66 +++----------------------------- packages/util/src/shell.ts | 13 ------- 6 files changed, 116 insertions(+), 80 deletions(-) create mode 100644 packages/opencode/src/shell/shell.ts delete mode 100644 packages/util/src/shell.ts (limited to 'packages/util') diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts index 2dcf112ae..c4a03e831 100644 --- a/packages/opencode/src/flag/flag.ts +++ b/packages/opencode/src/flag/flag.ts @@ -1,5 +1,6 @@ export namespace Flag { export const OPENCODE_AUTO_SHARE = truthy("OPENCODE_AUTO_SHARE") + export const OPENCODE_GIT_BASH_PATH = process.env["OPENCODE_GIT_BASH_PATH"] export const OPENCODE_CONFIG = process.env["OPENCODE_CONFIG"] export const OPENCODE_CONFIG_DIR = process.env["OPENCODE_CONFIG_DIR"] export const OPENCODE_CONFIG_CONTENT = process.env["OPENCODE_CONFIG_CONTENT"] diff --git a/packages/opencode/src/pty/index.ts b/packages/opencode/src/pty/index.ts index 34323371b..d192eaf1f 100644 --- a/packages/opencode/src/pty/index.ts +++ b/packages/opencode/src/pty/index.ts @@ -6,10 +6,10 @@ import { Identifier } from "../id/id" import { Log } from "../util/log" import type { WSContext } from "hono/ws" import { Instance } from "../project/instance" -import { shell } from "@opencode-ai/util/shell" import { lazy } from "@opencode-ai/util/lazy" import {} from "process" import { Installation } from "@/installation" +import { Shell } from "@/shell/shell" export namespace Pty { const log = Log.create({ service: "pty" }) @@ -112,7 +112,7 @@ export namespace Pty { export async function create(input: CreateInput) { const id = Identifier.create("pty", false) - const command = input.command || shell() + const command = input.command || Shell.preferred() const args = input.args || [] const cwd = input.cwd || Instance.directory const env = { ...process.env, ...input.env } as Record diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 2c36bc6d5..c9e24f8ca 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -50,6 +50,7 @@ import { fn } from "@/util/fn" import { SessionProcessor } from "./processor" import { TaskTool } from "@/tool/task" import { SessionStatus } from "./status" +import { Shell } from "@/shell/shell" // @ts-ignore globalThis.AI_SDK_LOG_WARNINGS = false @@ -1172,6 +1173,12 @@ export namespace SessionPrompt { }) export type ShellInput = z.infer export async function shell(input: ShellInput) { + const abort = start(input.sessionID) + if (!abort) { + throw new Session.BusyError(input.sessionID) + } + using _ = defer(() => cancel(input.sessionID)) + const session = await Session.get(input.sessionID) if (session.revert) { SessionRevert.cleanup(session) @@ -1244,8 +1251,10 @@ export namespace SessionPrompt { }, } await Session.updatePart(part) - const shell = process.env["SHELL"] ?? (process.platform === "win32" ? process.env["COMSPEC"] || "cmd.exe" : "bash") - const shellName = path.basename(shell).toLowerCase() + const shell = Shell.preferred() + const shellName = ( + process.platform === "win32" ? path.win32.basename(shell, ".exe") : path.basename(shell) + ).toLowerCase() const invocations: Record = { nu: { @@ -1275,12 +1284,15 @@ export namespace SessionPrompt { `, ], }, - // Windows cmd.exe - "cmd.exe": { + // Windows cmd + cmd: { args: ["/c", input.command], }, // Windows PowerShell - "powershell.exe": { + powershell: { + args: ["-NoProfile", "-Command", input.command], + }, + pwsh: { args: ["-NoProfile", "-Command", input.command], }, // Fallback: any shell that doesn't match those above @@ -1327,11 +1339,34 @@ export namespace SessionPrompt { } }) + let aborted = false + let exited = false + + const kill = () => Shell.killTree(proc, { exited: () => exited }) + + if (abort.aborted) { + aborted = true + await kill() + } + + const abortHandler = () => { + aborted = true + void kill() + } + + abort.addEventListener("abort", abortHandler, { once: true }) + await new Promise((resolve) => { proc.on("close", () => { + exited = true + abort.removeEventListener("abort", abortHandler) resolve() }) }) + + if (aborted) { + output += "\n\n" + ["", "User aborted the command", ""].join("\n") + } msg.time.completed = Date.now() await Session.updateMessage(msg) if (part.state.status === "running") { diff --git a/packages/opencode/src/shell/shell.ts b/packages/opencode/src/shell/shell.ts new file mode 100644 index 000000000..2e8d48bfd --- /dev/null +++ b/packages/opencode/src/shell/shell.ts @@ -0,0 +1,67 @@ +import { Flag } from "@/flag/flag" +import { lazy } from "@/util/lazy" +import path from "path" +import { spawn, type ChildProcess } from "child_process" + +const SIGKILL_TIMEOUT_MS = 200 + +export namespace Shell { + export async function killTree(proc: ChildProcess, opts?: { exited?: () => boolean }): Promise { + const pid = proc.pid + if (!pid || opts?.exited?.()) return + + if (process.platform === "win32") { + await new Promise((resolve) => { + const killer = spawn("taskkill", ["/pid", String(pid), "/f", "/t"], { stdio: "ignore" }) + killer.once("exit", () => resolve()) + killer.once("error", () => resolve()) + }) + return + } + + try { + process.kill(-pid, "SIGTERM") + await Bun.sleep(SIGKILL_TIMEOUT_MS) + if (!opts?.exited?.()) { + process.kill(-pid, "SIGKILL") + } + } catch (_e) { + proc.kill("SIGTERM") + await Bun.sleep(SIGKILL_TIMEOUT_MS) + if (!opts?.exited?.()) { + proc.kill("SIGKILL") + } + } + } + const BLACKLIST = new Set(["fish", "nu"]) + + function fallback() { + if (process.platform === "win32") { + if (Flag.OPENCODE_GIT_BASH_PATH) return Flag.OPENCODE_GIT_BASH_PATH + const git = Bun.which("git") + if (git) { + // git.exe is typically at: C:\Program Files\Git\cmd\git.exe + // bash.exe is at: C:\Program Files\Git\bin\bash.exe + const bash = path.join(git, "..", "..", "bin", "bash.exe") + if (Bun.file(bash).size) return bash + } + return process.env.COMSPEC || "cmd.exe" + } + if (process.platform === "darwin") return "/bin/zsh" + const bash = Bun.which("bash") + if (bash) return bash + return "/bin/sh" + } + + export const preferred = lazy(() => { + const s = process.env.SHELL + if (s) return s + return fallback() + }) + + export const acceptable = lazy(() => { + const s = process.env.SHELL + if (s && !BLACKLIST.has(process.platform === "win32" ? path.win32.basename(s) : path.basename(s))) return s + return fallback() + }) +} diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index 0c099fe80..6b84d1bff 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -14,11 +14,10 @@ import { Permission } from "@/permission" import { fileURLToPath } from "url" import { Flag } from "@/flag/flag.ts" import path from "path" -import { iife } from "@/util/iife" +import { Shell } from "@/shell/shell" const MAX_OUTPUT_LENGTH = Flag.OPENCODE_EXPERIMENTAL_BASH_MAX_OUTPUT_LENGTH || 30_000 const DEFAULT_TIMEOUT = Flag.OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS || 2 * 60 * 1000 -const SIGKILL_TIMEOUT_MS = 200 export const log = Log.create({ service: "bash-tool" }) @@ -53,32 +52,7 @@ const parser = lazy(async () => { // TODO: we may wanna rename this tool so it works better on other shells export const BashTool = Tool.define("bash", async () => { - const shell = iife(() => { - const s = process.env.SHELL - if (s) { - const basename = path.basename(s) - if (!new Set(["fish", "nu"]).has(basename)) { - return s - } - } - - if (process.platform === "darwin") { - return "/bin/zsh" - } - - if (process.platform === "win32") { - // Let Bun / Node pick COMSPEC (usually cmd.exe) - // or explicitly: - return process.env.COMSPEC || true - } - - const bash = Bun.which("bash") - if (bash) { - return bash - } - - return true - }) + const shell = Shell.acceptable() log.info("bash tool using shell", { shell }) return { @@ -261,51 +235,23 @@ export const BashTool = Tool.define("bash", async () => { let aborted = false let exited = false - const killTree = async () => { - const pid = proc.pid - if (!pid || exited) { - return - } - - if (process.platform === "win32") { - await new Promise((resolve) => { - const killer = spawn("taskkill", ["/pid", String(pid), "/f", "/t"], { stdio: "ignore" }) - killer.once("exit", resolve) - killer.once("error", resolve) - }) - return - } - - try { - process.kill(-pid, "SIGTERM") - await Bun.sleep(SIGKILL_TIMEOUT_MS) - if (!exited) { - process.kill(-pid, "SIGKILL") - } - } catch (_e) { - proc.kill("SIGTERM") - await Bun.sleep(SIGKILL_TIMEOUT_MS) - if (!exited) { - proc.kill("SIGKILL") - } - } - } + const kill = () => Shell.killTree(proc, { exited: () => exited }) if (ctx.abort.aborted) { aborted = true - await killTree() + await kill() } const abortHandler = () => { aborted = true - void killTree() + void kill() } ctx.abort.addEventListener("abort", abortHandler, { once: true }) const timeoutTimer = setTimeout(() => { timedOut = true - void killTree() + void kill() }, timeout + 100) await new Promise((resolve, reject) => { diff --git a/packages/util/src/shell.ts b/packages/util/src/shell.ts deleted file mode 100644 index e23ba0199..000000000 --- a/packages/util/src/shell.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function shell() { - const s = process.env.SHELL - if (s) return s - if (process.platform === "darwin") { - return "/bin/zsh" - } - if (process.platform === "win32") { - return process.env.COMSPEC || "cmd.exe" - } - const bash = Bun.which("bash") - if (bash) return bash - return "bash" -} -- cgit v1.2.3 From b84d513bd7e8c2e38e7a2e6ea1315a224e4b6429 Mon Sep 17 00:00:00 2001 From: opencode Date: Fri, 12 Dec 2025 22:29:21 +0000 Subject: release: v1.0.152 --- bun.lock | 30 +++++++++++++++--------------- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 ++++++------ packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 4 ++-- packages/sdk/js/package.json | 4 ++-- packages/slack/package.json | 2 +- packages/tauri/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 18 files changed, 39 insertions(+), 39 deletions(-) (limited to 'packages/util') diff --git a/bun.lock b/bun.lock index 2e56041b6..5bc89cf56 100644 --- a/bun.lock +++ b/bun.lock @@ -20,7 +20,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -48,7 +48,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -75,7 +75,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -99,7 +99,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -123,7 +123,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -169,7 +169,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -198,7 +198,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "22.0.0", @@ -214,7 +214,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.0.151", + "version": "1.0.152", "bin": { "opencode": "./bin/opencode", }, @@ -306,7 +306,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -326,7 +326,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.0.151", + "version": "1.0.152", "devDependencies": { "@hey-api/openapi-ts": "0.88.1", "@tsconfig/node22": "catalog:", @@ -337,7 +337,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -350,7 +350,7 @@ }, "packages/tauri": { "name": "@opencode-ai/tauri", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@opencode-ai/desktop": "workspace:*", "@tauri-apps/api": "^2", @@ -375,7 +375,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -410,7 +410,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "zod": "catalog:", }, @@ -421,7 +421,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 957739169..96cd611f4 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.0.151", + "version": "1.0.152", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 24082194b..6fd87c2f8 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.0.151", + "version": "1.0.152", "private": true, "type": "module", "dependencies": { diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 690349d49..22322aa24 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.0.151", + "version": "1.0.152", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 00f38283d..f26d54d35 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.0.151", + "version": "1.0.152", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index df0ed23ac..91e04af08 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/desktop", - "version": "1.0.151", + "version": "1.0.152", "description": "", "type": "module", "exports": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index a6dabf666..f265b3b27 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.0.151", + "version": "1.0.152", "private": true, "type": "module", "scripts": { diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 578f8ef3c..649233b99 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.0.151" +version = "1.0.152" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/sst/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-darwin-arm64.zip" +archive = "https://github.com/sst/opencode/releases/download/v1.0.152/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-darwin-x64.zip" +archive = "https://github.com/sst/opencode/releases/download/v1.0.152/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-linux-arm64.tar.gz" +archive = "https://github.com/sst/opencode/releases/download/v1.0.152/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-linux-x64.tar.gz" +archive = "https://github.com/sst/opencode/releases/download/v1.0.152/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/sst/opencode/releases/download/v1.0.151/opencode-windows-x64.zip" +archive = "https://github.com/sst/opencode/releases/download/v1.0.152/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index 5009f0d5b..42baa2787 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.0.151", + "version": "1.0.152", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 663dd0d2a..362f5b1f2 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.0.151", + "version": "1.0.152", "name": "opencode", "type": "module", "private": true, diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 9cf977234..815bbd9e1 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.0.151", + "version": "1.0.152", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", @@ -24,4 +24,4 @@ "typescript": "catalog:", "@typescript/native-preview": "catalog:" } -} +} \ No newline at end of file diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index fb57b6520..7d1b3fc4d 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.0.151", + "version": "1.0.152", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", @@ -29,4 +29,4 @@ "publishConfig": { "directory": "dist" } -} +} \ No newline at end of file diff --git a/packages/slack/package.json b/packages/slack/package.json index 69390ad2e..925602f9a 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.0.151", + "version": "1.0.152", "type": "module", "scripts": { "dev": "bun run src/index.ts", diff --git a/packages/tauri/package.json b/packages/tauri/package.json index 6d76cb76b..768791ddc 100644 --- a/packages/tauri/package.json +++ b/packages/tauri/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/tauri", "private": true, - "version": "1.0.151", + "version": "1.0.152", "type": "module", "scripts": { "typecheck": "tsgo -b", diff --git a/packages/ui/package.json b/packages/ui/package.json index cebcd0272..d3d230c49 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.0.151", + "version": "1.0.152", "type": "module", "exports": { "./*": "./src/components/*.tsx", diff --git a/packages/util/package.json b/packages/util/package.json index d6d9919d4..43a5f7bb3 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.0.151", + "version": "1.0.152", "private": true, "type": "module", "exports": { diff --git a/packages/web/package.json b/packages/web/package.json index 46119d972..f79b7ac36 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/web", "type": "module", - "version": "1.0.151", + "version": "1.0.152", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 02be235a7..f674b07a3 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.0.151", + "version": "1.0.152", "publisher": "sst-dev", "repository": { "type": "git", -- cgit v1.2.3