diff options
| author | Sebastian <[email protected]> | 2026-04-02 00:14:36 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-01 22:14:36 +0000 |
| commit | cc30bfc94b07cf98e51d1c6f9e1f84dc00dbb6b4 (patch) | |
| tree | ea6d640c663fa95d25b537b4811449ec47ef673d | |
| parent | 880c0a7477f716998db3f25afeab42bc937272e3 (diff) | |
| download | opencode-cc30bfc94b07cf98e51d1c6f9e1f84dc00dbb6b4.tar.gz opencode-cc30bfc94b07cf98e51d1c6f9e1f84dc00dbb6b4.zip | |
resolve subpath only packages for plugins (#20555)
| -rw-r--r-- | packages/opencode/src/npm/index.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 4 |
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 |
