@thelioo/opencode-balancer 0.1.5 → 0.1.8
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/server/auth-watcher.d.ts +1 -0
- package/dist/server/auth-watcher.js +1 -1
- package/dist/server/auth-watcher.js.map +1 -1
- package/dist/tui/actions.d.ts +1 -1
- package/dist/tui/actions.js +6 -2
- package/dist/tui/actions.js.map +1 -1
- package/dist/tui/actions.ts +7 -3
- package/dist/tui/components/priority-screen.d.ts +1 -1
- package/dist/tui/components/priority-screen.tsx +4 -3
- package/dist/tui/components/provider-model-dialog.d.ts +2 -1
- package/dist/tui/components/provider-model-dialog.tsx +21 -11
- package/dist/tui/connect.js +5 -3
- package/dist/tui/connect.js.map +1 -1
- package/dist/tui/connect.ts +5 -3
- package/dist/tui/selected-account-bar-sync.d.ts +10 -0
- package/dist/tui/selected-account-bar-sync.js +26 -0
- package/dist/tui/selected-account-bar-sync.js.map +1 -0
- package/dist/tui/selected-account-bar-sync.ts +32 -0
- package/dist/tui/tui.js +39 -6
- package/dist/tui/tui.js.map +1 -1
- package/dist/tui/tui.tsx +40 -8
- package/package.json +1 -1
- package/dist/balancer/accounts.d.ts +0 -9
- package/dist/balancer/accounts.js +0 -102
- package/dist/balancer/accounts.js.map +0 -1
- package/dist/balancer/auth-watcher.d.ts +0 -1
- package/dist/balancer/auth-watcher.js +0 -30
- package/dist/balancer/auth-watcher.js.map +0 -1
- package/dist/balancer/commands.d.ts +0 -1
- package/dist/balancer/commands.js +0 -94
- package/dist/balancer/commands.js.map +0 -1
- package/dist/balancer/core.d.ts +0 -6
- package/dist/balancer/core.js +0 -7
- package/dist/balancer/core.js.map +0 -1
- package/dist/balancer/fetch-patch.d.ts +0 -1
- package/dist/balancer/fetch-patch.js +0 -110
- package/dist/balancer/fetch-patch.js.map +0 -1
- package/dist/balancer/http.d.ts +0 -40
- package/dist/balancer/http.js +0 -199
- package/dist/balancer/http.js.map +0 -1
- package/dist/balancer/native.d.ts +0 -3
- package/dist/balancer/native.js +0 -16
- package/dist/balancer/native.js.map +0 -1
- package/dist/balancer/state.d.ts +0 -14
- package/dist/balancer/state.js +0 -16
- package/dist/balancer/state.js.map +0 -1
- package/dist/balancer/storage.d.ts +0 -8
- package/dist/balancer/storage.js +0 -92
- package/dist/balancer/storage.js.map +0 -1
- package/dist/balancer/types.d.ts +0 -44
- package/dist/balancer/types.js +0 -2
- package/dist/balancer/types.js.map +0 -1
- package/dist/tui/components/alias-dialog.js +0 -57
- package/dist/tui/components/alias-dialog.js.map +0 -1
- package/dist/tui/components/dashboard.js +0 -201
- package/dist/tui/components/dashboard.js.map +0 -1
- package/dist/tui/components/priority-screen.js +0 -120
- package/dist/tui/components/priority-screen.js.map +0 -1
- package/dist/tui/components/provider-model-dialog.js +0 -45
- package/dist/tui/components/provider-model-dialog.js.map +0 -1
- package/dist/tui/components/rename-dialog.js +0 -24
- package/dist/tui/components/rename-dialog.js.map +0 -1
- package/dist/tui/components/sidebar.js +0 -27
- package/dist/tui/components/sidebar.js.map +0 -1
- package/dist/tui/components/status-indicator.js +0 -59
- package/dist/tui/components/status-indicator.js.map +0 -1
- package/dist/tui/components/usage-bar.js +0 -7
- package/dist/tui/components/usage-bar.js.map +0 -1
- package/dist/tui/components/usage-display.js +0 -32
- package/dist/tui/components/usage-display.js.map +0 -1
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js";
|
|
3
|
-
import { getBalancingEnabled, listProviderPriority, moveProvider, resolveActiveSelection, setBalancingEnabled, setProviderEnabled, } from "../../core/priority";
|
|
4
|
-
import { movePriorityFocus, prioritySelectionMarker, reducePriorityKey, } from "../priority-keys";
|
|
5
|
-
import { dashboardLayoutMode } from "../responsive";
|
|
6
|
-
import { selectedRowColors } from "../selection-colors";
|
|
7
|
-
function modelLabel(api, entry) {
|
|
8
|
-
if (!entry.modelID)
|
|
9
|
-
return "(sem modelo — Enter)";
|
|
10
|
-
const provider = api.state.provider.find((item) => item.id === entry.providerID);
|
|
11
|
-
const model = provider?.models?.[entry.modelID];
|
|
12
|
-
return model?.name ?? entry.modelID;
|
|
13
|
-
}
|
|
14
|
-
export function PriorityScreen(props) {
|
|
15
|
-
const theme = () => props.api.theme.current;
|
|
16
|
-
const selectedColors = () => selectedRowColors(theme());
|
|
17
|
-
const db = props.state.db;
|
|
18
|
-
const [entries, setEntries] = createSignal(listProviderPriority(db));
|
|
19
|
-
const [balancing, setBalancing] = createSignal(getBalancingEnabled(db));
|
|
20
|
-
const [cursor, setCursor] = createSignal(0);
|
|
21
|
-
const [focusArea, setFocusArea] = createSignal("content");
|
|
22
|
-
const compact = () => dashboardLayoutMode({
|
|
23
|
-
width: props.api.renderer.width,
|
|
24
|
-
height: props.api.renderer.height,
|
|
25
|
-
}) === "compact";
|
|
26
|
-
const refresh = () => {
|
|
27
|
-
const next = listProviderPriority(db);
|
|
28
|
-
setEntries(next);
|
|
29
|
-
setBalancing(getBalancingEnabled(db));
|
|
30
|
-
setCursor((value) => Math.max(0, Math.min(value, Math.max(0, next.length - 1))));
|
|
31
|
-
};
|
|
32
|
-
refresh();
|
|
33
|
-
const timer = setInterval(refresh, 500);
|
|
34
|
-
onCleanup(() => clearInterval(timer));
|
|
35
|
-
const activeProviderID = createMemo(() => (balancing() ? resolveActiveSelection(db)?.providerID : undefined));
|
|
36
|
-
const current = () => entries()[cursor()];
|
|
37
|
-
const clampCursor = (value) => Math.max(0, Math.min(value, Math.max(0, entries().length - 1)));
|
|
38
|
-
const headerSelected = () => focusArea() === "header";
|
|
39
|
-
const headerMarker = () => prioritySelectionMarker({ focusedArea: focusArea(), itemArea: "header", selected: true });
|
|
40
|
-
const rowMarker = (selected) => prioritySelectionMarker({ focusedArea: focusArea(), itemArea: "content", selected });
|
|
41
|
-
const toggleBalancing = () => {
|
|
42
|
-
setBalancingEnabled(db, !balancing());
|
|
43
|
-
refresh();
|
|
44
|
-
};
|
|
45
|
-
const toggleEnabled = (entry) => {
|
|
46
|
-
if (!entry)
|
|
47
|
-
return;
|
|
48
|
-
setProviderEnabled(db, entry.providerID, !entry.enabled);
|
|
49
|
-
refresh();
|
|
50
|
-
};
|
|
51
|
-
const reorder = (direction) => {
|
|
52
|
-
const entry = current();
|
|
53
|
-
if (!entry)
|
|
54
|
-
return;
|
|
55
|
-
moveProvider(db, entry.providerID, direction);
|
|
56
|
-
refresh();
|
|
57
|
-
setCursor((value) => clampCursor(value + direction));
|
|
58
|
-
};
|
|
59
|
-
const handleKey = (event) => {
|
|
60
|
-
const intent = reducePriorityKey({ name: event.name ?? "", shift: event.shift });
|
|
61
|
-
switch (intent.type) {
|
|
62
|
-
case "move-cursor":
|
|
63
|
-
{
|
|
64
|
-
const next = movePriorityFocus({ area: focusArea(), cursor: cursor(), rowCount: entries().length }, intent.delta);
|
|
65
|
-
setFocusArea(next.area);
|
|
66
|
-
setCursor(clampCursor(next.cursor));
|
|
67
|
-
}
|
|
68
|
-
return;
|
|
69
|
-
case "reorder":
|
|
70
|
-
setFocusArea("content");
|
|
71
|
-
reorder(intent.direction);
|
|
72
|
-
return;
|
|
73
|
-
case "toggle-enabled":
|
|
74
|
-
if (focusArea() === "header")
|
|
75
|
-
return;
|
|
76
|
-
toggleEnabled(current());
|
|
77
|
-
return;
|
|
78
|
-
case "open-model": {
|
|
79
|
-
if (focusArea() === "header")
|
|
80
|
-
return props.onBack();
|
|
81
|
-
const entry = current();
|
|
82
|
-
if (entry)
|
|
83
|
-
props.openModelPicker(entry.providerID);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
case "toggle-balancing":
|
|
87
|
-
toggleBalancing();
|
|
88
|
-
return;
|
|
89
|
-
case "back":
|
|
90
|
-
props.onBack();
|
|
91
|
-
return;
|
|
92
|
-
default:
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
let container;
|
|
97
|
-
onMount(() => container?.focus?.());
|
|
98
|
-
const Hint = (hintProps) => (_jsx("text", { fg: theme().textMuted, wrapMode: "none", truncate: true, children: hintProps.children }));
|
|
99
|
-
const Chip = (chipProps) => (_jsxs("text", { fg: chipProps.danger ? theme().warning : theme().accent, wrapMode: "none", children: ["[", chipProps.keyName, "] ", _jsx("span", { style: { fg: theme().textMuted }, children: chipProps.label })] }));
|
|
100
|
-
const Row = (rowProps) => (_jsx("box", { flexDirection: "row", width: "100%", minWidth: 0, height: 1, flexShrink: 0, backgroundColor: rowProps.selected ? selectedColors().bg : undefined, onMouseUp: rowProps.onMouseUp, children: rowProps.children }));
|
|
101
|
-
return (_jsxs("box", { ref: (ref) => (container = ref), focusable: true, onKeyDown: (event) => handleKey(event), flexDirection: "column", gap: 0, padding: 1, width: "100%", height: "100%", children: [_jsxs("box", { flexDirection: "column", gap: 0, paddingBottom: 1, children: [_jsxs("text", { fg: theme().primary, wrapMode: "none", overflow: "hidden", truncate: true, children: ["opencode-balancer", compact() ? "" : " priority matrix"] }), _jsx(Show, { when: !compact(), children: _jsx(Hint, { children: "Choose one model per provider and order failover priority." }) }), _jsx("box", { height: 1, flexShrink: 0, backgroundColor: headerSelected() ? selectedColors().bg : undefined, onMouseUp: () => {
|
|
102
|
-
setFocusArea("header");
|
|
103
|
-
props.onBack();
|
|
104
|
-
}, children: _jsxs("text", { fg: headerSelected() ? selectedColors().fg : theme().accent, wrapMode: "none", overflow: "hidden", truncate: true, children: [headerMarker(), " [ back to dashboard ]"] }) })] }), _jsxs("box", { flexDirection: "column", gap: 0, paddingBottom: 1, onMouseUp: toggleBalancing, children: [_jsxs("text", { fg: theme().primary, wrapMode: "none", overflow: "hidden", truncate: true, children: ["BALANCING ", balancing() ? "ON" : "OFF"] }), _jsx(Show, { when: !compact(), children: _jsx("text", { fg: theme().textMuted, wrapMode: "none", overflow: "hidden", truncate: true, children: "press B to toggle automatic provider failover" }) })] }), _jsxs("box", { flexDirection: "column", gap: 0, paddingBottom: 1, children: [_jsx(Show, { when: !compact(), children: _jsxs("box", { flexDirection: "row", gap: 2, children: [_jsx("text", { fg: theme().primary, wrapMode: "none", children: "# PROVIDER" }), _jsx("text", { fg: theme().primary, wrapMode: "none", children: "MODEL" }), _jsx("text", { fg: theme().primary, wrapMode: "none", children: "ENABLED" })] }) }), _jsx(Show, { when: entries().length > 0, fallback: _jsx("text", { fg: theme().textMuted, wrapMode: "none", children: "nenhum provider com conta ainda" }), children: _jsx(For, { each: entries(), children: (entry, index) => {
|
|
105
|
-
const selected = () => focusArea() === "content" && index() === cursor();
|
|
106
|
-
const active = () => entry.providerID === activeProviderID();
|
|
107
|
-
const rowColor = () => {
|
|
108
|
-
if (!entry.enabled)
|
|
109
|
-
return theme().textMuted;
|
|
110
|
-
if (active())
|
|
111
|
-
return theme().success;
|
|
112
|
-
return theme().text;
|
|
113
|
-
};
|
|
114
|
-
return (_jsxs(Row, { selected: selected(), onMouseUp: () => {
|
|
115
|
-
setFocusArea("content");
|
|
116
|
-
setCursor(index());
|
|
117
|
-
}, children: [_jsx("box", { width: 1, flexShrink: 0, backgroundColor: selected() ? selectedColors().bg : undefined, children: _jsx("text", { fg: selected() ? selectedColors().fg : theme().accent, wrapMode: "none", children: rowMarker(index() === cursor()) }) }), _jsx("box", { width: 3, flexShrink: 0, backgroundColor: selected() ? selectedColors().bg : undefined, children: _jsxs("text", { fg: selected() ? selectedColors().fg : rowColor(), wrapMode: "none", children: [index() + 1, "."] }) }), _jsx("box", { width: 18, flexShrink: 0, backgroundColor: selected() ? selectedColors().bg : undefined, children: _jsx("text", { fg: selected() ? selectedColors().fg : rowColor(), wrapMode: "none", overflow: "hidden", truncate: true, children: entry.providerID }) }), _jsx("box", { flexGrow: 1, minWidth: 0, backgroundColor: selected() ? selectedColors().bg : undefined, onMouseUp: () => props.openModelPicker(entry.providerID), children: _jsx("text", { fg: selected() ? selectedColors().fg : entry.modelID ? rowColor() : theme().warning, wrapMode: "none", overflow: "hidden", truncate: true, children: modelLabel(props.api, entry) }) }), _jsx("box", { width: 10, flexShrink: 0, backgroundColor: selected() ? selectedColors().bg : undefined, onMouseUp: () => toggleEnabled(entry), children: _jsx("text", { fg: selected() ? selectedColors().fg : entry.enabled ? theme().success : theme().textMuted, wrapMode: "none", overflow: "hidden", truncate: true, children: entry.enabled ? "enabled" : "disabled" }) })] }));
|
|
118
|
-
} }) })] }), _jsx("box", { flexDirection: "column", gap: 0, children: _jsxs(Show, { when: !compact(), fallback: _jsx(Hint, { children: "\u2191\u2193 move \u00B7 Shift+\u2191\u2193 reorder \u00B7 Enter model \u00B7 Space enable \u00B7 Esc back" }), children: [_jsxs("box", { flexDirection: "row", gap: 2, children: [_jsx(Chip, { keyName: "\u2191\u2193", label: "Move" }), _jsx(Chip, { keyName: "Shift+\u2191\u2193", label: "Reorder" }), _jsx(Chip, { keyName: "Enter", label: "Model" }), _jsx(Chip, { keyName: "Space", label: "Enable" }), _jsx(Chip, { keyName: "Esc", label: "Back" })] }), _jsx(Hint, { children: headerSelected() ? "Enter returns to the dashboard." : "selected provider controls the next automatic failover target." })] }) })] }));
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=priority-screen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"priority-screen.js","sourceRoot":"","sources":["../../../src/tui/components/priority-screen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { setSelectedModel } from "../../core/accounts";
|
|
3
|
-
import { createNativeModelApplier } from "../native-model-apply";
|
|
4
|
-
import { providerModelOptions } from "../provider-models";
|
|
5
|
-
export function openProviderModelDialog(api, state, providerID, options = {}) {
|
|
6
|
-
const modelOptions = providerModelOptions(api.state.provider, providerID);
|
|
7
|
-
const providerName = modelOptions[0]?.providerName ?? providerID;
|
|
8
|
-
const applyNativeSelection = options.applyNativeSelection ?? createNativeModelApplier(api);
|
|
9
|
-
api.ui.dialog.setSize("medium");
|
|
10
|
-
api.ui.dialog.replace(() => (_jsx(api.ui.DialogSelect, { title: `Select ${providerName} model`, placeholder: `Search ${providerName} models`, flat: true, skipFilter: false, options: modelOptions.map((option) => ({
|
|
11
|
-
title: option.title,
|
|
12
|
-
description: option.providerName,
|
|
13
|
-
value: option,
|
|
14
|
-
footer: `${option.providerID}/${option.modelID}`,
|
|
15
|
-
})), onSelect: (option) => {
|
|
16
|
-
const model = {
|
|
17
|
-
providerID: option.value.providerID,
|
|
18
|
-
modelID: option.value.modelID,
|
|
19
|
-
};
|
|
20
|
-
// Persist first: in manual mode this stores the selected model;
|
|
21
|
-
// priority mode injects its own persistence callback.
|
|
22
|
-
if (options.onSelected)
|
|
23
|
-
options.onSelected(model);
|
|
24
|
-
else
|
|
25
|
-
setSelectedModel(state.db, model.providerID, model.modelID);
|
|
26
|
-
state.refresh();
|
|
27
|
-
// Close our picker, then replay the choice into opencode's native
|
|
28
|
-
// model dialog so its bottom model bar reflects the selection.
|
|
29
|
-
api.ui.dialog.clear();
|
|
30
|
-
void Promise.resolve(applyNativeSelection(model, option.value.title)).then((applied) => {
|
|
31
|
-
if (applied) {
|
|
32
|
-
api.ui.toast({
|
|
33
|
-
variant: "success",
|
|
34
|
-
message: `Switched to ${option.value.providerName}/${option.value.title}.`,
|
|
35
|
-
});
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
api.ui.toast({
|
|
39
|
-
variant: "warning",
|
|
40
|
-
message: `Selected ${option.value.providerName}/${option.value.title}; prompts will use it, but opencode's model bar may not have refreshed.`,
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
} })));
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=provider-model-dialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-model-dialog.js","sourceRoot":"","sources":["../../../src/tui/components/provider-model-dialog.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAA2B,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAA4B,MAAM,oBAAoB,CAAC;AAUpF,MAAM,UAAU,uBAAuB,CACnC,GAAiB,EACjB,KAA+C,EAC/C,UAAkB,EAClB,UAA0C,EAAE;IAE5C,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,UAAU,CAAC;IACjE,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAE3F,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACxB,KAAC,GAAG,CAAC,EAAE,CAAC,YAAY,IAChB,KAAK,EAAE,UAAU,YAAY,QAAQ,EACrC,WAAW,EAAE,UAAU,YAAY,SAAS,EAC5C,IAAI,QACJ,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE;SACnD,CAAC,CAAC,EACH,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG;gBACV,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;gBACnC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;aAChC,CAAC;YAEF,gEAAgE;YAChE,sDAAsD;YACtD,IAAI,OAAO,CAAC,UAAU;gBAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;;gBAC7C,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjE,KAAK,CAAC,OAAO,EAAE,CAAC;YAEhB,kEAAkE;YAClE,+DAA+D;YAC/D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAEtB,KAAK,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnF,IAAI,OAAO,EAAE,CAAC;oBACV,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;wBACT,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,eAAe,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;qBAC7E,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBACD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;oBACT,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,YAAY,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,yEAAyE;iBAChJ,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,GACH,CACL,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { normalizeAlias } from "../../core/accounts";
|
|
3
|
-
import { renameAccountFromTui } from "../actions";
|
|
4
|
-
function errorMessage(error) {
|
|
5
|
-
return error instanceof Error && error.message ? error.message : "Failed to rename account";
|
|
6
|
-
}
|
|
7
|
-
export function openRenameDialog(api, state, providerID, alias) {
|
|
8
|
-
api.ui.dialog.setSize("medium");
|
|
9
|
-
api.ui.dialog.replace(() => (_jsx(api.ui.DialogPrompt, { title: "Rename account", placeholder: "account alias", description: () => (_jsxs("text", { fg: api.theme.current.textMuted, wrapMode: "none", children: ["Choose a new alias for ", providerID, "/", alias, "."] })), onCancel: () => api.ui.dialog.clear(), onConfirm: (value) => {
|
|
10
|
-
const nextAlias = normalizeAlias(value);
|
|
11
|
-
if (!nextAlias) {
|
|
12
|
-
api.ui.toast({ variant: "error", message: "Alias is required" });
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
renameAccountFromTui(api, state, providerID, alias, nextAlias);
|
|
17
|
-
api.ui.dialog.clear();
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
api.ui.toast({ variant: "error", message: errorMessage(error) });
|
|
21
|
-
}
|
|
22
|
-
} })));
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=rename-dialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rename-dialog.js","sourceRoot":"","sources":["../../../src/tui/components/rename-dialog.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,SAAS,YAAY,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAiB,EAAE,KAAuB,EAAE,UAAkB,EAAE,KAAa;IAC1G,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACxB,KAAC,GAAG,CAAC,EAAE,CAAC,YAAY,IAChB,KAAK,EAAC,gBAAgB,EACtB,WAAW,EAAC,eAAe,EAC3B,WAAW,EAAE,GAAG,EAAE,CAAC,CACf,gBAAM,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,wCAC1B,UAAU,OAAG,KAAK,SACvC,CACV,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EACrC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YAED,IAAI,CAAC;gBACD,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC/D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,CAAC;QACL,CAAC,GACH,CACL,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { createSignal, For, onCleanup, Show } from "solid-js";
|
|
3
|
-
import { listAccounts } from "../../core/accounts";
|
|
4
|
-
import { getBalancingEnabled } from "../../core/priority";
|
|
5
|
-
import { getUsageSnapshot } from "../../core/usage/store";
|
|
6
|
-
import { UsageSnapshotBar } from "./usage-display";
|
|
7
|
-
export function BalancerSidebar(props) {
|
|
8
|
-
const theme = () => props.api.theme.current;
|
|
9
|
-
const [accounts, setAccounts] = createSignal(listAccounts(props.state.db));
|
|
10
|
-
const [usage, setUsage] = createSignal({});
|
|
11
|
-
const [balancingEnabled, setBalancingEnabled] = createSignal(getBalancingEnabled(props.state.db));
|
|
12
|
-
const refreshSidebar = () => {
|
|
13
|
-
const nextAccounts = listAccounts(props.state.db);
|
|
14
|
-
setAccounts(nextAccounts);
|
|
15
|
-
setBalancingEnabled(getBalancingEnabled(props.state.db));
|
|
16
|
-
setUsage(Object.fromEntries(nextAccounts.map((account) => [
|
|
17
|
-
`${account.providerID}/${account.alias}`,
|
|
18
|
-
getUsageSnapshot(props.state.db, account.providerID, account.alias),
|
|
19
|
-
])));
|
|
20
|
-
};
|
|
21
|
-
refreshSidebar();
|
|
22
|
-
const timer = setInterval(refreshSidebar, 500);
|
|
23
|
-
onCleanup(() => clearInterval(timer));
|
|
24
|
-
const Button = (buttonProps) => (_jsx("box", { onMouseUp: buttonProps.onClick, paddingLeft: 0, paddingRight: 0, children: _jsxs("text", { fg: theme().accent, wrapMode: "none", truncate: true, children: ["[ ", buttonProps.label, " ]"] }) }));
|
|
25
|
-
return (_jsxs("box", { flexDirection: "column", gap: 1, children: [_jsxs("box", { flexDirection: "column", gap: 0, children: [_jsx("text", { fg: theme().text, wrapMode: "none", children: "Balancer" }), _jsx("text", { fg: balancingEnabled() ? theme().success : theme().textMuted, wrapMode: "none", children: balancingEnabled() ? "ON" : "OFF" }), _jsx(Button, { label: "dashboard", onClick: () => props.openDashboard() }), _jsx("text", { fg: theme().textMuted, wrapMode: "none", children: "ctrl+b" })] }), _jsxs("box", { flexDirection: "column", gap: 0, children: [_jsx("text", { fg: theme().textMuted, wrapMode: "none", children: "Accounts" }), _jsx(Show, { when: accounts().length > 0, fallback: _jsx("text", { fg: theme().textMuted, wrapMode: "none", children: "none" }), children: _jsx(For, { each: accounts(), children: (account) => (_jsxs("box", { flexDirection: "column", gap: 0, onMouseUp: () => props.activateAccount(account.providerID, account.alias), children: [_jsxs("text", { fg: theme().text, wrapMode: "none", truncate: true, children: [_jsx("span", { style: { fg: theme().primary }, children: account.providerID }), "/", _jsx("span", { style: { fg: account.disabled ? theme().textMuted : theme().text }, children: account.alias }), " ", _jsxs("span", { style: { fg: theme().textMuted }, children: ["(", account.authType, ")"] })] }), _jsx(UsageSnapshotBar, { theme: theme(), snapshot: usage()[`${account.providerID}/${account.alias}`] })] })) }) })] })] }));
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/tui/components/sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { createSignal, onCleanup } from "solid-js";
|
|
3
|
-
import { getActiveAccount, getSelectedAccount } from "../../core/accounts";
|
|
4
|
-
import { getBalancingEnabled, resolveActiveSelection } from "../../core/priority";
|
|
5
|
-
import { getUsageSnapshot } from "../../core/usage/store";
|
|
6
|
-
import { formatBalancerStatus } from "../status-format";
|
|
7
|
-
import { formatUsageBar } from "../usage-format";
|
|
8
|
-
import { snapshotPercent } from "./usage-display";
|
|
9
|
-
export function BalancerStatusIndicator(props) {
|
|
10
|
-
const [selected, setSelected] = createSignal();
|
|
11
|
-
const [sessionActive, setSessionActive] = createSignal();
|
|
12
|
-
const [balancing, setBalancing] = createSignal();
|
|
13
|
-
const [usage, setUsage] = createSignal();
|
|
14
|
-
const providerID = () => (typeof props.providerID === "function" ? props.providerID() : props.providerID);
|
|
15
|
-
const refresh = () => {
|
|
16
|
-
const currentProviderID = providerID();
|
|
17
|
-
const nextSelected = getSelectedAccount(props.state.db);
|
|
18
|
-
const nextSessionActive = currentProviderID ? getActiveAccount(props.state.db, currentProviderID) : undefined;
|
|
19
|
-
const nextBalancing = getBalancingEnabled(props.state.db)
|
|
20
|
-
? resolveActiveSelection(props.state.db, undefined, currentProviderID)
|
|
21
|
-
: undefined;
|
|
22
|
-
const usageAccount = nextBalancing?.account ?? nextSelected ?? nextSessionActive;
|
|
23
|
-
setSelected(nextSelected);
|
|
24
|
-
setSessionActive(nextSessionActive);
|
|
25
|
-
setBalancing(nextBalancing);
|
|
26
|
-
setUsage(usageAccount
|
|
27
|
-
? formatUsageBar(snapshotPercent(getUsageSnapshot(props.state.db, usageAccount.providerID, usageAccount.alias)), 4)
|
|
28
|
-
: undefined);
|
|
29
|
-
};
|
|
30
|
-
refresh();
|
|
31
|
-
const timer = setInterval(refresh, 500);
|
|
32
|
-
onCleanup(() => clearInterval(timer));
|
|
33
|
-
const status = () => {
|
|
34
|
-
return formatBalancerStatus({
|
|
35
|
-
selected: selected(),
|
|
36
|
-
sessionActive: sessionActive(),
|
|
37
|
-
sessionProviderID: providerID(),
|
|
38
|
-
balancing: balancing()
|
|
39
|
-
? {
|
|
40
|
-
providerID: balancing().providerID,
|
|
41
|
-
alias: balancing().account.alias,
|
|
42
|
-
modelID: balancing().modelID,
|
|
43
|
-
}
|
|
44
|
-
: undefined,
|
|
45
|
-
usage: usage(),
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
const color = () => {
|
|
49
|
-
if (balancing())
|
|
50
|
-
return props.api.theme.current.success;
|
|
51
|
-
if (providerID())
|
|
52
|
-
return sessionActive() ? props.api.theme.current.success : props.api.theme.current.textMuted;
|
|
53
|
-
if (!selected())
|
|
54
|
-
return props.api.theme.current.textMuted;
|
|
55
|
-
return props.api.theme.current.success;
|
|
56
|
-
};
|
|
57
|
-
return (_jsx("text", { fg: color(), wrapMode: "none", truncate: true, children: status() }));
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=status-indicator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-indicator.js","sourceRoot":"","sources":["../../../src/tui/components/status-indicator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { formatUsageBar, truncateMiddle } from "../usage-format";
|
|
3
|
-
export function UsageBar(props) {
|
|
4
|
-
const color = () => (props.muted || props.percent === undefined ? props.theme.textMuted : props.theme.primary);
|
|
5
|
-
return (_jsxs("text", { fg: color(), wrapMode: "none", overflow: "hidden", truncate: true, children: [formatUsageBar(props.percent, 8), " ", _jsx("span", { style: { fg: props.theme.textMuted }, children: truncateMiddle(props.label, 34) })] }));
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=usage-bar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage-bar.js","sourceRoot":"","sources":["../../../src/tui/components/usage-bar.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,UAAU,QAAQ,CAAC,KAAmF;IACxG,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/G,OAAO,CACH,gBAAM,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,mBACxD,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,OAAE,eAAM,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,YAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,GAAQ,IACpH,CACV,CAAC;AACN,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { UsageBar } from "./usage-bar";
|
|
3
|
-
export function snapshotPercent(snapshot) {
|
|
4
|
-
if (!snapshot || snapshot.confidence === "unavailable")
|
|
5
|
-
return undefined;
|
|
6
|
-
if (snapshot.usedPercent !== undefined)
|
|
7
|
-
return snapshot.usedPercent;
|
|
8
|
-
if (snapshot.usedTokens !== undefined && snapshot.remainingTokens !== undefined) {
|
|
9
|
-
const total = snapshot.usedTokens + snapshot.remainingTokens;
|
|
10
|
-
if (total > 0)
|
|
11
|
-
return (snapshot.usedTokens / total) * 100;
|
|
12
|
-
}
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
export function snapshotLabel(snapshot) {
|
|
16
|
-
if (!snapshot)
|
|
17
|
-
return "usage unavailable";
|
|
18
|
-
if (snapshot.confidence === "unavailable")
|
|
19
|
-
return snapshot.message;
|
|
20
|
-
const parts = [];
|
|
21
|
-
if (snapshot.usedTokens !== undefined)
|
|
22
|
-
parts.push(`used ${snapshot.usedTokens}`);
|
|
23
|
-
if (snapshot.remainingTokens !== undefined)
|
|
24
|
-
parts.push(`remaining ${snapshot.remainingTokens}`);
|
|
25
|
-
if (snapshot.planName)
|
|
26
|
-
parts.push(snapshot.planName);
|
|
27
|
-
return parts.length > 0 ? parts.join(" · ") : snapshot.message;
|
|
28
|
-
}
|
|
29
|
-
export function UsageSnapshotBar(props) {
|
|
30
|
-
return _jsx(UsageBar, { theme: props.theme, percent: snapshotPercent(props.snapshot), label: snapshotLabel(props.snapshot), muted: props.muted });
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=usage-display.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage-display.js","sourceRoot":"","sources":["../../../src/tui/components/usage-display.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,eAAe,CAAC,QAA2C;IACvE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACzE,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,WAAW,CAAC;IACpE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC7D,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAA2C;IACrE,IAAI,CAAC,QAAQ;QAAE,OAAO,mBAAmB,CAAC;IAC1C,IAAI,QAAQ,CAAC,UAAU,KAAK,aAAa;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACjF,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAChG,IAAI,QAAQ,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAoF;IACjH,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CAAC;AAChJ,CAAC"}
|