bingocode 1.1.114 → 1.1.115
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/package.json
CHANGED
|
@@ -91,13 +91,12 @@ const i18nMap = {
|
|
|
91
91
|
about: 'Bingo CLI - Version Info & About',
|
|
92
92
|
aboutContent: [
|
|
93
93
|
'Bingo is an AI assistant terminal client.',
|
|
94
|
-
'Author: leanchy (Email: leanchy07@outlook.com)',
|
|
95
|
-
'Github: github.com/leanchy/bingo-claude-code-offline-installer',
|
|
96
94
|
'1. API Config: Press "P" or select "API Config" to set up your keys.',
|
|
97
95
|
'2. Model Slots: Configure specific models in the Provider panel.',
|
|
98
96
|
'3. Background Service: Bingo runs a local server to manage sessions.',
|
|
99
97
|
'4. Start Chat: Run `bingocode` or `claude` in any terminal to start.',
|
|
100
98
|
].join('\n'),
|
|
99
|
+
aboutFooter: 'Author: leanchy (leanchy07@outlook.com) · github.com/leanchy/bingo-claude-code-offline-installer',
|
|
101
100
|
mark: '→ Mark Session',
|
|
102
101
|
unmark: '→ Unmark Session',
|
|
103
102
|
tipsSimple: 'L Lang | ESC Back | ←→ Menu | ↩ Enter | ? Help',
|
|
@@ -119,13 +118,12 @@ const i18nMap = {
|
|
|
119
118
|
about: 'Bingo CLI Terminal - Version Info & About',
|
|
120
119
|
aboutContent: [
|
|
121
120
|
'Bingo is an AI assistant terminal client.',
|
|
122
|
-
'Author: leanchy (Email: leanchy07@outlook.com)',
|
|
123
|
-
'Github: github.com/leanchy/bingo-claude-code-offline-installer',
|
|
124
121
|
'1. API Config: Press "P" or select "API Config" to set up your keys.',
|
|
125
122
|
'2. Model Slots: Configure specific models in the Provider panel.',
|
|
126
123
|
'3. Background Service: Bingo runs a local server to manage sessions.',
|
|
127
124
|
'4. Start Chat: Run `bingocode` or `claude` in any terminal to start.',
|
|
128
125
|
].join('\n'),
|
|
126
|
+
aboutFooter: 'Author: leanchy (leanchy07@outlook.com) · github.com/leanchy/bingo-claude-code-offline-installer',
|
|
129
127
|
mark: '→ Mark Session',
|
|
130
128
|
unmark: '→ Unmark Session',
|
|
131
129
|
tipsSimple: 'L Lang | ESC Back | ←→ Menu | ↩ Enter | ? Help',
|
|
@@ -1156,6 +1154,9 @@ export const CliMenuManager: React.FC = () => {
|
|
|
1156
1154
|
API Base: {apiUrl}
|
|
1157
1155
|
</Hint>
|
|
1158
1156
|
</Box>
|
|
1157
|
+
<Box marginTop={1}>
|
|
1158
|
+
<Text color="gray">{(i18nMap[lang] as any).aboutFooter}</Text>
|
|
1159
|
+
</Box>
|
|
1159
1160
|
</Box>
|
|
1160
1161
|
);
|
|
1161
1162
|
}
|
|
@@ -1198,6 +1199,7 @@ export const CliMenuManager: React.FC = () => {
|
|
|
1198
1199
|
page={page}
|
|
1199
1200
|
animEnabled={animEnabled}
|
|
1200
1201
|
tipsEnabled={tipsEnabled}
|
|
1202
|
+
ip={apiUrl ? apiUrl.replace(/^https?:\/\//, '') : undefined}
|
|
1201
1203
|
/>
|
|
1202
1204
|
}
|
|
1203
1205
|
/>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//@C:M ID=M.UI.TopToolbar;K=M;V=1.2;P=top toolbar;D=CLI;M=cli;S=ui
|
|
2
2
|
import React, { memo, useMemo } from 'react';
|
|
3
|
-
import { Box } from 'ink';
|
|
3
|
+
import { Box, Text } from 'ink';
|
|
4
4
|
import { Chip, ChipRow } from './CliMenuUi.tsx';
|
|
5
5
|
import { useTheme } from '../components/design-system/ThemeProvider.js';
|
|
6
6
|
import { getGlobalConfig, getCurrentProjectConfig, isPathTrusted, checkHasTrustDialogAccepted } from '../utils/config.ts';
|
|
@@ -15,6 +15,7 @@ type Props = {
|
|
|
15
15
|
page: string | null;
|
|
16
16
|
animEnabled: boolean;
|
|
17
17
|
tipsEnabled: boolean;
|
|
18
|
+
ip?: string;
|
|
18
19
|
};
|
|
19
20
|
|
|
20
21
|
function basename(p: string) {
|
|
@@ -29,8 +30,8 @@ function ellipsisPath(p: string, keep = 2) {
|
|
|
29
30
|
return '…/' + parts.slice(-keep).join('/');
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
//@C:F ID=F.UI.TopToolbar;K=F;V=1.
|
|
33
|
-
export const TopToolbar: React.FC<Props> = memo(({ ready, page, animEnabled, tipsEnabled }) => {
|
|
33
|
+
//@C:F ID=F.UI.TopToolbar;K=F;V=1.3;P=toolbar;D=CLI;M=cli;S=ui;In=Props;Out=JSX.Element
|
|
34
|
+
export const TopToolbar: React.FC<Props> = memo(({ ready, page, animEnabled, tipsEnabled, ip }) => {
|
|
34
35
|
const [theme] = useTheme();
|
|
35
36
|
|
|
36
37
|
// Only read config and trust status when ready
|
|
@@ -66,28 +67,37 @@ export const TopToolbar: React.FC<Props> = memo(({ ready, page, animEnabled, tip
|
|
|
66
67
|
|
|
67
68
|
const uiTone = (String(theme) === 'dark') ? 'accent' : (String(theme) === 'highContrast' ? 'warning' : 'info');
|
|
68
69
|
|
|
70
|
+
// Trust chip: only show when there's meaningful content
|
|
71
|
+
const trustChip = useMemo(() => {
|
|
72
|
+
if (trustedPath === undefined || trustAccepted === undefined) return null;
|
|
73
|
+
if (trustedPath && trustAccepted) return <Chip label="Trust" value="✓ Trusted" tone="success" />;
|
|
74
|
+
return <Chip label="Trust" value="Untrusted" tone="warning" />;
|
|
75
|
+
}, [trustedPath, trustAccepted]);
|
|
76
|
+
|
|
69
77
|
return (
|
|
70
|
-
<Box flexDirection="column"
|
|
78
|
+
<Box flexDirection="column">
|
|
79
|
+
{/* Row 1: Clawd + Theme + Project(if set) + CWD(if set) + Trust(if meaningful) */}
|
|
71
80
|
<ChipRow>
|
|
72
|
-
{/* Left: Clawd + Core Status */}
|
|
73
81
|
<Box>
|
|
74
|
-
<Box marginRight={
|
|
82
|
+
<Box marginRight={1}>
|
|
75
83
|
{animEnabled ? <AnimatedClawd /> : <Clawd pose={clawdPose} />}
|
|
76
84
|
</Box>
|
|
77
|
-
|
|
78
85
|
<Chip label="Theme" value={themeLabel} tone="accent" />
|
|
79
|
-
<Chip label="Project" value={projectName
|
|
80
|
-
<Chip label="CWD" value={cwdShort
|
|
81
|
-
{
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
{projectName ? <Chip label="Project" value={projectName} tone="info" /> : null}
|
|
87
|
+
{cwdShort ? <Chip label="CWD" value={cwdShort} tone="subtle" /> : null}
|
|
88
|
+
{trustChip}
|
|
89
|
+
</Box>
|
|
90
|
+
</ChipRow>
|
|
91
|
+
|
|
92
|
+
{/* Row 2: IP/server info (left) + UI chips (right) */}
|
|
93
|
+
<Box flexDirection="row" justifyContent="space-between" alignItems="center">
|
|
94
|
+
<Box>
|
|
95
|
+
{ip ? (
|
|
96
|
+
<Text color="green" dimColor>IP: {ip}</Text>
|
|
85
97
|
) : (
|
|
86
|
-
<
|
|
98
|
+
<Text color="yellow" dimColor>{ready ? 'Server ready' : 'Starting server…'}</Text>
|
|
87
99
|
)}
|
|
88
100
|
</Box>
|
|
89
|
-
|
|
90
|
-
{/* Right: UI Status merged display */}
|
|
91
101
|
<Box>
|
|
92
102
|
<Chip
|
|
93
103
|
label="UI"
|
|
@@ -95,7 +105,7 @@ export const TopToolbar: React.FC<Props> = memo(({ ready, page, animEnabled, tip
|
|
|
95
105
|
tone={uiTone as any}
|
|
96
106
|
/>
|
|
97
107
|
</Box>
|
|
98
|
-
</
|
|
108
|
+
</Box>
|
|
99
109
|
|
|
100
110
|
{!compact && (
|
|
101
111
|
<ChipRow>
|