openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
62 lines (61 loc) • 2.58 kB
JavaScript
import { h as collectManifestModelIdNormalizationPolicies, r as getCurrentPluginMetadataSnapshot, y as normalizeProviderModelIdWithPolicies } from "./current-plugin-metadata-snapshot-CfA_n2Nc.js";
import { a as resolvePluginMetadataSnapshot } from "./plugin-metadata-snapshot-Ctk9Oarq.js";
//#region src/plugins/runtime-workspace-state.ts
const PLUGIN_REGISTRY_STATE = Symbol.for("openclaw.pluginRegistryState");
/** Reads the active plugin registry workspace directory from global runtime state. */
function getActivePluginRegistryWorkspaceDirFromState() {
return globalThis[PLUGIN_REGISTRY_STATE]?.workspaceDir ?? void 0;
}
//#endregion
//#region src/plugins/manifest-model-id-normalization.ts
/** Applies manifest-declared model-id normalization policies to provider model refs. */
let cachedPolicies;
function resolveMetadataSnapshotForPolicies(params = {}) {
const env = params.env ?? process.env;
const workspaceDir = params.workspaceDir ?? getActivePluginRegistryWorkspaceDirFromState();
if (params.config === void 0) {
const currentSnapshot = getCurrentPluginMetadataSnapshot({
env,
workspaceDir,
allowWorkspaceScopedSnapshot: true,
requireDefaultDiscoveryContext: true
});
if (currentSnapshot) return {
plugins: currentSnapshot.plugins,
configFingerprint: currentSnapshot.configFingerprint,
cacheable: true
};
}
const snapshot = resolvePluginMetadataSnapshot({
config: params.config ?? {},
env,
workspaceDir,
allowWorkspaceScopedCurrent: true
});
return {
plugins: snapshot.plugins,
configFingerprint: snapshot.configFingerprint,
cacheable: false
};
}
function loadManifestModelIdNormalizationPolicies(params = {}) {
if (params.plugins) return collectManifestModelIdNormalizationPolicies(params.plugins);
const { plugins, configFingerprint, cacheable } = resolveMetadataSnapshotForPolicies(params);
if (cacheable && configFingerprint && cachedPolicies?.configFingerprint === configFingerprint) return cachedPolicies.policies;
const policies = collectManifestModelIdNormalizationPolicies(plugins);
if (cacheable && configFingerprint) cachedPolicies = {
configFingerprint,
policies
};
return policies;
}
/** Normalizes a provider model id using plugin manifest-declared model-id policies. */
function normalizeProviderModelIdWithManifest(params) {
return normalizeProviderModelIdWithPolicies({
provider: params.provider,
policies: loadManifestModelIdNormalizationPolicies(params),
context: { modelId: params.context.modelId }
});
}
//#endregion
export { normalizeProviderModelIdWithManifest as t };