openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
21 lines (20 loc) • 665 B
JavaScript
//#region src/infra/clawhub-spec.ts
/** Parses explicit `clawhub:<name>[@version]` package specs for ClawHub installs. */
function parseClawHubPluginSpec(raw) {
const trimmed = raw.trim();
if (!trimmed.toLowerCase().startsWith("clawhub:")) return null;
const spec = trimmed.slice(8).trim();
if (!spec) return null;
const atIndex = spec.lastIndexOf("@");
if (atIndex <= 0) return { name: spec };
if (atIndex >= spec.length - 1) return null;
const name = spec.slice(0, atIndex).trim();
const version = spec.slice(atIndex + 1).trim();
if (!name || !version) return null;
return {
name,
version
};
}
//#endregion
export { parseClawHubPluginSpec as t };