summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSebastian <[email protected]>2026-04-02 00:14:36 +0200
committerGitHub <[email protected]>2026-04-01 22:14:36 +0000
commitcc30bfc94b07cf98e51d1c6f9e1f84dc00dbb6b4 (patch)
treeea6d640c663fa95d25b537b4811449ec47ef673d
parent880c0a7477f716998db3f25afeab42bc937272e3 (diff)
downloadopencode-cc30bfc94b07cf98e51d1c6f9e1f84dc00dbb6b4.tar.gz
opencode-cc30bfc94b07cf98e51d1c6f9e1f84dc00dbb6b4.zip
resolve subpath only packages for plugins (#20555)
-rw-r--r--packages/opencode/src/npm/index.ts5
-rw-r--r--packages/opencode/src/provider/provider.ts4
2 files changed, 7 insertions, 2 deletions
diff --git a/packages/opencode/src/npm/index.ts b/packages/opencode/src/npm/index.ts
index 194c4b621..c17db86d4 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 3803984d2..f8917b66c 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