29 lines · 1.1 KB · TypeScript
RawDownload
import {  DEFAULT_PROVIDER_INTERACTION_MODE,  type ProviderInteractionMode,} from "@t3tools/contracts"; export function resolveLegacyPlanModeEnabled(input: {  readonly loaded: boolean;  readonly preference: boolean | undefined;}): boolean {  return input.loaded && input.preference === true;} export function resolvePendingTaskInteractionMode(input: {  readonly preferenceLoaded: boolean;  readonly planModeEnabled: boolean;  readonly draftInteractionMode: ProviderInteractionMode | undefined;  readonly queuedInteractionMode: ProviderInteractionMode | undefined;}): ProviderInteractionMode {  if (input.planModeEnabled) {    return input.draftInteractionMode ?? DEFAULT_PROVIDER_INTERACTION_MODE;  }  if (!input.preferenceLoaded) {    // Only an existing queued task may retain its previous mode while the    // preference is unknown. A fresh draft still defaults to Build so a stale    // persisted Plan selection cannot bypass a disabled preference at launch.    return input.queuedInteractionMode ?? DEFAULT_PROVIDER_INTERACTION_MODE;  }  return DEFAULT_PROVIDER_INTERACTION_MODE;}