eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.13 kB
JavaScript
import{applyAgentConfigStringPath}from"./agent-config-string-path.js";import{applyModelNameToSource}from"./apply-model-name.js";async function applyAgentModelSettingsToSource(n,r){let i=n,a=[];if(r.model.kind===`remove`)return{kind:`bail`,reason:"the required `model` property cannot be removed",line:1};if(r.model.kind===`set`){let e=await applyModelNameToSource(i,r.model.value);if(e.kind===`bail`)return e;e.nextSource!==i&&a.push(`model`),i=e.nextSource}if(r.reasoning.kind!==`keep`){let t=await applyAgentConfigStringPath(i,[`reasoning`],r.reasoning.kind===`set`?{kind:`set`,value:r.reasoning.value}:{kind:`remove`});if(t.kind===`bail`)return t;t.nextSource!==i&&a.push(`reasoning`),i=t.nextSource}if(r.gatewayServiceTier.kind!==`keep`){let t=await applyAgentConfigStringPath(i,[`modelOptions`,`providerOptions`,`gateway`,`serviceTier`],r.gatewayServiceTier.kind===`set`?{kind:`set`,value:r.gatewayServiceTier.value}:{kind:`remove`,removable:e=>e===`priority`});if(t.kind===`bail`)return t;t.nextSource!==i&&a.push(`fast-mode`),i=t.nextSource}return{kind:`applied`,changed:a,nextSource:i}}export{applyAgentModelSettingsToSource};