opencode: use models-dev package instead of fetching from online api
- Added `models-dev` to `nativeBuildInputs`. - Removed the old patch that fetched data from a remote URL and introduced a new patch to read from a local file if a path is provided via the `MODELS_DEV_API_JSON` environment variable.
This commit is contained in:
parent
0eec779fcc
commit
a317d6f6ce
@ -1,8 +0,0 @@
|
|||||||
--- a/packages/opencode/src/provider/models-macro.ts
|
|
||||||
+++ b/packages/opencode/src/provider/models-macro.ts
|
|
||||||
@@ -1,4 +1,3 @@
|
|
||||||
export async function data() {
|
|
||||||
- const json = await fetch("https://models.dev/api.json").then((x) => x.text())
|
|
||||||
- return json
|
|
||||||
+ return process.env.MODELS_JSON || '{}';
|
|
||||||
}
|
|
||||||
20
pkgs/by-name/op/opencode/local-models-dev.patch
Normal file
20
pkgs/by-name/op/opencode/local-models-dev.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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
|
||||||
|
}
|
||||||
@ -4,7 +4,7 @@
|
|||||||
buildGoModule,
|
buildGoModule,
|
||||||
bun,
|
bun,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
fetchurl,
|
models-dev,
|
||||||
nix-update-script,
|
nix-update-script,
|
||||||
testers,
|
testers,
|
||||||
writableTmpDirAsHomeHook,
|
writableTmpDirAsHomeHook,
|
||||||
@ -106,17 +106,15 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||||||
outputHashMode = "recursive";
|
outputHashMode = "recursive";
|
||||||
};
|
};
|
||||||
|
|
||||||
models-dev-data = fetchurl {
|
nativeBuildInputs = [
|
||||||
url = "https://models.dev/api.json";
|
bun
|
||||||
sha256 = "sha256-igxQOC+Hz2FnXIW/S4Px9WhRuBhcIQIHO+7U8jHU1TQ=";
|
models-dev
|
||||||
};
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ bun ];
|
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# Patch `packages/opencode/src/provider/models-macro.ts` to load the prefetched `models.dev/api.json`
|
# Patch `packages/opencode/src/provider/models-macro.ts` to get contents of
|
||||||
# from the `MODELS_JSON` environment variable instead of fetching it at build time.
|
# `api.json` from the file bundled with `bun build`.
|
||||||
./fix-models-macro.patch
|
./local-models-dev.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
@ -127,10 +125,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||||||
runHook postConfigure
|
runHook postConfigure
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
env.MODELS_DEV_API_JSON = "${models-dev}/dist/api.json";
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
runHook preBuild
|
runHook preBuild
|
||||||
|
|
||||||
export MODELS_JSON="$(cat ${finalAttrs.models-dev-data})"
|
|
||||||
bun build \
|
bun build \
|
||||||
--define OPENCODE_VERSION="'${finalAttrs.version}'" \
|
--define OPENCODE_VERSION="'${finalAttrs.version}'" \
|
||||||
--compile \
|
--compile \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user