@thelioo/opencode-balancer 0.1.8 → 0.2.1
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/INSTALL.txt +53 -25
- package/README.md +95 -51
- package/dist/core/accounts.ts +404 -0
- package/dist/core/database.ts +67 -0
- package/dist/core/events.ts +75 -0
- package/dist/core/native-auth-suppression.ts +36 -0
- package/dist/core/native-connect.ts +31 -0
- package/dist/core/path.ts +34 -0
- package/dist/core/pending.ts +351 -0
- package/dist/core/priority.ts +193 -0
- package/dist/core/schema.ts +439 -0
- package/dist/core/time.ts +3 -0
- package/dist/core/types.ts +72 -0
- package/dist/core/usage/index.ts +23 -0
- package/dist/core/usage/providers/copilot.ts +243 -0
- package/dist/core/usage/providers/openai.ts +179 -0
- package/dist/core/usage/redact.ts +80 -0
- package/dist/core/usage/store.ts +66 -0
- package/dist/core/usage/types.ts +24 -0
- package/dist/index.js +173 -4
- package/dist/index.js.map +1 -1
- package/dist/server/auth-watcher.ts +318 -0
- package/dist/server/commands.ts +58 -0
- package/dist/server/fetch-patch.ts +162 -0
- package/dist/server/index.ts +134 -0
- package/dist/server/native.ts +49 -0
- package/dist/server/request-balancer.ts +67 -0
- package/dist/tui/actions.ts +176 -112
- package/dist/tui/balancer-bar-sync.ts +55 -45
- package/dist/tui/components/alias-dialog.tsx +71 -56
- package/dist/tui/components/dashboard.tsx +530 -358
- package/dist/tui/components/priority-screen.tsx +389 -267
- package/dist/tui/components/provider-model-dialog.tsx +71 -64
- package/dist/tui/components/rename-dialog.tsx +35 -28
- package/dist/tui/components/sidebar.tsx +103 -79
- package/dist/tui/components/status-indicator.tsx +78 -59
- package/dist/tui/components/usage-bar.tsx +18 -7
- package/dist/tui/components/usage-display.tsx +32 -16
- package/dist/tui/connect.ts +104 -73
- package/dist/tui/dashboard-keys.ts +53 -41
- package/dist/tui/native-model-apply.ts +45 -36
- package/dist/tui/priority-keys.ts +44 -36
- package/dist/tui/provider-models.ts +32 -25
- package/dist/tui/responsive.ts +10 -7
- package/dist/tui/selected-account-bar-sync.ts +23 -23
- package/dist/tui/selection-colors.ts +38 -30
- package/dist/tui/state.ts +61 -44
- package/dist/tui/status-format.ts +24 -20
- package/dist/tui/tui.js +165 -153
- package/dist/tui/tui.js.map +1 -1
- package/dist/tui/tui.tsx +194 -144
- package/dist/tui/usage-auto-refresh.ts +52 -45
- package/dist/tui/usage-format.ts +9 -9
- package/package.json +61 -52
- package/dist/core/accounts.d.ts +0 -14
- package/dist/core/accounts.js +0 -260
- package/dist/core/accounts.js.map +0 -1
- package/dist/core/database.d.ts +0 -4
- package/dist/core/database.js +0 -69
- package/dist/core/database.js.map +0 -1
- package/dist/core/events.d.ts +0 -18
- package/dist/core/events.js +0 -39
- package/dist/core/events.js.map +0 -1
- package/dist/core/native-auth-suppression.d.ts +0 -3
- package/dist/core/native-auth-suppression.js +0 -19
- package/dist/core/native-auth-suppression.js.map +0 -1
- package/dist/core/native-connect.d.ts +0 -4
- package/dist/core/native-connect.js +0 -19
- package/dist/core/native-connect.js.map +0 -1
- package/dist/core/path.d.ts +0 -4
- package/dist/core/path.js +0 -26
- package/dist/core/path.js.map +0 -1
- package/dist/core/pending.d.ts +0 -9
- package/dist/core/pending.js +0 -237
- package/dist/core/pending.js.map +0 -1
- package/dist/core/priority.d.ts +0 -20
- package/dist/core/priority.js +0 -120
- package/dist/core/priority.js.map +0 -1
- package/dist/core/schema.d.ts +0 -2
- package/dist/core/schema.js +0 -265
- package/dist/core/schema.js.map +0 -1
- package/dist/core/time.d.ts +0 -1
- package/dist/core/time.js +0 -4
- package/dist/core/time.js.map +0 -1
- package/dist/core/types.d.ts +0 -59
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/core/usage/index.d.ts +0 -4
- package/dist/core/usage/index.js +0 -16
- package/dist/core/usage/index.js.map +0 -1
- package/dist/core/usage/providers/copilot.d.ts +0 -2
- package/dist/core/usage/providers/copilot.js +0 -169
- package/dist/core/usage/providers/copilot.js.map +0 -1
- package/dist/core/usage/providers/openai.d.ts +0 -2
- package/dist/core/usage/providers/openai.js +0 -133
- package/dist/core/usage/providers/openai.js.map +0 -1
- package/dist/core/usage/redact.d.ts +0 -3
- package/dist/core/usage/redact.js +0 -67
- package/dist/core/usage/redact.js.map +0 -1
- package/dist/core/usage/store.d.ts +0 -4
- package/dist/core/usage/store.js +0 -31
- package/dist/core/usage/store.js.map +0 -1
- package/dist/core/usage/types.d.ts +0 -21
- package/dist/core/usage/types.js +0 -2
- package/dist/core/usage/types.js.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/server/auth-watcher.d.ts +0 -32
- package/dist/server/auth-watcher.js +0 -227
- package/dist/server/auth-watcher.js.map +0 -1
- package/dist/server/commands.d.ts +0 -2
- package/dist/server/commands.js +0 -46
- package/dist/server/commands.js.map +0 -1
- package/dist/server/fetch-patch.d.ts +0 -3
- package/dist/server/fetch-patch.js +0 -118
- package/dist/server/fetch-patch.js.map +0 -1
- package/dist/server/index.d.ts +0 -8
- package/dist/server/index.js +0 -94
- package/dist/server/index.js.map +0 -1
- package/dist/server/native.d.ts +0 -6
- package/dist/server/native.js +0 -35
- package/dist/server/native.js.map +0 -1
- package/dist/server/request-balancer.d.ts +0 -16
- package/dist/server/request-balancer.js +0 -43
- package/dist/server/request-balancer.js.map +0 -1
- package/dist/tui/actions.d.ts +0 -41
- package/dist/tui/actions.js +0 -92
- package/dist/tui/actions.js.map +0 -1
- package/dist/tui/balancer-bar-sync.d.ts +0 -19
- package/dist/tui/balancer-bar-sync.js +0 -45
- package/dist/tui/balancer-bar-sync.js.map +0 -1
- package/dist/tui/components/alias-dialog.d.ts +0 -4
- package/dist/tui/components/dashboard.d.ts +0 -12
- package/dist/tui/components/priority-screen.d.ts +0 -9
- package/dist/tui/components/provider-model-dialog.d.ts +0 -14
- package/dist/tui/components/rename-dialog.d.ts +0 -4
- package/dist/tui/components/sidebar.d.ts +0 -10
- package/dist/tui/components/status-indicator.d.ts +0 -9
- package/dist/tui/components/usage-bar.d.ts +0 -8
- package/dist/tui/components/usage-display.d.ts +0 -10
- package/dist/tui/connect.d.ts +0 -30
- package/dist/tui/connect.js +0 -75
- package/dist/tui/connect.js.map +0 -1
- package/dist/tui/dashboard-keys.d.ts +0 -45
- package/dist/tui/dashboard-keys.js +0 -44
- package/dist/tui/dashboard-keys.js.map +0 -1
- package/dist/tui/native-model-apply.d.ts +0 -21
- package/dist/tui/native-model-apply.js +0 -53
- package/dist/tui/native-model-apply.js.map +0 -1
- package/dist/tui/priority-keys.d.ts +0 -40
- package/dist/tui/priority-keys.js +0 -38
- package/dist/tui/priority-keys.js.map +0 -1
- package/dist/tui/provider-models.d.ts +0 -19
- package/dist/tui/provider-models.js +0 -17
- package/dist/tui/provider-models.js.map +0 -1
- package/dist/tui/responsive.d.ts +0 -9
- package/dist/tui/responsive.js +0 -13
- package/dist/tui/responsive.js.map +0 -1
- package/dist/tui/selected-account-bar-sync.d.ts +0 -10
- package/dist/tui/selected-account-bar-sync.js +0 -26
- package/dist/tui/selected-account-bar-sync.js.map +0 -1
- package/dist/tui/selection-colors.d.ts +0 -10
- package/dist/tui/selection-colors.js +0 -38
- package/dist/tui/selection-colors.js.map +0 -1
- package/dist/tui/state.d.ts +0 -14
- package/dist/tui/state.js +0 -46
- package/dist/tui/state.js.map +0 -1
- package/dist/tui/status-format.d.ts +0 -15
- package/dist/tui/status-format.js +0 -17
- package/dist/tui/status-format.js.map +0 -1
- package/dist/tui/tui.d.ts +0 -7
- package/dist/tui/usage-auto-refresh.d.ts +0 -16
- package/dist/tui/usage-auto-refresh.js +0 -46
- package/dist/tui/usage-auto-refresh.js.map +0 -1
- package/dist/tui/usage-format.d.ts +0 -2
- package/dist/tui/usage-format.js +0 -17
- package/dist/tui/usage-format.js.map +0 -1
package/dist/tui/tui.js
CHANGED
|
@@ -1,153 +1,165 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
1
|
+
// @bun
|
|
2
|
+
var S=import.meta.require;import{createComponent as z}from"solid-js";function c(){return Date.now()}var Ke=["api","oauth","wellknown"];function q(e){return e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")}function j(e){return`${e.provider_id}/${e.alias}`}function ne(e){return Ke.includes(e)}function Xe(e){let t=j(e),n;try{n=JSON.parse(e.auth_json)}catch{throw Error(`Invalid account row for ${t}: auth_json is invalid`)}if(!n||typeof n!=="object"||!("type"in n)||typeof n.type!=="string")throw Error(`Invalid account row for ${t}: auth_json type is invalid`);if(!ne(n.type))throw Error(`Invalid account row for ${t}: auth_json type ${n.type} is invalid`);return n}function Ze(e){if(!ne(e.auth_type))throw Error(`Invalid account row for ${j(e)}: auth_type ${e.auth_type} is invalid`);return e.auth_type}function et(e){if(e.disabled!==0&&e.disabled!==1)throw Error(`Invalid account row for ${j(e)}: disabled ${e.disabled} is invalid`);return Boolean(e.disabled)}function re(e){let t=Xe(e),n=Ze(e);if(t.type!==n)throw Error(`Invalid account row for ${j(e)}: auth_type ${n} does not match auth_json type ${t.type}`);return{alias:e.alias,auth:t,authType:n,createdAt:e.created_at,disabled:et(e),failures:e.failures,lastUsedAt:e.last_used_at??void 0,providerID:e.provider_id,rateLimitedUntil:e.rate_limited_until??void 0,updatedAt:e.updated_at}}function ie(e,t,n){e.query(`INSERT INTO provider_state (provider_id, active_alias, updated_at, metadata_json)
|
|
3
|
+
VALUES (?, ?, ?, '{}')
|
|
4
|
+
ON CONFLICT(provider_id) DO UPDATE SET
|
|
5
|
+
active_alias = excluded.active_alias,
|
|
6
|
+
updated_at = excluded.updated_at`).run(t,n,c()),e.query(`INSERT INTO settings (key, value) VALUES ('selected_provider_id', ?)
|
|
7
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(t)}function tt(e){if(!e)return{};try{let t=JSON.parse(e);return t&&typeof t==="object"&&!Array.isArray(t)?t:{}}catch{return{}}}function V(e,t,n,r){let i=q(n);if(!i)throw Error("Invalid alias");return e.transaction(()=>{let a=c();e.query(`INSERT INTO accounts (
|
|
8
|
+
provider_id,
|
|
9
|
+
alias,
|
|
10
|
+
auth_json,
|
|
11
|
+
auth_type,
|
|
12
|
+
created_at,
|
|
13
|
+
updated_at,
|
|
14
|
+
failures,
|
|
15
|
+
disabled
|
|
16
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
17
|
+
ON CONFLICT(provider_id, alias) DO UPDATE SET
|
|
18
|
+
auth_json = excluded.auth_json,
|
|
19
|
+
auth_type = excluded.auth_type,
|
|
20
|
+
updated_at = excluded.updated_at`).run(t,i,JSON.stringify(r),r.type,a,a,0,0),ie(e,t,i);let s=w(e,t,i);if(!s)throw Error(`Account not found: ${t}/${i}`);return s})()}function w(e,t,n){let r=q(n),i=e.query(`SELECT provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
21
|
+
last_used_at, rate_limited_until, failures, disabled
|
|
22
|
+
FROM accounts
|
|
23
|
+
WHERE provider_id = ? AND alias = ?`).get(t,r);return i?re(i):void 0}function g(e,t){return(t?e.query(`SELECT provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
24
|
+
last_used_at, rate_limited_until, failures, disabled
|
|
25
|
+
FROM accounts WHERE provider_id = ? ORDER BY alias`).all(t):e.query(`SELECT provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
26
|
+
last_used_at, rate_limited_until, failures, disabled
|
|
27
|
+
FROM accounts ORDER BY provider_id, alias`).all()).map(re)}function oe(e,t,n){let r=q(n),i=w(e,t,r);if(!i)throw Error(`Account not found: ${t}/${r}`);return ie(e,t,r),i}function ae(e,t,n){let r=q(n);return e.transaction(()=>{if(!w(e,t,r))return!1;if(e.query("DELETE FROM accounts WHERE provider_id = ? AND alias = ?").run(t,r),e.query("DELETE FROM usage_snapshots WHERE provider_id = ? AND alias = ?").run(t,r),e.query("SELECT active_alias FROM provider_state WHERE provider_id = ?").get(t)?.active_alias===r){let s=e.query("SELECT alias FROM accounts WHERE provider_id = ? ORDER BY alias LIMIT 1").get(t);e.query(`UPDATE provider_state
|
|
28
|
+
SET active_alias = ?, updated_at = ?
|
|
29
|
+
WHERE provider_id = ?`).run(s?.alias??null,c(),t)}return!0})()}function T(e,t){let n=e.query("SELECT active_alias FROM provider_state WHERE provider_id = ?").get(t);if(!n?.active_alias)return;return w(e,t,n.active_alias)}function M(e){let t=e.query("SELECT value FROM settings WHERE key = 'selected_provider_id'").get();if(t?.value){let r=T(e,t.value);if(r)return r}let n=e.query(`SELECT provider_id, active_alias
|
|
30
|
+
FROM provider_state
|
|
31
|
+
WHERE active_alias IS NOT NULL
|
|
32
|
+
ORDER BY updated_at DESC, provider_id
|
|
33
|
+
LIMIT 1`).get();if(!n?.active_alias)return;return w(e,n.provider_id,n.active_alias)}function se(e,t){let n=e.query("SELECT metadata_json FROM provider_state WHERE provider_id = ?").get(t),r=tt(n?.metadata_json).selected_model_id;if(typeof r!=="string"||r.length===0)return;return{modelID:r,providerID:t}}function ue(e){let t=e.query("SELECT provider_id, position, model_id, enabled FROM provider_priority").all();return new Map(t.map((n)=>[n.provider_id,n]))}function nt(e){return[...new Set(g(e).map((t)=>t.providerID))]}function rt(e){let t=-1;for(let n of e.values())t=Math.max(t,n.position);return t+1}function it(e,t,n){let r=ue(e),i=r.get(t),o=n.position??i?.position??rt(r),a=n.modelID!==void 0?n.modelID:i?.model_id??null,s=n.enabled!==void 0?n.enabled?1:0:i?.enabled??1;e.query(`INSERT INTO provider_priority (provider_id, position, model_id, enabled, updated_at)
|
|
34
|
+
VALUES (?, ?, ?, ?, ?)
|
|
35
|
+
ON CONFLICT(provider_id) DO UPDATE SET
|
|
36
|
+
position = excluded.position,
|
|
37
|
+
model_id = excluded.model_id,
|
|
38
|
+
enabled = excluded.enabled,
|
|
39
|
+
updated_at = excluded.updated_at`).run(t,o,a,s,c())}function ot(e){let t=ue(e);return nt(e).slice().sort((i,o)=>{let a=t.get(i),s=t.get(o);if(a&&s)return a.position-s.position||i.localeCompare(o);if(a)return-1;if(s)return 1;return i.localeCompare(o)}).map((i,o)=>{let a=t.get(i);return{enabled:a?a.enabled===1:!0,modelID:a?.model_id??void 0,position:o,providerID:i}})}function ce(e,t,n){it(e,t,{modelID:n})}function L(e){return e.query("SELECT value FROM settings WHERE key = ?").get("balancing_enabled")?.value==="1"}function at(e,t,n){let r=g(e,t).filter((o)=>!o.disabled&&(!o.rateLimitedUntil||o.rateLimitedUntil<=n));if(r.length===0)return;let i=T(e,t);if(i&&r.some((o)=>o.alias===i.alias))return i;return r[0]}function de(e,t=c(),n){let r=ot(e),i=n?r.slice().sort((o,a)=>{if(o.providerID===n)return-1;if(a.providerID===n)return 1;return o.position-a.position}):r;for(let o of i){if(!o.enabled)continue;if(!o.modelID)continue;let a=at(e,o.providerID,t);if(!a)continue;return{account:a,modelID:o.modelID,providerID:o.providerID}}return}function Q(e,t){let n={alias:t.alias,createdAt:c(),id:crypto.randomUUID(),message:t.message,metadata:t.metadata??{},providerID:t.providerID,type:t.type};return e.query(`INSERT INTO events (id, type, provider_id, alias, message, created_at, metadata_json)
|
|
40
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(n.id,n.type,n.providerID??null,n.alias??null,n.message,n.createdAt,JSON.stringify(n.metadata)),n}function pe(e,t=50){return e.query("SELECT * FROM events ORDER BY created_at DESC LIMIT ?").all(t).map((n)=>{let r;try{r=JSON.parse(n.metadata_json)}catch(i){throw Error(`Invalid event metadata JSON for event ${n.id}`,{cause:i})}return{alias:n.alias??void 0,createdAt:n.created_at,id:n.id,message:n.message,metadata:r,providerID:n.provider_id??void 0,type:n.type}})}function st(e){return`native_auth_suppressed_until:${e}`}function B(e,t,n=1e4){e.query(`INSERT INTO settings (key, value) VALUES (?, ?)
|
|
41
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(st(t),String(c()+n))}var ut=["auth-file","http","oauth-callback"],ct=["new","prompted","dismissed"],dt=["api","oauth","wellknown"];function le(e){return dt.includes(e)}function pt(e){let t;try{t=JSON.parse(e.auth_json)}catch{throw Error(`Invalid pending connection row ${e.id}: auth_json is invalid`)}if(!t||typeof t!=="object"||!("type"in t)||typeof t.type!=="string")throw Error(`Invalid pending connection row ${e.id}: auth_json type is invalid`);if(!le(t.type))throw Error(`Invalid pending connection row ${e.id}: auth_json type ${t.type} is invalid`);return t}function lt(e){if(!le(e.auth_type))throw Error(`Invalid pending connection row ${e.id}: auth_type ${e.auth_type} is invalid`);return e.auth_type}function ft(e){if(!ut.includes(e.source))throw Error(`Invalid pending connection row ${e.id}: source ${e.source} is invalid`);return e.source}function gt(e){if(!ct.includes(e.prompt_status))throw Error(`Invalid pending connection row ${e.id}: prompt_status ${e.prompt_status} is invalid`);return e.prompt_status}function mt(e){let t=pt(e),n=lt(e);if(t.type!==n)throw Error(`Invalid pending connection row ${e.id}: auth_type ${n} does not match auth_json type ${t.type}`);return{auth:t,authType:n,capturedAt:e.captured_at,id:e.id,promptStatus:gt(e),providerID:e.provider_id,source:ft(e)}}function fe(e){return e.query(`SELECT id, provider_id, auth_json, auth_type, source, captured_at, prompt_status
|
|
42
|
+
FROM pending_connections
|
|
43
|
+
ORDER BY captured_at DESC, id DESC`).all().map(mt)}function ge(e){let t=new Set;if(e.auth.type==="api")t.add(e.auth.key);if(e.auth.type==="oauth")t.add(e.auth.access),t.add(e.auth.refresh);if(e.auth.type==="wellknown")t.add(e.auth.key),t.add(e.auth.token);return t.delete(""),t}function yt(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)}function ht(e){let t=e.toLowerCase(),n=t.replace(/[^a-z0-9]/g,"");if(t.includes("api_key")||n.includes("apikey")||t.includes("access_token")||n.includes("accesstoken")||t.includes("refresh_token")||n.includes("refreshtoken")||t.includes("x-api-key")||n.includes("xapikey")||t.includes("authorization"))return!0;let r=yt(e);return["token","key","secret","password"].some((i)=>t===i||r.includes(i))}function v(e,t){return K(e,ge(t))}function H(e,t){return Y(e,ge(t))}function Y(e,t){let n=e;for(let r of[...t].sort((i,o)=>o.length-i.length))n=n.split(r).join("[redacted]");return n}function K(e,t){if(typeof e==="string")return Y(e,t);if(!e||typeof e!=="object")return e;if(Array.isArray(e))return e.map((r)=>K(r,t));let n={};for(let[r,i]of Object.entries(e))n[Y(r,t)]=ht(r)?"[redacted]":K(i,t);return n}function b(e,t,n){return{alias:e.alias,confidence:"unavailable",fetchedAt:Date.now(),message:t,providerID:e.providerID,...n?{error:H(n,e)}:{}}}function ye(e){return{Accept:"application/vnd.github+json",Authorization:`Bearer ${e.auth.type==="oauth"?e.auth.access:""}`,"X-GitHub-Api-Version":"2026-03-10"}}async function W(e,t){let n=await fetch(e,{headers:ye(t)});if(!n.ok)return{ok:!1,status:n.status};try{return{body:await n.json(),ok:!0}}catch{return{body:void 0,ok:!0}}}function me(e){let t=e?.usageItems;if(!Array.isArray(t))return;let n=0,r=!1;for(let i of t){let o=i?.netQuantity,a=i?.quantity,s=typeof o==="number"?o:typeof a==="number"?a:void 0;if(s===void 0)continue;n+=s,r=!0}return r?n:void 0}function F(e,t){let n=e;for(let r of t)n=n?.[r];return typeof n==="number"&&Number.isFinite(n)?n:void 0}function At(e){let t=e?.quota_snapshots,n=t?.premium_interactions??t?.premium_models??t?.chat,r=F(n,["entitlement"]),i=F(n,["remaining"])??F(n,["quota_remaining"]),o=F(n,["percent_remaining"]);return{entitlement:r,percentRemaining:o,remaining:i,used:r!==void 0&&i!==void 0?Math.max(0,r-i):void 0}}async function vt(e){let t=await W("https://api.github.com/copilot_internal/user",e);if(!t.ok)return{ok:!1,status:t.status};let n=typeof t.body?.login==="string"?t.body.login:"GitHub user",r=typeof t.body?.copilot_plan==="string"?t.body.copilot_plan:void 0,i=At(t.body);if(!r&&i.used===void 0&&i.remaining===void 0)return{ok:!1,status:200};return{ok:!0,snapshot:{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),providerID:e.providerID,...i.used!==void 0?{usedTokens:i.used}:{},...i.remaining!==void 0?{remainingTokens:i.remaining}:{},message:r?`GitHub Copilot personal quota fetched for ${n} (${r}).`:`GitHub Copilot personal quota fetched for ${n}.`,rawRedacted:v(t.body,e)}}}async function _t(e){let t=await vt(e);if(t.ok)return t.snapshot;let n=await W("https://api.github.com/user",e);if(!n.ok)return b(e,`GitHub Copilot personal billing usage requires user API access; /user returned HTTP ${n.status}.`);let r=typeof n.body?.login==="string"?n.body.login:void 0;if(!r)return b(e,"GitHub Copilot personal billing usage requires a GitHub username from /user.");let i=`https://api.github.com/users/${encodeURIComponent(r)}/settings/billing/premium_request/usage`,o=await W(i,e);if(o.ok)return{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),message:`GitHub Copilot personal premium request usage fetched for ${r}.`,providerID:e.providerID,rawRedacted:v(o.body,e),usedTokens:me(o.body)};let a=`https://api.github.com/users/${encodeURIComponent(r)}/settings/billing/usage/summary?product=copilot`,s=await W(a,e);if(s.ok)return{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),message:`GitHub Copilot personal billing usage fetched for ${r}.`,providerID:e.providerID,rawRedacted:v(s.body,e),usedTokens:me(s.body)};return b(e,`GitHub Copilot personal billing usage unavailable; copilot_internal/user returned HTTP ${t.status}, premium requests returned HTTP ${o.status}, and billing summary returned HTTP ${s.status}.`)}var he={providerID:"github-copilot",async refreshUsage(e){let t=e.auth.metadata?.githubOrg;if(e.auth.type!=="oauth")return b(e,"GitHub Copilot usage requires OAuth auth.");if(!t)return _t(e);try{let n=await fetch(`https://api.github.com/orgs/${encodeURIComponent(t)}/copilot/billing`,{headers:ye(e)});if(!n.ok)return b(e,`GitHub Copilot billing request failed with HTTP ${n.status}.`);let r=await n.json(),i=typeof r?.plan_type==="string"?r.plan_type:void 0;return{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),providerID:e.providerID,...i?{planName:i}:{},message:i?`GitHub Copilot billing fetched for ${t} (${i}).`:`GitHub Copilot billing fetched for ${t}.`,rawRedacted:v(r,e)}}catch(n){return b(e,"GitHub Copilot billing request failed; exact billing data is unavailable.",n instanceof Error?n.message:String(n))}},supports(e){return e==="github-copilot"||e==="copilot"}};function N(e,t,n){return{alias:e.alias,confidence:"unavailable",fetchedAt:Date.now(),message:t,providerID:e.providerID,...n?{error:H(n,e)}:{}}}function C(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Ae(e){return typeof e==="number"&&Number.isFinite(e)?e:void 0}function Et(e){let t=e.split(".")[1];if(!t)return;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),r=`${n}${"=".repeat((4-n.length%4)%4)}`,i=JSON.parse(Buffer.from(r,"base64").toString("utf8"));return C(i)?i:void 0}catch{return}}function Dt(e){if(e.auth.type!=="oauth")return;if(e.auth.accountId)return e.auth.accountId;let n=Et(e.auth.access)?.["https://api.openai.com/auth"];if(!C(n))return;let r=n.chatgpt_account_id;return typeof r==="string"&&r.trim()?r:void 0}function St(e){if(typeof e!=="string"||!e.trim())return;let t=e.trim().toLowerCase();return{enterprise:"ChatGPT Enterprise",plus:"ChatGPT Plus",pro:"ChatGPT Pro",team:"ChatGPT Team"}[t]??e}function wt(e){let t=Ae(e);if(t===void 0||t<0)return;return t>1000000000000?t:t*1000}async function It(e){if(e.auth.type!=="oauth")return N(e,"OpenAI ChatGPT usage requires OAuth auth.");try{let t={Authorization:`Bearer ${e.auth.access}`,"User-Agent":"opencode-balancer/0.1.3"},n=Dt(e);if(n)t["ChatGPT-Account-Id"]=n;let r=await fetch("https://chatgpt.com/backend-api/wham/usage",{headers:t});if(!r.ok)return N(e,`OpenAI ChatGPT usage request failed with HTTP ${r.status}.`);let i=await r.json(),o=C(i)&&C(i.rate_limit)?i.rate_limit:void 0,a=o&&C(o.primary_window)?o.primary_window:void 0;return{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),message:"OpenAI ChatGPT usage fetched.",planName:C(i)?St(i.plan_type):void 0,providerID:e.providerID,rawRedacted:v(i,e),resetAt:a?wt(a.reset_at):void 0,usedPercent:a?Ae(a.used_percent):void 0}}catch(t){return N(e,"OpenAI ChatGPT usage request failed; exact usage is unavailable.",t instanceof Error?t.message:String(t))}}var ve={providerID:"openai",async refreshUsage(e){if(e.auth.type!=="api")return It(e);let t=new URL("https://api.openai.com/v1/organization/usage/completions");t.searchParams.set("start_time",String(Math.floor((Date.now()-86400000)/1000))),t.searchParams.set("bucket_width","1d");try{let n=await fetch(t,{headers:{Authorization:`Bearer ${e.auth.key}`}});if(!n.ok)return N(e,`OpenAI usage request failed with HTTP ${n.status}.`);let r=await n.json();return{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),message:"OpenAI organization usage fetched.",providerID:e.providerID,rawRedacted:v(r,e)}}catch(n){return N(e,"OpenAI usage request failed; exact usage is unavailable.",n instanceof Error?n.message:String(n))}},supports(e){return e==="openai"}};var kt=[ve,he];async function _e(e){let t=kt.find((n)=>n.supports(e.providerID));if(t)return t.refreshUsage(e);return{alias:e.alias,confidence:"unavailable",fetchedAt:Date.now(),message:`No usage service registered for ${e.providerID}.`,providerID:e.providerID}}function Ee(e,t){let{rawRedacted:n,...r}=t,i=Object.hasOwn(t,"rawRedacted")?JSON.stringify(n):null;if(e.query(`INSERT INTO usage_snapshots (
|
|
44
|
+
provider_id, alias, fetched_at, confidence, normalized_json, raw_redacted_json, error
|
|
45
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
46
|
+
ON CONFLICT(provider_id, alias) DO UPDATE SET
|
|
47
|
+
fetched_at = excluded.fetched_at,
|
|
48
|
+
confidence = excluded.confidence,
|
|
49
|
+
normalized_json = excluded.normalized_json,
|
|
50
|
+
raw_redacted_json = excluded.raw_redacted_json,
|
|
51
|
+
error = excluded.error`).run(t.providerID,t.alias,t.fetchedAt,t.confidence,JSON.stringify(r),i,t.error??null),t.confidence==="exact"&&t.usedPercent!==void 0&&t.usedPercent<100)e.query(`UPDATE accounts
|
|
52
|
+
SET rate_limited_until = NULL,
|
|
53
|
+
updated_at = ?
|
|
54
|
+
WHERE provider_id = ? AND alias = ?`).run(t.fetchedAt,t.providerID,t.alias)}async function De(e,t,n,r,i={}){let o=M(t.db)?.providerID,a=oe(t.db,n,r)??T(t.db,n);if(a)try{B(t.db,n),await e.client.auth.set({body:a.auth,path:{id:n}})}catch{}if(t.refresh(),(i.sessionProviderID??o)!==n)await i.applyNativeProviderModel?.(n);e.ui?.toast({message:`Activated ${n}/${r}.`,variant:"success"})}async function Se(e,t,n,r,i={}){let o=w(t.db,n,r)??t.accounts().find((a)=>{return a.providerID===n&&a.alias===r});if(!o){e.ui.toast({message:`Account not found: ${n}/${r}`,variant:"error"});return}try{let a=await(i.refreshUsage??_e)(o);if(Ee(t.db,a),Q(t.db,{alias:r,message:a.message,providerID:n,type:a.confidence==="unavailable"?"usage_unavailable":"usage_refreshed"}),t.refresh(),!i.silent)e.ui.toast({message:a.message,variant:a.confidence==="unavailable"?"warning":"success"})}catch(a){let s=a instanceof Error?a.message:"Usage refresh failed.";e.ui.toast({message:s,variant:"error"})}}function we(e,t,n,r){if(!ae(t.db,n,r)){e.ui.toast({message:`Account not found: ${n}/${r}`,variant:"error"});return}let o=`Removed account ${n}/${r}.`;Q(t.db,{alias:r,message:o,providerID:n,type:"account_removed"}),t.refresh(),t.removeAccountView(n,r),e.ui.toast({message:o,variant:"success"})}function Rt(e){let t=e.renderer?.stdin;return t&&typeof t.emit==="function"?t:void 0}function Pt(e,t){let n=Rt(e);if(!n)return!1;return n.emit("data",Buffer.from(t)),!0}async function Tt(e,t){let n=e.settleMs??90;if(e.dispatchCommand("model.list"),await e.wait(n),!e.isDialogOpen())return!1;if(!e.feed(t))return!1;if(await e.wait(n),!e.feed("\r"))return!1;if(await e.wait(n),e.isDialogOpen())e.feed("\x1B");return!0}function G(e){return(t,n)=>Tt({dispatchCommand:(r)=>e.keymap.dispatchCommand(r),feed:(r)=>Pt(e,r),isDialogOpen:()=>e.ui.dialog.open,wait:(r)=>new Promise((i)=>setTimeout(i,r))},n)}function bt(e){let t,n=!1;return{maybeSync:async()=>{if(!e.balancingEnabled())return t=void 0,!1;if(n||e.dialogOpen())return!1;let i=e.activeSelection();if(!i)return!1;let o=`${i.providerID}/${i.modelID}`;if(o===t)return!1;let a=e.modelTitle(i.providerID,i.modelID)??i.modelID;n=!0;try{let s=await e.apply(i,a);if(s)t=o;return s}finally{n=!1}}}}function Ie(e,t){return bt({activeSelection:()=>de(t.db),apply:G(e),balancingEnabled:()=>L(t.db),dialogOpen:()=>e.ui.dialog.open,modelTitle:(n,r)=>{return e.state.provider.find((o)=>o.id===n)?.models?.[r]?.name}})}var X="native_connect_until";function ke(e,t=180000){e.query(`INSERT INTO settings (key, value) VALUES ('native_connect_until', ?)
|
|
55
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(String(c()+t))}function Re(e){let t=e.query("SELECT value FROM settings WHERE key = ?").get(X),n=Number(t?.value??0);if(Number.isFinite(n)&&n>c())return!0;if(t)e.query("DELETE FROM settings WHERE key = ?").run(X);return!1}function Pe(e){e.query("DELETE FROM settings WHERE key = ?").run(X)}import{existsSync as jt,readFileSync as Mt}from"fs";function I(...e){return e.filter(Boolean).join("/").replace(/\/+/g,"/")}function Te(){return Bun.env.HOME||"/"}function Ct(){return Bun.env.XDG_CONFIG_HOME||I(Te(),".config")}function Ot(){return Bun.env.XDG_DATA_HOME||I(Te(),".local","share")}function Nt(){let e=Bun.env.OPENCODE_CONFIG_DIR;return e?I(e):I(Ct(),"opencode")}function xt(){return I(Ot(),"opencode")}function be(){return I(Nt(),"balancer.sqlite")}function Ce(){return I(xt(),"auth.json")}var Ut=new Map;function $t(e,t=2000){Ut.set(e,c()+t)}async function rr(e,t,n,r){if(r&&Re(r))return;if($t(t),r)B(r,t);try{await e.auth.set({body:n,path:{id:t}})}catch{}}async function qt(e,t,n="info"){try{await e.tui.showToast({body:{duration:15000,message:t,variant:n}})}catch{}}function x(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function Lt(e){if(e===void 0)return{metadata:void 0,ok:!0};if(!x(e))return{ok:!1};let t={};for(let[n,r]of Object.entries(e)){if(typeof r!=="string")return{ok:!1};t[n]=r}return{metadata:t,ok:!0}}function Z(e,t){let n=Lt(t);if(!n.ok)return;if(n.metadata)e.metadata=n.metadata;return e}function Bt(e){if(!x(e)||typeof e.type!=="string")return;if(e.type==="api"&&typeof e.key==="string")return Z({key:e.key,type:"api"},e.metadata);if(e.type==="oauth"&&typeof e.refresh==="string"&&typeof e.access==="string"&&typeof e.expires==="number"&&Number.isFinite(e.expires)){let t={access:e.access,expires:e.expires,refresh:e.refresh,type:"oauth"};if(typeof e.accountId==="string")t.accountId=e.accountId;if(typeof e.enterpriseUrl==="string")t.enterpriseUrl=e.enterpriseUrl;return Z(t,e.metadata)}if(e.type==="wellknown"&&typeof e.key==="string"&&typeof e.token==="string")return Z({key:e.key,token:e.token,type:"wellknown"},e.metadata);return}function Oe(e){let t;try{t=JSON.parse(e)}catch{return{ok:!1}}if(!x(t))return{ok:!1};let n={};for(let[r,i]of Object.entries(t)){let o=Bt(i);if(!o)return{ok:!1};n[r]=o}return{auth:n,ok:!0}}function xe(){let e=Bun.env.OPENCODE_AUTH_CONTENT;if(e!==void 0)return Oe(e);let t=Ce();if(!jt(t))return{auth:{},ok:!0};try{return Oe(Mt(t,"utf8"))}catch{return{ok:!1}}}function Ht(e){let t=e.split(".")[1];if(!t)return;try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));return x(n)?n:void 0}catch{return}}function Ne(e){if(e.accountId)return e.accountId;let t=Ht(e.access)?.["https://api.openai.com/auth"];if(!x(t))return;let n=t.chatgpt_account_id;return typeof n==="string"&&n.length>0?n:void 0}function Ue(e,t){if(e.type!==t.type)return!1;if(e.type==="api"&&t.type==="api")return e.key===t.key;if(e.type==="wellknown"&&t.type==="wellknown")return e.key===t.key&&e.token===t.token;if(e.type==="oauth"&&t.type==="oauth"){let n=Ne(e),r=Ne(t);if(n&&r)return n===r;return e.refresh===t.refresh}return!1}var $e="abcdefghijklmnopqrstuvwxyz0123456789";function Ft(){let e="";for(let t=0;t<5;t++)e+=$e[Math.floor(Math.random()*$e.length)];return e}function qe(e){return JSON.stringify(e??null)}function Wt(e,t){return Object.entries(t).find(([n,r])=>qe(e[n])!==qe(r))}function Gt(e,t,n){for(let r=0;r<100;r++){let i=n();if(!e.query("SELECT alias FROM accounts WHERE provider_id = ? AND alias = ?").get(t,i))return i}throw Error("Could not generate a unique alias")}async function Jt(e,t,n){let r=Date.now();while(!0){let i=e();if(t.ok&&i.ok){let o=Wt(t.auth,i.auth);if(o)return o}if(Date.now()-r>=n.maxWaitMs)return;await n.wait(n.pollIntervalMs)}}async function je(e){if(e.keymap?.dispatchCommand){let t=e.readAuth??xe,n=t();if(e.db)ke(e.db);if(await e.keymap.dispatchCommand("provider.connect"),e.db)try{let r=await Jt(t,n,{maxWaitMs:e.maxWaitMs??(e.ui?.dialog?600000:0),pollIntervalMs:e.pollIntervalMs??500,wait:e.wait??((i)=>new Promise((o)=>setTimeout(o,i)))});if(r){let[i,o]=r,s=g(e.db,i).find((f)=>Ue(f.auth,o))?.alias??Gt(e.db,i,e.generateAlias??Ft),m=V(e.db,i,s,o);e.ui?.toast?.({message:`Saved ${m.providerID}/${m.alias}.`,variant:"success"})}}finally{Pe(e.db)}return}e.ui?.toast?.({message:"Native provider connect is unavailable in this opencode build.",variant:"error"})}function Me(e,t){let n=e.find((r)=>r.id===t);if(!n?.models)return[];return Object.entries(n.models).filter(([,r])=>r.status!=="deprecated").map(([r,i])=>({modelID:i.id??r,providerID:n.id,providerName:n.name??n.id,releaseDate:i.release_date??"",title:i.name??i.id??r})).sort((r,i)=>i.releaseDate.localeCompare(r.releaseDate)||r.title.localeCompare(i.title)).map(({releaseDate:r,...i})=>i)}function Le(e){let t=!1,n,r=()=>n??e.currentProvider();return{currentProvider:r,maybeSync:async()=>{if(t||e.dialogOpen())return!1;let i=e.selectedProvider();if(!i||i===r())return!1;t=!0;try{let o=await e.applyProvider(i);if(o)n=i;return o}finally{t=!1}}}}import{createSignal as J,onCleanup as pn}from"solid-js";import{Database as zt}from"bun:sqlite";import{chmodSync as Vt,mkdirSync as Qt}from"fs";import{dirname as Yt}from"path";var U=new Map;function Kt(e){return e.code==="ENOENT"}function Be(e){return e instanceof Error&&/closed/i.test(e.message)}function Xt(e){try{return e.exec("SELECT 1;"),!0}catch(t){if(Be(t))return!1;throw t}}function Zt(e){for(let t of[e,`${e}-wal`,`${e}-shm`])try{Vt(t,384)}catch(n){if(!Kt(n))throw n}}function He(e){let t=U.get(e);if(t){if(Xt(t))return t;U.delete(e)}Qt(Yt(e),{recursive:!0});let n=new zt(e);try{return n.exec("PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;"),Zt(e),U.set(e,n),n}catch(r){try{n.close()}catch{}throw r}}function Fe(e){let t=U.get(e);if(!t)return;U.delete(e);try{t.close()}catch(n){if(!Be(n))throw n}}var ee=new Set(["api","oauth","wellknown"]);function en(e,t){let n=e.query("SELECT version FROM schema_migrations WHERE version = ?").get(t);return Boolean(n)}function tn(e,t){let n=e.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(t);return Boolean(n)}function nn(e,t){if(!tn(e,t))return new Set;return new Set(e.query(`PRAGMA table_info(${t})`).all().map((n)=>n.name))}function We(e){try{let t=JSON.parse(e);if(typeof t.type==="string"&&ee.has(t.type))return t.type}catch{}return"api"}function k(e,t,n){let r=nn(e,t),i=n.filter((o)=>r.has(o));if(i.length===0)return[];return e.query(`SELECT ${i.join(", ")} FROM ${t}`).all()}function rn(e){let t=k(e,"accounts",["provider_id","alias","auth_json","auth_type","created_at","updated_at","last_used_at","rate_limited_until","failures","disabled"]);e.exec(`
|
|
56
|
+
DROP TABLE IF EXISTS accounts_new;
|
|
57
|
+
CREATE TABLE accounts_new (
|
|
58
|
+
provider_id TEXT NOT NULL,
|
|
59
|
+
alias TEXT NOT NULL,
|
|
60
|
+
auth_json TEXT NOT NULL,
|
|
61
|
+
auth_type TEXT NOT NULL,
|
|
62
|
+
created_at INTEGER NOT NULL,
|
|
63
|
+
updated_at INTEGER NOT NULL,
|
|
64
|
+
last_used_at INTEGER,
|
|
65
|
+
rate_limited_until INTEGER,
|
|
66
|
+
failures INTEGER NOT NULL DEFAULT 0,
|
|
67
|
+
disabled INTEGER NOT NULL DEFAULT 0,
|
|
68
|
+
PRIMARY KEY (provider_id, alias)
|
|
69
|
+
);
|
|
70
|
+
`);let n=e.query(`INSERT OR REPLACE INTO accounts_new (
|
|
71
|
+
provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
72
|
+
last_used_at, rate_limited_until, failures, disabled
|
|
73
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);for(let r of t){if(typeof r.provider_id!=="string"||typeof r.alias!=="string"||typeof r.auth_json!=="string")continue;let i=typeof r.auth_type==="string"&&ee.has(r.auth_type)?r.auth_type:We(r.auth_json);n.run(r.provider_id,r.alias,r.auth_json,i,typeof r.created_at==="number"?r.created_at:Date.now(),typeof r.updated_at==="number"?r.updated_at:Date.now(),typeof r.last_used_at==="number"?r.last_used_at:null,typeof r.rate_limited_until==="number"?r.rate_limited_until:null,typeof r.failures==="number"?r.failures:0,r.disabled===1?1:0)}e.exec(`
|
|
74
|
+
DROP TABLE IF EXISTS accounts;
|
|
75
|
+
ALTER TABLE accounts_new RENAME TO accounts;
|
|
76
|
+
`)}function on(e){let t=k(e,"provider_state",["provider_id","active_alias","updated_at","metadata_json"]);e.exec(`
|
|
77
|
+
DROP TABLE IF EXISTS provider_state_new;
|
|
78
|
+
CREATE TABLE provider_state_new (
|
|
79
|
+
provider_id TEXT PRIMARY KEY,
|
|
80
|
+
active_alias TEXT,
|
|
81
|
+
updated_at INTEGER NOT NULL,
|
|
82
|
+
metadata_json TEXT NOT NULL DEFAULT '{}'
|
|
83
|
+
);
|
|
84
|
+
`);let n=e.query(`INSERT OR REPLACE INTO provider_state_new (provider_id, active_alias, updated_at, metadata_json)
|
|
85
|
+
VALUES (?, ?, ?, ?)`);for(let r of t){if(typeof r.provider_id!=="string")continue;n.run(r.provider_id,typeof r.active_alias==="string"?r.active_alias:null,typeof r.updated_at==="number"?r.updated_at:Date.now(),typeof r.metadata_json==="string"?r.metadata_json:"{}")}e.exec(`
|
|
86
|
+
DROP TABLE IF EXISTS provider_state;
|
|
87
|
+
ALTER TABLE provider_state_new RENAME TO provider_state;
|
|
88
|
+
`)}function an(e){let t=k(e,"pending_connections",["id","provider_id","auth_json","auth_type","source","captured_at","prompt_status"]);e.exec(`
|
|
89
|
+
DROP TABLE IF EXISTS pending_connections_new;
|
|
90
|
+
CREATE TABLE pending_connections_new (
|
|
91
|
+
id TEXT PRIMARY KEY,
|
|
92
|
+
provider_id TEXT NOT NULL,
|
|
93
|
+
auth_json TEXT NOT NULL,
|
|
94
|
+
auth_type TEXT NOT NULL,
|
|
95
|
+
source TEXT NOT NULL,
|
|
96
|
+
captured_at INTEGER NOT NULL,
|
|
97
|
+
prompt_status TEXT NOT NULL
|
|
98
|
+
);
|
|
99
|
+
`);let n=e.query(`INSERT OR REPLACE INTO pending_connections_new (
|
|
100
|
+
id, provider_id, auth_json, auth_type, source, captured_at, prompt_status
|
|
101
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)`);for(let r of t){if(typeof r.id!=="string"||typeof r.provider_id!=="string"||typeof r.auth_json!=="string")continue;let i=typeof r.auth_type==="string"&&ee.has(r.auth_type)?r.auth_type:We(r.auth_json);n.run(r.id,r.provider_id,r.auth_json,i,typeof r.source==="string"?r.source:"auth-file",typeof r.captured_at==="number"?r.captured_at:Date.now(),typeof r.prompt_status==="string"?r.prompt_status:"new")}e.exec(`
|
|
102
|
+
DROP TABLE IF EXISTS pending_connections;
|
|
103
|
+
ALTER TABLE pending_connections_new RENAME TO pending_connections;
|
|
104
|
+
`)}function sn(e){let t=k(e,"usage_snapshots",["provider_id","alias","fetched_at","confidence","normalized_json","raw_redacted_json","error"]);e.exec(`
|
|
105
|
+
DROP TABLE IF EXISTS usage_snapshots_new;
|
|
106
|
+
CREATE TABLE usage_snapshots_new (
|
|
107
|
+
provider_id TEXT NOT NULL,
|
|
108
|
+
alias TEXT NOT NULL,
|
|
109
|
+
fetched_at INTEGER NOT NULL,
|
|
110
|
+
confidence TEXT NOT NULL,
|
|
111
|
+
normalized_json TEXT NOT NULL,
|
|
112
|
+
raw_redacted_json TEXT,
|
|
113
|
+
error TEXT,
|
|
114
|
+
PRIMARY KEY (provider_id, alias)
|
|
115
|
+
);
|
|
116
|
+
`);let n=e.query(`INSERT OR REPLACE INTO usage_snapshots_new (
|
|
117
|
+
provider_id, alias, fetched_at, confidence, normalized_json, raw_redacted_json, error
|
|
118
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)`);for(let r of t){if(typeof r.provider_id!=="string"||typeof r.alias!=="string")continue;n.run(r.provider_id,r.alias,typeof r.fetched_at==="number"?r.fetched_at:Date.now(),typeof r.confidence==="string"?r.confidence:"unavailable",typeof r.normalized_json==="string"?r.normalized_json:"{}",typeof r.raw_redacted_json==="string"?r.raw_redacted_json:null,typeof r.error==="string"?r.error:null)}e.exec(`
|
|
119
|
+
DROP TABLE IF EXISTS usage_snapshots;
|
|
120
|
+
ALTER TABLE usage_snapshots_new RENAME TO usage_snapshots;
|
|
121
|
+
`)}function un(e){let t=k(e,"events",["id","type","provider_id","alias","message","created_at","metadata_json"]);e.exec(`
|
|
122
|
+
DROP TABLE IF EXISTS events_new;
|
|
123
|
+
CREATE TABLE events_new (
|
|
124
|
+
id TEXT PRIMARY KEY,
|
|
125
|
+
type TEXT NOT NULL,
|
|
126
|
+
provider_id TEXT,
|
|
127
|
+
alias TEXT,
|
|
128
|
+
message TEXT NOT NULL,
|
|
129
|
+
created_at INTEGER NOT NULL,
|
|
130
|
+
metadata_json TEXT NOT NULL DEFAULT '{}'
|
|
131
|
+
);
|
|
132
|
+
`);let n=e.query(`INSERT OR REPLACE INTO events_new (id, type, provider_id, alias, message, created_at, metadata_json)
|
|
133
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`);for(let r of t){if(typeof r.id!=="string"||typeof r.type!=="string"||typeof r.message!=="string")continue;n.run(r.id,r.type,typeof r.provider_id==="string"?r.provider_id:null,typeof r.alias==="string"?r.alias:null,r.message,typeof r.created_at==="number"?r.created_at:Date.now(),typeof r.metadata_json==="string"?r.metadata_json:"{}")}e.exec(`
|
|
134
|
+
DROP TABLE IF EXISTS events;
|
|
135
|
+
ALTER TABLE events_new RENAME TO events;
|
|
136
|
+
`)}function cn(e){let t=k(e,"provider_priority",["provider_id","position","model_id","enabled","updated_at"]);e.exec(`
|
|
137
|
+
DROP TABLE IF EXISTS provider_priority_new;
|
|
138
|
+
CREATE TABLE provider_priority_new (
|
|
139
|
+
provider_id TEXT PRIMARY KEY,
|
|
140
|
+
position INTEGER NOT NULL,
|
|
141
|
+
model_id TEXT,
|
|
142
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
143
|
+
updated_at INTEGER NOT NULL
|
|
144
|
+
);
|
|
145
|
+
`);let n=e.query(`INSERT OR REPLACE INTO provider_priority_new (provider_id, position, model_id, enabled, updated_at)
|
|
146
|
+
VALUES (?, ?, ?, ?, ?)`);for(let r of t){if(typeof r.provider_id!=="string")continue;n.run(r.provider_id,typeof r.position==="number"?r.position:0,typeof r.model_id==="string"?r.model_id:null,r.enabled===0?0:1,typeof r.updated_at==="number"?r.updated_at:Date.now())}e.exec(`
|
|
147
|
+
DROP TABLE IF EXISTS provider_priority;
|
|
148
|
+
ALTER TABLE provider_priority_new RENAME TO provider_priority;
|
|
149
|
+
`)}function dn(e){let t=k(e,"settings",["key","value"]);e.exec(`
|
|
150
|
+
DROP TABLE IF EXISTS settings_new;
|
|
151
|
+
CREATE TABLE settings_new (
|
|
152
|
+
key TEXT PRIMARY KEY,
|
|
153
|
+
value TEXT NOT NULL
|
|
154
|
+
);
|
|
155
|
+
`);let n=e.query("INSERT OR REPLACE INTO settings_new (key, value) VALUES (?, ?)");for(let r of t){if(typeof r.key!=="string"||typeof r.value!=="string")continue;n.run(r.key,r.value)}e.exec(`
|
|
156
|
+
DROP TABLE IF EXISTS settings;
|
|
157
|
+
ALTER TABLE settings_new RENAME TO settings;
|
|
158
|
+
`)}function Ge(e){e.exec(`
|
|
159
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
160
|
+
version INTEGER PRIMARY KEY,
|
|
161
|
+
applied_at INTEGER NOT NULL
|
|
162
|
+
);
|
|
163
|
+
`),e.transaction(()=>{if(rn(e),on(e),an(e),sn(e),un(e),cn(e),dn(e),!en(e,1))e.query("INSERT INTO schema_migrations (version, applied_at) VALUES (?, ?)").run(1,Date.now())})()}function Je(){let e=be(),t=He(e);Ge(t);let[n,r]=J(0),[i,o]=J([]),[a,s]=J([]),[m,f]=J([]),_=()=>{o(g(t)),s(fe(t)),f(pe(t,10)),r((E)=>E+1)},y=(E,A)=>{o((D)=>D.filter(($)=>$.providerID!==E||$.alias!==A)),r((D)=>D+1)},l=(E)=>{s((A)=>A.filter((D)=>D.id!==E)),r((A)=>A+1)},p,h=!1,O=()=>{if(h)return;if(h=!0,p)clearInterval(p);p=void 0,Fe(e)};return _(),p=setInterval(_,1000),pn(O),{accounts:i,db:t,dispose:O,events:m,pending:a,refresh:_,removeAccountView:y,removePendingView:l,version:n}}function ze(e,t,n={}){let r=n.intervalMs??60000,i=n.promptDebounceMs??30000,o=n.now??Date.now,a=new Set,s=0,m=async(l,p)=>{let h=`${l}/${p}`;if(a.has(h))return;a.add(h);try{await Se(e,t,l,p,{refreshUsage:n.refreshUsage,silent:!0})}finally{a.delete(h)}},f=async()=>{let l=g(t.db).filter((p)=>!p.disabled);await Promise.all(l.map((p)=>m(p.providerID,p.alias)))},_=async()=>{let l=o();if(l-s<i)return;s=l,await f()},y=r>0?setInterval(()=>void f(),r):void 0;return f(),{dispose(){if(y)clearInterval(y)},refreshForPrompt:_,refreshNow:f}}function te(e){let t=e?.model?.providerID;return typeof t==="string"&&t.length>0?t:void 0}function ln(e){return"params"in e&&e.params?{name:e.name,params:{...e.params}}:{name:e.name}}var fn=async(e)=>{await import("@opentui/solid/runtime-plugin-support");let[t,n,r,i,o,a]=await Promise.all([import("./components/dashboard.tsx"),import("./components/priority-screen.tsx"),import("./components/provider-model-dialog.tsx"),import("./components/rename-dialog.tsx"),import("./components/sidebar.tsx"),import("./components/status-indicator.tsx")]),s=Je(),m=ze(e,s),f=Ie(e,s),_=G(e),y,l,p,h=async(u)=>{let d=Me(e.state.provider,u),R=se(s.db,u),P=d.find((Ye)=>Ye.modelID===R?.modelID)??d[0];if(!P)return!1;return _({modelID:P.modelID,providerID:P.providerID},P.title)},O=async(u)=>{let d=await h(u);if(d)l=u;return d},E=Le({applyProvider:O,currentProvider:()=>l??p,dialogOpen:()=>e.ui.dialog.open,selectedProvider:()=>L(s.db)?void 0:M(s.db)?.providerID});e.lifecycle.onDispose(()=>{m.dispose(),s.dispose()});let A=()=>{if(e.route.current.name!=="balancer.dashboard")y=ln(e.route.current);e.route.navigate("balancer.dashboard")},D=()=>{e.route.navigate("balancer.priority")},$=()=>{let u=y;if(y=void 0,u)e.route.navigate(u.name,"params"in u?u.params:void 0);else e.route.navigate("home")},Ve=e.route.register([{name:"balancer.dashboard",render:()=>z(t.Dashboard,{api:e,onBack:$,openConnect:()=>je({...e,db:s.db}),openPriority:D,removeAccount:(u,d)=>we(e,s,u,d),renameAccount:(u,d)=>i.openRenameDialog(e,s,u,d),state:s})},{name:"balancer.priority",render:()=>z(n.PriorityScreen,{api:e,onBack:()=>e.route.navigate("balancer.dashboard"),openModelPicker:(u,d)=>r.openProviderModelDialog(e,s,u,{applyNativeSelection:!1,onComplete:d,onSelected:(R)=>ce(s.db,R.providerID,R.modelID)}),state:s})}]);e.lifecycle.onDispose(Ve);let Qe=e.keymap.registerLayer({bindings:[{cmd:"balancer.dashboard.open",key:"ctrl+b"}],commands:[{category:"Plugin",name:"balancer.dashboard.open",namespace:"palette",run(){A()},slashName:"balancer",title:"Open Balancer Dashboard"}]});e.lifecycle.onDispose(Qe),e.slots.register({slots:{session_prompt_right(u,d){return p=te(e.state.session.get(d.session_id)),m.refreshForPrompt(),E.maybeSync(),f.maybeSync(),z(a.BalancerStatusIndicator,{api:e,providerID:()=>te(e.state.session.get(d.session_id)),state:s})},sidebar_content(u,d){return z(o.BalancerSidebar,{activateAccount:(R,P)=>{return De(e,s,R,P,{applyNativeProviderModel:O,sessionProviderID:l??te(e.state.session.get(d.session_id))})},api:e,openDashboard:A,state:s})}}})},Qr={id:"opencode-balancer",tui:fn};export{Qr as default};
|
|
164
|
+
|
|
165
|
+
//# debugId=2BF736048BEC9EFD64756E2164756E21
|
package/dist/tui/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/tui/tui.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/tui/tui.tsx","../src/core/time.ts","../src/core/accounts.ts","../src/core/priority.ts","../src/core/events.ts","../src/core/native-auth-suppression.ts","../src/core/pending.ts","../src/core/usage/redact.ts","../src/core/usage/providers/copilot.ts","../src/core/usage/providers/openai.ts","../src/core/usage/index.ts","../src/core/usage/store.ts","../src/tui/actions.ts","../src/tui/native-model-apply.ts","../src/tui/balancer-bar-sync.ts","../src/core/native-connect.ts","../src/server/auth-watcher.ts","../src/core/path.ts","../src/server/native.ts","../src/tui/connect.ts","../src/tui/provider-models.ts","../src/tui/selected-account-bar-sync.ts","../src/tui/state.ts","../src/core/database.ts","../src/core/schema.ts","../src/tui/usage-auto-refresh.ts"],"mappings":"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","debugId":"2BF736048BEC9EFD64756E2164756E21","names":[]}
|