46 lines · 1.4 KB · TypeScript
RawDownload
import type { ProviderOptionDescriptor, RuntimeMode } from "@t3tools/contracts"; /** * Desktop-oriented effort keywords that don't belong in the phone picker. * Prompt-injected values (ultrathink and friends) are filtered from the * descriptor metadata; ultracode is a real option but a workflow trigger, not * a reasoning level. A value set elsewhere still displays, it just isn't * offered. */const HIDDEN_EFFORT_OPTION_IDS: ReadonlySet<string> = new Set(["ultracode"]); export const RUNTIME_MODE_CHOICES: ReadonlyArray<{  readonly mode: RuntimeMode;  readonly label: string;  readonly description: string;}> = [  {    mode: "approval-required",    label: "Supervised",    description: "Ask before commands and file changes.",  },  {    mode: "auto-accept-edits",    label: "Auto-accept edits",    description: "Auto-approve edits, ask before other actions.",  },  {    mode: "auto",    label: "Auto",    description: "Supported providers approve routine actions; others still ask.",  },  {    mode: "full-access",    label: "Full access",    description: "Allow commands and edits without prompts.",  },]; export function selectableChoices(  descriptor: Extract<ProviderOptionDescriptor, { type: "select" }>,) {  const injected = new Set(descriptor.promptInjectedValues ?? []);  return descriptor.options.filter(    (option) => !injected.has(option.id) && !HIDDEN_EFFORT_OPTION_IDS.has(option.id),  );}