MCPcopy Index your code
hub / github.com/anomalyco/opencode / checkPluginCompatibility

Function checkPluginCompatibility

packages/opencode/src/plugin/shared.ts:194–205  ·  view source on GitHub ↗
(target: string, opencodeVersion: string, pkg?: PluginPackage)

Source from the content-addressed store, hash-verified

192}
193
194export async function checkPluginCompatibility(target: string, opencodeVersion: string, pkg?: PluginPackage) {
195 if (!semver.valid(opencodeVersion) || semver.major(opencodeVersion) === 0) return
196 const hit = pkg ?? (await readPluginPackage(target).catch(() => undefined))
197 if (!hit) return
198 const engines = hit.json.engines
199 if (!isRecord(engines)) return
200 const range = engines.opencode
201 if (typeof range !== "string") return
202 if (!semver.satisfies(opencodeVersion, range)) {
203 throw new Error(`Plugin requires opencode ${range} but running ${opencodeVersion}`)
204 }
205}
206
207export async function resolvePluginTarget(spec: string) {
208 if (isPathPluginSpec(spec)) return resolvePathPluginTarget(spec)

Callers 1

resolveFunction · 0.90

Calls 2

isRecordFunction · 0.90
readPluginPackageFunction · 0.85

Tested by

no test coverage detected