Files
agent-radar 2ed3415fb7
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
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

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
);
}