Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,256 changes: 304 additions & 1,952 deletions src/App.vue

Large diffs are not rendered by default.

1,031 changes: 73 additions & 958 deletions src/composables/useDesktopState.ts

Large diffs are not rendered by default.

133 changes: 133 additions & 0 deletions src/features/app-shell/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
import type { ChatWidthMode, ChatWidthPreset } from './types'

export const SIDEBAR_COLLAPSED_STORAGE_KEY = 'codex-web-local.sidebar-collapsed.v1'
export const ACCOUNTS_SECTION_COLLAPSED_STORAGE_KEY = 'codex-web-local.accounts-section-collapsed.v1'
export const SEND_WITH_ENTER_KEY = 'codex-web-local.send-with-enter.v1'
export const IN_PROGRESS_SEND_MODE_KEY = 'codex-web-local.in-progress-send-mode.v1'
export const DARK_MODE_KEY = 'codex-web-local.dark-mode.v1'
export const DICTATION_CLICK_TO_TOGGLE_KEY = 'codex-web-local.dictation-click-to-toggle.v1'
export const DICTATION_AUTO_SEND_KEY = 'codex-web-local.dictation-auto-send.v1'
export const DICTATION_LANGUAGE_KEY = 'codex-web-local.dictation-language.v1'
export const CHAT_WIDTH_KEY = 'codex-web-local.chat-width.v1'
export const MOBILE_RESUME_RELOAD_MIN_HIDDEN_MS = 400

export const CHAT_WIDTH_PRESETS: Record<ChatWidthMode, ChatWidthPreset> = {
standard: {
label: 'Standard',
columnMax: '45rem',
cardMax: '76ch',
},
wide: {
label: 'Wide',
columnMax: '72rem',
cardMax: '88ch',
},
'extra-wide': {
label: 'Extra wide',
columnMax: '96rem',
cardMax: '96ch',
},
}

export const WHISPER_LANGUAGES: Record<string, string> = {
en: 'english',
zh: 'chinese',
de: 'german',
es: 'spanish',
ru: 'russian',
ko: 'korean',
fr: 'french',
ja: 'japanese',
pt: 'portuguese',
tr: 'turkish',
pl: 'polish',
ca: 'catalan',
nl: 'dutch',
ar: 'arabic',
sv: 'swedish',
it: 'italian',
id: 'indonesian',
hi: 'hindi',
fi: 'finnish',
vi: 'vietnamese',
he: 'hebrew',
uk: 'ukrainian',
el: 'greek',
ms: 'malay',
cs: 'czech',
ro: 'romanian',
da: 'danish',
hu: 'hungarian',
ta: 'tamil',
no: 'norwegian',
th: 'thai',
ur: 'urdu',
hr: 'croatian',
bg: 'bulgarian',
lt: 'lithuanian',
la: 'latin',
mi: 'maori',
ml: 'malayalam',
cy: 'welsh',
sk: 'slovak',
te: 'telugu',
fa: 'persian',
lv: 'latvian',
bn: 'bengali',
sr: 'serbian',
az: 'azerbaijani',
sl: 'slovenian',
kn: 'kannada',
et: 'estonian',
mk: 'macedonian',
br: 'breton',
eu: 'basque',
is: 'icelandic',
hy: 'armenian',
ne: 'nepali',
mn: 'mongolian',
bs: 'bosnian',
kk: 'kazakh',
sq: 'albanian',
sw: 'swahili',
gl: 'galician',
mr: 'marathi',
pa: 'punjabi',
si: 'sinhala',
km: 'khmer',
sn: 'shona',
yo: 'yoruba',
so: 'somali',
af: 'afrikaans',
oc: 'occitan',
ka: 'georgian',
be: 'belarusian',
tg: 'tajik',
sd: 'sindhi',
gu: 'gujarati',
am: 'amharic',
yi: 'yiddish',
lo: 'lao',
uz: 'uzbek',
fo: 'faroese',
ht: 'haitian creole',
ps: 'pashto',
tk: 'turkmen',
nn: 'nynorsk',
mt: 'maltese',
sa: 'sanskrit',
lb: 'luxembourgish',
my: 'myanmar',
bo: 'tibetan',
tl: 'tagalog',
mg: 'malagasy',
as: 'assamese',
tt: 'tatar',
haw: 'hawaiian',
ln: 'lingala',
ha: 'hausa',
ba: 'bashkir',
jw: 'javanese',
su: 'sundanese',
yue: 'cantonese',
}
8 changes: 8 additions & 0 deletions src/features/app-shell/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export * from './constants'
export * from './types'
export * from './useAppShellAccounts'
export * from './useAppShellIntegrations'
export * from './useAppShellProjects'
export * from './useAppShellRouting'
export * from './useAppShellSettings'
export * from './useAppShellViewport'
16 changes: 16 additions & 0 deletions src/features/app-shell/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export type ChatWidthMode = 'standard' | 'wide' | 'extra-wide'

export type DirectoryTryItemPayload = {
kind: 'app' | 'plugin' | 'skill' | 'composio'
name: string
displayName: string
skillPath?: string
prompt?: string
attachedSkills?: Array<{ name: string; path: string }>
}

export type ChatWidthPreset = {
label: string
columnMax: string
cardMax: string
}
Loading