diff --git a/packages/server/src/server/agent/agent-manager.ts b/packages/server/src/server/agent/agent-manager.ts index 67c18d9317..0a2677a00b 100644 --- a/packages/server/src/server/agent/agent-manager.ts +++ b/packages/server/src/server/agent/agent-manager.ts @@ -1377,7 +1377,10 @@ export class AgentManager { }); // COMPAT(featureValues): added in v0.15.0, remove after 2027-05-01. A plugin written // against the previous SDK edits `config.featureValues`. - config = { ...foldHookFeatureValues(request.config, sent), internal: config.internal }; + config = { + ...foldHookFeatureValues({ returned: request.config, sent }), + internal: config.internal, + }; options = { ...options, env: request.env }; } await this.deleteAgentState(resolvedAgentId); diff --git a/packages/server/src/server/agent/option-controls.ts b/packages/server/src/server/agent/option-controls.ts index f52c0dd6dd..fa1d6b4562 100644 --- a/packages/server/src/server/agent/option-controls.ts +++ b/packages/server/src/server/agent/option-controls.ts @@ -67,7 +67,8 @@ export function exposeFeatureValuesToHook< export function foldHookFeatureValues< T extends { providerOptions?: ProviderOptions | null; featureValues?: Record }, ->(returned: T, sent: T): Omit { +>(input: { returned: T; sent: T }): Omit { + const { returned, sent } = input; const { featureValues, ...rest } = returned; const before = sent.featureValues; if (!before) { @@ -104,11 +105,12 @@ interface ProfileOptionFields { * moved to another provider starts from no options, because the old provider's keys mean * nothing to the new one. */ -export function foldProfileFeatureValues( - profile: T, - stored: ProfileOptionFields | undefined, - source: "stored" | "client write" = "stored", -): Omit { +export function foldProfileFeatureValues(input: { + profile: T; + stored: ProfileOptionFields | undefined; + source: "stored" | "client write"; +}): Omit { + const { profile, stored, source } = input; const { featureValues, ...rest } = profile; if (source === "stored") { return featureValues ? { ...rest, options: { ...featureValues, ...rest.options } } : rest; diff --git a/packages/server/src/server/daemon-config-store.ts b/packages/server/src/server/daemon-config-store.ts index 6e450f0fef..f798e301f8 100644 --- a/packages/server/src/server/daemon-config-store.ts +++ b/packages/server/src/server/daemon-config-store.ts @@ -183,11 +183,11 @@ function foldConfigProfiles( return { ...config, agentProfiles: config.agentProfiles.map((profile) => - foldProfileFeatureValues( + foldProfileFeatureValues({ profile, - held.find((candidate) => candidate.id === profile.id), + stored: held.find((candidate) => candidate.id === profile.id), source, - ), + }), ), }; }