Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
/**
|
|
* Normalizes a value emitted by the permission select.
|
|
*
|
|
* Radix can emit an empty value while a controlled select closes and restores
|
|
* focus. That is transient UI state, not a user request to clear permissions.
|
|
*/
|
|
export function normalizePermissionModeSelection(
|
|
permissionModeId: string
|
|
): string | null {
|
|
const normalized = permissionModeId.trim();
|
|
return normalized || null;
|
|
}
|
|
|
|
/**
|
|
* Maps a permission-mode dropdown selection onto a settings patch.
|
|
*
|
|
* Plan mode is no longer a dropdown option — it is an independent toggle
|
|
* surfaced via Shift+Tab and the plan badge. The caller-provided option
|
|
* decides whether selecting a permission mode also clears plan mode.
|
|
*/
|
|
export function permissionModeSelectionPatch(
|
|
permissionModeId: string,
|
|
options: { clearsPlanMode: boolean }
|
|
): { permissionModeId: string; planMode?: boolean } {
|
|
return options.clearsPlanMode
|
|
? { permissionModeId, planMode: false }
|
|
: { permissionModeId };
|
|
}
|
|
|
|
/**
|
|
* Decides whether the composer's permission-mode control should be disabled
|
|
* while a turn is in flight.
|
|
*
|
|
* AgentGUI keeps the permission contract stable for the whole active turn,
|
|
* even when the provider runtime can technically apply changes live.
|
|
*/
|
|
export function resolvePermissionModeControlsDisabled(options: {
|
|
isSendingTurn: boolean;
|
|
isSubmittingPrompt: boolean;
|
|
showStopButton: boolean;
|
|
}): boolean {
|
|
return (
|
|
options.isSendingTurn ||
|
|
options.isSubmittingPrompt ||
|
|
options.showStopButton
|
|
);
|
|
}
|