opencode: 1.0.45 -> 1.0.78 (#462588)

This commit is contained in:
Gaétan Lepage
2025-11-19 08:46:27 +00:00
committed by GitHub
4 changed files with 31 additions and 45 deletions
+4 -4
View File
@@ -1,8 +1,8 @@
{
"node_modules": {
"aarch64-linux": "3yXOsptDRUoyL/FBQu8esD4ipudOA9jyLenNt1WChMU=",
"x86_64-linux": "sha256-ocgmxMx+V6uBMLZTrHfYAqO4l38WQVCrQ2AbUWagaoM=",
"aarch64-darwin": "sha256-xNU+ucIy84iqmyoWKwwLBIV34TTmH/OGmIbIiNOPM/w=",
"x86_64-darwin": "sha256-9kplc7tpWgYnB+4471EBkE2xYF3RkpgKqpg26M6bUPs="
"aarch64-linux": "sha256-uqOotHS6p5mLBmh3f7lka9boXBz7trTKuGahGfOSTD4=",
"x86_64-linux": "sha256-qlVlP5ayYTuf/uZIW7lk8wKYxArB0jOHmw94yK9v9Bg=",
"aarch64-darwin": "sha256-dDKVLmE33P9epJFmsUluDjtyVL5jT87atpv8qbEFy7o=",
"x86_64-darwin": "sha256-eBsU9hSf1tRfp8ErZtmM731YVtVRZ8ovQ5nYmokaPD0="
}
}
@@ -1,20 +0,0 @@
diff --git i/packages/opencode/src/provider/models-macro.ts w/packages/opencode/src/provider/models-macro.ts
index 91a0348..4f60069 100644
--- i/packages/opencode/src/provider/models-macro.ts
+++ w/packages/opencode/src/provider/models-macro.ts
@@ -1,4 +1,15 @@
export async function data() {
+ const localApiJsonPath = process.env.MODELS_DEV_API_JSON
+
+ // Try to read from local file if path is provided
+ if (localApiJsonPath) {
+ const localFile = Bun.file(localApiJsonPath)
+ if (await localFile.exists()) {
+ return await localFile.text()
+ }
+ }
+
+ // Fallback to fetching from remote URL
const json = await fetch("https://models.dev/api.json").then((x) => x.text())
return json
}
+6 -5
View File
@@ -14,12 +14,12 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "opencode";
version = "1.0.45";
version = "1.0.78";
src = fetchFromGitHub {
owner = "sst";
repo = "opencode";
tag = "v${finalAttrs.version}";
hash = "sha256-59nsauILNEvQ4Q8ATHKtgTViIWMaFnUyBf7CN6qrtdk=";
hash = "sha256-o+rNkij9niggHkA+TtexTbrXLK0I9Ol1Cp9NC/wEuAk=";
};
node_modules = stdenvNoCC.mkDerivation {
@@ -80,9 +80,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
];
patches = [
# NOTE: Patch `packages/opencode/src/provider/models-macro.ts` to get contents of
# `_api.json` from the file bundled with `bun build`.
./local-models-dev.patch
# NOTE: Skip npm pack commands in build.ts since packages are already in node_modules
./skip-npm-pack.patch
];
@@ -168,5 +165,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
license = lib.licenses.mit;
platforms = lib.platforms.unix;
mainProgram = "opencode";
badPlatforms = [
# Problems with bun >= 1.3.2, see https://github.com/oven-sh/bun/issues/24645
lib.systems.inspect.patterns.isDarwin
];
};
})
+21 -16
View File
@@ -1,22 +1,27 @@
diff --git i/packages/opencode/script/build.ts w/packages/opencode/script/build.ts
index 29706c09..584b00d4 100755
index 502baed..f854e99 100755
--- i/packages/opencode/script/build.ts
+++ w/packages/opencode/script/build.ts
@@ -39,15 +39,9 @@ for (const [os, arch] of targets) {
const name = `${pkg.name}-${os}-${arch}`
await $`mkdir -p dist/${name}/bin`
@@ -77,14 +77,19 @@ const allTargets: {
]
- const opentui = `@opentui/core-${os === "windows" ? "win32" : os}-${arch.replace("-baseline", "")}`
- await $`mkdir -p ../../node_modules/${opentui}`
- await $`npm pack ${opentui}@${pkg.dependencies["@opentui/core"]}`.cwd(path.join(dir, "../../node_modules"))
- await $`tar -xf ../../node_modules/${opentui.replace("@opentui/", "opentui-")}-*.tgz -C ../../node_modules/${opentui} --strip-components=1`
+ // Skip npm pack - packages already installed in node_modules by Nix
const targets = singleFlag
- ? allTargets.filter((item) => item.os === process.platform && item.arch === process.arch)
+ ? allTargets.filter((item) =>
+ item.os === process.platform &&
+ item.arch === process.arch &&
+ item.avx2 !== false &&
+ item.abi === undefined
+ ).slice(0, 1)
: allTargets
- const watcher = `@parcel/watcher-${os === "windows" ? "win32" : os}-${arch.replace("-baseline", "")}${os === "linux" ? "-glibc" : ""}`
- await $`mkdir -p ../../node_modules/${watcher}`
- await $`npm pack ${watcher}`.cwd(path.join(dir, "../../node_modules")).quiet()
- await $`tar -xf ../../node_modules/${watcher.replace("@parcel/", "parcel-")}-*.tgz -C ../../node_modules/${watcher} --strip-components=1`
+ // Skip npm pack - packages already installed in node_modules by Nix
await $`rm -rf dist`
const parserWorker = fs.realpathSync(path.resolve(dir, "./node_modules/@opentui/core/parser.worker.js"))
const workerPath = "./src/cli/cmd/tui/worker.ts"
const binaries: Record<string, string> = {}
-await $`bun install --os="*" --cpu="*" @opentui/core@${pkg.dependencies["@opentui/core"]}`
-await $`bun install --os="*" --cpu="*" @parcel/watcher@${pkg.dependencies["@parcel/watcher"]}`
+// Skip bun install - packages already installed in node_modules by Nix
+// Skip bun install - packages already installed in node_modules by Nix
for (const item of targets) {
const name = [
pkg.name,