opencode-account-manager 0.6.5 → 0.6.7

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.
@@ -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,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIhE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACrD;AA+KD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,kBAAkB,qBA8L3F"}
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,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIhE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACrD;AA+KD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,kBAAkB,qBA6N3F"}
@@ -146,12 +146,30 @@ function DashboardView({ accounts, selectedIndex, healthResults }) {
146
146
  react_1.default.createElement(ink_1.Text, { dimColor: true }, "No accounts configured."),
147
147
  react_1.default.createElement(ink_1.Text, { dimColor: true }, "Press P to open actions and import accounts.")));
148
148
  }
149
- const displayModels = getDisplayModels(accounts);
149
+ const { stdout } = (0, ink_1.useStdout)();
150
+ const terminalColumns = stdout?.columns ?? 120;
151
+ const terminalRows = stdout?.rows ?? 30;
152
+ const allModels = getDisplayModels(accounts);
150
153
  const modelColumnWidth = 20;
151
- const emailWidth = 28;
152
154
  const healthWidth = 2;
153
155
  const lastUsedWidth = 14;
154
- const totalWidth = 3 + emailWidth + healthWidth + displayModels.length * modelColumnWidth + lastUsedWidth;
156
+ const innerWidth = Math.max(60, terminalColumns - 6);
157
+ const baseWidth = 3 + healthWidth + lastUsedWidth;
158
+ const maxEmailWidth = Math.min(28, Math.max(12, innerWidth - baseWidth - modelColumnWidth));
159
+ const emailWidth = maxEmailWidth;
160
+ const remainingWidth = innerWidth - baseWidth - emailWidth;
161
+ const maxModels = Math.max(1, Math.floor(remainingWidth / modelColumnWidth));
162
+ const displayModels = allModels.slice(0, maxModels);
163
+ const totalWidth = baseWidth + emailWidth + displayModels.length * modelColumnWidth;
164
+ const maxRowsFromTerminal = Math.max(8, terminalRows - 18);
165
+ const visibleRows = Math.max(8, Math.min(maxRowsFromTerminal, accounts.length || 8));
166
+ const maxOffset = Math.max(0, accounts.length - visibleRows);
167
+ const scrollOffset = Math.max(0, Math.min(selectedIndex - Math.floor(visibleRows / 2), maxOffset));
168
+ const visibleAccounts = accounts.slice(scrollOffset, scrollOffset + visibleRows);
169
+ const paddedAccounts = [
170
+ ...visibleAccounts,
171
+ ...Array.from({ length: Math.max(0, visibleRows - visibleAccounts.length) }, () => undefined),
172
+ ];
155
173
  const healthCounts = healthResults
