@vybestack/llxprt-code 0.8.0-nightly.260112.d9cf7fbc6 → 0.8.0-nightly.260113.cd34be5f1
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/dist/package.json +3 -3
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/runtime/runtimeSettings.d.ts +1 -0
- package/dist/src/runtime/runtimeSettings.js +4 -0
- package/dist/src/runtime/runtimeSettings.js.map +1 -1
- package/dist/src/ui/AppContainer.js +49 -0
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.js +111 -9
- package/dist/src/ui/commands/profileCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.test.js +3 -6
- package/dist/src/ui/commands/profileCommand.test.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +12 -2
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +12 -0
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/ProfileDetailDialog.d.ts +22 -0
- package/dist/src/ui/components/ProfileDetailDialog.js +113 -0
- package/dist/src/ui/components/ProfileDetailDialog.js.map +1 -0
- package/dist/src/ui/components/ProfileInlineEditor.d.ts +16 -0
- package/dist/src/ui/components/ProfileInlineEditor.js +216 -0
- package/dist/src/ui/components/ProfileInlineEditor.js.map +1 -0
- package/dist/src/ui/components/ProfileListDialog.d.ts +26 -0
- package/dist/src/ui/components/ProfileListDialog.js +172 -0
- package/dist/src/ui/components/ProfileListDialog.js.map +1 -0
- package/dist/src/ui/components/ProviderDialog.js +1 -1
- package/dist/src/ui/components/ProviderDialog.js.map +1 -1
- package/dist/src/ui/components/ProviderModelDialog.js +1 -1
- package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.test.js +74 -31
- package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +13 -37
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/contexts/RuntimeContext.d.ts +2 -1
- package/dist/src/ui/contexts/RuntimeContext.js +2 -1
- package/dist/src/ui/contexts/RuntimeContext.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +10 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +17 -0
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +25 -1
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +127 -91
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +3 -0
- package/dist/src/ui/hooks/slashCommandProcessor.js +28 -0
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js +3 -0
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useProfileManagement.d.ts +40 -0
- package/dist/src/ui/hooks/useProfileManagement.js +350 -0
- package/dist/src/ui/hooks/useProfileManagement.js.map +1 -0
- package/dist/src/ui/hooks/useReactToolScheduler.js +103 -33
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useSessionRestore.test.js +103 -0
- package/dist/src/ui/hooks/useSessionRestore.test.js.map +1 -0
- package/dist/src/ui/hooks/useSlashCompletion.test.js +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +322 -220
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.js +3 -0
- package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
- package/dist/src/ui/reducers/appReducer.d.ts +5 -2
- package/dist/src/ui/reducers/appReducer.js +3 -0
- package/dist/src/ui/reducers/appReducer.js.map +1 -1
- package/dist/src/ui/reducers/appReducer.test.js +6 -0
- package/dist/src/ui/reducers/appReducer.test.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +0 -30
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +0 -1
- /package/dist/src/ui/{components/messages/ToolMessageRawMarkdown.test.d.ts → hooks/useSessionRestore.test.d.ts} +0 -0
|
@@ -22,6 +22,9 @@ import { ProviderDialog } from './ProviderDialog.js';
|
|
|
22
22
|
import { ProviderModelDialog } from './ProviderModelDialog.js';
|
|
23
23
|
import { LoadProfileDialog } from './LoadProfileDialog.js';
|
|
24
24
|
import { ProfileCreateWizard } from './ProfileCreateWizard/index.js';
|
|
25
|
+
import { ProfileListDialog } from './ProfileListDialog.js';
|
|
26
|
+
import { ProfileDetailDialog } from './ProfileDetailDialog.js';
|
|
27
|
+
import { ProfileInlineEditor } from './ProfileInlineEditor.js';
|
|
25
28
|
import { ToolsDialog } from './ToolsDialog.js';
|
|
26
29
|
import { PrivacyNotice } from '../privacy/PrivacyNotice.js';
|
|
27
30
|
import { WorkspaceMigrationDialog } from './WorkspaceMigrationDialog.js';
|
|
@@ -124,6 +127,15 @@ export const DialogManager = ({ addItem, terminalWidth, config, settings, }) =>
|
|
|
124
127
|
if (uiState.isCreateProfileDialogOpen) {
|
|
125
128
|
return (_jsx(Box, { flexDirection: "column", children: _jsx(ProfileCreateWizard, { onClose: uiActions.exitCreateProfileDialog, onLoadProfile: uiActions.handleProfileSelect, availableProviders: uiState.providerOptions }) }));
|
|
126
129
|
}
|
|
130
|
+
if (uiState.isProfileListDialogOpen) {
|
|
131
|
+
return (_jsx(Box, { flexDirection: "column", children: _jsx(ProfileListDialog, { profiles: uiState.profileListItems, onSelect: uiActions.loadProfileFromDetail, onClose: uiActions.closeProfileListDialog, onViewDetail: uiActions.viewProfileDetail, isLoading: uiState.profileDialogLoading, defaultProfileName: uiState.defaultProfileName ?? undefined, activeProfileName: uiState.activeProfileName ?? undefined }) }));
|
|
132
|
+
}
|
|
133
|
+
if (uiState.isProfileDetailDialogOpen) {
|
|
134
|
+
return (_jsx(Box, { flexDirection: "column", children: _jsx(ProfileDetailDialog, { profileName: uiState.selectedProfileName ?? '', profile: uiState.selectedProfileData, onClose: uiActions.closeProfileDetailDialog, onLoad: uiActions.loadProfileFromDetail, onDelete: uiActions.deleteProfileFromDetail, onSetDefault: uiActions.setProfileAsDefault, onEdit: uiActions.openProfileEditor, isLoading: uiState.profileDialogLoading, isDefault: uiState.selectedProfileName === uiState.defaultProfileName, isActive: uiState.selectedProfileName === uiState.activeProfileName, error: uiState.profileDialogError ?? undefined }) }));
|
|
135
|
+
}
|
|
136
|
+
if (uiState.isProfileEditorDialogOpen && uiState.selectedProfileData) {
|
|
137
|
+
return (_jsx(Box, { flexDirection: "column", children: _jsx(ProfileInlineEditor, { profileName: uiState.selectedProfileName ?? '', profile: uiState.selectedProfileData, onSave: uiActions.saveProfileFromEditor, onCancel: uiActions.closeProfileEditor, error: uiState.profileDialogError ?? undefined }) }));
|
|
138
|
+
}
|
|
127
139
|
if (uiState.isToolsDialogOpen) {
|
|
128
140
|
return (_jsx(Box, { flexDirection: "column", children: _jsx(ToolsDialog, { tools: uiState.toolsDialogTools, action: uiState.toolsDialogAction, disabledTools: uiState.toolsDialogDisabledTools, onSelect: uiActions.handleToolsSelect, onClose: uiActions.exitToolsDialog }) }));
|
|
129
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogManager.js","sourceRoot":"","sources":["../../../../src/ui/components/DialogManager.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,oHAAoH;AACpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"DialogManager.js","sourceRoot":"","sources":["../../../../src/ui/components/DialogManager.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import type { Profile } from '@vybestack/llxprt-code-core';
|
|
8
|
+
interface ProfileDetailDialogProps {
|
|
9
|
+
profileName: string;
|
|
10
|
+
profile: Profile | null;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
onLoad: (profileName: string) => void;
|
|
13
|
+
onDelete: (profileName: string) => void;
|
|
14
|
+
onSetDefault: (profileName: string) => void;
|
|
15
|
+
onEdit: (profileName: string) => void;
|
|
16
|
+
isLoading?: boolean;
|
|
17
|
+
isDefault?: boolean;
|
|
18
|
+
isActive?: boolean;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const ProfileDetailDialog: React.FC<ProfileDetailDialogProps>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2025 Vybestack LLC
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import { Box, Text } from 'ink';
|
|
9
|
+
import { SemanticColors } from '../colors.js';
|
|
10
|
+
import { useResponsive } from '../hooks/useResponsive.js';
|
|
11
|
+
import { useKeypress } from '../hooks/useKeypress.js';
|
|
12
|
+
/**
|
|
13
|
+
* Allowlist of ephemeralSettings keys that are safe to display.
|
|
14
|
+
* Any key NOT in this set will be hidden to prevent accidental secret leakage.
|
|
15
|
+
*/
|
|
16
|
+
const SAFE_EPHEMERAL_KEYS = new Set([
|
|
17
|
+
'baseurl',
|
|
18
|
+
'endpoint',
|
|
19
|
+
'url',
|
|
20
|
+
'timeout',
|
|
21
|
+
'maxretries',
|
|
22
|
+
'retries',
|
|
23
|
+
'region',
|
|
24
|
+
'debug',
|
|
25
|
+
'loglevel',
|
|
26
|
+
'version',
|
|
27
|
+
'apiversion',
|
|
28
|
+
'organization',
|
|
29
|
+
'orgid',
|
|
30
|
+
'project',
|
|
31
|
+
'projectid',
|
|
32
|
+
'maxtokens',
|
|
33
|
+
'temperature',
|
|
34
|
+
'topp',
|
|
35
|
+
'topk',
|
|
36
|
+
'stream',
|
|
37
|
+
'safetysettings',
|
|
38
|
+
]);
|
|
39
|
+
// Type guard for load balancer profile
|
|
40
|
+
function isLoadBalancerProfile(profile) {
|
|
41
|
+
const p = profile;
|
|
42
|
+
return (profile.type === 'loadbalancer' &&
|
|
43
|
+
Array.isArray(p.profiles) &&
|
|
44
|
+
typeof p.policy === 'string');
|
|
45
|
+
}
|
|
46
|
+
export const ProfileDetailDialog = ({ profileName, profile, onClose, onLoad, onDelete, onSetDefault, onEdit, isLoading = false, isDefault = false, isActive = false, error, }) => {
|
|
47
|
+
const { isNarrow, width } = useResponsive();
|
|
48
|
+
const [confirmDelete, setConfirmDelete] = useState(false);
|
|
49
|
+
useKeypress((key) => {
|
|
50
|
+
if (key.name === 'escape') {
|
|
51
|
+
if (confirmDelete) {
|
|
52
|
+
setConfirmDelete(false);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return onClose();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// On error / missing profile screens, only Esc should do anything.
|
|
59
|
+
if (error || !profile) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (confirmDelete) {
|
|
63
|
+
if (key.sequence === 'y' || key.sequence === 'Y') {
|
|
64
|
+
onDelete(profileName);
|
|
65
|
+
}
|
|
66
|
+
else if (key.sequence === 'n' || key.sequence === 'N') {
|
|
67
|
+
setConfirmDelete(false);
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Quick actions
|
|
72
|
+
if (key.sequence === 'l') {
|
|
73
|
+
return onLoad(profileName);
|
|
74
|
+
}
|
|
75
|
+
if (key.sequence === 'e') {
|
|
76
|
+
return onEdit(profileName);
|
|
77
|
+
}
|
|
78
|
+
if (key.sequence === 'd') {
|
|
79
|
+
setConfirmDelete(true);
|
|
80
|
+
}
|
|
81
|
+
if (key.sequence === 's') {
|
|
82
|
+
return onSetDefault(profileName);
|
|
83
|
+
}
|
|
84
|
+
}, { isActive: !isLoading });
|
|
85
|
+
if (isLoading) {
|
|
86
|
+
return (_jsx(Box, { borderStyle: "round", borderColor: SemanticColors.border.default, flexDirection: "column", padding: 1, children: _jsx(Text, { color: SemanticColors.text.primary, children: "Loading profile..." }) }));
|
|
87
|
+
}
|
|
88
|
+
if (error) {
|
|
89
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: SemanticColors.status.error, flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, color: SemanticColors.status.error, children: "Error Loading Profile" }), _jsx(Text, { color: SemanticColors.text.secondary, children: error }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: SemanticColors.text.secondary, children: "Press Esc to go back" }) })] }));
|
|
90
|
+
}
|
|
91
|
+
if (!profile) {
|
|
92
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: SemanticColors.border.default, flexDirection: "column", padding: 1, children: [_jsxs(Text, { color: SemanticColors.text.secondary, children: ["Profile not found: ", profileName] }), _jsx(Text, { color: SemanticColors.text.secondary, children: "Press Esc to go back" })] }));
|
|
93
|
+
}
|
|
94
|
+
// Render JSON config in a readable format
|
|
95
|
+
const renderConfig = () => {
|
|
96
|
+
if (isLoadBalancerProfile(profile)) {
|
|
97
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Type: " }), _jsx(Text, { color: SemanticColors.text.accent, children: "Load Balancer" })] }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Policy: " }), _jsx(Text, { color: SemanticColors.text.primary, children: profile.policy })] }), _jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Member Profiles:" }), profile.profiles.map((p) => (_jsxs(Text, { color: SemanticColors.text.primary, children: [' ', "- ", p] }, p)))] })] }));
|
|
98
|
+
}
|
|
99
|
+
// Standard profile
|
|
100
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Type: " }), _jsx(Text, { color: SemanticColors.text.primary, children: "Standard" })] }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Provider: " }), _jsx(Text, { color: SemanticColors.text.accent, children: profile.provider })] }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Model: " }), _jsx(Text, { color: SemanticColors.text.primary, children: profile.model })] }), profile.modelParams && Object.keys(profile.modelParams).length > 0 && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Model Parameters:" }), Object.entries(profile.modelParams).map(([key, value]) => (_jsxs(Text, { color: SemanticColors.text.primary, children: [' ', key, ": ", JSON.stringify(value)] }, key)))] })), profile.ephemeralSettings && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Settings:" }), Object.entries(profile.ephemeralSettings)
|
|
101
|
+
.filter(([key]) => SAFE_EPHEMERAL_KEYS.has(key.toLowerCase()))
|
|
102
|
+
.filter(([, value]) => value !== undefined && value !== null)
|
|
103
|
+
.slice(0, 10) // Limit displayed settings
|
|
104
|
+
.map(([key, value]) => (_jsxs(Text, { color: SemanticColors.text.primary, children: [' ', key, ": ", JSON.stringify(value)] }, key)))] })), profile.auth && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: SemanticColors.text.secondary, children: "Authentication:" }), _jsxs(Text, { color: SemanticColors.text.primary, children: [' ', "Type: ", profile.auth.type] }), profile.auth.buckets && profile.auth.buckets.length > 0 && (_jsxs(Text, { color: SemanticColors.text.primary, children: [' ', "Buckets: ", profile.auth.buckets.join(', ')] }))] }))] }));
|
|
105
|
+
};
|
|
106
|
+
// Delete confirmation overlay
|
|
107
|
+
if (confirmDelete) {
|
|
108
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: SemanticColors.status.warning, flexDirection: "column", padding: 1, width: Math.min(width, 60), children: [_jsx(Text, { bold: true, color: SemanticColors.status.warning, children: "Delete Profile?" }), _jsx(Box, { marginY: 1, children: _jsxs(Text, { color: SemanticColors.text.primary, children: ["Are you sure you want to delete \"", profileName, "\"?"] }) }), _jsx(Text, { color: SemanticColors.text.secondary, children: "This action cannot be undone." }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: SemanticColors.text.accent, children: "Press y to confirm, n or Esc to cancel" }) })] }));
|
|
109
|
+
}
|
|
110
|
+
const dialogWidth = isNarrow ? undefined : Math.min(width, 80);
|
|
111
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: SemanticColors.border.default, flexDirection: "column", padding: 1, width: dialogWidth, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { bold: true, color: SemanticColors.text.accent, children: profileName }), isActive && (_jsx(Text, { color: SemanticColors.status.success, children: " (Active)" })), isDefault && (_jsx(Text, { color: SemanticColors.text.secondary, children: " (Default)" }))] }), renderConfig(), _jsx(Box, { marginTop: 1, borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: SemanticColors.border.default, paddingTop: 1, children: _jsxs(Text, { color: SemanticColors.text.secondary, children: ["Actions: ", _jsx(Text, { color: SemanticColors.text.accent, children: "l" }), "=load", ' ', _jsx(Text, { color: SemanticColors.text.accent, children: "e" }), "=edit", ' ', _jsx(Text, { color: SemanticColors.text.accent, children: "d" }), "=delete", ' ', _jsx(Text, { color: SemanticColors.text.accent, children: "s" }), "=set-default", ' ', _jsx(Text, { color: SemanticColors.text.secondary, children: "Esc" }), "=back"] }) })] }));
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=ProfileDetailDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProfileDetailDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ProfileDetailDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import type { Profile } from '@vybestack/llxprt-code-core';
|
|
8
|
+
interface ProfileInlineEditorProps {
|
|
9
|
+
profileName: string;
|
|
10
|
+
profile: Profile;
|
|
11
|
+
onSave: (profileName: string, updatedProfile: Profile) => void;
|
|
12
|
+
onCancel: () => void;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const ProfileInlineEditor: React.FC<ProfileInlineEditorProps>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2025 Vybestack LLC
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
8
|
+
import { Box, Text } from 'ink';
|
|
9
|
+
import { SemanticColors } from '../colors.js';
|
|
10
|
+
import { useResponsive } from '../hooks/useResponsive.js';
|
|
11
|
+
import { useKeypress } from '../hooks/useKeypress.js';
|
|
12
|
+
/**
|
|
13
|
+
* Validates a profile structure. Returns error message or null if valid.
|
|
14
|
+
*/
|
|
15
|
+
function validateProfile(profile) {
|
|
16
|
+
if (typeof profile !== 'object' || profile === null) {
|
|
17
|
+
return 'Invalid profile: must be an object';
|
|
18
|
+
}
|
|
19
|
+
const p = profile;
|
|
20
|
+
if (!('version' in p) || typeof p.version !== 'string') {
|
|
21
|
+
return 'Missing or invalid version';
|
|
22
|
+
}
|
|
23
|
+
if (!('type' in p) || typeof p.type !== 'string') {
|
|
24
|
+
return 'Missing or invalid type';
|
|
25
|
+
}
|
|
26
|
+
if (p.type === 'standard') {
|
|
27
|
+
if (!('provider' in p) || typeof p.provider !== 'string' || !p.provider) {
|
|
28
|
+
return 'Standard profile requires provider';
|
|
29
|
+
}
|
|
30
|
+
if (!('model' in p) || typeof p.model !== 'string' || !p.model) {
|
|
31
|
+
return 'Standard profile requires model';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (p.type === 'loadbalancer') {
|
|
35
|
+
if (!('profiles' in p) || !Array.isArray(p.profiles)) {
|
|
36
|
+
return 'Load balancer requires profiles array';
|
|
37
|
+
}
|
|
38
|
+
if (p.profiles.length === 0) {
|
|
39
|
+
return 'Load balancer requires at least one profile';
|
|
40
|
+
}
|
|
41
|
+
if (!p.profiles.every((item) => typeof item === 'string')) {
|
|
42
|
+
return 'Profiles must be strings';
|
|
43
|
+
}
|
|
44
|
+
if (!('policy' in p) || typeof p.policy !== 'string' || !p.policy) {
|
|
45
|
+
return 'Load balancer requires policy';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return `Unknown profile type: ${p.type}`;
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
// Simple JSON editor that allows line-by-line editing
|
|
54
|
+
export const ProfileInlineEditor = ({ profileName, profile, onSave, onCancel, error: externalError, }) => {
|
|
55
|
+
const { width } = useResponsive();
|
|
56
|
+
// Convert profile to formatted JSON lines
|
|
57
|
+
const formatProfile = (p) => {
|
|
58
|
+
const json = JSON.stringify(p, null, 2);
|
|
59
|
+
return json.split('\n');
|
|
60
|
+
};
|
|
61
|
+
const [lines, setLines] = useState(() => formatProfile(profile));
|
|
62
|
+
const [cursorLine, setCursorLine] = useState(0);
|
|
63
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
64
|
+
const [editBuffer, setEditBuffer] = useState('');
|
|
65
|
+
const [validationError, setValidationError] = useState(null);
|
|
66
|
+
const [hasChanges, setHasChanges] = useState(false);
|
|
67
|
+
// Visible window for scrolling
|
|
68
|
+
const maxVisibleLines = 15;
|
|
69
|
+
const [scrollOffset, setScrollOffset] = useState(0);
|
|
70
|
+
// Reset editor when a different profile is loaded into the dialog.
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
setLines(formatProfile(profile));
|
|
73
|
+
setCursorLine(0);
|
|
74
|
+
setScrollOffset(0);
|
|
75
|
+
setIsEditing(false);
|
|
76
|
+
setEditBuffer('');
|
|
77
|
+
setValidationError(null);
|
|
78
|
+
setHasChanges(false);
|
|
79
|
+
}, [profileName, profile]);
|
|
80
|
+
// Ensure cursor line is visible
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
if (cursorLine < scrollOffset) {
|
|
83
|
+
setScrollOffset(cursorLine);
|
|
84
|
+
}
|
|
85
|
+
else if (cursorLine >= scrollOffset + maxVisibleLines) {
|
|
86
|
+
setScrollOffset(cursorLine - maxVisibleLines + 1);
|
|
87
|
+
}
|
|
88
|
+
}, [cursorLine, scrollOffset, maxVisibleLines]);
|
|
89
|
+
// Validate JSON on changes
|
|
90
|
+
const validateJson = useMemo(() => {
|
|
91
|
+
try {
|
|
92
|
+
const jsonString = lines.join('\n');
|
|
93
|
+
JSON.parse(jsonString);
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
return e instanceof Error ? e.message : 'Invalid JSON';
|
|
98
|
+
}
|
|
99
|
+
}, [lines]);
|
|
100
|
+
// Clear stale validation errors when JSON becomes valid
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
if (!validateJson) {
|
|
103
|
+
setValidationError(null);
|
|
104
|
+
}
|
|
105
|
+
}, [validateJson]);
|
|
106
|
+
useKeypress((key) => {
|
|
107
|
+
if (isEditing) {
|
|
108
|
+
// Edit mode
|
|
109
|
+
if (key.name === 'escape') {
|
|
110
|
+
// Cancel line edit
|
|
111
|
+
setIsEditing(false);
|
|
112
|
+
setEditBuffer('');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (key.name === 'return') {
|
|
116
|
+
// Commit line edit
|
|
117
|
+
const newLines = [...lines];
|
|
118
|
+
newLines[cursorLine] = editBuffer;
|
|
119
|
+
setLines(newLines);
|
|
120
|
+
setIsEditing(false);
|
|
121
|
+
setEditBuffer('');
|
|
122
|
+
setHasChanges(true);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (key.name === 'backspace' || key.name === 'delete') {
|
|
126
|
+
setEditBuffer((prev) => prev.slice(0, -1));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (key.sequence &&
|
|
130
|
+
typeof key.sequence === 'string' &&
|
|
131
|
+
!key.ctrl &&
|
|
132
|
+
!key.meta &&
|
|
133
|
+
key.insertable !== false) {
|
|
134
|
+
setEditBuffer((prev) => prev + key.sequence);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// Navigation mode
|
|
140
|
+
if (key.name === 'escape') {
|
|
141
|
+
onCancel();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Save
|
|
145
|
+
if (key.ctrl && key.name === 's') {
|
|
146
|
+
if (validateJson) {
|
|
147
|
+
setValidationError(validateJson);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
const updatedProfile = JSON.parse(lines.join('\n'));
|
|
152
|
+
// Comprehensive profile validation
|
|
153
|
+
const profileError = validateProfile(updatedProfile);
|
|
154
|
+
if (profileError) {
|
|
155
|
+
setValidationError(profileError);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
onSave(profileName, updatedProfile);
|
|
159
|
+
}
|
|
160
|
+
catch (e) {
|
|
161
|
+
setValidationError(e instanceof Error ? e.message : 'Invalid JSON');
|
|
162
|
+
}
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Navigation
|
|
166
|
+
if (key.name === 'up' || key.sequence === 'k') {
|
|
167
|
+
setCursorLine((prev) => Math.max(0, prev - 1));
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (key.name === 'down' || key.sequence === 'j') {
|
|
171
|
+
setCursorLine((prev) => Math.min(lines.length - 1, prev + 1));
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
// Enter edit mode
|
|
175
|
+
if (key.name === 'return' || key.sequence === 'e') {
|
|
176
|
+
setIsEditing(true);
|
|
177
|
+
setEditBuffer(lines[cursorLine]);
|
|
178
|
+
setValidationError(null);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
// Page up/down
|
|
182
|
+
if (key.name === 'pageup') {
|
|
183
|
+
setCursorLine((prev) => Math.max(0, prev - maxVisibleLines));
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (key.name === 'pagedown') {
|
|
187
|
+
setCursorLine((prev) => Math.min(lines.length - 1, prev + maxVisibleLines));
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
// Home/End
|
|
191
|
+
if (key.sequence === 'g') {
|
|
192
|
+
setCursorLine(0);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (key.sequence === 'G') {
|
|
196
|
+
setCursorLine(lines.length - 1);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
}, { isActive: true });
|
|
200
|
+
const visibleLines = lines.slice(scrollOffset, scrollOffset + maxVisibleLines);
|
|
201
|
+
const dialogWidth = Math.min(width, 90);
|
|
202
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: validateJson
|
|
203
|
+
? SemanticColors.status.error
|
|
204
|
+
: hasChanges
|
|
205
|
+
? SemanticColors.status.warning
|
|
206
|
+
: SemanticColors.border.default, flexDirection: "column", padding: 1, width: dialogWidth, children: [_jsxs(Box, { marginBottom: 1, children: [_jsxs(Text, { bold: true, color: SemanticColors.text.accent, children: ["Edit: ", profileName] }), hasChanges && (_jsx(Text, { color: SemanticColors.status.warning, children: " (modified)" }))] }), (validationError || externalError || validateJson) && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: SemanticColors.status.error, children: ["Error: ", validationError || externalError || validateJson] }) })), _jsx(Box, { flexDirection: "column", marginBottom: 1, children: visibleLines.map((line, idx) => {
|
|
207
|
+
const actualLine = scrollOffset + idx;
|
|
208
|
+
const isCurrentLine = actualLine === cursorLine;
|
|
209
|
+
return (_jsxs(Box, { children: [_jsx(Box, { width: 4, children: _jsx(Text, { color: isCurrentLine
|
|
210
|
+
? SemanticColors.text.accent
|
|
211
|
+
: SemanticColors.text.secondary, children: String(actualLine + 1).padStart(3, ' ') }) }), isEditing && isCurrentLine ? (_jsx(Box, { children: _jsxs(Text, { color: SemanticColors.text.accent, children: [editBuffer, _jsx(Text, { color: SemanticColors.text.accent, children: "\u258C" })] }) })) : (_jsxs(Text, { color: isCurrentLine
|
|
212
|
+
? SemanticColors.text.accent
|
|
213
|
+
: SemanticColors.text.primary, bold: isCurrentLine, children: [isCurrentLine ? '› ' : ' ', line] }))] }, actualLine));
|
|
214
|
+
}) }), lines.length > maxVisibleLines && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: SemanticColors.text.secondary, children: ["Lines ", scrollOffset + 1, "-", Math.min(scrollOffset + maxVisibleLines, lines.length), " of", ' ', lines.length] }) })), _jsx(Box, { borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: SemanticColors.border.default, paddingTop: 1, children: isEditing ? (_jsxs(Text, { color: SemanticColors.text.secondary, children: ["Editing line ", cursorLine + 1, ". Enter=commit, Esc=cancel"] })) : (_jsx(Text, { color: SemanticColors.text.secondary, children: "\u2191/\u2193=navigate, Enter/e=edit line, Ctrl+S=save, Esc=cancel" })) })] }));
|
|
215
|
+
};
|
|
216
|
+
//# sourceMappingURL=ProfileInlineEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProfileInlineEditor.js","sourceRoot":"","sources":["../../../../src/ui/components/ProfileInlineEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
export interface ProfileListItem {
|
|
8
|
+
name: string;
|
|
9
|
+
type: 'standard' | 'loadbalancer';
|
|
10
|
+
provider?: string;
|
|
11
|
+
model?: string;
|
|
12
|
+
isDefault?: boolean;
|
|
13
|
+
isActive?: boolean;
|
|
14
|
+
loadError?: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface ProfileListDialogProps {
|
|
17
|
+
profiles: ProfileListItem[];
|
|
18
|
+
onSelect: (profileName: string) => void;
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
onViewDetail: (profileName: string) => void;
|
|
21
|
+
isLoading?: boolean;
|
|
22
|
+
defaultProfileName?: string;
|
|
23
|
+
activeProfileName?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const ProfileListDialog: React.FC<ProfileListDialogProps>;
|
|
26
|
+
export {};
|