auq-mcp-server 2.6.3 → 2.7.0
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.
- package/README.md +56 -2
- package/dist/bin/auq.js +36 -3
- package/dist/bin/tui-app.js +30 -15
- package/dist/package.json +7 -2
- package/dist/src/__tests__/schema-validation.test.js +61 -1
- package/dist/src/cli/commands/__tests__/fetch-answers.test.js +310 -0
- package/dist/src/cli/commands/__tests__/history.test.js +211 -0
- package/dist/src/cli/commands/answer.js +11 -0
- package/dist/src/cli/commands/config.js +48 -0
- package/dist/src/cli/commands/fetch-answers.js +205 -0
- package/dist/src/cli/commands/history.js +375 -0
- package/dist/src/config/__tests__/ConfigLoader.test.js +38 -0
- package/dist/src/config/defaults.js +1 -0
- package/dist/src/config/types.js +1 -0
- package/dist/src/core/ask-user-questions.js +63 -0
- package/dist/src/i18n/locales/en.js +2 -2
- package/dist/src/server.js +59 -2
- package/dist/src/session/ResponseFormatter.js +79 -2
- package/dist/src/session/SessionManager.js +36 -0
- package/dist/src/session/__tests__/ResponseFormatter.test.js +86 -0
- package/dist/src/session/__tests__/SessionManager.test.js +129 -0
- package/dist/src/shared/schemas.js +8 -0
- package/dist/src/tui/ThemeProvider.js +3 -3
- package/dist/src/tui/components/Header.js +2 -1
- package/dist/src/tui/components/OptionsList.js +1 -1
- package/dist/src/tui/components/SessionPicker.js +1 -1
- package/dist/src/tui/components/StepperView.js +1 -1
- package/dist/src/tui/components/__tests__/ConfirmationDialog.test.js +1 -1
- package/dist/src/tui/components/__tests__/Footer.test.js +1 -1
- package/dist/src/tui/components/__tests__/MarkdownPrompt.test.js +1 -1
- package/dist/src/tui/components/__tests__/ReviewScreen.test.js +1 -1
- package/dist/src/tui/components/__tests__/SessionDots.test.js +1 -1
- package/dist/src/tui/components/__tests__/SessionPicker.test.js +1 -1
- package/dist/src/tui/components/__tests__/StepperView.abandoned.test.js +1 -1
- package/dist/src/tui/components/__tests__/StepperView.keyboard.test.js +1 -1
- package/dist/src/tui/components/__tests__/StepperView.state.test.js +1 -1
- package/dist/src/tui/components/__tests__/WaitingScreen.test.js +1 -1
- package/dist/src/tui/shared/session-events.js +4 -0
- package/dist/src/tui/shared/themes/catppuccin-latte.js +130 -0
- package/dist/src/tui/shared/themes/catppuccin-mocha.js +131 -0
- package/dist/src/tui/shared/themes/dark.js +131 -0
- package/dist/src/tui/shared/themes/dracula.js +131 -0
- package/dist/src/tui/shared/themes/github-dark.js +129 -0
- package/dist/src/tui/shared/themes/github-light.js +129 -0
- package/dist/src/tui/shared/themes/gruvbox-dark.js +130 -0
- package/dist/src/tui/shared/themes/gruvbox-light.js +130 -0
- package/dist/src/tui/shared/themes/index.js +70 -0
- package/dist/src/tui/shared/themes/light.js +130 -0
- package/dist/src/tui/shared/themes/loader.js +111 -0
- package/dist/src/tui/shared/themes/monokai.js +132 -0
- package/dist/src/tui/shared/themes/nord.js +130 -0
- package/dist/src/tui/shared/themes/one-dark.js +131 -0
- package/dist/src/tui/shared/themes/rose-pine.js +131 -0
- package/dist/src/tui/shared/themes/solarized-dark.js +130 -0
- package/dist/src/tui/shared/themes/solarized-light.js +130 -0
- package/dist/src/tui/shared/themes/tokyo-night.js +131 -0
- package/dist/src/tui/shared/themes/types.js +1 -0
- package/dist/src/tui/shared/types.js +1 -0
- package/dist/src/tui/shared/utils/config.js +80 -0
- package/dist/src/tui/shared/utils/detectTheme.js +33 -0
- package/dist/src/tui/shared/utils/index.js +6 -0
- package/dist/src/tui/shared/utils/recommended.js +52 -0
- package/dist/src/tui/shared/utils/relativeTime.js +24 -0
- package/dist/src/tui/shared/utils/sessionSwitching.js +56 -0
- package/dist/src/tui/shared/utils/staleDetection.js +51 -0
- package/dist/src/tui/themes/catppuccin-latte.js +2 -127
- package/dist/src/tui/themes/catppuccin-mocha.js +2 -127
- package/dist/src/tui/themes/dark.js +2 -128
- package/dist/src/tui/themes/dracula.js +2 -127
- package/dist/src/tui/themes/github-dark.js +2 -126
- package/dist/src/tui/themes/github-light.js +2 -126
- package/dist/src/tui/themes/gruvbox-dark.js +2 -127
- package/dist/src/tui/themes/gruvbox-light.js +2 -127
- package/dist/src/tui/themes/index.js +2 -70
- package/dist/src/tui/themes/light.js +2 -127
- package/dist/src/tui/themes/loader.js +2 -111
- package/dist/src/tui/themes/monokai.js +2 -128
- package/dist/src/tui/themes/nord.js +2 -127
- package/dist/src/tui/themes/one-dark.js +2 -127
- package/dist/src/tui/themes/rose-pine.js +2 -128
- package/dist/src/tui/themes/solarized-dark.js +2 -127
- package/dist/src/tui/themes/solarized-light.js +2 -127
- package/dist/src/tui/themes/tokyo-night.js +2 -127
- package/dist/src/tui/themes/types.js +2 -1
- package/dist/src/tui/types.js +1 -1
- package/dist/src/tui/utils/__tests__/recommended.test.js +1 -1
- package/dist/src/tui/utils/__tests__/relativeTime.test.js +1 -1
- package/dist/src/tui/utils/__tests__/sessionSwitching.test.js +1 -1
- package/dist/src/tui/utils/__tests__/staleDetection.test.js +1 -1
- package/dist/src/tui/utils/config.js +1 -80
- package/dist/src/tui/utils/detectTheme.js +1 -22
- package/dist/src/tui/utils/recommended.js +1 -52
- package/dist/src/tui/utils/relativeTime.js +1 -24
- package/dist/src/tui/utils/sessionSwitching.js +1 -56
- package/dist/src/tui/utils/staleDetection.js +1 -51
- package/package.json +7 -2
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Dark theme - Authentic GitHub color palette.
|
|
3
|
+
* Based on GitHub's official dark mode colors.
|
|
4
|
+
*/
|
|
5
|
+
export const githubDarkTheme = {
|
|
6
|
+
name: "github-dark",
|
|
7
|
+
gradient: {
|
|
8
|
+
start: "#58a6ff",
|
|
9
|
+
middle: "#79c0ff",
|
|
10
|
+
end: "#58a6ff",
|
|
11
|
+
},
|
|
12
|
+
colors: {
|
|
13
|
+
bg: "#010409",
|
|
14
|
+
surface: "#0D1117",
|
|
15
|
+
surfaceAlt: "#161B22",
|
|
16
|
+
primary: "#58a6ff",
|
|
17
|
+
success: "#3fb950",
|
|
18
|
+
warning: "#d29922",
|
|
19
|
+
error: "#f85149",
|
|
20
|
+
info: "#58a6ff",
|
|
21
|
+
focused: "#58a6ff",
|
|
22
|
+
selected: "#3fb950",
|
|
23
|
+
pending: "#d29922",
|
|
24
|
+
unansweredHighlight: "#f85149",
|
|
25
|
+
text: "#c9d1d9",
|
|
26
|
+
textDim: "#a0a8b4", // brightened
|
|
27
|
+
textBold: "#f0f6fc",
|
|
28
|
+
},
|
|
29
|
+
borders: {
|
|
30
|
+
primary: "#58a6ff",
|
|
31
|
+
warning: "#d29922",
|
|
32
|
+
error: "#f85149",
|
|
33
|
+
neutral: "#30363d",
|
|
34
|
+
},
|
|
35
|
+
components: {
|
|
36
|
+
header: {
|
|
37
|
+
border: "#3D444D", // differentiated from neutral #30363d
|
|
38
|
+
queueActive: "#58a6ff",
|
|
39
|
+
queueEmpty: "#a0a8b4",
|
|
40
|
+
queueFlash: "#79c0ff",
|
|
41
|
+
pillBg: "#161b22",
|
|
42
|
+
},
|
|
43
|
+
directory: {
|
|
44
|
+
label: "#a0a8b4",
|
|
45
|
+
path: "#c9d1d9",
|
|
46
|
+
},
|
|
47
|
+
tabBar: {
|
|
48
|
+
selected: "#c9d1d9",
|
|
49
|
+
selectedBg: "#161b22",
|
|
50
|
+
default: "#a0a8b4",
|
|
51
|
+
answered: "#3fb950",
|
|
52
|
+
unanswered: "#a0a8b4",
|
|
53
|
+
divider: "#30363d",
|
|
54
|
+
},
|
|
55
|
+
options: {
|
|
56
|
+
focused: "#3fb950",
|
|
57
|
+
focusedBg: "#0d1117",
|
|
58
|
+
selected: "#58a6ff",
|
|
59
|
+
selectedBg: "#161b22",
|
|
60
|
+
default: "#c9d1d9",
|
|
61
|
+
description: "#b1bac4", // brighter for readability
|
|
62
|
+
hint: "#b1bac4", // brighter for readability
|
|
63
|
+
},
|
|
64
|
+
input: {
|
|
65
|
+
border: "#30363d",
|
|
66
|
+
borderFocused: "#58a6ff",
|
|
67
|
+
placeholder: "#a0a8b4",
|
|
68
|
+
cursor: "#58a6ff",
|
|
69
|
+
cursorDim: "#79c0ff",
|
|
70
|
+
},
|
|
71
|
+
review: {
|
|
72
|
+
border: "#30363d",
|
|
73
|
+
confirmBorder: "#58a6ff",
|
|
74
|
+
selectedOption: "#3fb950",
|
|
75
|
+
customAnswer: "#d29922",
|
|
76
|
+
questionId: "#a0a8b4",
|
|
77
|
+
divider: "#30363d",
|
|
78
|
+
},
|
|
79
|
+
questionDisplay: {
|
|
80
|
+
questionId: "#58a6ff",
|
|
81
|
+
typeIndicator: "#a0a8b4",
|
|
82
|
+
elapsed: "#a0a8b4",
|
|
83
|
+
},
|
|
84
|
+
footer: {
|
|
85
|
+
border: "#30363d",
|
|
86
|
+
keyBg: "#161b22",
|
|
87
|
+
keyFg: "#58a6ff",
|
|
88
|
+
action: "#b1bac4", // brighter for visibility
|
|
89
|
+
separator: "#30363d",
|
|
90
|
+
},
|
|
91
|
+
toast: {
|
|
92
|
+
success: "#3fb950",
|
|
93
|
+
successPillBg: "#161b22",
|
|
94
|
+
error: "#f85149",
|
|
95
|
+
info: "#58a6ff",
|
|
96
|
+
warning: "#d29922",
|
|
97
|
+
border: "#30363d",
|
|
98
|
+
},
|
|
99
|
+
markdown: {
|
|
100
|
+
codeBlockBg: "#0d1117",
|
|
101
|
+
codeBlockText: "#c9d1d9",
|
|
102
|
+
codeBlockBorder: "#30363d",
|
|
103
|
+
},
|
|
104
|
+
sessionDots: {
|
|
105
|
+
active: "#58a6ff",
|
|
106
|
+
answered: "#3fb950",
|
|
107
|
+
inProgress: "#d29922",
|
|
108
|
+
untouched: "#a0a8b4",
|
|
109
|
+
number: "#c9d1d9",
|
|
110
|
+
activeNumber: "#58a6ff",
|
|
111
|
+
stale: "#d29922",
|
|
112
|
+
abandoned: "#f85149",
|
|
113
|
+
},
|
|
114
|
+
sessionPicker: {
|
|
115
|
+
border: "#58a6ff",
|
|
116
|
+
title: "#58a6ff",
|
|
117
|
+
rowText: "#c9d1d9",
|
|
118
|
+
rowDim: "#a0a8b4",
|
|
119
|
+
highlightBg: "#0d1117",
|
|
120
|
+
highlightFg: "#3fb950",
|
|
121
|
+
activeMark: "#58a6ff",
|
|
122
|
+
progress: "#58a6ff",
|
|
123
|
+
staleIcon: "#d29922",
|
|
124
|
+
staleText: "#d29922",
|
|
125
|
+
staleAge: "#d29922",
|
|
126
|
+
staleSubtitle: "#a0a8b4",
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Light theme.
|
|
3
|
+
* Authentic GitHub Light color palette optimized for readability.
|
|
4
|
+
*/
|
|
5
|
+
export const githubLightTheme = {
|
|
6
|
+
name: "github-light",
|
|
7
|
+
gradient: {
|
|
8
|
+
start: "#0969DA", // GitHub blue
|
|
9
|
+
middle: "#8250DF", // GitHub purple
|
|
10
|
+
end: "#0969DA",
|
|
11
|
+
},
|
|
12
|
+
colors: {
|
|
13
|
+
bg: "#FFFFFF",
|
|
14
|
+
surface: "#F6F8FA",
|
|
15
|
+
surfaceAlt: "#EFF2F5",
|
|
16
|
+
primary: "#0969DA", // GitHub blue
|
|
17
|
+
success: "#1A7F37", // GitHub green
|
|
18
|
+
warning: "#9A6700", // GitHub orange/brown
|
|
19
|
+
error: "#CF222E", // GitHub red
|
|
20
|
+
info: "#0969DA",
|
|
21
|
+
focused: "#0969DA",
|
|
22
|
+
selected: "#1A7F37",
|
|
23
|
+
pending: "#9A6700",
|
|
24
|
+
unansweredHighlight: "#cf222e",
|
|
25
|
+
text: "#24292F", // GitHub foreground
|
|
26
|
+
textDim: "#6E7781", // Muted text lightened
|
|
27
|
+
textBold: "#1F2328",
|
|
28
|
+
},
|
|
29
|
+
borders: {
|
|
30
|
+
primary: "#0969DA",
|
|
31
|
+
warning: "#9A6700",
|
|
32
|
+
error: "#CF222E",
|
|
33
|
+
neutral: "#D0D7DE", // Light gray border
|
|
34
|
+
},
|
|
35
|
+
components: {
|
|
36
|
+
header: {
|
|
37
|
+
border: "#A0A8B0",
|
|
38
|
+
queueActive: "#0969DA",
|
|
39
|
+
queueEmpty: "#6E7781",
|
|
40
|
+
queueFlash: "#DDF4FF", // Light blue flash
|
|
41
|
+
pillBg: "#DDF4FF", // Light blue bg
|
|
42
|
+
},
|
|
43
|
+
directory: {
|
|
44
|
+
label: "#6E7781",
|
|
45
|
+
path: "#24292F",
|
|
46
|
+
},
|
|
47
|
+
tabBar: {
|
|
48
|
+
selected: "#24292F",
|
|
49
|
+
selectedBg: "#F6F8FA", // Very light gray
|
|
50
|
+
default: "#6E7781",
|
|
51
|
+
answered: "#1A7F37",
|
|
52
|
+
unanswered: "#6E7781",
|
|
53
|
+
divider: "#D0D7DE",
|
|
54
|
+
},
|
|
55
|
+
options: {
|
|
56
|
+
focused: "#1A7F37", // Green cursor
|
|
57
|
+
focusedBg: "#DAFBE1", // Light green bg
|
|
58
|
+
selected: "#0969DA", // Blue selected
|
|
59
|
+
selectedBg: "#DDF4FF", // Light blue bg
|
|
60
|
+
default: "#24292F",
|
|
61
|
+
description: "#424a53", // darker for readability
|
|
62
|
+
hint: "#424a53", // darker for readability
|
|
63
|
+
},
|
|
64
|
+
input: {
|
|
65
|
+
border: "#D0D7DE",
|
|
66
|
+
borderFocused: "#0969DA",
|
|
67
|
+
placeholder: "#6E7781",
|
|
68
|
+
cursor: "#0969DA",
|
|
69
|
+
cursorDim: "#B8E0FF", // Lighter blue for cursor dim
|
|
70
|
+
},
|
|
71
|
+
review: {
|
|
72
|
+
border: "#D0D7DE",
|
|
73
|
+
confirmBorder: "#0969DA",
|
|
74
|
+
selectedOption: "#1A7F37",
|
|
75
|
+
customAnswer: "#9A6700",
|
|
76
|
+
questionId: "#6E7781",
|
|
77
|
+
divider: "#D0D7DE",
|
|
78
|
+
},
|
|
79
|
+
questionDisplay: {
|
|
80
|
+
questionId: "#0969DA",
|
|
81
|
+
typeIndicator: "#6E7781",
|
|
82
|
+
elapsed: "#6E7781",
|
|
83
|
+
},
|
|
84
|
+
footer: {
|
|
85
|
+
border: "#D0D7DE",
|
|
86
|
+
keyBg: "#F6F8FA", // Light key cap
|
|
87
|
+
keyFg: "#0969DA",
|
|
88
|
+
action: "#424a53", // darker for visibility
|
|
89
|
+
separator: "#D0D7DE",
|
|
90
|
+
},
|
|
91
|
+
toast: {
|
|
92
|
+
success: "#1A7F37",
|
|
93
|
+
successPillBg: "#f6f8fa",
|
|
94
|
+
error: "#CF222E",
|
|
95
|
+
info: "#0969DA",
|
|
96
|
+
warning: "#9A6700",
|
|
97
|
+
border: "#D0D7DE",
|
|
98
|
+
},
|
|
99
|
+
markdown: {
|
|
100
|
+
codeBlockBg: "#f6f8fa",
|
|
101
|
+
codeBlockText: "#24292F",
|
|
102
|
+
codeBlockBorder: "#D0D7DE",
|
|
103
|
+
},
|
|
104
|
+
sessionDots: {
|
|
105
|
+
active: "#0969DA",
|
|
106
|
+
answered: "#1A7F37",
|
|
107
|
+
inProgress: "#9A6700",
|
|
108
|
+
untouched: "#6E7781",
|
|
109
|
+
number: "#24292F",
|
|
110
|
+
activeNumber: "#0969DA",
|
|
111
|
+
stale: "#9A6700",
|
|
112
|
+
abandoned: "#CF222E",
|
|
113
|
+
},
|
|
114
|
+
sessionPicker: {
|
|
115
|
+
border: "#0969DA",
|
|
116
|
+
title: "#0969DA",
|
|
117
|
+
rowText: "#24292F",
|
|
118
|
+
rowDim: "#6E7781",
|
|
119
|
+
highlightBg: "#DAFBE1",
|
|
120
|
+
highlightFg: "#1A7F37",
|
|
121
|
+
activeMark: "#0969DA",
|
|
122
|
+
progress: "#0969DA",
|
|
123
|
+
staleIcon: "#9A6700",
|
|
124
|
+
staleText: "#9A6700",
|
|
125
|
+
staleAge: "#9A6700",
|
|
126
|
+
staleSubtitle: "#6E7781",
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gruvbox Dark Theme
|
|
3
|
+
* Retro groove color scheme with warm colors.
|
|
4
|
+
* https://github.com/morhetz/gruvbox
|
|
5
|
+
*/
|
|
6
|
+
export const gruvboxDarkTheme = {
|
|
7
|
+
name: "gruvbox-dark",
|
|
8
|
+
gradient: {
|
|
9
|
+
start: "#458588", // blue
|
|
10
|
+
middle: "#689d6a", // aqua
|
|
11
|
+
end: "#458588",
|
|
12
|
+
},
|
|
13
|
+
colors: {
|
|
14
|
+
bg: "#1D2021",
|
|
15
|
+
surface: "#282828",
|
|
16
|
+
surfaceAlt: "#3C3836",
|
|
17
|
+
primary: "#458588", // blue
|
|
18
|
+
success: "#98971a", // green
|
|
19
|
+
warning: "#d79921", // yellow
|
|
20
|
+
error: "#cc241d", // red
|
|
21
|
+
info: "#458588", // blue
|
|
22
|
+
focused: "#458588", // blue
|
|
23
|
+
selected: "#98971a", // green
|
|
24
|
+
pending: "#d79921", // yellow
|
|
25
|
+
unansweredHighlight: "#cc241d", // gruvbox red
|
|
26
|
+
text: "#ebdbb2", // light1
|
|
27
|
+
textDim: "#a89984", // gray brightened
|
|
28
|
+
textBold: "#fbf1c7", // light0
|
|
29
|
+
},
|
|
30
|
+
borders: {
|
|
31
|
+
primary: "#458588",
|
|
32
|
+
warning: "#d79921",
|
|
33
|
+
error: "#cc241d",
|
|
34
|
+
neutral: "#3c3836", // dark1
|
|
35
|
+
},
|
|
36
|
+
components: {
|
|
37
|
+
header: {
|
|
38
|
+
border: "#504945", // dark2 - slightly more visible
|
|
39
|
+
queueActive: "#458588",
|
|
40
|
+
queueEmpty: "#a89984",
|
|
41
|
+
queueFlash: "#689d6a",
|
|
42
|
+
pillBg: "#3c3836",
|
|
43
|
+
},
|
|
44
|
+
directory: {
|
|
45
|
+
label: "#a89984",
|
|
46
|
+
path: "#ebdbb2",
|
|
47
|
+
},
|
|
48
|
+
tabBar: {
|
|
49
|
+
selected: "#ebdbb2",
|
|
50
|
+
selectedBg: "#3c3836",
|
|
51
|
+
default: "#a89984",
|
|
52
|
+
answered: "#98971a",
|
|
53
|
+
unanswered: "#a89984",
|
|
54
|
+
divider: "#3c3836",
|
|
55
|
+
},
|
|
56
|
+
options: {
|
|
57
|
+
focused: "#98971a",
|
|
58
|
+
focusedBg: "#3c3836",
|
|
59
|
+
selected: "#458588",
|
|
60
|
+
selectedBg: "#3c3836",
|
|
61
|
+
default: "#ebdbb2",
|
|
62
|
+
description: "#bdae93", // light3 - lighter for readability
|
|
63
|
+
hint: "#bdae93", // light3 - lighter for readability
|
|
64
|
+
},
|
|
65
|
+
input: {
|
|
66
|
+
border: "#3c3836",
|
|
67
|
+
borderFocused: "#458588",
|
|
68
|
+
placeholder: "#a89984",
|
|
69
|
+
cursor: "#458588",
|
|
70
|
+
cursorDim: "#689d6a",
|
|
71
|
+
},
|
|
72
|
+
review: {
|
|
73
|
+
border: "#3c3836",
|
|
74
|
+
confirmBorder: "#458588",
|
|
75
|
+
selectedOption: "#98971a",
|
|
76
|
+
customAnswer: "#d79921",
|
|
77
|
+
questionId: "#a89984",
|
|
78
|
+
divider: "#3c3836",
|
|
79
|
+
},
|
|
80
|
+
questionDisplay: {
|
|
81
|
+
questionId: "#458588",
|
|
82
|
+
typeIndicator: "#a89984",
|
|
83
|
+
elapsed: "#a89984",
|
|
84
|
+
},
|
|
85
|
+
footer: {
|
|
86
|
+
border: "#3c3836",
|
|
87
|
+
keyBg: "#3c3836",
|
|
88
|
+
keyFg: "#458588",
|
|
89
|
+
action: "#bdae93", // light3 - brighter for visibility
|
|
90
|
+
separator: "#3c3836",
|
|
91
|
+
},
|
|
92
|
+
toast: {
|
|
93
|
+
success: "#98971a",
|
|
94
|
+
successPillBg: "#3c3836", // dark1
|
|
95
|
+
error: "#cc241d",
|
|
96
|
+
info: "#458588",
|
|
97
|
+
warning: "#d79921",
|
|
98
|
+
border: "#3c3836",
|
|
99
|
+
},
|
|
100
|
+
markdown: {
|
|
101
|
+
codeBlockBg: "#282828",
|
|
102
|
+
codeBlockText: "#ebdbb2",
|
|
103
|
+
codeBlockBorder: "#3c3836",
|
|
104
|
+
},
|
|
105
|
+
sessionDots: {
|
|
106
|
+
active: "#458588",
|
|
107
|
+
answered: "#98971a",
|
|
108
|
+
inProgress: "#d79921",
|
|
109
|
+
untouched: "#a89984",
|
|
110
|
+
number: "#ebdbb2",
|
|
111
|
+
activeNumber: "#458588",
|
|
112
|
+
stale: "#d79921",
|
|
113
|
+
abandoned: "#cc241d",
|
|
114
|
+
},
|
|
115
|
+
sessionPicker: {
|
|
116
|
+
border: "#458588",
|
|
117
|
+
title: "#458588",
|
|
118
|
+
rowText: "#ebdbb2",
|
|
119
|
+
rowDim: "#a89984",
|
|
120
|
+
highlightBg: "#3c3836",
|
|
121
|
+
highlightFg: "#98971a",
|
|
122
|
+
activeMark: "#458588",
|
|
123
|
+
progress: "#458588",
|
|
124
|
+
staleIcon: "#d79921",
|
|
125
|
+
staleText: "#d79921",
|
|
126
|
+
staleAge: "#d79921",
|
|
127
|
+
staleSubtitle: "#a89984",
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gruvbox Light Theme
|
|
3
|
+
* Retro groove color scheme - light variant.
|
|
4
|
+
* https://github.com/morhetz/gruvbox
|
|
5
|
+
*/
|
|
6
|
+
export const gruvboxLightTheme = {
|
|
7
|
+
name: "gruvbox-light",
|
|
8
|
+
gradient: {
|
|
9
|
+
start: "#076678", // faded blue
|
|
10
|
+
middle: "#427b58", // faded aqua
|
|
11
|
+
end: "#076678",
|
|
12
|
+
},
|
|
13
|
+
colors: {
|
|
14
|
+
bg: "#FBF1C7",
|
|
15
|
+
surface: "#F2E5BC",
|
|
16
|
+
surfaceAlt: "#EBDBB2",
|
|
17
|
+
primary: "#076678", // faded blue
|
|
18
|
+
success: "#79740e", // faded green
|
|
19
|
+
warning: "#b57614", // faded yellow
|
|
20
|
+
error: "#9d0006", // faded red
|
|
21
|
+
info: "#076678", // faded blue
|
|
22
|
+
focused: "#076678",
|
|
23
|
+
selected: "#79740e",
|
|
24
|
+
pending: "#b57614",
|
|
25
|
+
unansweredHighlight: "#cc241d", // gruvbox red
|
|
26
|
+
text: "#3c3836", // dark1
|
|
27
|
+
textDim: "#7C6F64", // gray darkened for contrast on cream
|
|
28
|
+
textBold: "#282828", // dark0
|
|
29
|
+
},
|
|
30
|
+
borders: {
|
|
31
|
+
primary: "#076678",
|
|
32
|
+
warning: "#b57614",
|
|
33
|
+
error: "#9d0006",
|
|
34
|
+
neutral: "#d5c4a1", // light2
|
|
35
|
+
},
|
|
36
|
+
components: {
|
|
37
|
+
header: {
|
|
38
|
+
border: "#a89984", // gray - slightly more visible
|
|
39
|
+
queueActive: "#076678",
|
|
40
|
+
queueEmpty: "#a89984",
|
|
41
|
+
queueFlash: "#427b58",
|
|
42
|
+
pillBg: "#ebdbb2", // light1
|
|
43
|
+
},
|
|
44
|
+
directory: {
|
|
45
|
+
label: "#7C6F64",
|
|
46
|
+
path: "#3c3836",
|
|
47
|
+
},
|
|
48
|
+
tabBar: {
|
|
49
|
+
selected: "#3c3836",
|
|
50
|
+
selectedBg: "#ebdbb2",
|
|
51
|
+
default: "#7C6F64",
|
|
52
|
+
answered: "#79740e",
|
|
53
|
+
unanswered: "#a89984",
|
|
54
|
+
divider: "#d5c4a1",
|
|
55
|
+
},
|
|
56
|
+
options: {
|
|
57
|
+
focused: "#79740e",
|
|
58
|
+
focusedBg: "#ebdbb2",
|
|
59
|
+
selected: "#076678",
|
|
60
|
+
selectedBg: "#ebdbb2",
|
|
61
|
+
default: "#3c3836",
|
|
62
|
+
description: "#665c54", // dark3 - darker for readability
|
|
63
|
+
hint: "#665c54", // dark3 - darker for readability
|
|
64
|
+
},
|
|
65
|
+
input: {
|
|
66
|
+
border: "#d5c4a1",
|
|
67
|
+
borderFocused: "#076678",
|
|
68
|
+
placeholder: "#a89984",
|
|
69
|
+
cursor: "#076678",
|
|
70
|
+
cursorDim: "#427b58",
|
|
71
|
+
},
|
|
72
|
+
review: {
|
|
73
|
+
border: "#d5c4a1",
|
|
74
|
+
confirmBorder: "#076678",
|
|
75
|
+
selectedOption: "#79740e",
|
|
76
|
+
customAnswer: "#b57614",
|
|
77
|
+
questionId: "#a89984",
|
|
78
|
+
divider: "#d5c4a1",
|
|
79
|
+
},
|
|
80
|
+
questionDisplay: {
|
|
81
|
+
questionId: "#076678",
|
|
82
|
+
typeIndicator: "#a89984",
|
|
83
|
+
elapsed: "#a89984",
|
|
84
|
+
},
|
|
85
|
+
footer: {
|
|
86
|
+
border: "#d5c4a1",
|
|
87
|
+
keyBg: "#ebdbb2",
|
|
88
|
+
keyFg: "#076678",
|
|
89
|
+
action: "#665c54", // dark3 - darker for visibility
|
|
90
|
+
separator: "#d5c4a1",
|
|
91
|
+
},
|
|
92
|
+
toast: {
|
|
93
|
+
success: "#79740e",
|
|
94
|
+
successPillBg: "#ebdbb2", // light1 - light bg
|
|
95
|
+
error: "#9d0006",
|
|
96
|
+
info: "#076678",
|
|
97
|
+
warning: "#b57614",
|
|
98
|
+
border: "#d5c4a1",
|
|
99
|
+
},
|
|
100
|
+
markdown: {
|
|
101
|
+
codeBlockBg: "#f9f5d9",
|
|
102
|
+
codeBlockText: "#3c3836",
|
|
103
|
+
codeBlockBorder: "#d5c4a1",
|
|
104
|
+
},
|
|
105
|
+
sessionDots: {
|
|
106
|
+
active: "#076678",
|
|
107
|
+
answered: "#79740e",
|
|
108
|
+
inProgress: "#b57614",
|
|
109
|
+
untouched: "#a89984",
|
|
110
|
+
number: "#3c3836",
|
|
111
|
+
activeNumber: "#076678",
|
|
112
|
+
stale: "#b57614",
|
|
113
|
+
abandoned: "#9d0006",
|
|
114
|
+
},
|
|
115
|
+
sessionPicker: {
|
|
116
|
+
border: "#076678",
|
|
117
|
+
title: "#076678",
|
|
118
|
+
rowText: "#3c3836",
|
|
119
|
+
rowDim: "#a89984",
|
|
120
|
+
highlightBg: "#ebdbb2",
|
|
121
|
+
highlightFg: "#79740e",
|
|
122
|
+
activeMark: "#076678",
|
|
123
|
+
progress: "#076678",
|
|
124
|
+
staleIcon: "#b57614",
|
|
125
|
+
staleText: "#b57614",
|
|
126
|
+
staleAge: "#b57614",
|
|
127
|
+
staleSubtitle: "#a89984",
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { darkTheme } from "./dark.js";
|
|
2
|
+
import { lightTheme } from "./light.js";
|
|
3
|
+
import { nordTheme } from "./nord.js";
|
|
4
|
+
import { draculaTheme } from "./dracula.js";
|
|
5
|
+
import { catppuccinMochaTheme } from "./catppuccin-mocha.js";
|
|
6
|
+
import { catppuccinLatteTheme } from "./catppuccin-latte.js";
|
|
7
|
+
import { solarizedDarkTheme } from "./solarized-dark.js";
|
|
8
|
+
import { solarizedLightTheme } from "./solarized-light.js";
|
|
9
|
+
import { gruvboxDarkTheme } from "./gruvbox-dark.js";
|
|
10
|
+
import { gruvboxLightTheme } from "./gruvbox-light.js";
|
|
11
|
+
import { tokyoNightTheme } from "./tokyo-night.js";
|
|
12
|
+
import { oneDarkTheme } from "./one-dark.js";
|
|
13
|
+
import { monokaiTheme } from "./monokai.js";
|
|
14
|
+
import { githubDarkTheme } from "./github-dark.js";
|
|
15
|
+
import { githubLightTheme } from "./github-light.js";
|
|
16
|
+
import { rosePineTheme } from "./rose-pine.js";
|
|
17
|
+
/**
|
|
18
|
+
* Built-in themes registry
|
|
19
|
+
* Order determines cycling order with Ctrl+T
|
|
20
|
+
*/
|
|
21
|
+
const builtInThemes = new Map([
|
|
22
|
+
["AUQ dark", darkTheme],
|
|
23
|
+
["AUQ light", lightTheme],
|
|
24
|
+
["nord", nordTheme],
|
|
25
|
+
["dracula", draculaTheme],
|
|
26
|
+
["catppuccin-mocha", catppuccinMochaTheme],
|
|
27
|
+
["catppuccin-latte", catppuccinLatteTheme],
|
|
28
|
+
["solarized-dark", solarizedDarkTheme],
|
|
29
|
+
["solarized-light", solarizedLightTheme],
|
|
30
|
+
["gruvbox-dark", gruvboxDarkTheme],
|
|
31
|
+
["gruvbox-light", gruvboxLightTheme],
|
|
32
|
+
["tokyo-night", tokyoNightTheme],
|
|
33
|
+
["one-dark", oneDarkTheme],
|
|
34
|
+
["monokai", monokaiTheme],
|
|
35
|
+
["github-dark", githubDarkTheme],
|
|
36
|
+
["github-light", githubLightTheme],
|
|
37
|
+
["rose-pine", rosePineTheme],
|
|
38
|
+
]);
|
|
39
|
+
/**
|
|
40
|
+
* Custom themes loaded from user config directory
|
|
41
|
+
*/
|
|
42
|
+
const customThemes = new Map();
|
|
43
|
+
/**
|
|
44
|
+
* Register a custom theme
|
|
45
|
+
*/
|
|
46
|
+
export function registerTheme(name, theme) {
|
|
47
|
+
customThemes.set(name, theme);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get a theme by name
|
|
51
|
+
* @param name Theme name ('dark', 'light', or custom theme name)
|
|
52
|
+
* @returns Theme object or undefined if not found
|
|
53
|
+
*/
|
|
54
|
+
export function getTheme(name) {
|
|
55
|
+
return builtInThemes.get(name) ?? customThemes.get(name);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* List all available theme names
|
|
59
|
+
*/
|
|
60
|
+
export function listThemes() {
|
|
61
|
+
return [...builtInThemes.keys(), ...customThemes.keys()];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if a theme exists
|
|
65
|
+
*/
|
|
66
|
+
export function hasTheme(name) {
|
|
67
|
+
return builtInThemes.has(name) || customThemes.has(name);
|
|
68
|
+
}
|
|
69
|
+
// Re-export built-in themes for convenience
|
|
70
|
+
export { darkTheme, lightTheme, nordTheme, draculaTheme, catppuccinMochaTheme, catppuccinLatteTheme, solarizedDarkTheme, solarizedLightTheme, gruvboxDarkTheme, gruvboxLightTheme, tokyoNightTheme, oneDarkTheme, monokaiTheme, githubDarkTheme, githubLightTheme, rosePineTheme, };
|