156
174
  ? accounts.reduce((acc, account) => {
157
175
  const status = healthResults[(0, config_store_1.normalizeHealthKey)(account.email)]?.status || "not_checked";
@@ -186,22 +204,27 @@ function DashboardView({ accounts, selectedIndex, healthResults }) {
186
204
  react_1.default.createElement(ink_1.Text, { dimColor: true, bold: true }, "LAST USED"))),
187
205
  react_1.default.createElement(ink_1.Box, { paddingX: 1 },
188
206
  react_1.default.createElement(ink_1.Text, { dimColor: true }, "─".repeat(totalWidth))),
189
- accounts.map((account, index) => {
190
- const isSelected = index === selectedIndex;
191
- const isDisabled = account.enabled === false;
192
- // Truncate email
193
- const email = account.email.length > emailWidth - 3
194
- ? account.email.slice(0, emailWidth - 6) + "..."
195
- : account.email;
196
- const health = healthResults?.[(0, config_store_1.normalizeHealthKey)(account.email)];
197
- return (react_1.default.createElement(ink_1.Box, { key: account.email, paddingX: 1 },
207
+ paddedAccounts.map((account, index) => {
208
+ const rowIndex = scrollOffset + index;
209
+ const isSelected = account ? rowIndex === selectedIndex : false;
210
+ const isDisabled = account ? account.enabled === false : false;
211
+ const email = account
212
+ ? (account.email.length > emailWidth - 3
213
+ ? account.email.slice(0, emailWidth - 6) + "..."
214
+ : account.email)
215
+ : "";
216
+ const health = account ? healthResults?.[(0, config_store_1.normalizeHealthKey)(account.email)] : undefined;
217
+ return (react_1.default.createElement(ink_1.Box, { key: account ? account.email : `empty-${index}`, paddingX: 1 },
198
218
  react_1.default.createElement(ink_1.Box, { width: 3 },
199
219
  react_1.default.createElement(ink_1.Text, { bold: isSelected }, isSelected ? "› " : " ")),
200
220
  react_1.default.createElement(ink_1.Box, { width: emailWidth },
201
- react_1.default.createElement(ink_1.Text, { bold: isSelected, dimColor: isDisabled }, email)),
202
- react_1.default.createElement(ink_1.Box, { width: healthWidth },
203
- react_1.default.createElement(HealthBadge_1.HealthBadge, { result: health, compact: true })),
221
+ react_1.default.createElement(ink_1.Text, { bold: isSelected, dimColor: isDisabled || !account }, email)),
222
+ react_1.default.createElement(ink_1.Box, { width: healthWidth }, account ? react_1.default.createElement(HealthBadge_1.HealthBadge, { result: health, compact: true }) : react_1.default.createElement(ink_1.Text, { dimColor: true }, " ")),
204
223
  displayModels.map(model => {
224
+ if (!account) {
225
+ return (react_1.default.createElement(ink_1.Box, { key: model.key, width: modelColumnWidth },
226
+ react_1.default.createElement(ink_1.Text, { dimColor: true }, " ".repeat(modelColumnWidth - 1))));
227
+ }
205
228
  const status = getModelStatus(account, model.key);
206
229
  if (isDisabled) {
207
230
  return (react_1.default.createElement(ink_1.Box, { key: model.key, width: modelColumnWidth },
@@ -210,7 +233,7 @@ function DashboardView({ accounts, selectedIndex, healthResults }) {
210
233
  return (react_1.default.createElement(ModelCell, { key: model.key, status: status, width: modelColumnWidth }));
211
234
  }),
212
235
  react_1.default.createElement(ink_1.Box, { width: lastUsedWidth },
213
- react_1.default.createElement(ink_1.Text, { dimColor: true }, formatLastUsed(account.lastUsed)))));
236
+ react_1.default.createElement(ink_1.Text, { dimColor: true }, account ? formatLastUsed(account.lastUsed) : ""))));
214
237
  }),
215
238
  react_1.default.createElement(ink_1.Box, { paddingX: 1, marginTop: 1 },
216
239
  react_1.default.createElement(ink_1.Text, { dimColor: true }, "─".repeat(totalWidth))),
@@ -256,12 +279,12 @@ function DashboardView({ accounts, selectedIndex, healthResults }) {
256
279
  react_1.default.createElement(ink_1.Text, { dimColor: true }, "\u2588\u2588\u2588\u2588 100%"),
257
280
  react_1.default.createElement(ink_1.Text, { dimColor: true }, " \u2591\u2591\u2591\u2591 limited "),
258
281
  react_1.default.createElement(ink_1.Text, { dimColor: true }, "\u2500\u2500 disabled "),
259
- react_1.default.createElement(ink_1.Text, { color: "green" }, "\u2713"),
282
+ react_1.default.createElement(ink_1.Text, { color: "green" }, "v"),
260
283
  react_1.default.createElement(ink_1.Text, { dimColor: true }, " ok "),
261
- react_1.default.createElement(ink_1.Text, { color: "yellow" }, "\u26A0"),
284
+ react_1.default.createElement(ink_1.Text, { color: "yellow" }, "!"),
262
285
  react_1.default.createElement(ink_1.Text, { dimColor: true }, " verify "),
263
- react_1.default.createElement(ink_1.Text, { color: "red" }, "\u2718"),
286
+ react_1.default.createElement(ink_1.Text, { color: "red" }, "x"),
264
287
  react_1.default.createElement(ink_1.Text, { dimColor: true }, " error "),
265
- react_1.default.createElement(ink_1.Text, { dimColor: true }, "\u00B7 unchecked"))));
288
+ react_1.default.createElement(ink_1.Text, { dimColor: true }, ". unchecked"))));
266
289
  }
267
290
  //# sourceMappingURL=DashboardView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardView.js","sourceRoot":"","sources":["../../../src/tui/components/DashboardView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DashboardView.js","sourceRoot":"","sources":["../../../src/tui/components/DashboardView.tsx"],"names":[],"mappings":"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"}
@@ -19,15 +19,15 @@ const HEALTH_COLORS = {
19
19
  not_configured: "gray",
20
20
  };
21
21
  const HEALTH_ICONS = {
22
- ok: "",
23
- verification_required: "",
24
- revoked: "",
25
- disabled: "",
26
- deleted: "",
27
- password_changed: "",
28
- network_error: "",
22
+ ok: "v",
23
+ verification_required: "!",
24
+ revoked: "x",
25
+ disabled: "-",
26
+ deleted: "x",
27
+ password_changed: "!",
28
+ network_error: "~",
29
29
  unknown_error: "?",
30
- not_checked: "·",
30
+ not_checked: ".",
31
31
  not_configured: "-",
32
32
  };
