summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-11-22 23:29:20 -0800
committerGitHub <[email protected]>2025-11-23 01:29:20 -0600
commit30ffcaa6673b638f7ab49431331da5426942cef1 (patch)
treeba384796b9b9f2ebd36e4ff1b582dcea10e28ae0 /packages
parentba1145578673e75292430dc91afaf3ac42ba11c9 (diff)
downloadopencode-30ffcaa6673b638f7ab49431331da5426942cef1.tar.gz
opencode-30ffcaa6673b638f7ab49431331da5426942cef1.zip
tweak: start bundling in some ai-sdk packages (#4649)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/package.json10
-rw-r--r--packages/opencode/src/bun/index.ts20
-rw-r--r--packages/opencode/src/provider/provider.ts19
-rw-r--r--packages/opencode/src/session/retry.ts1
4 files changed, 40 insertions, 10 deletions
diff --git a/packages/opencode/package.json b/packages/opencode/package.json
index 01593075e..753b5872a 100644
--- a/packages/opencode/package.json
+++ b/packages/opencode/package.json
@@ -18,8 +18,6 @@
"./*": "./src/*.ts"
},
"devDependencies": {
- "@ai-sdk/amazon-bedrock": "2.2.10",
- "@ai-sdk/google-vertex": "3.0.16",
"@babel/core": "7.28.4",
"@octokit/webhooks-types": "7.6.1",
"@parcel/watcher-darwin-arm64": "2.5.1",
@@ -44,7 +42,14 @@
"@actions/core": "1.11.1",
"@actions/github": "6.0.1",
"@agentclientprotocol/sdk": "0.5.1",
+ "@ai-sdk/amazon-bedrock": "3.0.57",
+ "@ai-sdk/anthropic": "2.0.45",
+ "@ai-sdk/azure": "2.0.73",
+ "@ai-sdk/google": "2.0.42",
+ "@ai-sdk/google-vertex": "3.0.74",
"@ai-sdk/mcp": "0.0.8",
+ "@ai-sdk/openai": "2.0.71",
+ "@ai-sdk/openai-compatible": "1.0.27",
"@clack/prompts": "1.0.0-alpha.1",
"@hono/standard-validator": "0.1.5",
"@hono/zod-validator": "catalog:",
@@ -56,6 +61,7 @@
"@opencode-ai/script": "workspace:*",
"@opencode-ai/sdk": "workspace:*",
"@opencode-ai/util": "workspace:*",
+ "@openrouter/ai-sdk-provider": "1.2.5",
"@opentui/core": "0.1.49",
"@opentui/solid": "0.1.49",
"@parcel/watcher": "2.5.1",
diff --git a/packages/opencode/src/bun/index.ts b/packages/opencode/src/bun/index.ts
index b739cd225..7c19c303b 100644
--- a/packages/opencode/src/bun/index.ts
+++ b/packages/opencode/src/bun/index.ts
@@ -4,10 +4,12 @@ import { Log } from "../util/log"
import path from "path"
import { NamedError } from "../util/error"
import { readableStreamToText } from "bun"
+import { createRequire } from "module"
import { Lock } from "../util/lock"
export namespace BunProc {
const log = Log.create({ service: "bun" })
+ const req = createRequire(import.meta.url)
export async function run(cmd: string[], options?: Bun.SpawnOptions.OptionsObject<any, any, any>) {
log.info("running", {
@@ -129,4 +131,22 @@ export namespace BunProc {
await Bun.write(pkgjson.name!, JSON.stringify(parsed, null, 2))
return mod
}
+
+ export async function resolve(pkg: string) {
+ const local = workspace(pkg)
+ if (local) return local
+ const dir = path.join(Global.Path.cache, "node_modules", pkg)
+ const pkgjson = Bun.file(path.join(dir, "package.json"))
+ const exists = await pkgjson.exists()
+ if (exists) return dir
+ }
+
+ function workspace(pkg: string) {
+ try {
+ const target = req.resolve(`${pkg}/package.json`)
+ return path.dirname(target)
+ } catch {
+ return
+ }
+ }
}
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index e172e918b..bc212629d 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -530,13 +530,18 @@ export namespace Provider {
const existing = s.sdk.get(key)
if (existing) return existing
- let installedPath: string
- if (!pkg.startsWith("file://")) {
- installedPath = await BunProc.install(pkg, "latest")
- } else {
- log.info("loading local provider", { pkg })
- installedPath = pkg
- }
+ const installedPath = await (async () => {
+ if (pkg.startsWith("file://")) {
+ log.info("loading local provider", { pkg })
+ return pkg
+ }
+ const resolved = await BunProc.resolve(pkg)
+ if (resolved) {
+ log.info("using preinstalled provider", { providerID: provider.id, pkg })
+ return resolved
+ }
+ return BunProc.install(pkg, "latest")
+ })()
// The `google-vertex-anthropic` provider points to the `@ai-sdk/google-vertex` package.
// Ref: https://github.com/sst/models.dev/blob/0a87de42ab177bebad0620a889e2eb2b4a5dd4ab/providers/google-vertex-anthropic/provider.toml
diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts
index ae0440135..75472b568 100644
--- a/packages/opencode/src/session/retry.ts
+++ b/packages/opencode/src/session/retry.ts
@@ -1,4 +1,3 @@
-import { iife } from "@/util/iife"
import { MessageV2 } from "./message-v2"
export namespace SessionRetry {