agent-contracts-runtime
Version:
Runtime bridge for executing agent-contracts workflows on Agent SDKs
46 lines (45 loc) • 1.35 kB
JavaScript
// src/lib/model-resolver.ts
var ENV_PREFIX = "AGENT_RUNTIME_MODEL";
var CLASS_ENV_KEYS = {
fast: `${ENV_PREFIX}_FAST`,
standard: `${ENV_PREFIX}_STANDARD`,
thinking: `${ENV_PREFIX}_THINKING`
};
function parseEnvValue(value, fallbackAdapter) {
const colonIdx = value.indexOf(":");
if (colonIdx === -1) {
return { adapter: fallbackAdapter, model: value || void 0 };
}
const adapter = value.slice(0, colonIdx) || fallbackAdapter;
const model = value.slice(colonIdx + 1) || void 0;
return { adapter, model };
}
function createModelResolver(options) {
const env = options.env ?? process.env;
return {
resolve(modelClass) {
const fallback = {
adapter: options.fallbackAdapter,
model: options.fallbackModel
};
if (!modelClass) return fallback;
const classEnv = env[CLASS_ENV_KEYS[modelClass]];
if (classEnv) {
return parseEnvValue(classEnv, options.fallbackAdapter);
}
const catchAllEnv = env[ENV_PREFIX];
if (catchAllEnv) {
return parseEnvValue(catchAllEnv, options.fallbackAdapter);
}
const entry = options.modelMapping?.[modelClass];
if (entry) {
return { adapter: entry.adapter, model: entry.model };
}
return fallback;
}
};
}
export {
createModelResolver
};
//# sourceMappingURL=chunk-AWBHN3LI.js.map