33
33
  const HEALTH_LABELS = {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "opencode-account-manager",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "description": "TUI Dashboard for OpenCode - View providers, MCP servers, and plugin accounts",
5
5
  "main": "dist/cli.js",
6
- "bin": {
7
- "ocam": "dist/cli.js",
8
- "opencode-account-manager": "dist/cli.js"
9
- },
6
+ "bin": {
7
+ "ocam": "dist/cli.js",
8
+ "opencode-account-manager": "dist/cli.js"
9
+ },
10
10
  "scripts": {
11
11
  "build": "npx tsc",
12
12
  "dev": "npx tsc -w",
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Box, Text } from "ink";
2
+ import { Box, Text, useStdout } from "ink";
3
3
  import { Account, AccountHealthResult } from "../../core/types";
4
4
  import { normalizeHealthKey } from "../../core/config-store";
5
5
  import { HealthBadge } from "./HealthBadge";
@@ -193,12 +193,34 @@ export function DashboardView({ accounts, selectedIndex, healthResults }: Dashbo
193
193
  );
194
194
  }
195
195
 
196
- const displayModels = getDisplayModels(accounts);
196
+ const { stdout } = useStdout();
197
+ const terminalColumns = stdout?.columns ?? 120;
198
+ const terminalRows = stdout?.rows ?? 30;
199
+
200
+ const allModels = getDisplayModels(accounts);
197
201
  const modelColumnWidth = 20;
198
- const emailWidth = 28;
199
202
  const healthWidth = 2;
200
203
  const lastUsedWidth = 14;
201
- const totalWidth = 3 + emailWidth + healthWidth + displayModels.length * modelColumnWidth + lastUsedWidth;
204
+
205
+ const innerWidth = Math.max(60, terminalColumns - 6);
206
+ const baseWidth = 3 + healthWidth + lastUsedWidth;
207
+ const maxEmailWidth = Math.min(28, Math.max(12, innerWidth - baseWidth - modelColumnWidth));
208
+ const emailWidth = maxEmailWidth;
209
+ const remainingWidth = innerWidth - baseWidth - emailWidth;
210
+ const maxModels = Math.max(1, Math.floor(remainingWidth / modelColumnWidth));
211
+ const displayModels = allModels.slice(0, maxModels);
212
+ const totalWidth = baseWidth + emailWidth + displayModels.length * modelColumnWidth;
213
+
214
+ const maxRowsFromTerminal = Math.max(8, terminalRows - 18);
215
+ const visibleRows = Math.max(8, Math.min(maxRowsFromTerminal, accounts.length || 8));
216
+ const maxOffset = Math.max(0, accounts.length - visibleRows);
217
+ const scrollOffset = Math.max(0, Math.min(selectedIndex - Math.floor(visibleRows / 2), maxOffset));
218
+ const visibleAccounts = accounts.slice(scrollOffset, scrollOffset + visibleRows);
219
+ const paddedAccounts: Array<Account | undefined> = [
220
+ ...visibleAccounts,
221
+ ...Array.from({ length: Math.max(0, visibleRows - visibleAccounts.length) }, () => undefined),
222
+ ];
223
+
202
224
 
203
225
  const healthCounts = healthResults
