diff options
| author | Dax Raad <[email protected]> | 2025-07-31 18:35:51 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-07-31 18:35:51 -0400 |
| commit | 4273714a6202d4be62a98e46916b0ce4398d0047 (patch) | |
| tree | 061ecc02619645909f79a0fb7a2d70bf14864aef | |
| parent | a21e237706dbdd644d306d24c9709457d11d8a2f (diff) | |
| download | opencode-4273714a6202d4be62a98e46916b0ce4398d0047.tar.gz opencode-4273714a6202d4be62a98e46916b0ce4398d0047.zip | |
fix issue with some bash commands asking for permission
| -rw-r--r-- | bun.lock | 9 | ||||
| -rw-r--r-- | packages/opencode/package.json | 3 | ||||
| -rw-r--r-- | packages/opencode/src/tool/bash.ts | 3 |
3 files changed, 12 insertions, 3 deletions
@@ -48,6 +48,7 @@ "hono-openapi": "0.4.8", "isomorphic-git": "1.32.1", "jsonc-parser": "3.3.1", + "minimatch": "10.0.3", "open": "10.1.2", "remeda": "catalog:", "tree-sitter": "0.22.4", @@ -75,7 +76,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "0.0.0-202507312003", + "version": "0.0.0", "devDependencies": { "@hey-api/openapi-ts": "0.80.1", "@tsconfig/node22": "catalog:", @@ -355,6 +356,10 @@ "@img/sharp-win32-x64": ["@img/[email protected]", "", { "os": "win32", "cpu": "x64" }, "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg=="], + "@isaacs/balanced-match": ["@isaacs/[email protected]", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="], + + "@isaacs/brace-expansion": ["@isaacs/[email protected]", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="], + "@jridgewell/gen-mapping": ["@jridgewell/[email protected]", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg=="], "@jridgewell/resolve-uri": ["@jridgewell/[email protected]", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], @@ -1271,6 +1276,8 @@ "miniflare": ["[email protected]", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "sharp": "^0.33.5", "stoppable": "1.1.0", "undici": "^7.10.0", "workerd": "1.20250730.0", "ws": "8.18.0", "youch": "4.1.0-beta.10", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-avGXBStHQSqcJr8ra1mJ3/OQvnLZ49B1uAILQapAha1DHNZZvXWLIgUVre/WGY6ZOlNGFPh5CJ+dXLm4yuV3Jw=="], + "minimatch": ["[email protected]", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw=="], + "minimist": ["[email protected]", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], "minimisted": ["[email protected]", "", { "dependencies": { "minimist": "^1.2.5" } }, "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA=="], diff --git a/packages/opencode/package.json b/packages/opencode/package.json index c8c502ed6..7e1775d16 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -46,11 +46,12 @@ "hono-openapi": "0.4.8", "isomorphic-git": "1.32.1", "jsonc-parser": "3.3.1", + "minimatch": "10.0.3", "open": "10.1.2", "remeda": "catalog:", - "turndown": "7.2.0", "tree-sitter": "0.22.4", "tree-sitter-bash": "0.23.3", + "turndown": "7.2.0", "vscode-jsonrpc": "8.2.1", "xdg-basedir": "5.1.0", "yargs": "18.0.0", diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index 673018cbc..0e18525d7 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -7,6 +7,7 @@ import { Config } from "../config/config" import { Filesystem } from "../util/filesystem" import path from "path" import { lazy } from "../util/lazy" +import { minimatch } from "minimatch" const MAX_OUTPUT_LENGTH = 30000 const DEFAULT_TIMEOUT = 1 * 60 * 1000 @@ -84,7 +85,7 @@ export const BashTool = Tool.define("bash", { if (!needsAsk && command[0] !== "cd") { const ask = (() => { for (const [pattern, value] of Object.entries(permissions)) { - if (new Bun.Glob(pattern).match(node.text)) { + if (minimatch(node.text, pattern)) { return value } } |
