refactor: replace hardcoded permission/model modes with centralized schema validation

Extract permission and model mode validation into reusable functions utilizing
@hapi/protocol schemas. Use isPermissionModeAllowedForFlavor and
isModelModeAllowedForFlavor to validate modes based on session flavor (claude/codex).
Replace inline type definitions with shared types from @hapi/protocol.
This commit is contained in:
weishu
2026-01-04 22:07:03 +08:00
parent c8325b921a
commit 7a487269ea
16 changed files with 88 additions and 52 deletions
+2 -1
View File
@@ -3,6 +3,7 @@ import { authAndSetupMachineIfNeeded } from '@/ui/auth'
import { initializeToken } from '@/ui/tokenInit'
import { maybeAutoStartServer } from '@/utils/autoStartServer'
import type { CommandDefinition } from './types'
import type { CodexPermissionMode } from '@hapi/protocol/types'
export const codexCommand: CommandDefinition = {
name: 'codex',
@@ -14,7 +15,7 @@ export const codexCommand: CommandDefinition = {
const options: {
startedBy?: 'daemon' | 'terminal'
codexArgs?: string[]
permissionMode?: 'default' | 'read-only' | 'safe-yolo' | 'yolo'
permissionMode?: CodexPermissionMode
} = {}
const unknownArgs: string[] = []