@vybestack/llxprt-code 0.1.18 → 0.1.19-beta
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 +1 -0
- package/dist/package.json +6 -4
- package/dist/src/acp/acpPeer.js +72 -64
- package/dist/src/acp/acpPeer.js.map +1 -1
- package/dist/src/commands/mcp/add.d.ts +7 -0
- package/dist/src/commands/mcp/add.js +155 -0
- package/dist/src/commands/mcp/add.js.map +1 -0
- package/dist/src/commands/mcp/list.d.ts +8 -0
- package/dist/src/commands/mcp/list.js +110 -0
- package/dist/src/commands/mcp/list.js.map +1 -0
- package/dist/src/commands/mcp/remove.d.ts +7 -0
- package/dist/src/commands/mcp/remove.js +44 -0
- package/dist/src/commands/mcp/remove.js.map +1 -0
- package/dist/src/commands/mcp.d.ts +7 -0
- package/dist/src/commands/mcp.js +23 -0
- package/dist/src/commands/mcp.js.map +1 -0
- package/dist/src/config/auth.js +5 -0
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.js +80 -37
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +64 -0
- package/dist/src/config/keyBindings.js +137 -0
- package/dist/src/config/keyBindings.js.map +1 -0
- package/dist/src/config/settings.d.ts +7 -1
- package/dist/src/config/settings.js +20 -4
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.js +12 -109
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/nonInteractiveCli.js +0 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/logging/git-stats-service-impl.d.ts +19 -0
- package/dist/src/providers/logging/git-stats-service-impl.js +25 -0
- package/dist/src/providers/logging/git-stats-service-impl.js.map +1 -0
- package/dist/src/providers/logging/git-stats.d.ts +43 -0
- package/dist/src/providers/logging/git-stats.js +137 -0
- package/dist/src/providers/logging/git-stats.js.map +1 -0
- package/dist/src/providers/providerManagerInstance.js +7 -0
- package/dist/src/providers/providerManagerInstance.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +2 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/todo-continuation/todoContinuationService.d.ts +172 -0
- package/dist/src/services/todo-continuation/todoContinuationService.js +387 -0
- package/dist/src/services/todo-continuation/todoContinuationService.js.map +1 -0
- package/dist/src/services/todo-continuation/todoContinuationService.spec.d.ts +6 -0
- package/dist/src/services/todo-continuation/todoContinuationService.spec.js +385 -0
- package/dist/src/services/todo-continuation/todoContinuationService.spec.js.map +1 -0
- package/dist/src/ui/App.js +111 -35
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.d.ts +14 -0
- package/dist/src/ui/IdeIntegrationNudge.js +32 -0
- package/dist/src/ui/IdeIntegrationNudge.js.map +1 -0
- package/dist/src/ui/colors.d.ts +5 -0
- package/dist/src/ui/colors.js +51 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +16 -0
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/diagnosticsCommand.js +9 -1
- package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +67 -31
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/loggingCommand.d.ts +15 -0
- package/dist/src/ui/commands/loggingCommand.js +421 -0
- package/dist/src/ui/commands/loggingCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/privacyCommand.d.ts +3 -0
- package/dist/src/ui/commands/privacyCommand.js +6 -3
- package/dist/src/ui/commands/privacyCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.js +1 -0
- package/dist/src/ui/commands/profileCommand.js.map +1 -1
- package/dist/src/ui/commands/setCommand.js +2 -0
- package/dist/src/ui/commands/setCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.js +90 -26
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +14 -2
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AuthInProgress.js +3 -3
- package/dist/src/ui/components/AuthInProgress.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.d.ts +10 -0
- package/dist/src/ui/components/ContextUsageDisplay.js +27 -0
- package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -0
- package/dist/src/ui/components/FolderTrustDialog.d.ts +16 -0
- package/dist/src/ui/components/FolderTrustDialog.js +38 -0
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -0
- package/dist/src/ui/components/Footer.d.ts +0 -1
- package/dist/src/ui/components/Footer.js +132 -15
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +32 -28
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoggingDialog.d.ts +37 -0
- package/dist/src/ui/components/LoggingDialog.js +155 -0
- package/dist/src/ui/components/LoggingDialog.js.map +1 -0
- package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
- package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/ProviderDialog.js +100 -26
- package/dist/src/ui/components/ProviderDialog.js.map +1 -1
- package/dist/src/ui/components/ProviderModelDialog.js +99 -27
- package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
- package/dist/src/ui/components/TodoPanel.d.ts +11 -0
- package/dist/src/ui/components/TodoPanel.js +206 -0
- package/dist/src/ui/components/TodoPanel.js.map +1 -0
- package/dist/src/ui/components/ToolsDialog.d.ts +2 -2
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +116 -16
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +36 -8
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/todo-utils.d.ts +16 -0
- package/dist/src/ui/components/todo-utils.js +41 -0
- package/dist/src/ui/components/todo-utils.js.map +1 -0
- package/dist/src/ui/contexts/SettingsContext.d.ts +9 -0
- package/dist/src/ui/contexts/SettingsContext.js +15 -0
- package/dist/src/ui/contexts/SettingsContext.js.map +1 -0
- package/dist/src/ui/contexts/TodoContext.d.ts +15 -0
- package/dist/src/ui/contexts/TodoContext.js +18 -0
- package/dist/src/ui/contexts/TodoContext.js.map +1 -0
- package/dist/src/ui/contexts/TodoProvider.d.ts +7 -0
- package/dist/src/ui/contexts/TodoProvider.js +62 -0
- package/dist/src/ui/contexts/TodoProvider.js.map +1 -0
- package/dist/src/ui/contexts/ToolCallContext.d.ts +19 -0
- package/dist/src/ui/contexts/ToolCallContext.js +13 -0
- package/dist/src/ui/contexts/ToolCallContext.js.map +1 -0
- package/dist/src/ui/contexts/ToolCallProvider.d.ts +12 -0
- package/dist/src/ui/contexts/ToolCallProvider.js +62 -0
- package/dist/src/ui/contexts/ToolCallProvider.js.map +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.js +28 -4
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +5 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +137 -112
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.d.ts +23 -0
- package/dist/src/ui/hooks/useAtCompletion.js +180 -0
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -0
- package/dist/src/ui/hooks/useConsoleMessages.js +7 -0
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.d.ts +11 -0
- package/dist/src/ui/hooks/useFolderTrust.js +22 -0
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +16 -4
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +12 -12
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useResponsive.d.ts +14 -0
- package/dist/src/ui/hooks/useResponsive.js +19 -0
- package/dist/src/ui/hooks/useResponsive.js.map +1 -0
- package/dist/src/ui/hooks/useTodoContinuation.d.ts +31 -0
- package/dist/src/ui/hooks/useTodoContinuation.js +148 -0
- package/dist/src/ui/hooks/useTodoContinuation.js.map +1 -0
- package/dist/src/ui/hooks/useTodoContinuation.spec.d.ts +6 -0
- package/dist/src/ui/hooks/useTodoContinuation.spec.js +378 -0
- package/dist/src/ui/hooks/useTodoContinuation.spec.js.map +1 -0
- package/dist/src/ui/hooks/useToolsDialog.d.ts +2 -2
- package/dist/src/ui/hooks/useToolsDialog.js.map +1 -1
- package/dist/src/ui/keyMatchers.d.ts +26 -0
- package/dist/src/ui/keyMatchers.js +68 -0
- package/dist/src/ui/keyMatchers.js.map +1 -0
- package/dist/src/ui/privacy/PrivacyNotice.js +10 -4
- package/dist/src/ui/privacy/PrivacyNotice.js.map +1 -1
- package/dist/src/ui/themes/semantic-resolver.d.ts +12 -0
- package/dist/src/ui/themes/semantic-resolver.js +32 -0
- package/dist/src/ui/themes/semantic-resolver.js.map +1 -0
- package/dist/src/ui/themes/semantic-tokens.d.ts +52 -0
- package/dist/src/ui/themes/semantic-tokens.js +7 -0
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -0
- package/dist/src/ui/themes/theme-compat.d.ts +34 -0
- package/dist/src/ui/themes/theme-compat.js +65 -0
- package/dist/src/ui/themes/theme-compat.js.map +1 -0
- package/dist/src/ui/themes/theme-manager.d.ts +8 -0
- package/dist/src/ui/themes/theme-manager.js +18 -0
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/types.d.ts +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +2 -1
- package/dist/src/ui/utils/CodeColorizer.js +4 -3
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -0
- package/dist/src/ui/utils/ConsolePatcher.js +3 -0
- package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +4 -2
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.d.ts +1 -0
- package/dist/src/ui/utils/commandUtils.js +22 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/responsive.d.ts +16 -0
- package/dist/src/ui/utils/responsive.js +111 -0
- package/dist/src/ui/utils/responsive.js.map +1 -0
- package/dist/src/utils/cleanup.d.ts +2 -2
- package/dist/src/utils/cleanup.js +2 -2
- package/dist/src/utils/cleanup.js.map +1 -1
- package/dist/src/utils/gitUtils.d.ts +21 -1
- package/dist/src/utils/gitUtils.js +70 -3
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/privacy/ConversationDataRedactor.d.ts +75 -0
- package/dist/src/utils/privacy/ConversationDataRedactor.js +412 -0
- package/dist/src/utils/privacy/ConversationDataRedactor.js.map +1 -0
- package/dist/src/utils/privacy/PrivacyManager.d.ts +58 -0
- package/dist/src/utils/privacy/PrivacyManager.js +133 -0
- package/dist/src/utils/privacy/PrivacyManager.js.map +1 -0
- package/dist/src/utils/sandbox.js +430 -401
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -4
- package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +0 -12
- package/dist/src/ui/components/IDEContextDetailDisplay.js +0 -17
- package/dist/src/ui/components/IDEContextDetailDisplay.js.map +0 -1
@@ -0,0 +1,68 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Google LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
import { Command, defaultKeyBindings, } from '../config/keyBindings.js';
|
7
|
+
/**
|
8
|
+
* Matches a KeyBinding against an actual Key press
|
9
|
+
* Pure data-driven matching logic
|
10
|
+
*/
|
11
|
+
function matchKeyBinding(keyBinding, key) {
|
12
|
+
// Either key name or sequence must match (but not both should be defined)
|
13
|
+
let keyMatches = false;
|
14
|
+
if (keyBinding.key !== undefined) {
|
15
|
+
keyMatches = keyBinding.key === key.name;
|
16
|
+
}
|
17
|
+
else if (keyBinding.sequence !== undefined) {
|
18
|
+
keyMatches = keyBinding.sequence === key.sequence;
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
// Neither key nor sequence defined - invalid binding
|
22
|
+
return false;
|
23
|
+
}
|
24
|
+
if (!keyMatches) {
|
25
|
+
return false;
|
26
|
+
}
|
27
|
+
// Check modifiers - follow original logic:
|
28
|
+
// undefined = ignore this modifier (original behavior)
|
29
|
+
// true = modifier must be pressed
|
30
|
+
// false = modifier must NOT be pressed
|
31
|
+
if (keyBinding.ctrl !== undefined && key.ctrl !== keyBinding.ctrl) {
|
32
|
+
return false;
|
33
|
+
}
|
34
|
+
if (keyBinding.shift !== undefined && key.shift !== keyBinding.shift) {
|
35
|
+
return false;
|
36
|
+
}
|
37
|
+
if (keyBinding.command !== undefined && key.meta !== keyBinding.command) {
|
38
|
+
return false;
|
39
|
+
}
|
40
|
+
if (keyBinding.paste !== undefined && key.paste !== keyBinding.paste) {
|
41
|
+
return false;
|
42
|
+
}
|
43
|
+
return true;
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Checks if a key matches any of the bindings for a command
|
47
|
+
*/
|
48
|
+
function matchCommand(command, key, config = defaultKeyBindings) {
|
49
|
+
const bindings = config[command];
|
50
|
+
return bindings.some((binding) => matchKeyBinding(binding, key));
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Creates key matchers from a key binding configuration
|
54
|
+
*/
|
55
|
+
export function createKeyMatchers(config = defaultKeyBindings) {
|
56
|
+
const matchers = {};
|
57
|
+
for (const command of Object.values(Command)) {
|
58
|
+
matchers[command] = (key) => matchCommand(command, key, config);
|
59
|
+
}
|
60
|
+
return matchers;
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Default key binding matchers using the default configuration
|
64
|
+
*/
|
65
|
+
export const keyMatchers = createKeyMatchers(defaultKeyBindings);
|
66
|
+
// Re-export Command for convenience
|
67
|
+
export { Command };
|
68
|
+
//# sourceMappingURL=keyMatchers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"keyMatchers.js","sourceRoot":"","sources":["../../../src/ui/keyMatchers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,OAAO,EAGP,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,SAAS,eAAe,CAAC,UAAsB,EAAE,GAAQ;IACvD,0EAA0E;IAC1E,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACjC,UAAU,GAAG,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;IAC3C,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7C,UAAU,GAAG,UAAU,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2CAA2C;IAC3C,uDAAuD;IACvD,kCAAkC;IAClC,uCAAuC;IAEvC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,OAAgB,EAChB,GAAQ,EACR,SAA2B,kBAAkB;IAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAcD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA2B,kBAAkB;IAE7C,MAAM,QAAQ,GAAG,EAAoC,CAAC;IAEtD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAE9E,oCAAoC;AACpC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
@@ -17,13 +17,19 @@ const NonGeminiProviderNotice = ({ providerName, onExit, }) => {
|
|
17
17
|
};
|
18
18
|
const PrivacyNoticeText = ({ config, onExit, }) => {
|
19
19
|
const authType = config.getContentGeneratorConfig()?.authType;
|
20
|
-
// Check if we're using a non-Gemini provider
|
20
|
+
// Check if we're using a non-Gemini provider or llxprt multi-provider
|
21
21
|
const providerManager = config.getProviderManager?.();
|
22
22
|
const activeProvider = providerManager?.getActiveProvider?.();
|
23
23
|
const isNonGeminiProvider = activeProvider && activeProvider.name !== 'gemini';
|
24
|
-
//
|
25
|
-
|
26
|
-
|
24
|
+
// For llxprt multi-provider or when content generator is not initialized,
|
25
|
+
// show the basic Gemini privacy notice
|
26
|
+
if (!authType || authType === AuthType.USE_PROVIDER || isNonGeminiProvider) {
|
27
|
+
// If we have a specific non-Gemini provider, show its notice
|
28
|
+
if (isNonGeminiProvider) {
|
29
|
+
return (_jsx(NonGeminiProviderNotice, { providerName: activeProvider.name, onExit: onExit }));
|
30
|
+
}
|
31
|
+
// Otherwise show basic Gemini API terms
|
32
|
+
return _jsx(GeminiPrivacyNotice, { onExit: onExit });
|
27
33
|
}
|
28
34
|
switch (authType) {
|
29
35
|
case AuthType.USE_GEMINI:
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PrivacyNotice.js","sourceRoot":"","sources":["../../../../src/ui/privacy/PrivacyNotice.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAe,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAOrE,MAAM,uBAAuB,GAAG,CAAC,EAC/B,YAAY,EACZ,MAAM,GAIP,EAAE,EAAE;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aACpC,MAAC,IAAI,yBAAQ,YAAY,kBAAkB,EAC3C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,2CAAkC,IAChD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EACzB,MAAM,EACN,MAAM,GAIP,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,CAAC;IAE9D,
|
1
|
+
{"version":3,"file":"PrivacyNotice.js","sourceRoot":"","sources":["../../../../src/ui/privacy/PrivacyNotice.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAe,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAOrE,MAAM,uBAAuB,GAAG,CAAC,EAC/B,YAAY,EACZ,MAAM,GAIP,EAAE,EAAE;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aACpC,MAAC,IAAI,yBAAQ,YAAY,kBAAkB,EAC3C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,2CAAkC,IAChD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EACzB,MAAM,EACN,MAAM,GAIP,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,CAAC;IAE9D,sEAAsE;IACtE,MAAM,eAAe,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,eAAe,EAAE,iBAAiB,EAAE,EAAE,CAAC;IAC9D,MAAM,mBAAmB,GACvB,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,CAAC;IAErD,0EAA0E;IAC1E,uCAAuC;IACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,YAAY,IAAI,mBAAmB,EAAE,CAAC;QAC3E,6DAA6D;QAC7D,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CACL,KAAC,uBAAuB,IACtB,YAAY,EAAE,cAAc,CAAC,IAAI,EACjC,MAAM,EAAE,MAAM,GACd,CACH,CAAC;QACJ,CAAC;QACD,wCAAwC;QACxC,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;IACjD,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;QACjD,KAAK,QAAQ,CAAC,aAAa;YACzB,OAAO,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;QACpD,KAAK,QAAQ,CAAC,iBAAiB,CAAC;QAChC;YACE,OAAO,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IACtE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAsB,EAAE,EAAE,CAAC,CACvE,KAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACzD,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,GACjD,CACP,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Google LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
import { ColorsTheme } from './theme.js';
|
7
|
+
import { SemanticColors } from './semantic-tokens.js';
|
8
|
+
/**
|
9
|
+
* Resolves a theme's colors to semantic color tokens.
|
10
|
+
* Maps theme-specific colors to meaningful semantic purposes.
|
11
|
+
*/
|
12
|
+
export declare function resolveSemanticColors(theme: ColorsTheme): SemanticColors;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Google LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
/**
|
7
|
+
* Resolves a theme's colors to semantic color tokens.
|
8
|
+
* Maps theme-specific colors to meaningful semantic purposes.
|
9
|
+
*/
|
10
|
+
export function resolveSemanticColors(theme) {
|
11
|
+
return {
|
12
|
+
text: {
|
13
|
+
primary: theme.Foreground,
|
14
|
+
secondary: theme.Gray,
|
15
|
+
accent: theme.AccentBlue,
|
16
|
+
},
|
17
|
+
status: {
|
18
|
+
success: theme.AccentGreen,
|
19
|
+
warning: theme.AccentYellow,
|
20
|
+
error: theme.AccentRed,
|
21
|
+
},
|
22
|
+
background: {
|
23
|
+
primary: theme.Background,
|
24
|
+
secondary: theme.DiffAdded ?? theme.AccentGreen,
|
25
|
+
},
|
26
|
+
border: {
|
27
|
+
default: theme.Gray,
|
28
|
+
focused: theme.AccentBlue,
|
29
|
+
},
|
30
|
+
};
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=semantic-resolver.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"semantic-resolver.js","sourceRoot":"","sources":["../../../../src/ui/themes/semantic-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAkB;IACtD,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,MAAM,EAAE,KAAK,CAAC,UAAU;SACzB;QACD,MAAM,EAAE;YACN,OAAO,EAAE,KAAK,CAAC,WAAW;YAC1B,OAAO,EAAE,KAAK,CAAC,YAAY;YAC3B,KAAK,EAAE,KAAK,CAAC,SAAS;SACvB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW;SAChD;QACD,MAAM,EAAE;YACN,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,OAAO,EAAE,KAAK,CAAC,UAAU;SAC1B;KACF,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Google LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
/**
|
7
|
+
* Semantic color tokens that provide meaningful color abstractions
|
8
|
+
* for different UI purposes. These tokens map to actual colors
|
9
|
+
* based on the active theme.
|
10
|
+
*/
|
11
|
+
export interface SemanticColors {
|
12
|
+
/**
|
13
|
+
* Colors for text content at different hierarchy levels
|
14
|
+
*/
|
15
|
+
text: {
|
16
|
+
/** Primary text color for main content */
|
17
|
+
primary: string;
|
18
|
+
/** Secondary text color for less important content */
|
19
|
+
secondary: string;
|
20
|
+
/** Accent text color for highlighted or interactive content */
|
21
|
+
accent: string;
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* Colors for status indicators and feedback
|
25
|
+
*/
|
26
|
+
status: {
|
27
|
+
/** Color for successful states and positive feedback */
|
28
|
+
success: string;
|
29
|
+
/** Color for warning states and cautionary messages */
|
30
|
+
warning: string;
|
31
|
+
/** Color for error states and critical issues */
|
32
|
+
error: string;
|
33
|
+
};
|
34
|
+
/**
|
35
|
+
* Colors for background surfaces
|
36
|
+
*/
|
37
|
+
background: {
|
38
|
+
/** Primary background color for main surfaces */
|
39
|
+
primary: string;
|
40
|
+
/** Secondary background color for secondary surfaces */
|
41
|
+
secondary: string;
|
42
|
+
};
|
43
|
+
/**
|
44
|
+
* Colors for borders and dividers
|
45
|
+
*/
|
46
|
+
border: {
|
47
|
+
/** Default border color for general use */
|
48
|
+
default: string;
|
49
|
+
/** Border color for focused or active elements */
|
50
|
+
focused: string;
|
51
|
+
};
|
52
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"semantic-tokens.js","sourceRoot":"","sources":["../../../../src/ui/themes/semantic-tokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Google LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
/**
|
7
|
+
* Backward compatibility layer for existing Colors API
|
8
|
+
*
|
9
|
+
* This module re-exports the existing Colors API to maintain
|
10
|
+
* backward compatibility while the codebase transitions to
|
11
|
+
* semantic colors.
|
12
|
+
*/
|
13
|
+
export { Colors, ansi } from '../colors.js';
|
14
|
+
export { themeManager } from './theme-manager.js';
|
15
|
+
export { SemanticColors } from './semantic-tokens.js';
|
16
|
+
export { resolveSemanticColors } from './semantic-resolver.js';
|
17
|
+
/**
|
18
|
+
* Helper function to migrate from Colors to semantic colors
|
19
|
+
* This can be used during the transition period to understand
|
20
|
+
* how existing color usage maps to semantic tokens.
|
21
|
+
*/
|
22
|
+
export interface ColorMigrationMapping {
|
23
|
+
/** Maps Colors.* properties to semantic color paths */
|
24
|
+
readonly colorToSemanticMapping: Record<string, string>;
|
25
|
+
/** Maps semantic color paths to their current values */
|
26
|
+
readonly semanticToValueMapping: Record<string, string>;
|
27
|
+
}
|
28
|
+
/**
|
29
|
+
* Gets a mapping between the existing Colors API and semantic colors
|
30
|
+
* for the currently active theme. This is useful for migration analysis.
|
31
|
+
*
|
32
|
+
* @returns Migration mapping information
|
33
|
+
*/
|
34
|
+
export declare function getColorMigrationMapping(): ColorMigrationMapping;
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Google LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
/**
|
7
|
+
* Backward compatibility layer for existing Colors API
|
8
|
+
*
|
9
|
+
* This module re-exports the existing Colors API to maintain
|
10
|
+
* backward compatibility while the codebase transitions to
|
11
|
+
* semantic colors.
|
12
|
+
*/
|
13
|
+
// Re-export existing Colors API for backward compatibility
|
14
|
+
export { Colors, ansi } from '../colors.js';
|
15
|
+
// Export theme manager for direct access
|
16
|
+
export { themeManager } from './theme-manager.js';
|
17
|
+
export { resolveSemanticColors } from './semantic-resolver.js';
|
18
|
+
// Import for internal use
|
19
|
+
import { themeManager } from './theme-manager.js';
|
20
|
+
// Import Colors for dynamic access to current theme colors
|
21
|
+
import { Colors } from '../colors.js';
|
22
|
+
/**
|
23
|
+
* Gets a mapping between the existing Colors API and semantic colors
|
24
|
+
* for the currently active theme. This is useful for migration analysis.
|
25
|
+
*
|
26
|
+
* @returns Migration mapping information
|
27
|
+
*/
|
28
|
+
export function getColorMigrationMapping() {
|
29
|
+
const semanticColors = themeManager.getSemanticColors();
|
30
|
+
const colorToSemanticMapping = {
|
31
|
+
'Colors.Foreground': 'text.primary',
|
32
|
+
'Colors.Gray': 'text.secondary',
|
33
|
+
'Colors.AccentBlue': 'text.accent',
|
34
|
+
'Colors.AccentGreen': 'status.success',
|
35
|
+
'Colors.AccentYellow': 'status.warning',
|
36
|
+
'Colors.AccentRed': 'status.error',
|
37
|
+
'Colors.Background': 'background.primary',
|
38
|
+
'Colors.DiffAdded': 'background.secondary',
|
39
|
+
};
|
40
|
+
const semanticToValueMapping = {
|
41
|
+
'text.primary': semanticColors.text.primary,
|
42
|
+
'text.secondary': semanticColors.text.secondary,
|
43
|
+
'text.accent': semanticColors.text.accent,
|
44
|
+
'status.success': semanticColors.status.success,
|
45
|
+
'status.warning': semanticColors.status.warning,
|
46
|
+
'status.error': semanticColors.status.error,
|
47
|
+
'background.primary': semanticColors.background.primary,
|
48
|
+
'background.secondary': semanticColors.background.secondary,
|
49
|
+
'border.default': semanticColors.border.default,
|
50
|
+
'border.focused': semanticColors.border.focused,
|
51
|
+
// Also include current Colors API values for comparison
|
52
|
+
'Colors.Foreground': Colors.Foreground,
|
53
|
+
'Colors.Background': Colors.Background,
|
54
|
+
'Colors.AccentBlue': Colors.AccentBlue,
|
55
|
+
'Colors.AccentGreen': Colors.AccentGreen,
|
56
|
+
'Colors.AccentYellow': Colors.AccentYellow,
|
57
|
+
'Colors.AccentRed': Colors.AccentRed,
|
58
|
+
'Colors.Gray': Colors.Gray,
|
59
|
+
};
|
60
|
+
return {
|
61
|
+
colorToSemanticMapping,
|
62
|
+
semanticToValueMapping,
|
63
|
+
};
|
64
|
+
}
|
65
|
+
//# sourceMappingURL=theme-compat.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"theme-compat.js","sourceRoot":"","sources":["../../../../src/ui/themes/theme-compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AAEH,2DAA2D;AAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE5C,yCAAyC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,2DAA2D;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAetC;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAExD,MAAM,sBAAsB,GAAG;QAC7B,mBAAmB,EAAE,cAAc;QACnC,aAAa,EAAE,gBAAgB;QAC/B,mBAAmB,EAAE,aAAa;QAClC,oBAAoB,EAAE,gBAAgB;QACtC,qBAAqB,EAAE,gBAAgB;QACvC,kBAAkB,EAAE,cAAc;QAClC,mBAAmB,EAAE,oBAAoB;QACzC,kBAAkB,EAAE,sBAAsB;KAClC,CAAC;IAEX,MAAM,sBAAsB,GAAG;QAC7B,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO;QAC3C,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS;QAC/C,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM;QACzC,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO;QAC/C,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO;QAC/C,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK;QAC3C,oBAAoB,EAAE,cAAc,CAAC,UAAU,CAAC,OAAO;QACvD,sBAAsB,EAAE,cAAc,CAAC,UAAU,CAAC,SAAS;QAC3D,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO;QAC/C,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO;QAC/C,wDAAwD;QACxD,mBAAmB,EAAE,MAAM,CAAC,UAAU;QACtC,mBAAmB,EAAE,MAAM,CAAC,UAAU;QACtC,mBAAmB,EAAE,MAAM,CAAC,UAAU;QACtC,oBAAoB,EAAE,MAAM,CAAC,WAAW;QACxC,qBAAqB,EAAE,MAAM,CAAC,YAAY;QAC1C,kBAAkB,EAAE,MAAM,CAAC,SAAS;QACpC,aAAa,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;IAEX,OAAO;QACL,sBAAsB;QACtB,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
|
@@ -4,6 +4,7 @@
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
6
|
import { Theme, ThemeType, CustomTheme } from './theme.js';
|
7
|
+
import { SemanticColors } from './semantic-tokens.js';
|
7
8
|
export interface ThemeDisplay {
|
8
9
|
name: string;
|
9
10
|
type: ThemeType;
|
@@ -14,6 +15,7 @@ declare class ThemeManager {
|
|
14
15
|
private readonly availableThemes;
|
15
16
|
private activeTheme;
|
16
17
|
private customThemes;
|
18
|
+
private semanticColorsCache;
|
17
19
|
constructor();
|
18
20
|
/**
|
19
21
|
* Loads custom themes from settings.
|
@@ -31,6 +33,12 @@ declare class ThemeManager {
|
|
31
33
|
* @returns The active theme.
|
32
34
|
*/
|
33
35
|
getActiveTheme(): Theme;
|
36
|
+
/**
|
37
|
+
* Gets semantic colors for the currently active theme.
|
38
|
+
* Results are cached for performance until the theme changes.
|
39
|
+
* @returns Semantic colors for the active theme.
|
40
|
+
*/
|
41
|
+
getSemanticColors(): SemanticColors;
|
34
42
|
/**
|
35
43
|
* Gets a list of custom theme names.
|
36
44
|
* @returns Array of custom theme names.
|
@@ -19,12 +19,14 @@ import { createCustomTheme, validateCustomTheme, } from './theme.js';
|
|
19
19
|
import { ANSI } from './ansi.js';
|
20
20
|
import { ANSILight } from './ansi-light.js';
|
21
21
|
import { NoColorTheme } from './no-color.js';
|
22
|
+
import { resolveSemanticColors } from './semantic-resolver.js';
|
22
23
|
import process from 'node:process';
|
23
24
|
export const DEFAULT_THEME = GreenScreen;
|
24
25
|
class ThemeManager {
|
25
26
|
availableThemes;
|
26
27
|
activeTheme;
|
27
28
|
customThemes = new Map();
|
29
|
+
semanticColorsCache = null;
|
28
30
|
constructor() {
|
29
31
|
this.availableThemes = [
|
30
32
|
AyuDark,
|
@@ -50,6 +52,8 @@ class ThemeManager {
|
|
50
52
|
*/
|
51
53
|
loadCustomThemes(customThemesSettings) {
|
52
54
|
this.customThemes.clear();
|
55
|
+
// Invalidate semantic colors cache when custom themes change
|
56
|
+
this.semanticColorsCache = null;
|
53
57
|
if (!customThemesSettings) {
|
54
58
|
return;
|
55
59
|
}
|
@@ -95,6 +99,8 @@ class ThemeManager {
|
|
95
99
|
return false;
|
96
100
|
}
|
97
101
|
this.activeTheme = theme;
|
102
|
+
// Invalidate semantic colors cache when theme changes
|
103
|
+
this.semanticColorsCache = null;
|
98
104
|
return true;
|
99
105
|
}
|
100
106
|
/**
|
@@ -111,6 +117,18 @@ class ThemeManager {
|
|
111
117
|
}
|
112
118
|
return this.activeTheme;
|
113
119
|
}
|
120
|
+
/**
|
121
|
+
* Gets semantic colors for the currently active theme.
|
122
|
+
* Results are cached for performance until the theme changes.
|
123
|
+
* @returns Semantic colors for the active theme.
|
124
|
+
*/
|
125
|
+
getSemanticColors() {
|
126
|
+
if (this.semanticColorsCache === null) {
|
127
|
+
const activeTheme = this.getActiveTheme();
|
128
|
+
this.semanticColorsCache = resolveSemanticColors(activeTheme.colors);
|
129
|
+
}
|
130
|
+
return this.semanticColorsCache;
|
131
|
+
}
|
114
132
|
/**
|
115
133
|
* Gets a list of custom theme names.
|
116
134
|
* @returns Array of custom theme names.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../../../src/ui/themes/theme-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAIL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../../../src/ui/themes/theme-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ui/types.d.ts
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
*/
|
6
6
|
import React from 'react';
|
7
7
|
import { Theme } from '../themes/theme.js';
|
8
|
+
import { LoadedSettings } from '../../config/settings.js';
|
8
9
|
export declare function colorizeLine(line: string, language: string | null, theme?: Theme, overrideColor?: string): React.ReactNode;
|
9
10
|
/**
|
10
11
|
* Renders syntax-highlighted code for Ink applications using a selected theme.
|
@@ -15,4 +16,4 @@ export declare function colorizeLine(line: string, language: string | null, them
|
|
15
16
|
* @param overrideColor Optional color to use instead of syntax highlighting
|
16
17
|
* @returns A React.ReactNode containing Ink <Text> elements for the highlighted code.
|
17
18
|
*/
|
18
|
-
export declare function colorizeCode(code: string, language: string | null, availableHeight?: number, maxWidth?: number, theme?: Theme): React.ReactNode;
|
19
|
+
export declare function colorizeCode(code: string, language: string | null, availableHeight?: number, maxWidth?: number, theme?: Theme, settings?: LoadedSettings): React.ReactNode;
|
@@ -81,9 +81,10 @@ export function colorizeLine(line, language, theme, overrideColor) {
|
|
81
81
|
* @param overrideColor Optional color to use instead of syntax highlighting
|
82
82
|
* @returns A React.ReactNode containing Ink <Text> elements for the highlighted code.
|
83
83
|
*/
|
84
|
-
export function colorizeCode(code, language, availableHeight, maxWidth, theme) {
|
84
|
+
export function colorizeCode(code, language, availableHeight, maxWidth, theme, settings) {
|
85
85
|
const codeToHighlight = code.replace(/\n$/, '');
|
86
86
|
const activeTheme = theme || themeManager.getActiveTheme();
|
87
|
+
const showLineNumbers = settings?.merged.showLineNumbers ?? true;
|
87
88
|
try {
|
88
89
|
// Render the HAST tree using the adapted theme
|
89
90
|
// Apply the theme's default foreground color to the top-level Text element
|
@@ -101,7 +102,7 @@ export function colorizeCode(code, language, availableHeight, maxWidth, theme) {
|
|
101
102
|
}
|
102
103
|
return (_jsx(MaxSizedBox, { maxHeight: availableHeight, maxWidth: maxWidth, additionalHiddenLinesCount: hiddenLinesCount, overflowDirection: "top", children: lines.map((line, index) => {
|
103
104
|
const contentToRender = highlightAndRenderLine(line, language, activeTheme);
|
104
|
-
return (_jsxs(Box, { children: [_jsx(Text, { color: activeTheme.colors.Gray, children: `${String(index + 1 + hiddenLinesCount).padStart(padWidth, ' ')} ` }), _jsx(Text, { color: activeTheme.defaultColor, wrap: "wrap", children: contentToRender })] }, index));
|
105
|
+
return (_jsxs(Box, { children: [showLineNumbers && (_jsx(Text, { color: activeTheme.colors.Gray, children: `${String(index + 1 + hiddenLinesCount).padStart(padWidth, ' ')} ` })), _jsx(Text, { color: activeTheme.defaultColor, wrap: "wrap", children: contentToRender })] }, index));
|
105
106
|
}) }));
|
106
107
|
}
|
107
108
|
catch (error) {
|
@@ -110,7 +111,7 @@ export function colorizeCode(code, language, availableHeight, maxWidth, theme) {
|
|
110
111
|
// Also display line numbers in fallback
|
111
112
|
const lines = codeToHighlight.split('\n');
|
112
113
|
const padWidth = String(lines.length).length; // Calculate padding width based on number of lines
|
113
|
-
return (_jsx(MaxSizedBox, { maxHeight: availableHeight, maxWidth: maxWidth, overflowDirection: "top", children: lines.map((line, index) => (_jsxs(Box, { children: [_jsx(Text, { color: activeTheme.defaultColor, children: `${String(index + 1).padStart(padWidth, ' ')} ` }), _jsx(Text, { color: activeTheme.colors.Gray, children: line })] }, index))) }));
|
114
|
+
return (_jsx(MaxSizedBox, { maxHeight: availableHeight, maxWidth: maxWidth, overflowDirection: "top", children: lines.map((line, index) => (_jsxs(Box, { children: [showLineNumbers && (_jsx(Text, { color: activeTheme.defaultColor, children: `${String(index + 1).padStart(padWidth, ' ')} ` })), _jsx(Text, { color: activeTheme.colors.Gray, children: line })] }, index))) }));
|
114
115
|
}
|
115
116
|
}
|
116
117
|
//# sourceMappingURL=CodeColorizer.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CodeColorizer.js","sourceRoot":"","sources":["../../../../src/ui/utils/CodeColorizer.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQlD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EACL,WAAW,EACX,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;
|
1
|
+
{"version":3,"file":"CodeColorizer.js","sourceRoot":"","sources":["../../../../src/ui/utils/CodeColorizer.tsx"],"names":[],"mappings":"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"}
|
@@ -9,6 +9,7 @@ export class ConsolePatcher {
|
|
9
9
|
originalConsoleWarn = console.warn;
|
10
10
|
originalConsoleError = console.error;
|
11
11
|
originalConsoleDebug = console.debug;
|
12
|
+
originalConsoleInfo = console.info;
|
12
13
|
params;
|
13
14
|
constructor(params) {
|
14
15
|
this.params = params;
|
@@ -18,12 +19,14 @@ export class ConsolePatcher {
|
|
18
19
|
console.warn = this.patchConsoleMethod('warn', this.originalConsoleWarn);
|
19
20
|
console.error = this.patchConsoleMethod('error', this.originalConsoleError);
|
20
21
|
console.debug = this.patchConsoleMethod('debug', this.originalConsoleDebug);
|
22
|
+
console.info = this.patchConsoleMethod('info', this.originalConsoleInfo);
|
21
23
|
}
|
22
24
|
cleanup = () => {
|
23
25
|
console.log = this.originalConsoleLog;
|
24
26
|
console.warn = this.originalConsoleWarn;
|
25
27
|
console.error = this.originalConsoleError;
|
26
28
|
console.debug = this.originalConsoleDebug;
|
29
|
+
console.info = this.originalConsoleInfo;
|
27
30
|
};
|
28
31
|
formatArgs = (args) => util.format(...args);
|
29
32
|
patchConsoleMethod = (type, originalMethod) => (...args) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePatcher.js","sourceRoot":"","sources":["../../../../src/ui/utils/ConsolePatcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,OAAO,cAAc;IACjB,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;IACjC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;IACrC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;
|
1
|
+
{"version":3,"file":"ConsolePatcher.js","sourceRoot":"","sources":["../../../../src/ui/utils/ConsolePatcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,OAAO,cAAc;IACjB,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;IACjC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;IACrC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;IACrC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnC,MAAM,CAAuB;IAErC,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,GAAG,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACtC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACxC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC1C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC1C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC1C,CAAC,CAAC;IAEM,UAAU,GAAG,CAAC,IAAe,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAE/D,kBAAkB,GACxB,CACE,IAAiD,EACjD,cAA4C,EAC5C,EAAE,CACJ,CAAC,GAAG,IAAe,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC1B,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBACzB,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC9B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;CACL"}
|
@@ -10,6 +10,7 @@ import { Colors } from '../colors.js';
|
|
10
10
|
import { colorizeCode } from './CodeColorizer.js';
|
11
11
|
import { TableRenderer } from './TableRenderer.js';
|
12
12
|
import { RenderInline } from './InlineMarkdownRenderer.js';
|
13
|
+
import { useSettings } from '../contexts/SettingsContext.js';
|
13
14
|
// Constants for Markdown parsing and rendering
|
14
15
|
const EMPTY_LINE_HEIGHT = 1;
|
15
16
|
const CODE_BLOCK_PREFIX_PADDING = 1;
|
@@ -177,6 +178,7 @@ const MarkdownDisplayInternal = ({ text, isPending, availableTerminalHeight, ter
|
|
177
178
|
return _jsx(_Fragment, { children: contentBlocks });
|
178
179
|
};
|
179
180
|
const RenderCodeBlockInternal = ({ content, lang, isPending, availableTerminalHeight, terminalWidth, }) => {
|
181
|
+
const settings = useSettings();
|
180
182
|
const MIN_LINES_FOR_MESSAGE = 1; // Minimum lines to show before the "generating more" message
|
181
183
|
const RESERVED_LINES = 2; // Lines reserved for the message itself and potential padding
|
182
184
|
if (isPending && availableTerminalHeight !== undefined) {
|
@@ -187,12 +189,12 @@ const RenderCodeBlockInternal = ({ content, lang, isPending, availableTerminalHe
|
|
187
189
|
return (_jsx(Box, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, children: _jsx(Text, { color: Colors.Gray, children: "... code is being written ..." }) }));
|
188
190
|
}
|
189
191
|
const truncatedContent = content.slice(0, MAX_CODE_LINES_WHEN_PENDING);
|
190
|
-
const colorizedTruncatedCode = colorizeCode(truncatedContent.join('\n'), lang, availableTerminalHeight, terminalWidth - CODE_BLOCK_PREFIX_PADDING);
|
192
|
+
const colorizedTruncatedCode = colorizeCode(truncatedContent.join('\n'), lang, availableTerminalHeight, terminalWidth - CODE_BLOCK_PREFIX_PADDING, undefined, settings);
|
191
193
|
return (_jsxs(Box, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, flexDirection: "column", children: [colorizedTruncatedCode, _jsx(Text, { color: Colors.Gray, children: "... generating more ..." })] }));
|
192
194
|
}
|
193
195
|
}
|
194
196
|
const fullContent = content.join('\n');
|
195
|
-
const colorizedCode = colorizeCode(fullContent, lang, availableTerminalHeight, terminalWidth - CODE_BLOCK_PREFIX_PADDING);
|
197
|
+
const colorizedCode = colorizeCode(fullContent, lang, availableTerminalHeight, terminalWidth - CODE_BLOCK_PREFIX_PADDING, undefined, settings);
|
196
198
|
return (_jsx(Box, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, flexDirection: "column", width: terminalWidth, flexShrink: 0, children: colorizedCode }));
|
197
199
|
};
|
198
200
|
const RenderCodeBlock = React.memo(RenderCodeBlockInternal);
|