@brimveyn/aimux-config 0.5.3 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/package.json +1 -1
  2. package/src/actions.ts +58 -0
  3. package/src/defaults.ts +3 -0
  4. package/src/index.ts +21 -31
  5. package/src/resolver.ts +1 -1
  6. package/src/tui/index.ts +5 -0
  7. package/src/tui/registry.ts +95 -0
  8. package/src/tui/resolve.ts +156 -0
  9. package/src/tui/shiki.ts +149 -0
  10. package/src/tui/themes/aimux.json +110 -0
  11. package/src/tui/themes/aura.json +69 -0
  12. package/src/tui/themes/ayu.json +80 -0
  13. package/src/tui/themes/carbonfox.json +248 -0
  14. package/src/tui/themes/catppuccin-frappe.json +230 -0
  15. package/src/tui/themes/catppuccin-macchiato.json +230 -0
  16. package/src/tui/themes/catppuccin.json +112 -0
  17. package/src/tui/themes/cobalt2.json +225 -0
  18. package/src/tui/themes/cursor.json +249 -0
  19. package/src/tui/themes/dracula.json +219 -0
  20. package/src/tui/themes/everforest.json +241 -0
  21. package/src/tui/themes/flexoki.json +237 -0
  22. package/src/tui/themes/github.json +233 -0
  23. package/src/tui/themes/gruvbox.json +242 -0
  24. package/src/tui/themes/kanagawa.json +77 -0
  25. package/src/tui/themes/lucent-orng.json +234 -0
  26. package/src/tui/themes/material.json +235 -0
  27. package/src/tui/themes/matrix.json +77 -0
  28. package/src/tui/themes/mercury.json +252 -0
  29. package/src/tui/themes/monokai.json +221 -0
  30. package/src/tui/themes/nightowl.json +221 -0
  31. package/src/tui/themes/nord.json +223 -0
  32. package/src/tui/themes/one-dark.json +84 -0
  33. package/src/tui/themes/opencode.json +245 -0
  34. package/src/tui/themes/orng.json +249 -0
  35. package/src/tui/themes/osaka-jade.json +93 -0
  36. package/src/tui/themes/palenight.json +222 -0
  37. package/src/tui/themes/rosepine.json +234 -0
  38. package/src/tui/themes/solarized.json +223 -0
  39. package/src/tui/themes/synthwave84.json +226 -0
  40. package/src/tui/themes/tokyonight.json +243 -0
  41. package/src/tui/themes/vercel.json +245 -0
  42. package/src/tui/themes/vesper.json +218 -0
  43. package/src/tui/themes/zenburn.json +223 -0
  44. package/src/tui/tokens.ts +111 -0
  45. package/src/tui/types.ts +30 -0
  46. package/src/types.ts +9 -35
  47. package/src/house-themes.ts +0 -55
  48. package/src/neutral-scale.ts +0 -75
  49. package/src/oklch.ts +0 -164
  50. package/src/palette-to-shiki.ts +0 -134
  51. package/src/palette-utils.ts +0 -130
  52. package/src/themes/opencode.ts +0 -1460
  53. package/src/themes.ts +0 -30
