mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
feat: add real-time permission and model mode synchronization close #21
Implements bidirectional sync of permission/model modes between CLI sessions and web app. Adds Codex-specific permission modes (read-only, safe-yolo, yolo) alongside Claude's modes. Web can now control CLI session state via RPC set-session-config handler, while CLI broadcasts state changes through keep-alive payloads. UI controls are flavor-aware, showing appropriate modes for Claude vs Codex vs Gemini. Type centralization in api/types eliminates circular dependencies.
This commit is contained in:
@@ -12,17 +12,16 @@ import type { ModelMode } from '@/types/api'
|
||||
*/
|
||||
const CONTEXT_HEADROOM_TOKENS = 10_000
|
||||
|
||||
const MODEL_CONTEXT_WINDOWS: Record<NonNullable<ModelMode>, number> = {
|
||||
const MODEL_CONTEXT_WINDOWS: Record<ModelMode, number> = {
|
||||
// Claude Code modes used in this app; currently treated as ~200k context.
|
||||
default: 200_000,
|
||||
sonnet: 200_000,
|
||||
opus: 200_000
|
||||
}
|
||||
|
||||
export function getContextBudgetTokens(modelMode: ModelMode): number | null {
|
||||
const mode: NonNullable<ModelMode> = modelMode ?? 'default'
|
||||
export function getContextBudgetTokens(modelMode: ModelMode | undefined): number | null {
|
||||
const mode: ModelMode = modelMode ?? 'default'
|
||||
const windowTokens = MODEL_CONTEXT_WINDOWS[mode]
|
||||
if (!windowTokens) return null
|
||||
return Math.max(1, windowTokens - CONTEXT_HEADROOM_TOKENS)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user