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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingocode",
3
- "version": "1.1.114",
3
+ "version": "1.1.115",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "claude": "bin/claude-win.cjs",
@@ -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.2;P=toolbar;D=CLI;M=cli;S=ui;In=Props;Out=JSX.Element
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" minHeight={3}>
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={2}>
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 || '—'} tone="info" />
80
- <Chip label="CWD" value={cwdShort || '—'} tone="subtle" />
81
- {trustedPath === undefined || trustAccepted === undefined ? (
82
- <Chip label="Trust" value="…" tone="subtle" />
83
- ) : trustedPath && trustAccepted ? (
84
- <Chip label="Trust" value="✅ Trusted" tone="success" />
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
- <Chip label="Trust" value="🔒 Untrusted" tone="warning" />
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
- </ChipRow>
108
+ </Box>
99
109
 
100
110
  {!compact && (
101
111
  <ChipRow>