opencode-account-manager 0.6.1 → 0.6.2
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/tui/components/AccountList.js +4 -4
- package/dist/tui/components/AccountList.js.map +1 -1
- package/dist/tui/components/ActionPalette.d.ts.map +1 -1
- package/dist/tui/components/ActionPalette.js +3 -3
- package/dist/tui/components/ActionPalette.js.map +1 -1
- package/dist/tui/components/DashboardView.d.ts.map +1 -1
- package/dist/tui/components/DashboardView.js +85 -40
- package/dist/tui/components/DashboardView.js.map +1 -1
- package/dist/tui/components/McpServerList.js +3 -3
- package/dist/tui/components/McpServerList.js.map +1 -1
- package/dist/tui/components/Menu.js +2 -2
- package/dist/tui/components/Menu.js.map +1 -1
- package/dist/tui/components/ProviderList.d.ts.map +1 -1
- package/dist/tui/components/ProviderList.js +3 -3
- package/dist/tui/components/ProviderList.js.map +1 -1
- package/package.json +1 -1
- package/src/tui/components/AccountList.tsx +4 -4
- package/src/tui/components/ActionPalette.tsx +3 -6
- package/src/tui/components/DashboardView.tsx +99 -45
- package/src/tui/components/McpServerList.tsx +4 -4
- package/src/tui/components/Menu.tsx +2 -2
- package/src/tui/components/ProviderList.tsx +3 -5
|
@@ -50,13 +50,13 @@ function AccountRow({ account, isSelected, isChecked, showCheckbox }) {
|
|
|
50
50
|
? (isChecked ? "[x]" : "[ ]")
|
|
51
51
|
: "";
|
|
52
52
|
const cursor = isSelected ? ">" : " ";
|
|
53
|
-
const emailColor = status === "disabled" ? "gray" :
|
|
53
|
+
const emailColor = status === "disabled" ? "gray" : "white";
|
|
54
54
|
return (react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
|
|
55
55
|
react_1.default.createElement(ink_1.Box, { flexDirection: "row", paddingX: 1 },
|
|
56
56
|
react_1.default.createElement(ink_1.Box, { width: 2 },
|
|
57
|
-
react_1.default.createElement(ink_1.Text, { color: isSelected ? "
|
|
57
|
+
react_1.default.createElement(ink_1.Text, { color: isSelected ? "white" : "gray" }, cursor)),
|
|
58
58
|
showCheckbox && (react_1.default.createElement(ink_1.Box, { width: 4 },
|
|
59
|
-
react_1.default.createElement(ink_1.Text, { color: isChecked ? "
|
|
59
|
+
react_1.default.createElement(ink_1.Text, { color: isChecked ? "white" : "gray" }, checkbox))),
|
|
60
60
|
react_1.default.createElement(ink_1.Box, { width: 28 },
|
|
61
61
|
react_1.default.createElement(ink_1.Text, { color: emailColor, strikethrough: status === "disabled" }, account.email)),
|
|
62
62
|
react_1.default.createElement(ink_1.Box, { width: 18 },
|
|
@@ -66,7 +66,7 @@ function AccountRow({ account, isSelected, isChecked, showCheckbox }) {
|
|
|
66
66
|
react_1.default.createElement(ink_1.Box, { width: 10 },
|
|
67
67
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, resetIn))),
|
|
68
68
|
status === "limited" && limitDetails.length > 0 && (react_1.default.createElement(ink_1.Box, { paddingLeft: showCheckbox ? 8 : 4 },
|
|
69
|
-
react_1.default.createElement(ink_1.Text, {
|
|
69
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true },
|
|
70
70
|
"\u2514\u2500 ",
|
|
71
71
|
limitDetails.join(" | "))))));
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountList.js","sourceRoot":"","sources":["../../../src/tui/components/AccountList.tsx"],"names":[],"mappings":";;;;;AAqDA,gCA8CC;AASD,kCA8CC;AA1JD,kDAA0B;AAC1B,6BAAgC;AAChC,+CAA4C;AAU5C,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;IACnD,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IAKxC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,2CAA2C;IAC3C,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,cAAc,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,cAAc,CAAC,SAAS,GAAG,GAAG,CAAC;QACxC,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAmB;IAC1F,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,gBAAgB,IAAI,GAAG,CAAC;IAErE,MAAM,QAAQ,GAAG,YAAY;QAC3B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"AccountList.js","sourceRoot":"","sources":["../../../src/tui/components/AccountList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPalette.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ActionPalette.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ActionPalette.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ActionPalette.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,qBAmG/E"}
|
|
@@ -82,9 +82,9 @@ function ActionPalette({ actions, onSelect, onClose }) {
|
|
|
82
82
|
setSelectedIndex(0);
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
|
-
return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", borderStyle: "round", borderColor: "
|
|
85
|
+
return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", borderStyle: "round", borderColor: "gray", paddingX: 1, paddingY: 0 },
|
|
86
86
|
react_1.default.createElement(ink_1.Box, { marginBottom: 1 },
|
|
87
|
-
react_1.default.createElement(ink_1.Text, {
|
|
87
|
+
react_1.default.createElement(ink_1.Text, { bold: true },
|
|
88
88
|
">",
|
|
89
89
|
" "),
|
|
90
90
|
react_1.default.createElement(ink_1.Text, null, search || " "),
|
|
@@ -92,7 +92,7 @@ function ActionPalette({ actions, onSelect, onClose }) {
|
|
|
92
92
|
react_1.default.createElement(ink_1.Box, { flexDirection: "column", marginBottom: 1 }, filteredActions.length === 0 ? (react_1.default.createElement(ink_1.Text, { dimColor: true }, "No matching actions")) : (filteredActions.slice(0, 10).map((action, index) => {
|
|
93
93
|
const isSelected = index === selectedIndex;
|
|
94
94
|
return (react_1.default.createElement(ink_1.Box, { key: action.id },
|
|
95
|
-
react_1.default.createElement(ink_1.Text, {
|
|
95
|
+
react_1.default.createElement(ink_1.Text, { inverse: isSelected, dimColor: !isSelected },
|
|
96
96
|
isSelected ? "▸ " : " ",
|
|
97
97
|
action.label),
|
|
98
98
|
action.shortcut && (react_1.default.createElement(ink_1.Text, { dimColor: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPalette.js","sourceRoot":"","sources":["../../../src/tui/components/ActionPalette.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,
|
|
1
|
+
{"version":3,"file":"ActionPalette.js","sourceRoot":"","sources":["../../../src/tui/components/ActionPalette.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardView.d.ts","sourceRoot":"","sources":["../../../src/tui/components/DashboardView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"DashboardView.d.ts","sourceRoot":"","sources":["../../../src/tui/components/DashboardView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AA8KD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,kBAAkB,qBA2I5E"}
|
|
@@ -9,12 +9,20 @@ const ink_1 = require("ink");
|
|
|
9
9
|
// Model definitions with display names
|
|
10
10
|
const MODEL_CONFIGS = [
|
|
11
11
|
{ key: "claude", displayName: "Claude", shortName: "Claude" },
|
|
12
|
-
{ key: "gemini", displayName: "
|
|
13
|
-
{ key: "gemini-cli:gemini-3-flash-preview", displayName: "
|
|
14
|
-
{ key: "gemini-cli:
|
|
15
|
-
{ key: "gemini-cli:gemini-2.5-pro", displayName: "
|
|
16
|
-
{ key: "gemini-cli:
|
|
12
|
+
{ key: "gemini-cli:gemini-3-pro-preview", displayName: "G3 Pro", shortName: "G3 Pro" },
|
|
13
|
+
{ key: "gemini-cli:gemini-3-flash-preview", displayName: "G3 Flash", shortName: "G3 Fl" },
|
|
14
|
+
{ key: "gemini-cli:imagen-3", displayName: "G3 Image", shortName: "G3 Img" },
|
|
15
|
+
{ key: "gemini-cli:gemini-2.5-pro", displayName: "G2.5 Pro", shortName: "G2.5" },
|
|
16
|
+
{ key: "gemini-cli:gemini-2.0-flash", displayName: "G2 Flash", shortName: "G2 Fl" },
|
|
17
|
+
{ key: "gemini", displayName: "Gemini", shortName: "Gem" },
|
|
17
18
|
];
|
|
19
|
+
const DEFAULT_MODEL_KEYS = [
|
|
20
|
+
"claude",
|
|
21
|
+
"gemini-cli:gemini-3-pro-preview",
|
|
22
|
+
"gemini-cli:gemini-3-flash-preview",
|
|
23
|
+
"gemini-cli:imagen-3",
|
|
24
|
+
];
|
|
25
|
+
const MODEL_CONFIG_MAP = new Map(MODEL_CONFIGS.map((model) => [model.key, model]));
|
|
18
26
|
function formatTimeRemaining(resetTime) {
|
|
19
27
|
const now = Date.now();
|
|
20
28
|
if (resetTime <= now)
|
|
@@ -33,10 +41,10 @@ function calculatePercentage(resetTime) {
|
|
|
33
41
|
if (resetTime <= now)
|
|
34
42
|
return 100;
|
|
35
43
|
const remaining = resetTime - now;
|
|
36
|
-
const maxTime =
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
return
|
|
44
|
+
const maxTime = 24 * 3600000;
|
|
45
|
+
const clamped = Math.min(remaining, maxTime);
|
|
46
|
+
const elapsed = maxTime - clamped;
|
|
47
|
+
return Math.max(0, Math.min(100, Math.round((elapsed / maxTime) * 100)));
|
|
40
48
|
}
|
|
41
49
|
function getModelStatus(account, modelKey) {
|
|
42
50
|
const now = Date.now();
|
|
@@ -58,46 +66,77 @@ function getModelStatus(account, modelKey) {
|
|
|
58
66
|
resetTime,
|
|
59
67
|
};
|
|
60
68
|
}
|
|
61
|
-
function
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
function getModelDisplayName(model) {
|
|
70
|
+
if (model.includes(":")) {
|
|
71
|
+
const parts = model.split(":");
|
|
72
|
+
return parts[1] || parts[0];
|
|
73
|
+
}
|
|
74
|
+
return model;
|
|
75
|
+
}
|
|
76
|
+
function getModelShortName(model) {
|
|
77
|
+
const name = getModelDisplayName(model);
|
|
78
|
+
if (name.length <= 7)
|
|
79
|
+
return name;
|
|
80
|
+
return name.slice(0, 6) + "…";
|
|
81
|
+
}
|
|
82
|
+
function getDisplayModels(accounts) {
|
|
83
|
+
const activeKeys = new Set(DEFAULT_MODEL_KEYS);
|
|
84
|
+
accounts.forEach((acc) => {
|
|
66
85
|
if (acc.rateLimitResetTimes) {
|
|
67
|
-
Object.keys(acc.rateLimitResetTimes).forEach(key => {
|
|
86
|
+
Object.keys(acc.rateLimitResetTimes).forEach((key) => {
|
|
68
87
|
activeKeys.add(key);
|
|
69
88
|
});
|
|
70
89
|
}
|
|
71
90
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
91
|
+
const models = [];
|
|
92
|
+
DEFAULT_MODEL_KEYS.forEach((key) => {
|
|
93
|
+
const config = MODEL_CONFIG_MAP.get(key);
|
|
94
|
+
if (config)
|
|
95
|
+
models.push(config);
|
|
96
|
+
});
|
|
97
|
+
const extraKeys = Array.from(activeKeys).filter((key) => !DEFAULT_MODEL_KEYS.includes(key));
|
|
98
|
+
extraKeys.sort().forEach((key) => {
|
|
99
|
+
const config = MODEL_CONFIG_MAP.get(key);
|
|
100
|
+
if (config) {
|
|
101
|
+
models.push(config);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
models.push({
|
|
105
|
+
key,
|
|
106
|
+
displayName: getModelDisplayName(key),
|
|
107
|
+
shortName: getModelShortName(key),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
});
|
|
78
111
|
return models;
|
|
79
112
|
}
|
|
113
|
+
function formatLastUsed(timestamp) {
|
|
114
|
+
if (!timestamp)
|
|
115
|
+
return "--";
|
|
116
|
+
const date = new Date(timestamp);
|
|
117
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
118
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
119
|
+
const hours = String(date.getHours()).padStart(2, "0");
|
|
120
|
+
const minutes = String(date.getMinutes()).padStart(2, "0");
|
|
121
|
+
return `${month}/${day} ${hours}:${minutes}`;
|
|
122
|
+
}
|
|
80
123
|
// Progress bar component using text
|
|
81
|
-
function ProgressBar({ percentage, width =
|
|
124
|
+
function ProgressBar({ percentage, width = 6 }) {
|
|
82
125
|
const filled = Math.round((percentage / 100) * width);
|
|
83
126
|
const empty = width - filled;
|
|
84
|
-
|
|
85
|
-
const color = percentage === 100 ? "white" : percentage >= 50 ? "gray" : "gray";
|
|
86
|
-
return (react_1.default.createElement(ink_1.Text, { color: color },
|
|
127
|
+
return (react_1.default.createElement(ink_1.Text, null,
|
|
87
128
|
"█".repeat(filled),
|
|
88
129
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, "░".repeat(empty))));
|
|
89
130
|
}
|
|
90
131
|
// Model cell component
|
|
91
|
-
function ModelCell({ status, width =
|
|
132
|
+
function ModelCell({ status, width = 20 }) {
|
|
92
133
|
return (react_1.default.createElement(ink_1.Box, { width: width },
|
|
93
134
|
react_1.default.createElement(ink_1.Box, { width: 8 },
|
|
94
135
|
react_1.default.createElement(ProgressBar, { percentage: status.percentage, width: 6 })),
|
|
95
|
-
react_1.default.createElement(ink_1.Box, { width:
|
|
96
|
-
react_1.default.createElement(ink_1.Text, { dimColor: true }, status.timeRemaining.padStart(
|
|
97
|
-
react_1.default.createElement(ink_1.Box, { width:
|
|
98
|
-
react_1.default.createElement(ink_1.Text, {
|
|
99
|
-
String(status.percentage).padStart(3),
|
|
100
|
-
"%"))));
|
|
136
|
+
react_1.default.createElement(ink_1.Box, { width: 7 },
|
|
137
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true }, status.timeRemaining.padStart(6))),
|
|
138
|
+
react_1.default.createElement(ink_1.Box, { width: 5 },
|
|
139
|
+
react_1.default.createElement(ink_1.Text, null, `${status.percentage}%`.padStart(4)))));
|
|
101
140
|
}
|
|
102
141
|
function DashboardView({ accounts, selectedIndex }) {
|
|
103
142
|
if (accounts.length === 0) {
|
|
@@ -105,19 +144,23 @@ function DashboardView({ accounts, selectedIndex }) {
|
|
|
105
144
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, "No accounts configured."),
|
|
106
145
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, "Press P to open actions and import accounts.")));
|
|
107
146
|
}
|
|
108
|
-
const
|
|
109
|
-
const modelColumnWidth =
|
|
147
|
+
const displayModels = getDisplayModels(accounts);
|
|
148
|
+
const modelColumnWidth = 20;
|
|
110
149
|
const emailWidth = 28;
|
|
150
|
+
const lastUsedWidth = 14;
|
|
151
|
+
const totalWidth = 3 + emailWidth + displayModels.length * modelColumnWidth + lastUsedWidth;
|
|
111
152
|
return (react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
|
|
112
153
|
react_1.default.createElement(ink_1.Box, { paddingX: 1 },
|
|
113
154
|
react_1.default.createElement(ink_1.Box, { width: 3 },
|
|
114
155
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, " ")),
|
|
115
156
|
react_1.default.createElement(ink_1.Box, { width: emailWidth },
|
|
116
157
|
react_1.default.createElement(ink_1.Text, { dimColor: true, bold: true }, "EMAIL")),
|
|
117
|
-
|
|
118
|
-
react_1.default.createElement(ink_1.Text, { dimColor: true, bold: true }, model.shortName))))
|
|
158
|
+
displayModels.map(model => (react_1.default.createElement(ink_1.Box, { key: model.key, width: modelColumnWidth },
|
|
159
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true, bold: true }, model.shortName)))),
|
|
160
|
+
react_1.default.createElement(ink_1.Box, { width: lastUsedWidth },
|
|
161
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true, bold: true }, "LAST USED"))),
|
|
119
162
|
react_1.default.createElement(ink_1.Box, { paddingX: 1 },
|
|
120
|
-
react_1.default.createElement(ink_1.Text, { dimColor: true }, "─".repeat(
|
|
163
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true }, "─".repeat(totalWidth))),
|
|
121
164
|
accounts.map((account, index) => {
|
|
122
165
|
const isSelected = index === selectedIndex;
|
|
123
166
|
const isDisabled = account.enabled === false;
|
|
@@ -130,17 +173,19 @@ function DashboardView({ accounts, selectedIndex }) {
|
|
|
130
173
|
react_1.default.createElement(ink_1.Text, { bold: isSelected }, isSelected ? "› " : " ")),
|
|
131
174
|
react_1.default.createElement(ink_1.Box, { width: emailWidth },
|
|
132
175
|
react_1.default.createElement(ink_1.Text, { bold: isSelected, dimColor: isDisabled }, email)),
|
|
133
|
-
|
|
176
|
+
displayModels.map(model => {
|
|
134
177
|
const status = getModelStatus(account, model.key);
|
|
135
178
|
if (isDisabled) {
|
|
136
179
|
return (react_1.default.createElement(ink_1.Box, { key: model.key, width: modelColumnWidth },
|
|
137
180
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, "\u2500\u2500 disabled \u2500\u2500")));
|
|
138
181
|
}
|
|
139
182
|
return (react_1.default.createElement(ModelCell, { key: model.key, status: status, width: modelColumnWidth }));
|
|
140
|
-
})
|
|
183
|
+
}),
|
|
184
|
+
react_1.default.createElement(ink_1.Box, { width: lastUsedWidth },
|
|
185
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true }, formatLastUsed(account.lastUsed)))));
|
|
141
186
|
}),
|
|
142
187
|
react_1.default.createElement(ink_1.Box, { paddingX: 1, marginTop: 1 },
|
|
143
|
-
react_1.default.createElement(ink_1.Text, { dimColor: true }, "─".repeat(
|
|
188
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true }, "─".repeat(totalWidth))),
|
|
144
189
|
react_1.default.createElement(ink_1.Box, { paddingX: 1 },
|
|
145
190
|
react_1.default.createElement(ink_1.Text, { dimColor: true },
|
|
146
191
|
accounts.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardView.js","sourceRoot":"","sources":["../../../src/tui/components/DashboardView.tsx"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"DashboardView.js","sourceRoot":"","sources":["../../../src/tui/components/DashboardView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,9 +23,9 @@ function McpServerList({ servers }) {
|
|
|
23
23
|
react_1.default.createElement(ink_1.Text, { bold: true, dimColor: true }, "COMMAND"))),
|
|
24
24
|
servers.map((server) => (react_1.default.createElement(ink_1.Box, { key: server.id },
|
|
25
25
|
react_1.default.createElement(ink_1.Box, { width: 20 },
|
|
26
|
-
react_1.default.createElement(ink_1.Text,
|
|
27
|
-
react_1.default.createElement(ink_1.Box, { width: 10 }, server.enabled ? (react_1.default.createElement(ink_1.Text,
|
|
28
|
-
react_1.default.createElement(ink_1.Box, { width: 8 }, server.hasEnvVars ? (react_1.default.createElement(ink_1.Text,
|
|
26
|
+
react_1.default.createElement(ink_1.Text, null, truncate(server.id, 18))),
|
|
27
|
+
react_1.default.createElement(ink_1.Box, { width: 10 }, server.enabled ? (react_1.default.createElement(ink_1.Text, null, "enabled")) : (react_1.default.createElement(ink_1.Text, { dimColor: true }, "disabled"))),
|
|
28
|
+
react_1.default.createElement(ink_1.Box, { width: 8 }, server.hasEnvVars ? (react_1.default.createElement(ink_1.Text, null, server.envVarCount)) : (react_1.default.createElement(ink_1.Text, { dimColor: true }, "-"))),
|
|
29
29
|
react_1.default.createElement(ink_1.Box, null,
|
|
30
30
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, truncate(server.command, 40))))))));
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpServerList.js","sourceRoot":"","sources":["../../../src/tui/components/McpServerList.tsx"],"names":[],"mappings":";;;;;AAQA,sCAsDC;AA9DD,kDAA0B;AAC1B,6BAAgC;AAOhC,SAAgB,aAAa,CAAC,EAAE,OAAO,EAAsB;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CACL,8BAAC,SAAG,IAAC,QAAQ,EAAE,CAAC;YACd,8BAAC,UAAI,IAAC,QAAQ,sCAAiC,CAC3C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC;QAErC,8BAAC,SAAG;YACF,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,mBAAc,CAC7B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,mBAAc,CAC7B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,CAAC;gBACX,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,gBAAW,CAC1B;YACN,8BAAC,SAAG;gBACF,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,oBAAe,CAC9B,CACF;QAGL,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,8BAAC,SAAG,IAAC,GAAG,EAAE,MAAM,CAAC,EAAE;YACjB,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,
|
|
1
|
+
{"version":3,"file":"McpServerList.js","sourceRoot":"","sources":["../../../src/tui/components/McpServerList.tsx"],"names":[],"mappings":";;;;;AAQA,sCAsDC;AA9DD,kDAA0B;AAC1B,6BAAgC;AAOhC,SAAgB,aAAa,CAAC,EAAE,OAAO,EAAsB;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CACL,8BAAC,SAAG,IAAC,QAAQ,EAAE,CAAC;YACd,8BAAC,UAAI,IAAC,QAAQ,sCAAiC,CAC3C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC;QAErC,8BAAC,SAAG;YACF,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,mBAAc,CAC7B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,mBAAc,CAC7B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,CAAC;gBACX,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,gBAAW,CAC1B;YACN,8BAAC,SAAG;gBACF,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,oBAAe,CAC9B,CACF;QAGL,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,8BAAC,SAAG,IAAC,GAAG,EAAE,MAAM,CAAC,EAAE;YACjB,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAQ,CAClC;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE,IACX,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAChB,8BAAC,UAAI,kBAAe,CACrB,CAAC,CAAC,CAAC,CACF,8BAAC,UAAI,IAAC,QAAQ,qBAAgB,CAC/B,CACG;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,CAAC,IACV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CACnB,8BAAC,UAAI,QAAE,MAAM,CAAC,WAAW,CAAQ,CAClC,CAAC,CAAC,CAAC,CACF,8BAAC,UAAI,IAAC,QAAQ,cAAS,CACxB,CACG;YACN,8BAAC,SAAG;gBACF,8BAAC,UAAI,IAAC,QAAQ,UAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAQ,CAChD,CACF,CACP,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC"}
|
|
@@ -70,11 +70,11 @@ function MenuBar({ onSelect, selectMode = false, selectedCount = 0 }) {
|
|
|
70
70
|
});
|
|
71
71
|
return (react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
|
|
72
72
|
selectMode && (react_1.default.createElement(ink_1.Box, { marginBottom: 1, paddingX: 1 },
|
|
73
|
-
react_1.default.createElement(ink_1.Text, {
|
|
73
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true, bold: true },
|
|
74
74
|
"SELECT MODE - ",
|
|
75
75
|
selectedCount,
|
|
76
76
|
" selected | \u2191\u2193 navigate | SPACE toggle | \u2190\u2192 switch section"))),
|
|
77
|
-
react_1.default.createElement(ink_1.Box, { borderStyle: "single", borderColor: selectMode ? "
|
|
77
|
+
react_1.default.createElement(ink_1.Box, { borderStyle: "single", borderColor: selectMode ? "white" : "gray", paddingX: 1, justifyContent: "space-between" }, visibleItems.map((item) => (react_1.default.createElement(ink_1.Text, { key: item.action + item.key, dimColor: true },
|
|
78
78
|
"[",
|
|
79
79
|
item.key,
|
|
80
80
|
"] ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/tui/components/Menu.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/tui/components/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderList.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ProviderList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,UAAU,iBAAiB;IACzB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ProviderList.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ProviderList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,UAAU,iBAAiB;IACzB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,qBA8C5D"}
|
|
@@ -23,11 +23,11 @@ function ProviderList({ providers }) {
|
|
|
23
23
|
react_1.default.createElement(ink_1.Text, { bold: true, dimColor: true }, "BASE URL"))),
|
|
24
24
|
providers.map((provider) => (react_1.default.createElement(ink_1.Box, { key: provider.id },
|
|
25
25
|
react_1.default.createElement(ink_1.Box, { width: 20 },
|
|
26
|
-
react_1.default.createElement(ink_1.Text,
|
|
26
|
+
react_1.default.createElement(ink_1.Text, null, truncate(provider.name || provider.id, 18))),
|
|
27
27
|
react_1.default.createElement(ink_1.Box, { width: 10 },
|
|
28
|
-
react_1.default.createElement(ink_1.Text,
|
|
28
|
+
react_1.default.createElement(ink_1.Text, null, provider.modelCount)),
|
|
29
29
|
react_1.default.createElement(ink_1.Box, { width: 10 },
|
|
30
|
-
react_1.default.createElement(ink_1.Text, {
|
|
30
|
+
react_1.default.createElement(ink_1.Text, { dimColor: true }, provider.type)),
|
|
31
31
|
react_1.default.createElement(ink_1.Box, null,
|
|
32
32
|
react_1.default.createElement(ink_1.Text, { dimColor: true }, provider.baseURL || "-")))))));
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderList.js","sourceRoot":"","sources":["../../../src/tui/components/ProviderList.tsx"],"names":[],"mappings":";;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"ProviderList.js","sourceRoot":"","sources":["../../../src/tui/components/ProviderList.tsx"],"names":[],"mappings":";;;;;AAQA,oCA8CC;AAtDD,kDAA0B;AAC1B,6BAAgC;AAOhC,SAAgB,YAAY,CAAC,EAAE,SAAS,EAAqB;IAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CACL,8BAAC,SAAG,IAAC,QAAQ,EAAE,CAAC;YACd,8BAAC,UAAI,IAAC,QAAQ,oCAA+B,CACzC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC;QAErC,8BAAC,SAAG;YACF,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,qBAAgB,CAC/B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,mBAAc,CAC7B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,iBAAY,CAC3B;YACN,8BAAC,SAAG;gBACF,8BAAC,UAAI,IAAC,IAAI,QAAC,QAAQ,qBAAgB,CAC/B,CACF;QAGL,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,8BAAC,SAAG,IAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;YACnB,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,QAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAQ,CACrD;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,QAAE,QAAQ,CAAC,UAAU,CAAQ,CAC9B;YACN,8BAAC,SAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,8BAAC,UAAI,IAAC,QAAQ,UAAE,QAAQ,CAAC,IAAI,CAAQ,CACjC;YACN,8BAAC,SAAG;gBACF,8BAAC,UAAI,IAAC,QAAQ,UAAE,QAAQ,CAAC,OAAO,IAAI,GAAG,CAAQ,CAC3C,CACF,CACP,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -60,17 +60,17 @@ export function AccountRow({ account, isSelected, isChecked, showCheckbox }: Acc
|
|
|
60
60
|
: "";
|
|
61
61
|
|
|
62
62
|
const cursor = isSelected ? ">" : " ";
|
|
63
|
-
const emailColor = status === "disabled" ? "gray" :
|
|
63
|
+
const emailColor = status === "disabled" ? "gray" : "white";
|
|
64
64
|
|
|
65
65
|
return (
|
|
66
66
|
<Box flexDirection="column">
|
|
67
67
|
<Box flexDirection="row" paddingX={1}>
|
|
68
68
|
<Box width={2}>
|
|
69
|
-
<Text color={isSelected ? "
|
|
69
|
+
<Text color={isSelected ? "white" : "gray"}>{cursor}</Text>
|
|
70
70
|
</Box>
|
|
71
71
|
{showCheckbox && (
|
|
72
72
|
<Box width={4}>
|
|
73
|
-
<Text color={isChecked ? "
|
|
73
|
+
<Text color={isChecked ? "white" : "gray"}>{checkbox}</Text>
|
|
74
74
|
</Box>
|
|
75
75
|
)}
|
|
76
76
|
<Box width={28}>
|
|
@@ -90,7 +90,7 @@ export function AccountRow({ account, isSelected, isChecked, showCheckbox }: Acc
|
|
|
90
90
|
</Box>
|
|
91
91
|
{status === "limited" && limitDetails.length > 0 && (
|
|
92
92
|
<Box paddingLeft={showCheckbox ? 8 : 4}>
|
|
93
|
-
<Text
|
|
93
|
+
<Text dimColor>
|
|
94
94
|
└─ {limitDetails.join(" | ")}
|
|
95
95
|
</Text>
|
|
96
96
|
</Box>
|
|
@@ -75,13 +75,13 @@ export function ActionPalette({ actions, onSelect, onClose }: ActionPaletteProps
|
|
|
75
75
|
<Box
|
|
76
76
|
flexDirection="column"
|
|
77
77
|
borderStyle="round"
|
|
78
|
-
borderColor="
|
|
78
|
+
borderColor="gray"
|
|
79
79
|
paddingX={1}
|
|
80
80
|
paddingY={0}
|
|
81
81
|
>
|
|
82
82
|
{/* Search input */}
|
|
83
83
|
<Box marginBottom={1}>
|
|
84
|
-
<Text
|
|
84
|
+
<Text bold>{">"} </Text>
|
|
85
85
|
<Text>{search || " "}</Text>
|
|
86
86
|
<Text color="gray">_</Text>
|
|
87
87
|
</Box>
|
|
@@ -95,10 +95,7 @@ export function ActionPalette({ actions, onSelect, onClose }: ActionPaletteProps
|
|
|
95
95
|
const isSelected = index === selectedIndex;
|
|
96
96
|
return (
|
|
97
97
|
<Box key={action.id}>
|
|
98
|
-
<Text
|
|
99
|
-
backgroundColor={isSelected ? "cyan" : undefined}
|
|
100
|
-
color={isSelected ? "black" : "white"}
|
|
101
|
-
>
|
|
98
|
+
<Text inverse={isSelected} dimColor={!isSelected}>
|
|
102
99
|
{isSelected ? "▸ " : " "}
|
|
103
100
|
{action.label}
|
|
104
101
|
</Text>
|
|
@@ -7,16 +7,32 @@ interface DashboardViewProps {
|
|
|
7
7
|
selectedIndex: number;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
interface ModelConfig {
|
|
11
|
+
key: string;
|
|
12
|
+
displayName: string;
|
|
13
|
+
shortName: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
10
16
|
// Model definitions with display names
|
|
11
|
-
const MODEL_CONFIGS = [
|
|
17
|
+
const MODEL_CONFIGS: ModelConfig[] = [
|
|
12
18
|
{ key: "claude", displayName: "Claude", shortName: "Claude" },
|
|
13
|
-
{ key: "gemini", displayName: "
|
|
14
|
-
{ key: "gemini-cli:gemini-3-flash-preview", displayName: "
|
|
15
|
-
{ key: "gemini-cli:
|
|
16
|
-
{ key: "gemini-cli:gemini-2.5-pro", displayName: "
|
|
17
|
-
{ key: "gemini-cli:
|
|
19
|
+
{ key: "gemini-cli:gemini-3-pro-preview", displayName: "G3 Pro", shortName: "G3 Pro" },
|
|
20
|
+
{ key: "gemini-cli:gemini-3-flash-preview", displayName: "G3 Flash", shortName: "G3 Fl" },
|
|
21
|
+
{ key: "gemini-cli:imagen-3", displayName: "G3 Image", shortName: "G3 Img" },
|
|
22
|
+
{ key: "gemini-cli:gemini-2.5-pro", displayName: "G2.5 Pro", shortName: "G2.5" },
|
|
23
|
+
{ key: "gemini-cli:gemini-2.0-flash", displayName: "G2 Flash", shortName: "G2 Fl" },
|
|
24
|
+
{ key: "gemini", displayName: "Gemini", shortName: "Gem" },
|
|
18
25
|
];
|
|
19
26
|
|
|
27
|
+
const DEFAULT_MODEL_KEYS = [
|
|
28
|
+
"claude",
|
|
29
|
+
"gemini-cli:gemini-3-pro-preview",
|
|
30
|
+
"gemini-cli:gemini-3-flash-preview",
|
|
31
|
+
"gemini-cli:imagen-3",
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const MODEL_CONFIG_MAP = new Map(MODEL_CONFIGS.map((model) => [model.key, model]));
|
|
35
|
+
|
|
20
36
|
interface ModelStatus {
|
|
21
37
|
available: boolean;
|
|
22
38
|
timeRemaining: string;
|
|
@@ -44,10 +60,10 @@ function calculatePercentage(resetTime: number): number {
|
|
|
44
60
|
if (resetTime <= now) return 100;
|
|
45
61
|
|
|
46
62
|
const remaining = resetTime - now;
|
|
47
|
-
const maxTime =
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
return
|
|
63
|
+
const maxTime = 24 * 3600000;
|
|
64
|
+
const clamped = Math.min(remaining, maxTime);
|
|
65
|
+
const elapsed = maxTime - clamped;
|
|
66
|
+
return Math.max(0, Math.min(100, Math.round((elapsed / maxTime) * 100)));
|
|
51
67
|
}
|
|
52
68
|
|
|
53
69
|
function getModelStatus(account: Account, modelKey: string): ModelStatus {
|
|
@@ -74,40 +90,72 @@ function getModelStatus(account: Account, modelKey: string): ModelStatus {
|
|
|
74
90
|
};
|
|
75
91
|
}
|
|
76
92
|
|
|
77
|
-
function
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
function getModelDisplayName(model: string): string {
|
|
94
|
+
if (model.includes(":")) {
|
|
95
|
+
const parts = model.split(":");
|
|
96
|
+
return parts[1] || parts[0];
|
|
97
|
+
}
|
|
98
|
+
return model;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function getModelShortName(model: string): string {
|
|
102
|
+
const name = getModelDisplayName(model);
|
|
103
|
+
if (name.length <= 7) return name;
|
|
104
|
+
return name.slice(0, 6) + "…";
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function getDisplayModels(accounts: Account[]): ModelConfig[] {
|
|
108
|
+
const activeKeys = new Set<string>(DEFAULT_MODEL_KEYS);
|
|
109
|
+
|
|
110
|
+
accounts.forEach((acc) => {
|
|
83
111
|
if (acc.rateLimitResetTimes) {
|
|
84
|
-
Object.keys(acc.rateLimitResetTimes).forEach(key => {
|
|
112
|
+
Object.keys(acc.rateLimitResetTimes).forEach((key) => {
|
|
85
113
|
activeKeys.add(key);
|
|
86
114
|
});
|
|
87
115
|
}
|
|
88
116
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
117
|
+
|
|
118
|
+
const models: ModelConfig[] = [];
|
|
119
|
+
|
|
120
|
+
DEFAULT_MODEL_KEYS.forEach((key) => {
|
|
121
|
+
const config = MODEL_CONFIG_MAP.get(key);
|
|
122
|
+
if (config) models.push(config);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const extraKeys = Array.from(activeKeys).filter((key) => !DEFAULT_MODEL_KEYS.includes(key));
|
|
126
|
+
extraKeys.sort().forEach((key) => {
|
|
127
|
+
const config = MODEL_CONFIG_MAP.get(key);
|
|
128
|
+
if (config) {
|
|
129
|
+
models.push(config);
|
|
130
|
+
} else {
|
|
131
|
+
models.push({
|
|
132
|
+
key,
|
|
133
|
+
displayName: getModelDisplayName(key),
|
|
134
|
+
shortName: getModelShortName(key),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
98
139
|
return models;
|
|
99
140
|
}
|
|
100
141
|
|
|
142
|
+
function formatLastUsed(timestamp?: number): string {
|
|
143
|
+
if (!timestamp) return "--";
|
|
144
|
+
const date = new Date(timestamp);
|
|
145
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
146
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
147
|
+
const hours = String(date.getHours()).padStart(2, "0");
|
|
148
|
+
const minutes = String(date.getMinutes()).padStart(2, "0");
|
|
149
|
+
return `${month}/${day} ${hours}:${minutes}`;
|
|
150
|
+
}
|
|
151
|
+
|
|
101
152
|
// Progress bar component using text
|
|
102
|
-
function ProgressBar({ percentage, width =
|
|
153
|
+
function ProgressBar({ percentage, width = 6 }: { percentage: number; width?: number }) {
|
|
103
154
|
const filled = Math.round((percentage / 100) * width);
|
|
104
155
|
const empty = width - filled;
|
|
105
|
-
|
|
106
|
-
// Color based on percentage
|
|
107
|
-
const color = percentage === 100 ? "white" : percentage >= 50 ? "gray" : "gray";
|
|
108
|
-
|
|
156
|
+
|
|
109
157
|
return (
|
|
110
|
-
<Text
|
|
158
|
+
<Text>
|
|
111
159
|
{"█".repeat(filled)}
|
|
112
160
|
<Text dimColor>{"░".repeat(empty)}</Text>
|
|
113
161
|
</Text>
|
|
@@ -115,19 +163,17 @@ function ProgressBar({ percentage, width = 8 }: { percentage: number; width?: nu
|
|
|
115
163
|
}
|
|
116
164
|
|
|
117
165
|
// Model cell component
|
|
118
|
-
function ModelCell({ status, width =
|
|
166
|
+
function ModelCell({ status, width = 20 }: { status: ModelStatus; width?: number }) {
|
|
119
167
|
return (
|
|
120
168
|
<Box width={width}>
|
|
121
169
|
<Box width={8}>
|
|
122
170
|
<ProgressBar percentage={status.percentage} width={6} />
|
|
123
171
|
</Box>
|
|
124
|
-
<Box width={
|
|
125
|
-
<Text dimColor>{status.timeRemaining.padStart(
|
|
172
|
+
<Box width={7}>
|
|
173
|
+
<Text dimColor>{status.timeRemaining.padStart(6)}</Text>
|
|
126
174
|
</Box>
|
|
127
|
-
<Box width={
|
|
128
|
-
<Text
|
|
129
|
-
{String(status.percentage).padStart(3)}%
|
|
130
|
-
</Text>
|
|
175
|
+
<Box width={5}>
|
|
176
|
+
<Text>{`${status.percentage}%`.padStart(4)}</Text>
|
|
131
177
|
</Box>
|
|
132
178
|
</Box>
|
|
133
179
|
);
|
|
@@ -143,9 +189,11 @@ export function DashboardView({ accounts, selectedIndex }: DashboardViewProps) {
|
|
|
143
189
|
);
|
|
144
190
|
}
|
|
145
191
|
|
|
146
|
-
const
|
|
147
|
-
const modelColumnWidth =
|
|
192
|
+
const displayModels = getDisplayModels(accounts);
|
|
193
|
+
const modelColumnWidth = 20;
|
|
148
194
|
const emailWidth = 28;
|
|
195
|
+
const lastUsedWidth = 14;
|
|
196
|
+
const totalWidth = 3 + emailWidth + displayModels.length * modelColumnWidth + lastUsedWidth;
|
|
149
197
|
|
|
150
198
|
return (
|
|
151
199
|
<Box flexDirection="column">
|
|
@@ -157,16 +205,19 @@ export function DashboardView({ accounts, selectedIndex }: DashboardViewProps) {
|
|
|
157
205
|
<Box width={emailWidth}>
|
|
158
206
|
<Text dimColor bold>EMAIL</Text>
|
|
159
207
|
</Box>
|
|
160
|
-
{
|
|
208
|
+
{displayModels.map(model => (
|
|
161
209
|
<Box key={model.key} width={modelColumnWidth}>
|
|
162
210
|
<Text dimColor bold>{model.shortName}</Text>
|
|
163
211
|
</Box>
|
|
164
212
|
))}
|
|
213
|
+
<Box width={lastUsedWidth}>
|
|
214
|
+
<Text dimColor bold>LAST USED</Text>
|
|
215
|
+
</Box>
|
|
165
216
|
</Box>
|
|
166
217
|
|
|
167
218
|
{/* Separator */}
|
|
168
219
|
<Box paddingX={1}>
|
|
169
|
-
<Text dimColor>{"─".repeat(
|
|
220
|
+
<Text dimColor>{"─".repeat(totalWidth)}</Text>
|
|
170
221
|
</Box>
|
|
171
222
|
|
|
172
223
|
{/* Account rows */}
|
|
@@ -199,7 +250,7 @@ export function DashboardView({ accounts, selectedIndex }: DashboardViewProps) {
|
|
|
199
250
|
</Box>
|
|
200
251
|
|
|
201
252
|
{/* Model columns */}
|
|
202
|
-
{
|
|
253
|
+
{displayModels.map(model => {
|
|
203
254
|
const status = getModelStatus(account, model.key);
|
|
204
255
|
|
|
205
256
|
if (isDisabled) {
|
|
@@ -218,13 +269,16 @@ export function DashboardView({ accounts, selectedIndex }: DashboardViewProps) {
|
|
|
218
269
|
/>
|
|
219
270
|
);
|
|
220
271
|
})}
|
|
272
|
+
<Box width={lastUsedWidth}>
|
|
273
|
+
<Text dimColor>{formatLastUsed(account.lastUsed)}</Text>
|
|
274
|
+
</Box>
|
|
221
275
|
</Box>
|
|
222
276
|
);
|
|
223
277
|
})}
|
|
224
278
|
|
|
225
279
|
{/* Summary */}
|
|
226
280
|
<Box paddingX={1} marginTop={1}>
|
|
227
|
-
<Text dimColor>{"─".repeat(
|
|
281
|
+
<Text dimColor>{"─".repeat(totalWidth)}</Text>
|
|
228
282
|
</Box>
|
|
229
283
|
|
|
230
284
|
<Box paddingX={1}>
|
|
@@ -37,18 +37,18 @@ export function McpServerList({ servers }: McpServerListProps) {
|
|
|
37
37
|
{servers.map((server) => (
|
|
38
38
|
<Box key={server.id}>
|
|
39
39
|
<Box width={20}>
|
|
40
|
-
<Text
|
|
40
|
+
<Text>{truncate(server.id, 18)}</Text>
|
|
41
41
|
</Box>
|
|
42
42
|
<Box width={10}>
|
|
43
43
|
{server.enabled ? (
|
|
44
|
-
<Text
|
|
44
|
+
<Text>enabled</Text>
|
|
45
45
|
) : (
|
|
46
|
-
<Text
|
|
46
|
+
<Text dimColor>disabled</Text>
|
|
47
47
|
)}
|
|
48
48
|
</Box>
|
|
49
49
|
<Box width={8}>
|
|
50
50
|
{server.hasEnvVars ? (
|
|
51
|
-
<Text
|
|
51
|
+
<Text>{server.envVarCount}</Text>
|
|
52
52
|
) : (
|
|
53
53
|
<Text dimColor>-</Text>
|
|
54
54
|
)}
|
|
@@ -81,14 +81,14 @@ export function MenuBar({ onSelect, selectMode = false, selectedCount = 0 }: Men
|
|
|
81
81
|
<Box flexDirection="column">
|
|
82
82
|
{selectMode && (
|
|
83
83
|
<Box marginBottom={1} paddingX={1}>
|
|
84
|
-
<Text
|
|
84
|
+
<Text dimColor bold>
|
|
85
85
|
SELECT MODE - {selectedCount} selected | ↑↓ navigate | SPACE toggle | ←→ switch section
|
|
86
86
|
</Text>
|
|
87
87
|
</Box>
|
|
88
88
|
)}
|
|
89
89
|
<Box
|
|
90
90
|
borderStyle="single"
|
|
91
|
-
borderColor={selectMode ? "
|
|
91
|
+
borderColor={selectMode ? "white" : "gray"}
|
|
92
92
|
paddingX={1}
|
|
93
93
|
justifyContent="space-between"
|
|
94
94
|
>
|
|
@@ -37,15 +37,13 @@ export function ProviderList({ providers }: ProviderListProps) {
|
|
|
37
37
|
{providers.map((provider) => (
|
|
38
38
|
<Box key={provider.id}>
|
|
39
39
|
<Box width={20}>
|
|
40
|
-
<Text
|
|
40
|
+
<Text>{truncate(provider.name || provider.id, 18)}</Text>
|
|
41
41
|
</Box>
|
|
42
42
|
<Box width={10}>
|
|
43
|
-
<Text
|
|
43
|
+
<Text>{provider.modelCount}</Text>
|
|
44
44
|
</Box>
|
|
45
45
|
<Box width={10}>
|
|
46
|
-
<Text
|
|
47
|
-
{provider.type}
|
|
48
|
-
</Text>
|
|
46
|
+
<Text dimColor>{provider.type}</Text>
|
|
49
47
|
</Box>
|
|
50
48
|
<Box>
|
|
51
49
|
<Text dimColor>{provider.baseURL || "-"}</Text>
|