@@ -0,0 +1,218 @@
1
+ {
2
+ "$schema": "https://opencode.ai/theme.json",
3
+ "defs": {
4
+ "vesperBg": "#101010",
5
+ "vesperFg": "#FFF",
6
+ "vesperComment": "#8b8b8b",
7
+ "vesperKeyword": "#A0A0A0",
8
+ "vesperFunction": "#FFC799",
9
+ "vesperString": "#99FFE4",
10
+ "vesperNumber": "#FFC799",
11
+ "vesperError": "#FF8080",
12
+ "vesperWarning": "#FFC799",
13
+ "vesperSuccess": "#99FFE4",
14
+ "vesperMuted": "#A0A0A0"
15
+ },
16
+ "theme": {
17
+ "primary": {
18
+ "dark": "#FFC799",
19
+ "light": "#FFC799"
20
+ },
21
+ "secondary": {
22
+ "dark": "#99FFE4",
23
+ "light": "#99FFE4"
24
+ },
25
+ "accent": {
26
+ "dark": "#FFC799",
27
+ "light": "#FFC799"
28
+ },
29
+ "error": {
30
+ "dark": "vesperError",
31
+ "light": "vesperError"
32
+ },
33
+ "warning": {
34
+ "dark": "vesperWarning",
35
+ "light": "vesperWarning"
36
+ },
37
+ "success": {
38
+ "dark": "vesperSuccess",
39
+ "light": "vesperSuccess"
40
+ },
41
+ "info": {
42
+ "dark": "#FFC799",
43
+ "light": "#FFC799"
44
+ },
45
+ "text": {
46
+ "dark": "vesperFg",
47
+ "light": "vesperBg"
48
+ },
49
+ "textMuted": {
50
+ "dark": "vesperMuted",
51
+ "light": "vesperMuted"
52
+ },
53
+ "background": {
54
+ "dark": "vesperBg",
55
+ "light": "#FFF"
56
+ },
57
+ "backgroundPanel": {
58
+ "dark": "vesperBg",
59
+ "light": "#F0F0F0"
60
+ },
61
+ "backgroundElement": {
62
+ "dark": "vesperBg",
63
+ "light": "#E0E0E0"
64
+ },
65
+ "border": {
66
+ "dark": "#282828",
67
+ "light": "#D0D0D0"
68
+ },
69
+ "borderActive": {
70
+ "dark": "#FFC799",
71
+ "light": "#FFC799"
72
+ },
73
+ "borderSubtle": {
74
+ "dark": "#1C1C1C",
75
+ "light": "#E8E8E8"
76
+ },
77
+ "diffAdded": {
78
+ "dark": "vesperSuccess",
79
+ "light": "vesperSuccess"
80
+ },
81
+ "diffRemoved": {
82
+ "dark": "vesperError",
83
+ "light": "vesperError"
84
+ },
85
+ "diffContext": {
86
+ "dark": "vesperMuted",
87
+ "light": "vesperMuted"
88
+ },
89
+ "diffHunkHeader": {
90
+ "dark": "vesperMuted",
91
+ "light": "vesperMuted"
92
+ },
93
+ "diffHighlightAdded": {
94
+ "dark": "vesperSuccess",
95
+ "light": "vesperSuccess"
96
+ },
97
+ "diffHighlightRemoved": {
98
+ "dark": "vesperError",
99
+ "light": "vesperError"
100
+ },
101
+ "diffAddedBg": {
102
+ "dark": "#0d2818",
103
+ "light": "#e8f5e8"
104
+ },
105
+ "diffRemovedBg": {
106
+ "dark": "#281a1a",
107
+ "light": "#f5e8e8"
108
+ },
109
+ "diffContextBg": {
110
+ "dark": "vesperBg",
111
+ "light": "#F8F8F8"
112
+ },
113
+ "diffLineNumber": {
114
+ "dark": "textMuted",
115
+ "light": "#6a6a6a"
116
+ },
117
+ "diffAddedLineNumberBg": {
118
+ "dark": "#0d2818",
119
+ "light": "#e8f5e8"
120
+ },
121
+ "diffRemovedLineNumberBg": {
122
+ "dark": "#281a1a",
123
+ "light": "#f5e8e8"
124
+ },
125
+ "markdownText": {
126
+ "dark": "vesperFg",
127
+ "light": "vesperBg"
128
+ },
129
+ "markdownHeading": {
130
+ "dark": "#FFC799",
131
+ "light": "#FFC799"
132
+ },
133
+ "markdownLink": {
134
+ "dark": "#FFC799",
135
+ "light": "#FFC799"
136
+ },
137
+ "markdownLinkText": {
138
+ "dark": "vesperMuted",
139
+ "light": "vesperMuted"
140
+ },
141
+ "markdownCode": {
142
+ "dark": "vesperMuted",
143
+ "light": "vesperMuted"
144
+ },
145
+ "markdownBlockQuote": {
146
+ "dark": "vesperFg",
147
+ "light": "vesperBg"
148
+ },
149
+ "markdownEmph": {
150
+ "dark": "vesperFg",
151
+ "light": "vesperBg"
152
+ },
153
+ "markdownStrong": {
154
+ "dark": "vesperFg",
155
+ "light": "vesperBg"
156
+ },
157
+ "markdownHorizontalRule": {
158
+ "dark": "#65737E",
159
+ "light": "#65737E"
160
+ },
161
+ "markdownListItem": {
162
+ "dark": "vesperFg",
163
+ "light": "vesperBg"
164
+ },
165
+ "markdownListEnumeration": {
166
+ "dark": "vesperFg",
167
+ "light": "vesperBg"
168
+ },
169
+ "markdownImage": {
170
+ "dark": "#FFC799",
171
+ "light": "#FFC799"
172
+ },
173
+ "markdownImageText": {
174
+ "dark": "vesperMuted",
175
+ "light": "vesperMuted"
176
+ },
177
+ "markdownCodeBlock": {
178
+ "dark": "vesperFg",
179
+ "light": "vesperBg"
180
+ },
181
+ "syntaxComment": {
182
+ "dark": "vesperComment",
183
+ "light": "vesperComment"
184
+ },
185
+ "syntaxKeyword": {
186
+ "dark": "vesperKeyword",
187
+ "light": "vesperKeyword"
188
+ },
189
+ "syntaxFunction": {
190
+ "dark": "vesperFunction",
191
+ "light": "vesperFunction"
192
+ },
193
+ "syntaxVariable": {
194
+ "dark": "vesperFg",
195
+ "light": "vesperBg"
196
+ },
197
+ "syntaxString": {
198
+ "dark": "vesperString",
199
+ "light": "vesperString"
200
+ },
201
+ "syntaxNumber": {
202
+ "dark": "vesperNumber",
203
+ "light": "vesperNumber"
204
+ },
205
+ "syntaxType": {
206
+ "dark": "vesperFunction",
207
+ "light": "vesperFunction"
208
+ },
209
+ "syntaxOperator": {
210
+ "dark": "vesperKeyword",
211
+ "light": "vesperKeyword"
212
+ },
213
+ "syntaxPunctuation": {
214
+ "dark": "vesperFg",
215
+ "light": "vesperBg"
216
+ }
217
+ }
218
+ }
@@ -0,0 +1,223 @@
1
+ {
2
+ "$schema": "https://opencode.ai/theme.json",
3
+ "defs": {
4
+ "bg": "#3f3f3f",
5
+ "bgAlt": "#4f4f4f",
6
+ "bgPanel": "#5f5f5f",
7
+ "fg": "#dcdccc",
8
+ "fgMuted": "#9f9f9f",
9
+ "red": "#cc9393",
10
+ "redBright": "#dca3a3",
11
+ "green": "#7f9f7f",
12
+ "greenBright": "#8fb28f",
13
+ "yellow": "#f0dfaf",
14
+ "yellowDim": "#e0cf9f",
15
+ "blue": "#8cd0d3",
16
+ "blueDim": "#7cb8bb",
17
+ "magenta": "#dc8cc3",
18
+ "cyan": "#93e0e3",
19
+ "orange": "#dfaf8f"
20
+ },
21
+ "theme": {
22
+ "primary": {
23
+ "dark": "blue",
24
+ "light": "#5f7f8f"
25
+ },
26
+ "secondary": {
27
+ "dark": "magenta",
28
+ "light": "#8f5f8f"
29
+ },
30
+ "accent": {
31
+ "dark": "cyan",
32
+ "light": "#5f8f8f"
33
+ },
34
+ "error": {
35
+ "dark": "red",
36
+ "light": "#8f5f5f"
37
+ },
38
+ "warning": {
39
+ "dark": "yellow",
40
+ "light": "#8f8f5f"
41
+ },
42
+ "success": {
43
+ "dark": "green",
44
+ "light": "#5f8f5f"
45
+ },
46
+ "info": {
47
+ "dark": "orange",
48
+ "light": "#8f7f5f"
49
+ },
50
+ "text": {
51
+ "dark": "fg",
52
+ "light": "#3f3f3f"
53
+ },
54
+ "textMuted": {
55
+ "dark": "fgMuted",
56
+ "light": "#6f6f6f"
57
+ },
58
+ "background": {
59
+ "dark": "bg",
60
+ "light": "#ffffef"
61
+ },
62
+ "backgroundPanel": {
63
+ "dark": "bgAlt",
64
+ "light": "#f5f5e5"
65
+ },
66
+ "backgroundElement": {
67
+ "dark": "bgPanel",
68
+ "light": "#ebebdb"
69
+ },
70
+ "border": {
71
+ "dark": "#5f5f5f",
72
+ "light": "#d0d0c0"
73
+ },
74
+ "borderActive": {
75
+ "dark": "blue",
76
+ "light": "#5f7f8f"
77
+ },
78
+ "borderSubtle": {
79
+ "dark": "#4f4f4f",
80
+ "light": "#e0e0d0"
81
+ },
82
+ "diffAdded": {
83
+ "dark": "green",
84
+ "light": "#5f8f5f"
85
+ },
86
+ "diffRemoved": {
87
+ "dark": "red",
88
+ "light": "#8f5f5f"
89
+ },
90
+ "diffContext": {
91
+ "dark": "fgMuted",
92
+ "light": "#6f6f6f"
93
+ },
94
+ "diffHunkHeader": {
95
+ "dark": "cyan",
96
+ "light": "#5f8f8f"
97
+ },
98
+ "diffHighlightAdded": {
99
+ "dark": "greenBright",
100
+ "light": "#5f8f5f"
101
+ },
102
+ "diffHighlightRemoved": {
103
+ "dark": "redBright",
104
+ "light": "#8f5f5f"
105
+ },
106
+ "diffAddedBg": {
107
+ "dark": "#4f5f4f",
108
+ "light": "#efffef"
109
+ },
110
+ "diffRemovedBg": {
111
+ "dark": "#5f4f4f",
112
+ "light": "#ffefef"
113
+ },
114
+ "diffContextBg": {
115
+ "dark": "bgAlt",
116
+ "light": "#f5f5e5"
117
+ },
118
+ "diffLineNumber": {
119
+ "dark": "#d2d2d2",
120
+ "light": "textMuted"
121
+ },
122
+ "diffAddedLineNumberBg": {
123
+ "dark": "#4f5f4f",
124
+ "light": "#efffef"
125
+ },
126
+ "diffRemovedLineNumberBg": {
127
+ "dark": "#5f4f4f",
128
+ "light": "#ffefef"
129
+ },
130
+ "markdownText": {
131
+ "dark": "fg",
132
+ "light": "#3f3f3f"
133
+ },
134
+ "markdownHeading": {
135
+ "dark": "yellow",
136
+ "light": "#8f8f5f"
137
+ },
138
+ "markdownLink": {
139
+ "dark": "blue",
140
+ "light": "#5f7f8f"
141
+ },
142
+ "markdownLinkText": {
143
+ "dark": "cyan",
144
+ "light": "#5f8f8f"
145
+ },
146
+ "markdownCode": {
147
+ "dark": "green",
148
+ "light": "#5f8f5f"
149
+ },
150
+ "markdownBlockQuote": {
151
+ "dark": "fgMuted",
152
+ "light": "#6f6f6f"
153
+ },
154
+ "markdownEmph": {
155
+ "dark": "yellowDim",
156
+ "light": "#8f8f5f"
157
+ },
158
+ "markdownStrong": {
159
+ "dark": "orange",
160
+ "light": "#8f7f5f"
161
+ },
162
+ "markdownHorizontalRule": {
163
+ "dark": "fgMuted",
164
+ "light": "#6f6f6f"
165
+ },
166
+ "markdownListItem": {
167
+ "dark": "blue",
168
+ "light": "#5f7f8f"
169
+ },
170
+ "markdownListEnumeration": {
171
+ "dark": "cyan",
172
+ "light": "#5f8f8f"
173
+ },
174
+ "markdownImage": {
175
+ "dark": "blue",
176
+ "light": "#5f7f8f"
177
+ },
178
+ "markdownImageText": {
179
+ "dark": "cyan",
180
+ "light": "#5f8f8f"
181
+ },
182
+ "markdownCodeBlock": {
183
+ "dark": "fg",
184
+ "light": "#3f3f3f"
185
+ },
186
+ "syntaxComment": {
187
+ "dark": "#7f9f7f",
188
+ "light": "#5f7f5f"
189
+ },
190
+ "syntaxKeyword": {
191
+ "dark": "yellow",
192
+ "light": "#8f8f5f"
193
+ },
194
+ "syntaxFunction": {
195
+ "dark": "blue",
196
+ "light": "#5f7f8f"
197
+ },
198
+ "syntaxVariable": {
199
+ "dark": "fg",
200
+ "light": "#3f3f3f"
201
+ },
202
+ "syntaxString": {
203
+ "dark": "red",
204
+ "light": "#8f5f5f"
205
+ },
206
+ "syntaxNumber": {
207
+ "dark": "greenBright",
208
+ "light": "#5f8f5f"
209
+ },
210
+ "syntaxType": {
211
+ "dark": "cyan",
212
+ "light": "#5f8f8f"
213
+ },
214
+ "syntaxOperator": {
215
+ "dark": "yellow",
216
+ "light": "#8f8f5f"
217
+ },
218
+ "syntaxPunctuation": {
219
+ "dark": "fg",
220
+ "light": "#3f3f3f"
221
+ }
222
+ }
223
+ }
@@ -0,0 +1,111 @@
1
+ // 44-token namespace ported 1:1 from opencode TUI
2
+ // (opencode/packages/plugin/src/tui.ts:191-245).
3
+
4
+ export type TuiColorToken =
5
+ | 'primary'
6
+ | 'secondary'
7
+ | 'accent'
8
+ | 'error'
9
+ | 'warning'
10
+ | 'success'
11
+ | 'info'
12
+ | 'text'
13
+ | 'textMuted'
14
+ | 'selectedListItemText'
15
+ | 'background'
16
+ | 'backgroundPanel'
17
+ | 'backgroundElement'
18
+ | 'backgroundMenu'
19
+ | 'border'
20
+ | 'borderActive'
21
+ | 'borderSubtle'
22
+ | 'diffAdded'
23
+ | 'diffRemoved'
24
+ | 'diffContext'
25
+ | 'diffHunkHeader'
26
+ | 'diffHighlightAdded'
27
+ | 'diffHighlightRemoved'
28
+ | 'diffAddedBg'
29
+ | 'diffRemovedBg'
30
+ | 'diffContextBg'
31
+ | 'diffLineNumber'
32
+ | 'diffAddedLineNumberBg'
33
+ | 'diffRemovedLineNumberBg'
34
+ | 'markdownText'
35
+ | 'markdownHeading'
36
+ | 'markdownLink'
37
+ | 'markdownLinkText'
38
+ | 'markdownCode'
39
+ | 'markdownBlockQuote'
40
+ | 'markdownEmph'
41
+ | 'markdownStrong'
42
+ | 'markdownHorizontalRule'
43
+ | 'markdownListItem'
44
+ | 'markdownListEnumeration'
45
+ | 'markdownImage'
46
+ | 'markdownImageText'
47
+ | 'markdownCodeBlock'
48
+ | 'syntaxComment'
49
+ | 'syntaxKeyword'
50
+ | 'syntaxFunction'
51
+ | 'syntaxVariable'
52
+ | 'syntaxString'
53
+ | 'syntaxNumber'
54
+ | 'syntaxType'
55
+ | 'syntaxOperator'
56
+ | 'syntaxPunctuation'
57
+
58
+ export const TUI_COLOR_TOKENS: readonly TuiColorToken[] = [
59
+ 'primary',
60
+ 'secondary',
61
+ 'accent',
62
+ 'error',
63
+ 'warning',
64
+ 'success',
65
+ 'info',
66
+ 'text',
67
+ 'textMuted',
68
+ 'selectedListItemText',
69
+ 'background',
70
+ 'backgroundPanel',
71
+ 'backgroundElement',
72
+ 'backgroundMenu',
73
+ 'border',
74
+ 'borderActive',
75
+ 'borderSubtle',
76
+ 'diffAdded',
77
+ 'diffRemoved',
78
+ 'diffContext',
79
+ 'diffHunkHeader',
80
+ 'diffHighlightAdded',
81
+ 'diffHighlightRemoved',
82
+ 'diffAddedBg',
83
+ 'diffRemovedBg',
84
+ 'diffContextBg',
85
+ 'diffLineNumber',
86
+ 'diffAddedLineNumberBg',
87
+ 'diffRemovedLineNumberBg',
88
+ 'markdownText',
89
+ 'markdownHeading',
90
+ 'markdownLink',
91
+ 'markdownLinkText',
92
+ 'markdownCode',
93
+ 'markdownBlockQuote',
94
+ 'markdownEmph',
95
+ 'markdownStrong',
96
+ 'markdownHorizontalRule',
97
+ 'markdownListItem',
98
+ 'markdownListEnumeration',
99
+ 'markdownImage',
100
+ 'markdownImageText',
101
+ 'markdownCodeBlock',
102
+ 'syntaxComment',
103
+ 'syntaxKeyword',
104
+ 'syntaxFunction',
105
+ 'syntaxVariable',
106
+ 'syntaxString',
107
+ 'syntaxNumber',
108
+ 'syntaxType',
109
+ 'syntaxOperator',
110
+ 'syntaxPunctuation',
111
+ ] as const
@@ -0,0 +1,30 @@
1
+ import type { TuiColorToken } from './tokens'
2
+
3
+ export type ThemeMode = 'dark' | 'light'
4
+
5
+ /** RGBA in 0..255 (alpha 0..255, where 255 == opaque). */
6
+ export interface RGBA {
7
+ r: number
8
+ g: number
9
+ b: number
10
+ a: number
11
+ }
12
+
13
+ /** A single color value as it appears in a TUI theme JSON. */
14
+ export type TuiColorValue =
15
+ | string // hex (#rgb, #rrggbb, #rrggbbaa), ref to defs/token, "transparent", "none"
16
+ | number // ANSI color code 0..255
17
+ | { dark: TuiColorValue; light: TuiColorValue }
18
+
19
+ export interface TuiThemeJson {
20
+ $schema?: string
21
+ defs?: Record<string, TuiColorValue>
22
+ theme: Partial<Record<TuiColorToken, TuiColorValue>> & {
23
+ thinkingOpacity?: number
24
+ }
25
+ }
26
+
27
+ /** Resolved theme: every color token → CSS-style color string consumable by opentui. */
28
+ export type ResolvedTuiTheme = Record<TuiColorToken, string> & {
29
+ thinkingOpacity: number
30
+ }
package/src/types.ts CHANGED
@@ -543,6 +543,7 @@ export type GitModeAction =
543
543
  delta: number
