52 lines · 1.5 KB · TypeScript
RawDownload
import type { EnvironmentId, RunId, ThreadId } from "@t3tools/contracts"; export const REMOVE_QUEUED_MESSAGE_ACCESSIBILITY_LABEL = "Remove queued message"; export interface ThreadQueueRowControls {  readonly canDismiss: boolean;  readonly canMoveDown: boolean;  readonly canMoveUp: boolean;  readonly canSteer: boolean;  readonly dismissAccessibilityLabel: string;  readonly displayText: string;} export function resolveThreadQueueRowControls(input: {  readonly busy: boolean;  readonly canPromoteToSteer: boolean;  readonly canReorder: boolean;  readonly index: number;  readonly queuedCount: number;  readonly text: string;}): ThreadQueueRowControls {  const mutationEnabled = !input.busy;   return {    canDismiss: !input.busy,    canMoveDown: mutationEnabled && input.canReorder && input.index < input.queuedCount - 1,    canMoveUp: mutationEnabled && input.canReorder && input.index > 0,    canSteer: mutationEnabled && input.canPromoteToSteer,    dismissAccessibilityLabel: REMOVE_QUEUED_MESSAGE_ACCESSIBILITY_LABEL,    displayText: input.text,  };} export function buildCancelQueuedRunCommand(input: {  readonly environmentId: EnvironmentId;  readonly runId: RunId;  readonly threadId: ThreadId;}): {  readonly environmentId: EnvironmentId;  readonly input: {    readonly runId: RunId;    readonly threadId: ThreadId;  };} {  return {    environmentId: input.environmentId,    input: {      runId: input.runId,      threadId: input.threadId,    },  };}