diff --git a/packages/opencode/src/npm/index.ts b/packages/opencode/src/npm/index.ts index 194c4b621f..c17db86d40 100644 --- a/packages/opencode/src/npm/index.ts +++ b/packages/opencode/src/npm/index.ts @@ -25,7 +25,10 @@ export namespace Npm { } function resolveEntryPoint(name: string, dir: string) { - const entrypoint = typeof Bun !== "undefined" ? import.meta.resolve(name, dir) : import.meta.resolve(dir) + let entrypoint: string | undefined + try { + entrypoint = typeof Bun !== "undefined" ? import.meta.resolve(name, dir) : import.meta.resolve(dir) + } catch {} const result = { directory: dir, entrypoint, diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 3803984d2b..f8917b66c1 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -1365,7 +1365,9 @@ export namespace Provider { let installedPath: string if (!model.api.npm.startsWith("file://")) { - installedPath = await Npm.add(model.api.npm).then((item) => item.entrypoint) + const item = await Npm.add(model.api.npm) + if (!item.entrypoint) throw new Error(`Package ${model.api.npm} has no import entrypoint`) + installedPath = item.entrypoint } else { log.info("loading local provider", { pkg: model.api.npm }) installedPath = model.api.npm