mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
Unify protocol types and modes
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
export const CLAUDE_PERMISSION_MODES = ['default', 'acceptEdits', 'bypassPermissions', 'plan'] as const
|
||||
export type ClaudePermissionMode = typeof CLAUDE_PERMISSION_MODES[number]
|
||||
|
||||
export const CODEX_PERMISSION_MODES = ['default', 'read-only', 'safe-yolo', 'yolo'] as const
|
||||
export type CodexPermissionMode = typeof CODEX_PERMISSION_MODES[number]
|
||||
|
||||
export const PERMISSION_MODES = [
|
||||
'default',
|
||||
'acceptEdits',
|
||||
'bypassPermissions',
|
||||
'plan',
|
||||
'read-only',
|
||||
'safe-yolo',
|
||||
'yolo'
|
||||
] as const
|
||||
export type PermissionMode = typeof PERMISSION_MODES[number]
|
||||
|
||||
export const MODEL_MODES = ['default', 'sonnet', 'opus'] as const
|
||||
export type ModelMode = typeof MODEL_MODES[number]
|
||||
|
||||
export type AgentFlavor = 'claude' | 'codex' | 'gemini'
|
||||
|
||||
export const PERMISSION_MODE_LABELS: Record<PermissionMode, string> = {
|
||||
default: 'Default',
|
||||
acceptEdits: 'Accept Edits',
|
||||
plan: 'Plan Mode',
|
||||
bypassPermissions: 'Yolo',
|
||||
'read-only': 'Read Only',
|
||||
'safe-yolo': 'Safe Yolo',
|
||||
yolo: 'Yolo'
|
||||
}
|
||||
|
||||
export const MODEL_MODE_LABELS: Record<ModelMode, string> = {
|
||||
default: 'Default',
|
||||
sonnet: 'Sonnet',
|
||||
opus: 'Opus'
|
||||
}
|
||||
|
||||
export function getPermissionModesForFlavor(flavor?: string | null): readonly PermissionMode[] {
|
||||
if (flavor === 'codex') {
|
||||
return CODEX_PERMISSION_MODES
|
||||
}
|
||||
if (flavor === 'gemini') {
|
||||
return []
|
||||
}
|
||||
return CLAUDE_PERMISSION_MODES
|
||||
}
|
||||
|
||||
export function isPermissionModeAllowedForFlavor(mode: PermissionMode, flavor?: string | null): boolean {
|
||||
return getPermissionModesForFlavor(flavor).includes(mode)
|
||||
}
|
||||
|
||||
export function getModelModesForFlavor(flavor?: string | null): readonly ModelMode[] {
|
||||
if (flavor === 'codex' || flavor === 'gemini') {
|
||||
return []
|
||||
}
|
||||
return MODEL_MODES
|
||||
}
|
||||
|
||||
export function isModelModeAllowedForFlavor(mode: ModelMode, flavor?: string | null): boolean {
|
||||
return getModelModesForFlavor(flavor).includes(mode)
|
||||
}
|
||||
Reference in New Issue
Block a user