544
544
  }
545
545
  | { type: 'git-mode-fold-set'; key: string; foldId: string; top: number; bottom: number }
546
+ | { type: 'git-mode-fold-toggle-all'; key: string }
546
547
  | {
547
548
  type: 'git-mode-optimistic-move'
548
549
  path: string
@@ -619,6 +620,8 @@ export type SideEffect =
619
620
  | { type: 'persist-git-tree-compaction'; enabled: boolean }
620
621
  | { type: 'git-stage'; path: string }
621
622
  | { type: 'git-unstage'; path: string }
623
+ | { type: 'git-stage-all' }
624
+ | { type: 'git-unstage-all' }
622
625
  | { type: 'git-restore'; path: string }
623
626
  | { type: 'git-rm'; path: string }
624
627
  | { type: 'git-commit'; title: string; body: string }
@@ -653,40 +656,10 @@ export interface ModeContext {
653
656
 
654
657
  // ─── Themes ───────────────────────────────────────────────────────────────────
655
658
 
656
- /**
657
- * Compact opencode-style semantic palette. Required tokens cover every UI role;
658
- * optional tokens fall back via helpers in `palette-utils.ts`.
659
- */
660
- export interface AimuxPalette {
661
- // required
662
- neutral: string
663
- ink: string
664
- primary: string
665
- success: string
666
- warning: string
667
- error: string
668
- info: string
669
- // optional
670
- accent?: string
671
- interactive?: string
672
- diffAdd?: string
673
- diffDelete?: string
674
- }
659
+ // Theme types now live in `./tui` (1:1 port of opencode TUI). The aliases
660
+ // below preserve internal type wiring for the user-facing config API.
675
661
 
676
662
  export type ThemeMode = 'light' | 'dark'
677
- // eslint-disable-next-line typescript/no-redundant-type-constituents
678
- export type ThemeId = 'aimux-light' | 'aimux-dark' | (string & {})
679
-
680
- export interface AimuxTheme {
681
- name: string
682
- mode: ThemeMode
683
- displayName: string
684
- palette: AimuxPalette
685
- fg: string
686
- bg: string
687
- }
688
-
689
- export type Theme = AimuxTheme
690
663
 
691
664
  // ─── Backend config (stub) ────────────────────────────────────────────────────
692
665
 
@@ -843,9 +816,10 @@ export interface MultiRepoConfig {
843
816
  }
844
817
 
845
818
  export interface AimuxThemeConfig {
846
- /** Startup override for light/dark theme family. Reapplied on each launch. */
819
+ /** Startup theme id (one of `THEME_IDS` from `@brimveyn/aimux-config`). */
820
+ initialId?: string
821
+ /** Startup override for light/dark mode. Reapplied on each launch. */
847
822
  initialMode?: ThemeMode
848
- paletteOverrides?: Partial<AimuxPalette>
849
823
  /** @deprecated Use `initialMode` instead. */
850
824
  mode?: ThemeMode
851
825
  }
@@ -903,8 +877,8 @@ export interface ResolvedKeymapConfig {
903
877
  export interface ResolvedConfig {
904
878
  theme:
905
879
  | {
880
+ initialId?: string
906
881
  initialMode?: ThemeMode
907
- paletteOverrides?: Partial<AimuxPalette>
908
882
  }
909
883
  | undefined
910
884
  keymaps: ResolvedKeymapConfig