204
226
  ? accounts.reduce(
@@ -252,19 +274,21 @@ export function DashboardView({ accounts, selectedIndex, healthResults }: Dashbo
252
274
  </Box>
253
275
 
254
276
  {/* Account rows */}
255
- {accounts.map((account, index) => {
256
- const isSelected = index === selectedIndex;
257
- const isDisabled = account.enabled === false;
258
-
259
- // Truncate email
260
- const email = account.email.length > emailWidth - 3
261
- ? account.email.slice(0, emailWidth - 6) + "..."
262
- : account.email;
277
+ {paddedAccounts.map((account, index) => {
278
+ const rowIndex = scrollOffset + index;
279
+ const isSelected = account ? rowIndex === selectedIndex : false;
280
+ const isDisabled = account ? account.enabled === false : false;
263
281
 
264
- const health = healthResults?.[normalizeHealthKey(account.email)];
282
+ const email = account
283
+ ? (account.email.length > emailWidth - 3
284
+ ? account.email.slice(0, emailWidth - 6) + "..."
285
+ : account.email)
286
+ : "";
287
+
288
+ const health = account ? healthResults?.[normalizeHealthKey(account.email)] : undefined;
265
289
 
266
290
  return (
267
- <Box key={account.email} paddingX={1}>
291
+ <Box key={account ? account.email : `empty-${index}`} paddingX={1}>
268
292
  {/* Selection cursor */}
269
293
  <Box width={3}>
270
294
  <Text bold={isSelected}>
@@ -276,7 +300,7 @@ export function DashboardView({ accounts, selectedIndex, healthResults }: Dashbo
276
300
  <Box width={emailWidth}>
277
301
  <Text
278
302
  bold={isSelected}
279
- dimColor={isDisabled}
303
+ dimColor={isDisabled || !account}
280
304
  >
281
305
  {email}
282
306
  </Text>
@@ -284,36 +308,43 @@ export function DashboardView({ accounts, selectedIndex, healthResults }: Dashbo
284
308
 
285
309
  {/* Health indicator */}
286
310
  <Box width={healthWidth}>
287
- <HealthBadge result={health} compact={true} />
311
+ {account ? <HealthBadge result={health} compact={true} /> : <Text dimColor> </Text>}
288
312
  </Box>
289
313
 
290
314
  {/* Model columns */}
315
+ {displayModels.map(model => {
316
+ if (!account) {
317
+ return (
318
+ <Box key={model.key} width={modelColumnWidth}>
319
+ <Text dimColor>{" ".repeat(modelColumnWidth - 1)}</Text>
320
+ </Box>
321
+ );
322
+ }
291
323
 
292
- {displayModels.map(model => {
293
- const status = getModelStatus(account, model.key);
294
-
295
- if (isDisabled) {
296
- return (
297
- <Box key={model.key} width={modelColumnWidth}>
298
- <Text dimColor>── disabled ──</Text>
299
- </Box>
300
- );
301
- }
302
-
303
- return (
304
- <ModelCell
305
- key={model.key}
306
- status={status}
307
- width={modelColumnWidth}
308
- />
309
- );
310
- })}
311
- <Box width={lastUsedWidth}>
312
- <Text dimColor>{formatLastUsed(account.lastUsed)}</Text>
313
- </Box>
314
- </Box>
315
- );
316
- })}
324
+ const status = getModelStatus(account, model.key);
325
+
326
+ if (isDisabled) {
327
+ return (
328
+ <Box key={model.key} width={modelColumnWidth}>
329
+ <Text dimColor>── disabled ──</Text>
330
+ </Box>
331
+ );
332
+ }
333
+
334
+ return (
335
+ <ModelCell
336
+ key={model.key}
337
+ status={status}
338
+ width={modelColumnWidth}
339
+ />
340
+ );
341
+ })}
342
+ <Box width={lastUsedWidth}>
343
+ <Text dimColor>{account ? formatLastUsed(account.lastUsed) : ""}</Text>
344
+ </Box>
345
+ </Box>
346
+ );
347
+ })}
317
348
 
318
349
  {/* Summary */}
319
350
  <Box paddingX={1} marginTop={1}>
@@ -366,10 +397,10 @@ export function DashboardView({ accounts, selectedIndex, healthResults }: Dashbo
366
397
  <Text dimColor>████ 100%</Text>
367
398
  <Text dimColor> ░░░░ limited </Text>
368
399
  <Text dimColor>── disabled </Text>
369
- <Text color="green">✓</Text><Text dimColor> ok </Text>
370
- <Text color="yellow">⚠</Text><Text dimColor> verify </Text>
371
- <Text color="red">✘</Text><Text dimColor> error </Text>
372
- <Text dimColor unchecked</Text>
400
+ <Text color="green">v</Text><Text dimColor> ok </Text>
401
+ <Text color="yellow">!</Text><Text dimColor> verify </Text>
402
+ <Text color="red">x</Text><Text dimColor> error </Text>
403
+ <Text dimColor>. unchecked</Text>
373
404
  </Box>
374
405
  </Box>
375
406
  );
@@ -21,15 +21,15 @@ const HEALTH_COLORS: Record<AccountHealthStatus, string> = {
21
21
  };
22
22
 
23
23
  const HEALTH_ICONS: Record<AccountHealthStatus, string> = {
24
- ok: "",
25
- verification_required: "",
26
- revoked: "",
27
- disabled: "",
28
- deleted: "",
29
- password_changed: "",
30
- network_error: "",
24
+ ok: "v",
25
+ verification_required: "!",
26
+ revoked: "x",
27
+ disabled: "-",
28
+ deleted: "x",
29
+ password_changed: "!",
30
+ network_error: "~",
31
31
  unknown_error: "?",
32
- not_checked: "·",
32
+ not_checked: ".",
33
33
  not_configured: "-",
34
34
  };
35
35