openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
55 lines (54 loc) • 1.85 kB
JavaScript
import { t as parseClawHubPluginSpec } from "./clawhub-spec-BilWxjDF.js";
import { s as parseRegistryNpmSpec } from "./npm-registry-spec-DjR-Lha9.js";
//#region src/plugins/install-channel-specs.ts
function isDefaultNpmSpecForBetaChannel(spec) {
const parsed = parseRegistryNpmSpec(spec);
if (!parsed) return null;
if (parsed.selectorKind === "none") return { name: parsed.name };
if (parsed.selectorKind === "tag" && parsed.selector?.toLowerCase() === "latest") return { name: parsed.name };
return null;
}
function isDefaultClawHubSpecForBetaChannel(spec) {
const parsed = parseClawHubPluginSpec(spec);
if (!parsed) return null;
if (!parsed.version || parsed.version.toLowerCase() === "latest") return { name: parsed.name };
return null;
}
function resolveNpmInstallSpecsForUpdateChannel(params) {
if (params.updateChannel !== "beta") return {
installSpec: params.spec,
recordSpec: params.spec
};
const betaTarget = isDefaultNpmSpecForBetaChannel(params.spec);
if (!betaTarget) return {
installSpec: params.spec,
recordSpec: params.spec
};
const betaSpec = `${betaTarget.name}`;
return {
installSpec: betaSpec,
recordSpec: params.spec,
fallbackSpec: params.spec,
fallbackLabel: betaSpec
};
}
function resolveClawHubInstallSpecsForUpdateChannel(params) {
if (params.updateChannel !== "beta") return {
installSpec: params.spec,
recordSpec: params.spec
};
const betaTarget = isDefaultClawHubSpecForBetaChannel(params.spec);
if (!betaTarget) return {
installSpec: params.spec,
recordSpec: params.spec
};
const betaSpec = `clawhub:${betaTarget.name}`;
return {
installSpec: betaSpec,
recordSpec: params.spec,
fallbackSpec: params.spec,
fallbackLabel: betaSpec
};
}
//#endregion
export { resolveNpmInstallSpecsForUpdateChannel as n, resolveClawHubInstallSpecsForUpdateChannel as t };