@vybestack/llxprt-ui 0.7.0-nightly.251211.5750c518a
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/PLAN-messages.md +681 -0
- package/PLAN.md +47 -0
- package/README.md +25 -0
- package/bun.lock +1024 -0
- package/dev-docs/ARCHITECTURE.md +178 -0
- package/dev-docs/CODE_ORGANIZATION.md +232 -0
- package/dev-docs/STANDARDS.md +235 -0
- package/dev-docs/UI_DESIGN.md +425 -0
- package/eslint.config.cjs +194 -0
- package/images/nui.png +0 -0
- package/llxprt.png +0 -0
- package/llxprt.svg +128 -0
- package/package.json +66 -0
- package/scripts/check-limits.ts +177 -0
- package/scripts/start.js +71 -0
- package/src/app.tsx +599 -0
- package/src/bootstrap.tsx +23 -0
- package/src/commands/AuthCommand.tsx +80 -0
- package/src/commands/ModelCommand.tsx +102 -0
- package/src/commands/ProviderCommand.tsx +103 -0
- package/src/commands/ThemeCommand.tsx +71 -0
- package/src/features/chat/history.ts +178 -0
- package/src/features/chat/index.ts +3 -0
- package/src/features/chat/persistentHistory.ts +102 -0
- package/src/features/chat/responder.ts +217 -0
- package/src/features/completion/completions.ts +161 -0
- package/src/features/completion/index.ts +3 -0
- package/src/features/completion/slash.test.ts +82 -0
- package/src/features/completion/slash.ts +248 -0
- package/src/features/completion/suggestions.test.ts +51 -0
- package/src/features/completion/suggestions.ts +112 -0
- package/src/features/config/configSession.test.ts +189 -0
- package/src/features/config/configSession.ts +179 -0
- package/src/features/config/index.ts +4 -0
- package/src/features/config/llxprtAdapter.integration.test.ts +202 -0
- package/src/features/config/llxprtAdapter.test.ts +139 -0
- package/src/features/config/llxprtAdapter.ts +257 -0
- package/src/features/config/llxprtCommands.test.ts +40 -0
- package/src/features/config/llxprtCommands.ts +35 -0
- package/src/features/config/llxprtConfig.test.ts +261 -0
- package/src/features/config/llxprtConfig.ts +418 -0
- package/src/features/theme/index.ts +2 -0
- package/src/features/theme/theme.test.ts +51 -0
- package/src/features/theme/theme.ts +105 -0
- package/src/features/theme/themeManager.ts +84 -0
- package/src/hooks/useAppCommands.ts +129 -0
- package/src/hooks/useApprovalKeyboard.ts +156 -0
- package/src/hooks/useChatStore.test.ts +112 -0
- package/src/hooks/useChatStore.ts +252 -0
- package/src/hooks/useInputManager.ts +99 -0
- package/src/hooks/useKeyboardHandlers.ts +130 -0
- package/src/hooks/useListNavigation.test.ts +166 -0
- package/src/hooks/useListNavigation.ts +62 -0
- package/src/hooks/usePersistentHistory.ts +94 -0
- package/src/hooks/useScrollManagement.ts +107 -0
- package/src/hooks/useSelectionClipboard.ts +48 -0
- package/src/hooks/useSessionManager.test.ts +85 -0
- package/src/hooks/useSessionManager.ts +101 -0
- package/src/hooks/useStreamingLifecycle.ts +71 -0
- package/src/hooks/useStreamingResponder.ts +401 -0
- package/src/hooks/useSuggestionSetup.ts +23 -0
- package/src/hooks/useToolApproval.test.ts +140 -0
- package/src/hooks/useToolApproval.ts +264 -0
- package/src/hooks/useToolScheduler.ts +432 -0
- package/src/index.ts +3 -0
- package/src/jsx.d.ts +11 -0
- package/src/lib/clipboard.ts +18 -0
- package/src/lib/logger.ts +107 -0
- package/src/lib/random.ts +5 -0
- package/src/main.tsx +13 -0
- package/src/test/mockTheme.ts +51 -0
- package/src/types/events.ts +87 -0
- package/src/types.ts +13 -0
- package/src/ui/components/ChatLayout.tsx +694 -0
- package/src/ui/components/CommandComponents.tsx +74 -0
- package/src/ui/components/DiffViewer.tsx +306 -0
- package/src/ui/components/FilterInput.test.ts +69 -0
- package/src/ui/components/FilterInput.tsx +62 -0
- package/src/ui/components/HeaderBar.tsx +137 -0
- package/src/ui/components/RadioSelect.test.ts +140 -0
- package/src/ui/components/RadioSelect.tsx +88 -0
- package/src/ui/components/SelectableList.test.ts +83 -0
- package/src/ui/components/SelectableList.tsx +35 -0
- package/src/ui/components/StatusBar.tsx +45 -0
- package/src/ui/components/SuggestionPanel.tsx +102 -0
- package/src/ui/components/messages/ModelMessage.tsx +14 -0
- package/src/ui/components/messages/SystemMessage.tsx +29 -0
- package/src/ui/components/messages/ThinkingMessage.tsx +14 -0
- package/src/ui/components/messages/UserMessage.tsx +26 -0
- package/src/ui/components/messages/index.ts +15 -0
- package/src/ui/components/messages/renderMessage.test.ts +49 -0
- package/src/ui/components/messages/renderMessage.tsx +43 -0
- package/src/ui/components/messages/types.test.ts +24 -0
- package/src/ui/components/messages/types.ts +36 -0
- package/src/ui/modals/AuthModal.tsx +106 -0
- package/src/ui/modals/ModalShell.tsx +60 -0
- package/src/ui/modals/SearchSelectModal.tsx +236 -0
- package/src/ui/modals/ThemeModal.tsx +204 -0
- package/src/ui/modals/ToolApprovalModal.test.ts +206 -0
- package/src/ui/modals/ToolApprovalModal.tsx +282 -0
- package/src/ui/modals/index.ts +20 -0
- package/src/ui/modals/modals.test.ts +26 -0
- package/src/ui/modals/types.ts +19 -0
- package/src/uicontext/Command.tsx +102 -0
- package/src/uicontext/Dialog.tsx +65 -0
- package/src/uicontext/index.ts +2 -0
- package/themes/ansi-light.json +59 -0
- package/themes/ansi.json +59 -0
- package/themes/atom-one-dark.json +59 -0
- package/themes/ayu-light.json +59 -0
- package/themes/ayu.json +59 -0
- package/themes/default-light.json +59 -0
- package/themes/default.json +59 -0
- package/themes/dracula.json +59 -0
- package/themes/github-dark.json +59 -0
- package/themes/github-light.json +59 -0
- package/themes/googlecode.json +59 -0
- package/themes/green-screen.json +59 -0
- package/themes/no-color.json +59 -0
- package/themes/shades-of-purple.json +59 -0
- package/themes/xcode.json +59 -0
- package/tsconfig.json +28 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
createContext,
|
|
4
|
+
useCallback,
|
|
5
|
+
useContext,
|
|
6
|
+
useMemo,
|
|
7
|
+
useState,
|
|
8
|
+
type ReactNode,
|
|
9
|
+
} from 'react';
|
|
10
|
+
import { useKeyboard } from '@vybestack/opentui-react';
|
|
11
|
+
|
|
12
|
+
interface DialogContextValue {
|
|
13
|
+
readonly replace: (element: ReactNode) => void;
|
|
14
|
+
readonly clear: () => void;
|
|
15
|
+
readonly isOpen: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const DialogContext = createContext<DialogContextValue | null>(null);
|
|
19
|
+
|
|
20
|
+
export function useDialog(): DialogContextValue {
|
|
21
|
+
const context = useContext(DialogContext);
|
|
22
|
+
if (context === null) {
|
|
23
|
+
throw new Error('useDialog must be used within Dialog');
|
|
24
|
+
}
|
|
25
|
+
return context;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
interface DialogProps {
|
|
29
|
+
readonly children: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function Dialog({ children }: DialogProps): React.ReactNode {
|
|
33
|
+
const [dialogStack, setDialogStack] = useState<ReactNode[]>([]);
|
|
34
|
+
|
|
35
|
+
const replace = useCallback((element: ReactNode) => {
|
|
36
|
+
setDialogStack([element]);
|
|
37
|
+
}, []);
|
|
38
|
+
|
|
39
|
+
const clear = useCallback(() => {
|
|
40
|
+
setDialogStack([]);
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
const isOpen = dialogStack.length > 0;
|
|
44
|
+
const currentDialog = dialogStack[0] ?? null;
|
|
45
|
+
|
|
46
|
+
useKeyboard((key) => {
|
|
47
|
+
if (key.eventType === 'press' && key.name === 'escape' && isOpen) {
|
|
48
|
+
clear();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const contextValue = useMemo(
|
|
53
|
+
() => ({ replace, clear, isOpen }),
|
|
54
|
+
[replace, clear, isOpen],
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<DialogContext.Provider value={contextValue}>
|
|
59
|
+
{children}
|
|
60
|
+
{currentDialog}
|
|
61
|
+
</DialogContext.Provider>
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export type { DialogContextValue };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ANSI Light",
|
|
3
|
+
"slug": "ansi-light",
|
|
4
|
+
"kind": "light",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "white",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "white",
|
|
9
|
+
"border": "gray",
|
|
10
|
+
"headerBg": "white",
|
|
11
|
+
"headerFg": "#444"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#444",
|
|
15
|
+
"muted": "gray",
|
|
16
|
+
"user": "blue",
|
|
17
|
+
"responder": "orange",
|
|
18
|
+
"thinking": "gray",
|
|
19
|
+
"tool": "green"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "white",
|
|
23
|
+
"fg": "#444",
|
|
24
|
+
"placeholder": "gray",
|
|
25
|
+
"border": "gray"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "green",
|
|
29
|
+
"muted": "gray"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "blue",
|
|
33
|
+
"secondary": "purple",
|
|
34
|
+
"warning": "orange",
|
|
35
|
+
"error": "red",
|
|
36
|
+
"success": "green"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#f8fafc",
|
|
40
|
+
"bg": "blue"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#E5F2E5",
|
|
44
|
+
"addedFg": "black",
|
|
45
|
+
"removedBg": "#FFE5E5",
|
|
46
|
+
"removedFg": "black"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "blue",
|
|
50
|
+
"track": "gray"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "blue",
|
|
54
|
+
"systemBorder": "orange",
|
|
55
|
+
"systemText": "orange",
|
|
56
|
+
"systemBg": "#f0f0f0"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
package/themes/ansi.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ANSI",
|
|
3
|
+
"slug": "ansi",
|
|
4
|
+
"kind": "dark",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "black",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "black",
|
|
9
|
+
"border": "gray",
|
|
10
|
+
"headerBg": "black",
|
|
11
|
+
"headerFg": "white"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "white",
|
|
15
|
+
"muted": "gray",
|
|
16
|
+
"user": "bluebright",
|
|
17
|
+
"responder": "yellow",
|
|
18
|
+
"thinking": "gray",
|
|
19
|
+
"tool": "green"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "black",
|
|
23
|
+
"fg": "white",
|
|
24
|
+
"placeholder": "gray",
|
|
25
|
+
"border": "gray"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "green",
|
|
29
|
+
"muted": "gray"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "blue",
|
|
33
|
+
"secondary": "magenta",
|
|
34
|
+
"warning": "yellow",
|
|
35
|
+
"error": "red",
|
|
36
|
+
"success": "green"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#0f172a",
|
|
40
|
+
"bg": "blue"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#003300",
|
|
44
|
+
"addedFg": "white",
|
|
45
|
+
"removedBg": "#4D0000",
|
|
46
|
+
"removedFg": "white"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "blue",
|
|
50
|
+
"track": "gray"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "bluebright",
|
|
54
|
+
"systemBorder": "yellow",
|
|
55
|
+
"systemText": "yellow",
|
|
56
|
+
"systemBg": "#1a1a1a"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Atom One",
|
|
3
|
+
"slug": "atom-one",
|
|
4
|
+
"kind": "dark",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#282c34",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#282c34",
|
|
9
|
+
"border": "#5c6370",
|
|
10
|
+
"headerBg": "#282c34",
|
|
11
|
+
"headerFg": "#abb2bf"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#abb2bf",
|
|
15
|
+
"muted": "#5c6370",
|
|
16
|
+
"user": "#61aeee",
|
|
17
|
+
"responder": "#e6c07b",
|
|
18
|
+
"thinking": "#5c6370",
|
|
19
|
+
"tool": "#98c379"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#282c34",
|
|
23
|
+
"fg": "#abb2bf",
|
|
24
|
+
"placeholder": "#5c6370",
|
|
25
|
+
"border": "#5c6370"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#98c379",
|
|
29
|
+
"muted": "#5c6370"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#61aeee",
|
|
33
|
+
"secondary": "#c678dd",
|
|
34
|
+
"warning": "#e6c07b",
|
|
35
|
+
"error": "#e06c75",
|
|
36
|
+
"success": "#98c379"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#0f172a",
|
|
40
|
+
"bg": "#61aeee"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#39544E",
|
|
44
|
+
"addedFg": "white",
|
|
45
|
+
"removedBg": "#562B2F",
|
|
46
|
+
"removedFg": "white"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#61aeee",
|
|
50
|
+
"track": "#5c6370"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#61aeee",
|
|
54
|
+
"systemBorder": "#e6c07b",
|
|
55
|
+
"systemText": "#e6c07b",
|
|
56
|
+
"systemBg": "#31363f"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Ayu Light",
|
|
3
|
+
"slug": "ayu-light",
|
|
4
|
+
"kind": "light",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#f8f9fa",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#f8f9fa",
|
|
9
|
+
"border": "#a6aaaf",
|
|
10
|
+
"headerBg": "#f8f9fa",
|
|
11
|
+
"headerFg": "#5c6166"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#5c6166",
|
|
15
|
+
"muted": "#ABADB1",
|
|
16
|
+
"user": "#55b4d4",
|
|
17
|
+
"responder": "#f2ae49",
|
|
18
|
+
"thinking": "#a6aaaf",
|
|
19
|
+
"tool": "#86b300"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#f8f9fa",
|
|
23
|
+
"fg": "#5c6166",
|
|
24
|
+
"placeholder": "#ABADB1",
|
|
25
|
+
"border": "#a6aaaf"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#86b300",
|
|
29
|
+
"muted": "#ABADB1"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#399ee6",
|
|
33
|
+
"secondary": "#a37acc",
|
|
34
|
+
"warning": "#f2ae49",
|
|
35
|
+
"error": "#f07171",
|
|
36
|
+
"success": "#86b300"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#f8fafc",
|
|
40
|
+
"bg": "#399ee6"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#C6EAD8",
|
|
44
|
+
"addedFg": "#5c6166",
|
|
45
|
+
"removedBg": "#FFCCCC",
|
|
46
|
+
"removedFg": "#5c6166"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#399ee6",
|
|
50
|
+
"track": "#a6aaaf"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#55b4d4",
|
|
54
|
+
"systemBorder": "#f2ae49",
|
|
55
|
+
"systemText": "#f2ae49",
|
|
56
|
+
"systemBg": "#f0f1f2"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
package/themes/ayu.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Ayu",
|
|
3
|
+
"slug": "ayu",
|
|
4
|
+
"kind": "dark",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#0b0e14",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#0b0e14",
|
|
9
|
+
"border": "#3D4149",
|
|
10
|
+
"headerBg": "#0b0e14",
|
|
11
|
+
"headerFg": "#bfbdb6"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#bfbdb6",
|
|
15
|
+
"muted": "#646A71",
|
|
16
|
+
"user": "#59C2FF",
|
|
17
|
+
"responder": "#FFB454",
|
|
18
|
+
"thinking": "#3D4149",
|
|
19
|
+
"tool": "#AAD94C"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#0b0e14",
|
|
23
|
+
"fg": "#bfbdb6",
|
|
24
|
+
"placeholder": "#646A71",
|
|
25
|
+
"border": "#3D4149"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#AAD94C",
|
|
29
|
+
"muted": "#646A71"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#39BAE6",
|
|
33
|
+
"secondary": "#D2A6FF",
|
|
34
|
+
"warning": "#FFB454",
|
|
35
|
+
"error": "#F26D78",
|
|
36
|
+
"success": "#AAD94C"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#0f172a",
|
|
40
|
+
"bg": "#39BAE6"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#293022",
|
|
44
|
+
"addedFg": "#bfbdb6",
|
|
45
|
+
"removedBg": "#3D1215",
|
|
46
|
+
"removedFg": "#bfbdb6"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#39BAE6",
|
|
50
|
+
"track": "#3D4149"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#59C2FF",
|
|
54
|
+
"systemBorder": "#FFB454",
|
|
55
|
+
"systemText": "#FFB454",
|
|
56
|
+
"systemBg": "#151922"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Default Light",
|
|
3
|
+
"slug": "default-light",
|
|
4
|
+
"kind": "light",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#FAFAFA",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#FAFAFA",
|
|
9
|
+
"border": "#97a0b0",
|
|
10
|
+
"headerBg": "#FAFAFA",
|
|
11
|
+
"headerFg": "#1f2937"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#1f2937",
|
|
15
|
+
"muted": "#008000",
|
|
16
|
+
"user": "#89BDCD",
|
|
17
|
+
"responder": "#D5A40A",
|
|
18
|
+
"thinking": "#97a0b0",
|
|
19
|
+
"tool": "#3CA84B"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#FAFAFA",
|
|
23
|
+
"fg": "#1f2937",
|
|
24
|
+
"placeholder": "#008000",
|
|
25
|
+
"border": "#97a0b0"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#3CA84B",
|
|
29
|
+
"muted": "#008000"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#3B82F6",
|
|
33
|
+
"secondary": "#8B5CF6",
|
|
34
|
+
"warning": "#D5A40A",
|
|
35
|
+
"error": "#DD4C4C",
|
|
36
|
+
"success": "#3CA84B"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#f8fafc",
|
|
40
|
+
"bg": "#3B82F6"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#C6EAD8",
|
|
44
|
+
"addedFg": "#1f2937",
|
|
45
|
+
"removedBg": "#FFCCCC",
|
|
46
|
+
"removedFg": "#1f2937"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#3B82F6",
|
|
50
|
+
"track": "#97a0b0"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#89BDCD",
|
|
54
|
+
"systemBorder": "#D5A40A",
|
|
55
|
+
"systemText": "#D5A40A",
|
|
56
|
+
"systemBg": "#f2f2f2"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Default",
|
|
3
|
+
"slug": "default",
|
|
4
|
+
"kind": "dark",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#1E1E2E",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#1E1E2E",
|
|
9
|
+
"border": "#6C7086",
|
|
10
|
+
"headerBg": "#1E1E2E",
|
|
11
|
+
"headerFg": "#e5e7eb"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#e5e7eb",
|
|
15
|
+
"muted": "#6C7086",
|
|
16
|
+
"user": "#ADD8E6",
|
|
17
|
+
"responder": "#F9E2AF",
|
|
18
|
+
"thinking": "#6C7086",
|
|
19
|
+
"tool": "#A6E3A1"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#1E1E2E",
|
|
23
|
+
"fg": "#e5e7eb",
|
|
24
|
+
"placeholder": "#6C7086",
|
|
25
|
+
"border": "#6C7086"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#A6E3A1",
|
|
29
|
+
"muted": "#6C7086"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#89B4FA",
|
|
33
|
+
"secondary": "#CBA6F7",
|
|
34
|
+
"warning": "#F9E2AF",
|
|
35
|
+
"error": "#F38BA8",
|
|
36
|
+
"success": "#A6E3A1"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#0f172a",
|
|
40
|
+
"bg": "#89B4FA"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#28350B",
|
|
44
|
+
"addedFg": "#e5e7eb",
|
|
45
|
+
"removedBg": "#430000",
|
|
46
|
+
"removedFg": "#e5e7eb"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#89B4FA",
|
|
50
|
+
"track": "#6C7086"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#ADD8E6",
|
|
54
|
+
"systemBorder": "#F9E2AF",
|
|
55
|
+
"systemText": "#F9E2AF",
|
|
56
|
+
"systemBg": "#2a2a3a"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Dracula",
|
|
3
|
+
"slug": "dracula",
|
|
4
|
+
"kind": "dark",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#282a36",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#282a36",
|
|
9
|
+
"border": "#6272a4",
|
|
10
|
+
"headerBg": "#282a36",
|
|
11
|
+
"headerFg": "#f8f8f2"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#f8f8f2",
|
|
15
|
+
"muted": "#6272a4",
|
|
16
|
+
"user": "#8be9fd",
|
|
17
|
+
"responder": "#f1fa8c",
|
|
18
|
+
"thinking": "#6272a4",
|
|
19
|
+
"tool": "#50fa7b"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#282a36",
|
|
23
|
+
"fg": "#f8f8f2",
|
|
24
|
+
"placeholder": "#6272a4",
|
|
25
|
+
"border": "#6272a4"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#50fa7b",
|
|
29
|
+
"muted": "#6272a4"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#8be9fd",
|
|
33
|
+
"secondary": "#ff79c6",
|
|
34
|
+
"warning": "#f1fa8c",
|
|
35
|
+
"error": "#ff5555",
|
|
36
|
+
"success": "#50fa7b"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#0f172a",
|
|
40
|
+
"bg": "#8be9fd"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#11431d",
|
|
44
|
+
"addedFg": "white",
|
|
45
|
+
"removedBg": "#6e1818",
|
|
46
|
+
"removedFg": "white"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#8be9fd",
|
|
50
|
+
"track": "#6272a4"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#8be9fd",
|
|
54
|
+
"systemBorder": "#f1fa8c",
|
|
55
|
+
"systemText": "#f1fa8c",
|
|
56
|
+
"systemBg": "#343746"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "GitHub",
|
|
3
|
+
"slug": "github",
|
|
4
|
+
"kind": "dark",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#24292e",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#24292e",
|
|
9
|
+
"border": "#6A737D",
|
|
10
|
+
"headerBg": "#24292e",
|
|
11
|
+
"headerFg": "#d1d5da"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#d1d5da",
|
|
15
|
+
"muted": "#6A737D",
|
|
16
|
+
"user": "#79B8FF",
|
|
17
|
+
"responder": "#FFAB70",
|
|
18
|
+
"thinking": "#6A737D",
|
|
19
|
+
"tool": "#85E89D"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#24292e",
|
|
23
|
+
"fg": "#d1d5da",
|
|
24
|
+
"placeholder": "#6A737D",
|
|
25
|
+
"border": "#6A737D"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#85E89D",
|
|
29
|
+
"muted": "#6A737D"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#79B8FF",
|
|
33
|
+
"secondary": "#B392F0",
|
|
34
|
+
"warning": "#FFAB70",
|
|
35
|
+
"error": "#F97583",
|
|
36
|
+
"success": "#85E89D"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#0f172a",
|
|
40
|
+
"bg": "#79B8FF"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#3C4636",
|
|
44
|
+
"addedFg": "#d1d5da",
|
|
45
|
+
"removedBg": "#502125",
|
|
46
|
+
"removedFg": "#d1d5da"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#79B8FF",
|
|
50
|
+
"track": "#6A737D"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#79B8FF",
|
|
54
|
+
"systemBorder": "#FFAB70",
|
|
55
|
+
"systemText": "#FFAB70",
|
|
56
|
+
"systemBg": "#2d3339"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "GitHub Light",
|
|
3
|
+
"slug": "github-light",
|
|
4
|
+
"kind": "light",
|
|
5
|
+
"colors": {
|
|
6
|
+
"background": "#f8f8f8",
|
|
7
|
+
"panel": {
|
|
8
|
+
"bg": "#f8f8f8",
|
|
9
|
+
"border": "#999",
|
|
10
|
+
"headerBg": "#f8f8f8",
|
|
11
|
+
"headerFg": "#24292E"
|
|
12
|
+
},
|
|
13
|
+
"text": {
|
|
14
|
+
"primary": "#24292E",
|
|
15
|
+
"muted": "#998",
|
|
16
|
+
"user": "#0086b3",
|
|
17
|
+
"responder": "#990073",
|
|
18
|
+
"thinking": "#999",
|
|
19
|
+
"tool": "#008080"
|
|
20
|
+
},
|
|
21
|
+
"input": {
|
|
22
|
+
"bg": "#f8f8f8",
|
|
23
|
+
"fg": "#24292E",
|
|
24
|
+
"placeholder": "#998",
|
|
25
|
+
"border": "#999"
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"fg": "#008080",
|
|
29
|
+
"muted": "#998"
|
|
30
|
+
},
|
|
31
|
+
"accent": {
|
|
32
|
+
"primary": "#458",
|
|
33
|
+
"secondary": "#900",
|
|
34
|
+
"warning": "#990073",
|
|
35
|
+
"error": "#d14",
|
|
36
|
+
"success": "#008080"
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"fg": "#f8fafc",
|
|
40
|
+
"bg": "#458"
|
|
41
|
+
},
|
|
42
|
+
"diff": {
|
|
43
|
+
"addedBg": "#C6EAD8",
|
|
44
|
+
"addedFg": "#24292E",
|
|
45
|
+
"removedBg": "#FFCCCC",
|
|
46
|
+
"removedFg": "#24292E"
|
|
47
|
+
},
|
|
48
|
+
"scrollbar": {
|
|
49
|
+
"thumb": "#458",
|
|
50
|
+
"track": "#999"
|
|
51
|
+
},
|
|
52
|
+
"message": {
|
|
53
|
+
"userBorder": "#0086b3",
|
|
54
|
+
"systemBorder": "#990073",
|
|
55
|
+
"systemText": "#990073",
|
|
56
|
+
"systemBg": "#f0f0f0"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|