summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/installation/index.ts8
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts
index 7ac2980c4..755236551 100644
--- a/packages/opencode/src/installation/index.ts
+++ b/packages/opencode/src/installation/index.ts
@@ -4,6 +4,7 @@ import z from "zod"
import { NamedError } from "@opencode-ai/util/error"
import { Bus } from "../bus"
import { Log } from "../util/log"
+import { iife } from "@/util/iife"
declare global {
const OPENCODE_VERSION: string
@@ -163,9 +164,14 @@ export namespace Installation {
export const USER_AGENT = `opencode/${CHANNEL}/${VERSION}`
export async function latest() {
+ const registry = await iife(async () => {
+ const r = (await $`npm config get registry`.throws(false).text()).trim()
+ const reg = r || "https://registry.npmjs.org"
+ return reg.endsWith("/") ? reg.slice(0, -1) : reg
+ })
const [major] = VERSION.split(".").map((x) => Number(x))
const channel = CHANNEL === "latest" ? `latest-${major}` : CHANNEL
- return fetch(`https://registry.npmjs.org/opencode-ai/${channel}`)
+ return fetch(`${registry}/opencode-ai/${channel}`)
.then((res) => {
if (!res.ok) throw new Error(res.statusText)
return res.json()