@thelioo/opencode-balancer 0.2.3 → 0.2.5
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/index.js +28 -28
- package/dist/index.js.map +1 -1
- package/dist/server/cache-update.ts +177 -0
- package/dist/server/index.ts +10 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var S=import.meta.require;import{createComponent as ae}from"solid-js";function c(){return Date.now()}var kt=["api","oauth","wellknown"];function O(e){return e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")}function z(e){return`${e.provider_id}/${e.alias}`}function ve(e){return kt.includes(e)}function Rt(e){let t=z(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(!ve(n.type))throw Error(`Invalid account row for ${t}: auth_json type ${n.type} is invalid`);return n}function Dt(e){if(!ve(e.auth_type))throw Error(`Invalid account row for ${z(e)}: auth_type ${e.auth_type} is invalid`);return e.auth_type}function wt(e){if(e.disabled!==0&&e.disabled!==1)throw Error(`Invalid account row for ${z(e)}: disabled ${e.disabled} is invalid`);return Boolean(e.disabled)}function Ae(e){let t=Rt(e),n=Dt(e);if(t.type!==n)throw Error(`Invalid account row for ${z(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:wt(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 _e(e,t,n){e.query(`INSERT INTO provider_state (provider_id, active_alias, updated_at, metadata_json)
|
|
3
3
|
VALUES (?, ?, ?, '{}')
|
|
4
4
|
ON CONFLICT(provider_id) DO UPDATE SET
|
|
5
5
|
active_alias = excluded.active_alias,
|
|
6
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
|
|
7
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(t)}function It(e){if(!e)return{};try{let t=JSON.parse(e);return t&&typeof t==="object"&&!Array.isArray(t)?t:{}}catch{return{}}}function se(e,t,n,r){let i=O(n);if(!i)throw Error("Invalid alias");return e.transaction(()=>{let a=c();e.query(`INSERT INTO accounts (
|
|
8
8
|
provider_id,
|
|
9
9
|
alias,
|
|
10
10
|
auth_json,
|
|
@@ -17,30 +17,30 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
17
17
|
ON CONFLICT(provider_id, alias) DO UPDATE SET
|
|
18
18
|
auth_json = excluded.auth_json,
|
|
19
19
|
auth_type = excluded.auth_type,
|
|
20
|
-
updated_at = excluded.updated_at`).run(t,i,JSON.stringify(r),r.type,a,a,0,0),
|
|
20
|
+
updated_at = excluded.updated_at`).run(t,i,JSON.stringify(r),r.type,a,a,0,0),_e(e,t,i);let s=E(e,t,i);if(!s)throw Error(`Account not found: ${t}/${i}`);return s})()}function E(e,t,n){let r=O(n),i=e.query(`SELECT provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
21
21
|
last_used_at, rate_limited_until, failures, disabled
|
|
22
22
|
FROM accounts
|
|
23
|
-
WHERE provider_id = ? AND alias = ?`).get(t,r);return i?
|
|
23
|
+
WHERE provider_id = ? AND alias = ?`).get(t,r);return i?Ae(i):void 0}function y(e,t){return(t?e.query(`SELECT provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
24
24
|
last_used_at, rate_limited_until, failures, disabled
|
|
25
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
26
|
last_used_at, rate_limited_until, failures, disabled
|
|
27
|
-
FROM accounts ORDER BY provider_id, alias`).all()).map(
|
|
27
|
+
FROM accounts ORDER BY provider_id, alias`).all()).map(Ae)}function R(e,t,n){let r=O(n),i=E(e,t,r);if(!i)throw Error(`Account not found: ${t}/${r}`);return _e(e,t,r),i}function Ee(e,t,n){let r=O(n);return e.transaction(()=>{if(!E(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
28
|
SET active_alias = ?, updated_at = ?
|
|
29
|
-
WHERE provider_id = ?`).run(s?.alias??null,c(),t)}return!0})()}function
|
|
29
|
+
WHERE provider_id = ?`).run(s?.alias??null,c(),t)}return!0})()}function A(e,t){let n=e.query("SELECT active_alias FROM provider_state WHERE provider_id = ?").get(t);if(!n?.active_alias)return;return E(e,t,n.active_alias)}function $(e){let t=e.query("SELECT value FROM settings WHERE key = 'selected_provider_id'").get();if(t?.value){let r=A(e,t.value);if(r)return r}let n=e.query(`SELECT provider_id, active_alias
|
|
30
30
|
FROM provider_state
|
|
31
31
|
WHERE active_alias IS NOT NULL
|
|
32
32
|
ORDER BY updated_at DESC, provider_id
|
|
33
|
-
LIMIT 1`).get();if(!n?.active_alias)return;return E(e,n.provider_id,n.active_alias)}function
|
|
33
|
+
LIMIT 1`).get();if(!n?.active_alias)return;return E(e,n.provider_id,n.active_alias)}function J(e,t){let n=e.query("SELECT metadata_json FROM provider_state WHERE provider_id = ?").get(t),r=It(n?.metadata_json).selected_model_id;if(typeof r!=="string"||r.length===0)return;return{modelID:r,providerID:t}}function ke(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 Pt(e){return[...new Set(y(e).map((t)=>t.providerID))]}function St(e){let t=-1;for(let n of e.values())t=Math.max(t,n.position);return t+1}function bt(e,t,n){let r=ke(e),i=r.get(t),o=n.position??i?.position??St(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
34
|
VALUES (?, ?, ?, ?, ?)
|
|
35
35
|
ON CONFLICT(provider_id) DO UPDATE SET
|
|
36
36
|
position = excluded.position,
|
|
37
37
|
model_id = excluded.model_id,
|
|
38
38
|
enabled = excluded.enabled,
|
|
39
|
-
updated_at = excluded.updated_at`).run(t,o,a,s,c())}function
|
|
40
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(n.id,n.type,n.providerID??null,n.alias??null,n.message,n.createdAt,JSON.stringify(n.metadata)),n}function
|
|
41
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(
|
|
39
|
+
updated_at = excluded.updated_at`).run(t,o,a,s,c())}function Tt(e){let t=ke(e);return Pt(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 Re(e,t,n){bt(e,t,{modelID:n})}function D(e){return e.query("SELECT value FROM settings WHERE key = ?").get("balancing_enabled")?.value==="1"}function xt(e,t,n){let r=y(e,t).filter((o)=>!o.disabled&&(!o.rateLimitedUntil||o.rateLimitedUntil<=n));if(r.length===0)return;let i=A(e,t);if(i&&r.some((o)=>o.alias===i.alias))return i;return r[0]}function V(e,t=c(),n){let r=Tt(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=xt(e,o.providerID,t);if(!a)continue;return{account:a,modelID:o.modelID,providerID:o.providerID}}return}function ue(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 De(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 Ct(e){return`native_auth_suppressed_until:${e}`}function Y(e,t,n=1e4){e.query(`INSERT INTO settings (key, value) VALUES (?, ?)
|
|
41
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(Ct(t),String(c()+n))}var Nt=["auth-file","http","oauth-callback"],Ot=["new","prompted","dismissed"],$t=["api","oauth","wellknown"];function we(e){return $t.includes(e)}function Ut(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(!we(t.type))throw Error(`Invalid pending connection row ${e.id}: auth_json type ${t.type} is invalid`);return t}function qt(e){if(!we(e.auth_type))throw Error(`Invalid pending connection row ${e.id}: auth_type ${e.auth_type} is invalid`);return e.auth_type}function Lt(e){if(!Nt.includes(e.source))throw Error(`Invalid pending connection row ${e.id}: source ${e.source} is invalid`);return e.source}function jt(e){if(!Ot.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=Ut(e),n=qt(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:jt(e),providerID:e.provider_id,source:Lt(e)}}function Q(e){return e.query(`SELECT id, provider_id, auth_json, auth_type, source, captured_at, prompt_status
|
|
42
42
|
FROM pending_connections
|
|
43
|
-
ORDER BY captured_at DESC, id DESC`).all().map(
|
|
43
|
+
ORDER BY captured_at DESC, id DESC`).all().map(Mt)}function Ie(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 Ht(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)}function Bt(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=Ht(e);return["token","key","secret","password"].some((i)=>t===i||r.includes(i))}function w(e,t){return de(e,Ie(t))}function K(e,t){return ce(e,Ie(t))}function ce(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 de(e,t){if(typeof e==="string")return ce(e,t);if(!e||typeof e!=="object")return e;if(Array.isArray(e))return e.map((r)=>de(r,t));let n={};for(let[r,i]of Object.entries(e))n[ce(r,t)]=Bt(r)?"[redacted]":de(i,t);return n}function U(e,t,n){return{alias:e.alias,confidence:"unavailable",fetchedAt:Date.now(),message:t,providerID:e.providerID,...n?{error:K(n,e)}:{}}}function Se(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 Z(e,t){let n=await fetch(e,{headers:Se(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 Pe(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 X(e,t){let n=e;for(let r of t)n=n?.[r];return typeof n==="number"&&Number.isFinite(n)?n:void 0}function Ft(e){let t=e?.quota_snapshots,n=t?.premium_interactions??t?.premium_models??t?.chat,r=X(n,["entitlement"]),i=X(n,["remaining"])??X(n,["quota_remaining"]),o=X(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 Wt(e){let t=await Z("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=Ft(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:w(t.body,e)}}}async function Gt(e){let t=await Wt(e);if(t.ok)return t.snapshot;let n=await Z("https://api.github.com/user",e);if(!n.ok)return U(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 U(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 Z(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:w(o.body,e),usedTokens:Pe(o.body)};let a=`https://api.github.com/users/${encodeURIComponent(r)}/settings/billing/usage/summary?product=copilot`,s=await Z(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:w(s.body,e),usedTokens:Pe(s.body)};return U(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 be={providerID:"github-copilot",async refreshUsage(e){let t=e.auth.metadata?.githubOrg;if(e.auth.type!=="oauth")return U(e,"GitHub Copilot usage requires OAuth auth.");if(!t)return Gt(e);try{let n=await fetch(`https://api.github.com/orgs/${encodeURIComponent(t)}/copilot/billing`,{headers:Se(e)});if(!n.ok)return U(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:w(r,e)}}catch(n){return U(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 M(e,t,n){return{alias:e.alias,confidence:"unavailable",fetchedAt:Date.now(),message:t,providerID:e.providerID,...n?{error:K(n,e)}:{}}}function q(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Te(e){return typeof e==="number"&&Number.isFinite(e)?e:void 0}function zt(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 q(i)?i:void 0}catch{return}}function Jt(e){if(e.auth.type!=="oauth")return;if(e.auth.accountId)return e.auth.accountId;let n=zt(e.auth.access)?.["https://api.openai.com/auth"];if(!q(n))return;let r=n.chatgpt_account_id;return typeof r==="string"&&r.trim()?r:void 0}function Vt(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 Yt(e){let t=Te(e);if(t===void 0||t<0)return;return t>1000000000000?t:t*1000}async function Qt(e){if(e.auth.type!=="oauth")return M(e,"OpenAI ChatGPT usage requires OAuth auth.");try{let t={Authorization:`Bearer ${e.auth.access}`,"User-Agent":"opencode-balancer/0.1.3"},n=Jt(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 M(e,`OpenAI ChatGPT usage request failed with HTTP ${r.status}.`);let i=await r.json(),o=q(i)&&q(i.rate_limit)?i.rate_limit:void 0,a=o&&q(o.primary_window)?o.primary_window:void 0;return{alias:e.alias,confidence:"exact",fetchedAt:Date.now(),message:"OpenAI ChatGPT usage fetched.",planName:q(i)?Vt(i.plan_type):void 0,providerID:e.providerID,rawRedacted:w(i,e),resetAt:a?Yt(a.reset_at):void 0,usedPercent:a?Te(a.used_percent):void 0}}catch(t){return M(e,"OpenAI ChatGPT usage request failed; exact usage is unavailable.",t instanceof Error?t.message:String(t))}}var xe={providerID:"openai",async refreshUsage(e){if(e.auth.type!=="api")return Qt(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 M(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:w(r,e)}}catch(n){return M(e,"OpenAI usage request failed; exact usage is unavailable.",n instanceof Error?n.message:String(n))}},supports(e){return e==="openai"}};var Kt=[xe,be];async function Ce(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 Ne(e,t){let{rawRedacted:n,...r}=t,i=Object.hasOwn(t,"rawRedacted")?JSON.stringify(n):null;if(e.query(`INSERT INTO usage_snapshots (
|
|
44
44
|
provider_id, alias, fetched_at, confidence, normalized_json, raw_redacted_json, error
|
|
45
45
|
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
46
46
|
ON CONFLICT(provider_id, alias) DO UPDATE SET
|
|
@@ -51,8 +51,8 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
51
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
52
|
SET rate_limited_until = NULL,
|
|
53
53
|
updated_at = ?
|
|
54
|
-
WHERE provider_id = ? AND alias = ?`).run(t.fetchedAt,t.providerID,t.alias)}async function
|
|
55
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(String(c()+t))}function
|
|
54
|
+
WHERE provider_id = ? AND alias = ?`).run(t.fetchedAt,t.providerID,t.alias)}async function Oe(e,t,n,r,i={}){let o=$(t.db)?.providerID,a=R(t.db,n,r)??A(t.db,n);if(a)try{Y(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 $e(e,t,n,r,i={}){let o=E(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??Ce)(o);if(Ne(t.db,a),ue(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 Ue(e,t,n,r){if(!Ee(t.db,n,r)){e.ui.toast({message:`Account not found: ${n}/${r}`,variant:"error"});return}let o=`Removed account ${n}/${r}.`;ue(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 Xt(e){let t=e.renderer?.stdin;return t&&typeof t.emit==="function"?t:void 0}function Zt(e,t){let n=Xt(e);if(!n)return!1;return n.emit("data",Buffer.from(t)),!0}async function en(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 ee(e){return(t,n)=>en({dispatchCommand:(r)=>e.keymap.dispatchCommand(r),feed:(r)=>Zt(e,r),isDialogOpen:()=>e.ui.dialog.open,wait:(r)=>new Promise((i)=>setTimeout(i,r))},n)}function tn(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 qe(e,t){return tn({activeSelection:()=>V(t.db),apply:ee(e),balancingEnabled:()=>D(t.db),dialogOpen:()=>e.ui.dialog.open,modelTitle:(n,r)=>{return e.state.provider.find((o)=>o.id===n)?.models?.[r]?.name}})}var pe="native_connect_until";function Le(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 je(e){let t=e.query("SELECT value FROM settings WHERE key = ?").get(pe),n=Number(t?.value??0);if(Number.isFinite(n)&&n>c())return!0;if(t)e.query("DELETE FROM settings WHERE key = ?").run(pe);return!1}function Me(e){e.query("DELETE FROM settings WHERE key = ?").run(pe)}import{existsSync as cn,readFileSync as dn}from"fs";function b(...e){return e.filter(Boolean).join("/").replace(/\/+/g,"/")}function He(){return Bun.env.HOME||"/"}function nn(){return Bun.env.XDG_CONFIG_HOME||b(He(),".config")}function rn(){return Bun.env.XDG_DATA_HOME||b(He(),".local","share")}function on(){let e=Bun.env.OPENCODE_CONFIG_DIR;return e?b(e):b(nn(),"opencode")}function an(){return b(rn(),"opencode")}function te(){return b(on(),"balancer.sqlite")}function Be(){return b(an(),"auth.json")}var sn=new Map;function un(e,t=2000){sn.set(e,c()+t)}async function ne(e,t,n,r){if(r&&je(r))return;if(un(t),r)Y(r,t);try{await e.auth.set({body:n,path:{id:t}})}catch{}}async function L(e,t,n="info"){try{await e.tui.showToast({body:{duration:15000,message:t,variant:n}})}catch{}}function H(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function pn(e){if(e===void 0)return{metadata:void 0,ok:!0};if(!H(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 le(e,t){let n=pn(t);if(!n.ok)return;if(n.metadata)e.metadata=n.metadata;return e}function ln(e){if(!H(e)||typeof e.type!=="string")return;if(e.type==="api"&&typeof e.key==="string")return le({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 le(t,e.metadata)}if(e.type==="wellknown"&&typeof e.key==="string"&&typeof e.token==="string")return le({key:e.key,token:e.token,type:"wellknown"},e.metadata);return}function Fe(e){let t;try{t=JSON.parse(e)}catch{return{ok:!1}}if(!H(t))return{ok:!1};let n={};for(let[r,i]of Object.entries(t)){let o=ln(i);if(!o)return{ok:!1};n[r]=o}return{auth:n,ok:!0}}function Ge(){let e=Bun.env.OPENCODE_AUTH_CONTENT;if(e!==void 0)return Fe(e);let t=Be();if(!cn(t))return{auth:{},ok:!0};try{return Fe(dn(t,"utf8"))}catch{return{ok:!1}}}function fn(e){let t=e.split(".")[1];if(!t)return;try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));return H(n)?n:void 0}catch{return}}function We(e){if(e.accountId)return e.accountId;let t=fn(e.access)?.["https://api.openai.com/auth"];if(!H(t))return;let n=t.chatgpt_account_id;return typeof n==="string"&&n.length>0?n:void 0}function ze(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=We(e),r=We(t);if(n&&r)return n===r;return e.refresh===t.refresh}return!1}var Je="abcdefghijklmnopqrstuvwxyz0123456789";function gn(){let e="";for(let t=0;t<5;t++)e+=Je[Math.floor(Math.random()*Je.length)];return e}function Ve(e){return JSON.stringify(e??null)}function mn(e,t){return Object.entries(t).find(([n,r])=>Ve(e[n])!==Ve(r))}function hn(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 yn(e,t,n){let r=Date.now();while(!0){let i=e();if(t.ok&&i.ok){let o=mn(t.auth,i.auth);if(o)return o}if(Date.now()-r>=n.maxWaitMs)return;await n.wait(n.pollIntervalMs)}}async function Ye(e){if(e.keymap?.dispatchCommand){let t=e.readAuth??Ge,n=t();if(e.db)Le(e.db);if(await e.keymap.dispatchCommand("provider.connect"),e.db)try{let r=await yn(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=y(e.db,i).find((p)=>ze(p.auth,o))?.alias??hn(e.db,i,e.generateAlias??gn),u=se(e.db,i,s,o);e.ui?.toast?.({message:`Saved ${u.providerID}/${u.alias}.`,variant:"success"})}}finally{Me(e.db)}return}e.ui?.toast?.({message:"Native provider connect is unavailable in this opencode build.",variant:"error"})}function Qe(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 Ke(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 oe,onCleanup as $n}from"solid-js";import{Database as vn}from"bun:sqlite";import{chmodSync as An,mkdirSync as _n}from"fs";import{dirname as En}from"path";var B=new Map;function kn(e){return e.code==="ENOENT"}function Xe(e){return e instanceof Error&&/closed/i.test(e.message)}function Rn(e){try{return e.exec("SELECT 1;"),!0}catch(t){if(Xe(t))return!1;throw t}}function Dn(e){for(let t of[e,`${e}-wal`,`${e}-shm`])try{An(t,384)}catch(n){if(!kn(n))throw n}}function re(e){let t=B.get(e);if(t){if(Rn(t))return t;B.delete(e)}_n(En(e),{recursive:!0});let n=new vn(e);try{return n.exec("PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;"),Dn(e),B.set(e,n),n}catch(r){try{n.close()}catch{}throw r}}function Ze(e){let t=B.get(e);if(!t)return;B.delete(e);try{t.close()}catch(n){if(!Xe(n))throw n}}var fe=new Set(["api","oauth","wellknown"]);function wn(e,t){let n=e.query("SELECT version FROM schema_migrations WHERE version = ?").get(t);return Boolean(n)}function In(e,t){let n=e.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(t);return Boolean(n)}function Pn(e,t){if(!In(e,t))return new Set;return new Set(e.query(`PRAGMA table_info(${t})`).all().map((n)=>n.name))}function et(e){try{let t=JSON.parse(e);if(typeof t.type==="string"&&fe.has(t.type))return t.type}catch{}return"api"}function T(e,t,n){let r=Pn(e,t),i=n.filter((o)=>r.has(o));if(i.length===0)return[];return e.query(`SELECT ${i.join(", ")} FROM ${t}`).all()}function Sn(e){let t=T(e,"accounts",["provider_id","alias","auth_json","auth_type","created_at","updated_at","last_used_at","rate_limited_until","failures","disabled"]);e.exec(`
|
|
56
56
|
DROP TABLE IF EXISTS accounts_new;
|
|
57
57
|
CREATE TABLE accounts_new (
|
|
58
58
|
provider_id TEXT NOT NULL,
|
|
@@ -70,10 +70,10 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
70
70
|
`);let n=e.query(`INSERT OR REPLACE INTO accounts_new (
|
|
71
71
|
provider_id, alias, auth_json, auth_type, created_at, updated_at,
|
|
72
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"&&
|
|
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"&&fe.has(r.auth_type)?r.auth_type:et(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
74
|
DROP TABLE IF EXISTS accounts;
|
|
75
75
|
ALTER TABLE accounts_new RENAME TO accounts;
|
|
76
|
-
`)}function
|
|
76
|
+
`)}function bn(e){let t=T(e,"provider_state",["provider_id","active_alias","updated_at","metadata_json"]);e.exec(`
|
|
77
77
|
DROP TABLE IF EXISTS provider_state_new;
|
|
78
78
|
CREATE TABLE provider_state_new (
|
|
79
79
|
provider_id TEXT PRIMARY KEY,
|
|
@@ -85,7 +85,7 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
85
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
86
|
DROP TABLE IF EXISTS provider_state;
|
|
87
87
|
ALTER TABLE provider_state_new RENAME TO provider_state;
|
|
88
|
-
`)}function
|
|
88
|
+
`)}function Tn(e){let t=T(e,"pending_connections",["id","provider_id","auth_json","auth_type","source","captured_at","prompt_status"]);e.exec(`
|
|
89
89
|
DROP TABLE IF EXISTS pending_connections_new;
|
|
90
90
|
CREATE TABLE pending_connections_new (
|
|
91
91
|
id TEXT PRIMARY KEY,
|
|
@@ -98,10 +98,10 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
98
98
|
);
|
|
99
99
|
`);let n=e.query(`INSERT OR REPLACE INTO pending_connections_new (
|
|
100
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"&&
|
|
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"&&fe.has(r.auth_type)?r.auth_type:et(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
102
|
DROP TABLE IF EXISTS pending_connections;
|
|
103
103
|
ALTER TABLE pending_connections_new RENAME TO pending_connections;
|
|
104
|
-
`)}function
|
|
104
|
+
`)}function xn(e){let t=T(e,"usage_snapshots",["provider_id","alias","fetched_at","confidence","normalized_json","raw_redacted_json","error"]);e.exec(`
|
|
105
105
|
DROP TABLE IF EXISTS usage_snapshots_new;
|
|
106
106
|
CREATE TABLE usage_snapshots_new (
|
|
107
107
|
provider_id TEXT NOT NULL,
|
|
@@ -118,7 +118,7 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
118
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
119
|
DROP TABLE IF EXISTS usage_snapshots;
|
|
120
120
|
ALTER TABLE usage_snapshots_new RENAME TO usage_snapshots;
|
|
121
|
-
`)}function
|
|
121
|
+
`)}function Cn(e){let t=T(e,"events",["id","type","provider_id","alias","message","created_at","metadata_json"]);e.exec(`
|
|
122
122
|
DROP TABLE IF EXISTS events_new;
|
|
123
123
|
CREATE TABLE events_new (
|
|
124
124
|
id TEXT PRIMARY KEY,
|
|
@@ -133,7 +133,7 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
133
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
134
|
DROP TABLE IF EXISTS events;
|
|
135
135
|
ALTER TABLE events_new RENAME TO events;
|
|
136
|
-
`)}function
|
|
136
|
+
`)}function Nn(e){let t=T(e,"provider_priority",["provider_id","position","model_id","enabled","updated_at"]);e.exec(`
|
|
137
137
|
DROP TABLE IF EXISTS provider_priority_new;
|
|
138
138
|
CREATE TABLE provider_priority_new (
|
|
139
139
|
provider_id TEXT PRIMARY KEY,
|
|
@@ -146,7 +146,7 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
146
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
147
|
DROP TABLE IF EXISTS provider_priority;
|
|
148
148
|
ALTER TABLE provider_priority_new RENAME TO provider_priority;
|
|
149
|
-
`)}function
|
|
149
|
+
`)}function On(e){let t=T(e,"settings",["key","value"]);e.exec(`
|
|
150
150
|
DROP TABLE IF EXISTS settings_new;
|
|
151
151
|
CREATE TABLE settings_new (
|
|
152
152
|
key TEXT PRIMARY KEY,
|
|
@@ -155,19 +155,19 @@ var P=import.meta.require;import{createComponent as re}from"solid-js";function c
|
|
|
155
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
156
|
DROP TABLE IF EXISTS settings;
|
|
157
157
|
ALTER TABLE settings_new RENAME TO settings;
|
|
158
|
-
`)}function
|
|
158
|
+
`)}function ie(e){e.exec(`
|
|
159
159
|
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
160
160
|
version INTEGER PRIMARY KEY,
|
|
161
161
|
applied_at INTEGER NOT NULL
|
|
162
162
|
);
|
|
163
|
-
`),e.transaction(()=>{if(
|
|
164
|
-
`);if(n==="list"){let i=
|
|
165
|
-
`)}if(n==="status")return`accounts=${
|
|
163
|
+
`),e.transaction(()=>{if(Sn(e),bn(e),Tn(e),xn(e),Cn(e),Nn(e),On(e),!wn(e,1))e.query("INSERT INTO schema_migrations (version, applied_at) VALUES (?, ?)").run(1,Date.now())})()}function tt(){let e=te(),t=re(e);ie(t);let[n,r]=oe(0),[i,o]=oe([]),[a,s]=oe([]),[u,p]=oe([]),l=()=>{o(y(t)),s(Q(t)),p(De(t,10)),r((I)=>I+1)},v=(I,k)=>{o((P)=>P.filter((G)=>G.providerID!==I||G.alias!==k)),r((P)=>P+1)},m=(I)=>{s((k)=>k.filter((P)=>P.id!==I)),r((k)=>k+1)},f,h=!1,_=()=>{if(h)return;if(h=!0,f)clearInterval(f);f=void 0,Ze(e)};return l(),f=setInterval(l,1000),$n(_),{accounts:i,db:t,dispose:_,events:u,pending:a,refresh:l,removeAccountView:v,removePendingView:m,version:n}}function nt(e,t,n={}){let r=n.intervalMs??60000,i=n.promptDebounceMs??30000,o=n.now??Date.now,a=new Set,s=0,u=async(m,f)=>{let h=`${m}/${f}`;if(a.has(h))return;a.add(h);try{await $e(e,t,m,f,{refreshUsage:n.refreshUsage,silent:!0})}finally{a.delete(h)}},p=async()=>{let m=y(t.db).filter((f)=>!f.disabled);await Promise.all(m.map((f)=>u(f.providerID,f.alias)))},l=async()=>{let m=o();if(m-s<i)return;s=m,await p()},v=r>0?setInterval(()=>void p(),r):void 0;return p(),{dispose(){if(v)clearInterval(v)},refreshForPrompt:l,refreshNow:p}}function ge(e){let t=e?.model?.providerID;return typeof t==="string"&&t.length>0?t:void 0}function Un(e){return"params"in e&&e.params?{name:e.name,params:{...e.params}}:{name:e.name}}var qn=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=tt(),u=nt(e,s),p=qe(e,s),l=ee(e),v,m,f,h=async(d)=>{let g=Qe(e.state.provider,d),C=J(s.db,d),N=g.find((Et)=>Et.modelID===C?.modelID)??g[0];if(!N)return!1;return l({modelID:N.modelID,providerID:N.providerID},N.title)},_=async(d)=>{let g=await h(d);if(g)m=d;return g},I=Ke({applyProvider:_,currentProvider:()=>m??f,dialogOpen:()=>e.ui.dialog.open,selectedProvider:()=>D(s.db)?void 0:$(s.db)?.providerID});e.lifecycle.onDispose(()=>{u.dispose(),s.dispose()});let k=()=>{if(e.route.current.name!=="balancer.dashboard")v=Un(e.route.current);e.route.navigate("balancer.dashboard")},P=()=>{e.route.navigate("balancer.priority")},G=()=>{let d=v;if(v=void 0,d)e.route.navigate(d.name,"params"in d?d.params:void 0);else e.route.navigate("home")},At=e.route.register([{name:"balancer.dashboard",render:()=>ae(t.Dashboard,{api:e,onBack:G,openConnect:()=>Ye({...e,db:s.db}),openPriority:P,removeAccount:(d,g)=>Ue(e,s,d,g),renameAccount:(d,g)=>i.openRenameDialog(e,s,d,g),state:s})},{name:"balancer.priority",render:()=>ae(n.PriorityScreen,{api:e,onBack:()=>e.route.navigate("balancer.dashboard"),openModelPicker:(d,g)=>r.openProviderModelDialog(e,s,d,{applyNativeSelection:!1,onComplete:g,onSelected:(C)=>Re(s.db,C.providerID,C.modelID)}),state:s})}]);e.lifecycle.onDispose(At);let _t=e.keymap.registerLayer({bindings:[{cmd:"balancer.dashboard.open",key:"ctrl+b"}],commands:[{category:"Plugin",name:"balancer.dashboard.open",namespace:"palette",run(){k()},slashName:"balancer",title:"Open Balancer Dashboard"}]});e.lifecycle.onDispose(_t),e.slots.register({slots:{session_prompt_right(d,g){return f=ge(e.state.session.get(g.session_id)),u.refreshForPrompt(),I.maybeSync(),p.maybeSync(),ae(a.BalancerStatusIndicator,{api:e,providerID:()=>ge(e.state.session.get(g.session_id)),state:s})},sidebar_content(d,g){return ae(o.BalancerSidebar,{activateAccount:(C,N)=>{return Oe(e,s,C,N,{applyNativeProviderModel:_,sessionProviderID:m??ge(e.state.session.get(g.session_id))})},api:e,openDashboard:k,state:s})}}})},rt={id:"opencode-balancer",tui:qn};import{tool as ht}from"@opencode-ai/plugin";var it={bugs:{url:"https://github.com/thelioo/opencode-balancer/issues"},dependencies:{"@opencode-ai/plugin":"^1.14.51","@opentui/solid":"^0.2.16","solid-js":"^1.9.12"},description:"Account balancer plugin for opencode.",devDependencies:{"@biomejs/biome":"^2.4.16","@changesets/cli":"^2.31.0","@types/bun":"^1.3.14","@typescript/native-preview":"7.0.0-dev.20260607.1",concurrently:"^10.0.3",husky:"^9.1.7"},exports:{".":{default:"./dist/index.js"},"./tui":{default:"./dist/tui/tui.tsx"}},files:["dist","README.md","INSTALL.txt","LICENSE"],homepage:"https://github.com/thelioo/opencode-balancer#readme",keywords:["opencode","opencode-plugin","balancer","accounts"],license:"MIT",main:"./dist/index.js",name:"@thelioo/opencode-balancer",repository:{type:"git",url:"git+https://github.com/thelioo/opencode-balancer.git"},scripts:{build:"bun scripts/build.ts",changeset:"changeset",checktypes:"tsgo --noEmit",format:"biome format --write",lint:"biome check .","lint:fix":"biome check . --fix","lint:unsafe":"biome check . --fix --unsafe",prepare:"husky",prepublishOnly:"bun run build",release:"changeset publish",test:"bun test",version:"changeset version"},type:"module",version:"0.2.5"};import{existsSync as jn,readFileSync as Mn,rmSync as Hn}from"fs";import{homedir as me}from"os";import{dirname as F,join as x,sep as j}from"path";import{fileURLToPath as Bn}from"url";function Fn(){if(process.env.XDG_CACHE_HOME)return x(process.env.XDG_CACHE_HOME,"opencode");if(process.platform==="darwin")return x(me(),"Library","Caches","opencode");if(process.platform==="win32")return x(process.env.LOCALAPPDATA??x(me(),"AppData","Local"),"opencode");return x(me(),".cache","opencode")}function Wn(e){try{return JSON.parse(Mn(e,"utf8"))}catch{return}}function Gn(e){return e.split("/").filter(Boolean)}function zn(e,t){let n=Gn(t),r=e;while(r!==F(r)){if(n.every((i,o)=>{let a=r.split(j);return a[a.length-n.length+o]===i})){if(r.split(j).at(-(n.length+1))==="node_modules")return r}r=F(r)}}function Jn(e,t){let n=t.endsWith(j)?t:`${t}${j}`;return e===t||e.startsWith(n)}function Vn(e,t){return e.split(j).join("/").endsWith(`${t}@latest`)}function Yn({cacheDir:e=Fn(),currentVersion:t,latestVersion:n,moduleUrl:r,packageName:i}){if(!t||!n||t===n)return{reason:"up-to-date",removed:[]};let o;try{o=r.startsWith("file://")?Bn(r):r}catch{return{reason:"invalid-module-url",removed:[]}}let a=zn(o,i);if(!a)return{reason:"package-dir-not-found",removed:[]};let s=F(F(a));if(s.split(j).at(-1)!=="node_modules")return{reason:"node-modules-not-found",removed:[]};let u=F(s),p=x(e,"packages");if(!Jn(u,p))return{reason:"outside-opencode-packages-cache",removed:[]};if(!Vn(u,i))return{reason:"not-latest-sandbox",removed:[]};let l=Wn(x(a,"package.json"));if(l?.name!==i||l.version!==t)return{reason:"version-mismatch",removed:[]};if(!jn(u))return{reason:"sandbox-missing",removed:[]};return Hn(u,{force:!0,recursive:!0}),{removed:[u]}}async function Qn(e){try{let t=await fetch(`https://registry.npmjs.org/-/package/${encodeURIComponent(e)}/dist-tags`,{headers:{accept:"application/json"}});if(!t.ok)return;let n=await t.json();return typeof n.latest==="string"?n.latest:void 0}catch{return}}async function ot({fetchLatestVersion:e,notify:t,...n}){let r=await(e??(()=>Qn(n.packageName)))();if(!r)return{reason:"latest-version-unavailable",removed:[]};let i=Yn({...n,latestVersion:r});if(i.removed.length>0)await t?.(`opencode-balancer v${r} is ready. Restart opencode to update from v${n.currentVersion}.`);return i}function Kn(e){return e.match(/(?:[^\s"]+|"[^"]*")+/g)?.map((t)=>t.replace(/^"|"$/g,""))??[]}function at(e,t){let[n="help",...r]=Kn(t);if(["help","--help","-h"].includes(n))return["Balancer is TUI-first. Use fallback commands only for compatibility or troubleshooting.","Fallback commands: list, status, use <provider> <alias>, active <provider>."].join(`
|
|
164
|
+
`);if(n==="list"){let i=y(e);if(i.length===0)return"No accounts saved.";return i.map((o)=>`${o.providerID}/${o.alias}`).join(`
|
|
165
|
+
`)}if(n==="status")return`accounts=${y(e).length} pending=${Q(e).length}`;if(n==="use"){let[i,o]=r;if(!i||!o)return"Usage: /balancer use <provider> <alias>";try{let a=R(e,i,o);return`Active account changed to ${i}/${a.alias}`}catch(a){return a instanceof Error?a.message:"Account not found."}}if(n==="active"){let[i]=r;if(!i)return"Usage: /balancer active <provider>";let o=A(e,i);if(!o)return"No active account for provider.";return`${i}/${o.alias}`}return`Unknown command: ${n}. Use /balancer help.`}var W="x-opencode-balancer-request",st="opencodeBalancerCommand",ut=new Set([429,500,502,503,504,529]),he=new Map;function ct(e,t){he.set(e,t)}function dt(e){let t=he.get(e);return he.delete(e),t}function pt(e,t,n,r=60000){let i=E(e,t,n);if(!i)return;let o=c();e.query(`UPDATE accounts
|
|
166
166
|
SET failures = failures + 1,
|
|
167
167
|
rate_limited_until = ?,
|
|
168
168
|
updated_at = ?
|
|
169
|
-
WHERE provider_id = ? AND alias = ?`).run(o+r,o,t,i.alias)}function
|
|
169
|
+
WHERE provider_id = ? AND alias = ?`).run(o+r,o,t,i.alias)}function lt(e,t,n){let r=c(),i=O(n);return y(e,t).find((o)=>{if(o.alias===i)return!1;if(o.disabled)return!1;return!o.rateLimitedUntil||o.rateLimitedUntil<=r})}var ft=!1;function Xn(e){return Array.from(e.entries()).map(([t,n])=>[t.toLowerCase(),n])}function Zn(e,t,n={}){let r=t.auth,i=Xn(e);if(r.type==="oauth"){if(n.preserveExistingOAuth&&e.has("authorization"))return;e.set("authorization",`Bearer ${r.access}`);return}if(r.type==="wellknown"){if(e.has("authorization"))e.set("authorization",`Bearer ${r.token}`);else e.set(r.key,r.token);return}let o=["authorization","x-api-key","api-key","x-goog-api-key","x-stainless-api-key","anthropic-api-key","cohere-api-key"],a=!1;for(let s of o){let u=i.find(([p])=>p===s)?.[1];if(!u)continue;e.set(s,s==="authorization"&&u.toLowerCase().startsWith("bearer ")?`Bearer ${r.key}`:r.key),a=!0}if(!a)e.set("authorization",`Bearer ${r.key}`)}function er(e,t){if(t?.headers)return new Headers(t.headers);if(typeof Request<"u"&&e instanceof Request)return new Headers(e.headers);return new Headers}function gt(e,t,n){if(typeof Request<"u"&&e instanceof Request)return[new Request(e,{...t,headers:n}),void 0];return[e,{...t,headers:n}]}function tr(e){let t=e.headers.get("retry-after");if(!t)return 60000;let n=Number(t);if(Number.isFinite(n))return Math.max(1000,n*1000);let r=Date.parse(t);if(Number.isFinite(r))return Math.max(1000,r-Date.now());return 60000}function mt(e,t){if(ft)return;ft=!0;let n=globalThis.fetch.bind(globalThis);globalThis.fetch=async(r,i)=>{let o=er(r,i),a=o.get(W);if(!a)return n(r,i);let s=dt(a);if(o.delete(W),!s?.account){let[l,v]=gt(r,i,o);return n(l,v)}let u=s.account,p=3;for(let l=0;l<p;l++){let v=new Headers(o);Zn(v,u,{preserveExistingOAuth:l===0});let[m,f]=gt(r,i,v),h=await n(m,f);if(!ut.has(h.status))return h;if(pt(e,u.providerID,u.alias,tr(h)),!D(e))return h;if(l===p-1)return h;let _=lt(e,u.providerID,u.alias);if(!_)return h;u=R(e,_.providerID,_.alias),await ne(t,u.providerID,u.auth,e),await L(t,`Balancer: ${s.providerID}/${s.account.alias} is rate limited. Switching to ${u.alias}.`,"warning")}throw Error("Balancer retry loop exited unexpectedly")}}var nr="@thelioo/opencode-balancer";function rr(e){if(!e.command?.balancer)return}function yt(e,t){try{return at(e,t)}catch(n){return n instanceof Error?n.message:"Balancer command failed."}}function ir({db:e,client:t}){return{"chat.headers":async(n,r)=>{let i=n.model.providerID,o=A(e,i);if(!o)return;if(o.auth.type==="oauth")await ne(t,i,o.auth,e);let a=crypto.randomUUID();ct(a,{account:o,providerID:i}),r.headers[W]=a},"chat.message":async(n,r)=>{if(D(e)){let a=V(e,void 0,r.message.model?.providerID);if(!a)return;R(e,a.providerID,a.account.alias),r.message.model={modelID:a.modelID,providerID:a.providerID};return}if(r.message.model?.providerID&&r.message.model?.modelID)return;let i=$(e);if(!i)return;let o=J(e,i.providerID);if(!o)return;r.message.model={modelID:o.modelID,providerID:o.providerID}},"command.execute.before":async(n,r)=>{if(n.command!=="balancer")return;let i=yt(e,n.arguments);throw r.parts.length=0,await L(t,i.split(`
|
|
170
170
|
`)[0]??i,"info"),Error(`[balancer]
|
|
171
|
-
${i}`)},config:async(n)=>{
|
|
171
|
+
${i}`)},config:async(n)=>{rr(n)},"experimental.chat.messages.transform":async(n,r)=>{r.messages=r.messages.filter((i)=>{return!i.parts.some((o)=>{return o?.metadata?.[st]===!0})})},tool:{balancer_command:ht({args:{command:ht.schema.string().describe("Command arguments for /balancer.")},description:"Run fallback account balancer commands.",execute:async(n)=>yt(e,n.command)})}}}var vt=async({client:e})=>{let t=re(te());return ie(t),mt(t,e),ot({currentVersion:it.version,moduleUrl:import.meta.url,notify:(n)=>L(e,n,"success"),packageName:nr}).catch(()=>{}),ir({client:e,db:t})};var ye=vt;ye.id="opencode-balancer";ye.tui=rt.tui;var _o=ye;export{_o as default};
|
|
172
172
|
|
|
173
|
-
//# debugId=
|
|
173
|
+
//# debugId=9619CFA3488876C864756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","../src/server/index.ts","../src/server/commands.ts","../src/server/request-balancer.ts","../src/server/fetch-patch.ts","../src/index.ts"],"mappings":"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","debugId":"9428C75939233CC164756E2164756E21","names":[]}
|
|
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","../src/server/index.ts","../src/server/cache-update.ts","../src/server/commands.ts","../src/server/request-balancer.ts","../src/server/fetch-patch.ts","../src/index.ts"],"mappings":"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","debugId":"9619CFA3488876C864756E2164756E21","names":[]}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, join, sep } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
|
|
6
|
+
type PackageJson = {
|
|
7
|
+
name?: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type CacheInvalidationInput = {
|
|
12
|
+
cacheDir?: string;
|
|
13
|
+
currentVersion: string;
|
|
14
|
+
latestVersion: string;
|
|
15
|
+
moduleUrl: string;
|
|
16
|
+
packageName: string;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type CacheInvalidationResult = {
|
|
20
|
+
removed: string[];
|
|
21
|
+
reason?: string;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type CacheUpdateCheckInput = Omit<
|
|
25
|
+
CacheInvalidationInput,
|
|
26
|
+
"latestVersion"
|
|
27
|
+
> & {
|
|
28
|
+
fetchLatestVersion?: () => Promise<string | undefined>;
|
|
29
|
+
notify?: (message: string) => Promise<unknown>;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
function opencodeCacheDir() {
|
|
33
|
+
if (process.env.XDG_CACHE_HOME)
|
|
34
|
+
return join(process.env.XDG_CACHE_HOME, "opencode");
|
|
35
|
+
if (process.platform === "darwin") {
|
|
36
|
+
return join(homedir(), "Library", "Caches", "opencode");
|
|
37
|
+
}
|
|
38
|
+
if (process.platform === "win32") {
|
|
39
|
+
return join(
|
|
40
|
+
process.env.LOCALAPPDATA ?? join(homedir(), "AppData", "Local"),
|
|
41
|
+
"opencode",
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
return join(homedir(), ".cache", "opencode");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function readPackageJson(file: string): PackageJson | undefined {
|
|
48
|
+
try {
|
|
49
|
+
return JSON.parse(readFileSync(file, "utf8")) as PackageJson;
|
|
50
|
+
} catch {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function packagePathSegments(packageName: string) {
|
|
56
|
+
return packageName.split("/").filter(Boolean);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function findInstalledPackageDir(file: string, packageName: string) {
|
|
60
|
+
const segments = packagePathSegments(packageName);
|
|
61
|
+
let current = file;
|
|
62
|
+
while (current !== dirname(current)) {
|
|
63
|
+
if (
|
|
64
|
+
segments.every((segment, index) => {
|
|
65
|
+
const parts = current.split(sep);
|
|
66
|
+
return parts[parts.length - segments.length + index] === segment;
|
|
67
|
+
})
|
|
68
|
+
) {
|
|
69
|
+
if (current.split(sep).at(-(segments.length + 1)) === "node_modules") {
|
|
70
|
+
return current;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
current = dirname(current);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function isPathInside(child: string, parent: string) {
|
|
78
|
+
const normalizedParent = parent.endsWith(sep) ? parent : `${parent}${sep}`;
|
|
79
|
+
return child === parent || child.startsWith(normalizedParent);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function isLatestSandbox(sandboxRoot: string, packageName: string) {
|
|
83
|
+
return sandboxRoot.split(sep).join("/").endsWith(`${packageName}@latest`);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function invalidateOutdatedPackageCache({
|
|
87
|
+
cacheDir = opencodeCacheDir(),
|
|
88
|
+
currentVersion,
|
|
89
|
+
latestVersion,
|
|
90
|
+
moduleUrl,
|
|
91
|
+
packageName,
|
|
92
|
+
}: CacheInvalidationInput): CacheInvalidationResult {
|
|
93
|
+
if (!currentVersion || !latestVersion || currentVersion === latestVersion) {
|
|
94
|
+
return { reason: "up-to-date", removed: [] };
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
let moduleFile: string;
|
|
98
|
+
try {
|
|
99
|
+
moduleFile = moduleUrl.startsWith("file://")
|
|
100
|
+
? fileURLToPath(moduleUrl)
|
|
101
|
+
: moduleUrl;
|
|
102
|
+
} catch {
|
|
103
|
+
return { reason: "invalid-module-url", removed: [] };
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const installedPackageDir = findInstalledPackageDir(moduleFile, packageName);
|
|
107
|
+
if (!installedPackageDir)
|
|
108
|
+
return { reason: "package-dir-not-found", removed: [] };
|
|
109
|
+
|
|
110
|
+
const nodeModulesDir = dirname(dirname(installedPackageDir));
|
|
111
|
+
if (nodeModulesDir.split(sep).at(-1) !== "node_modules") {
|
|
112
|
+
return { reason: "node-modules-not-found", removed: [] };
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const sandboxRoot = dirname(nodeModulesDir);
|
|
116
|
+
const packagesDir = join(cacheDir, "packages");
|
|
117
|
+
if (!isPathInside(sandboxRoot, packagesDir)) {
|
|
118
|
+
return { reason: "outside-opencode-packages-cache", removed: [] };
|
|
119
|
+
}
|
|
120
|
+
if (!isLatestSandbox(sandboxRoot, packageName)) {
|
|
121
|
+
return { reason: "not-latest-sandbox", removed: [] };
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const packageJson = readPackageJson(
|
|
125
|
+
join(installedPackageDir, "package.json"),
|
|
126
|
+
);
|
|
127
|
+
if (
|
|
128
|
+
packageJson?.name !== packageName ||
|
|
129
|
+
packageJson.version !== currentVersion
|
|
130
|
+
) {
|
|
131
|
+
return { reason: "version-mismatch", removed: [] };
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (!existsSync(sandboxRoot))
|
|
135
|
+
return { reason: "sandbox-missing", removed: [] };
|
|
136
|
+
rmSync(sandboxRoot, { force: true, recursive: true });
|
|
137
|
+
return { removed: [sandboxRoot] };
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export async function fetchNpmLatestVersion(packageName: string) {
|
|
141
|
+
try {
|
|
142
|
+
const response = await fetch(
|
|
143
|
+
`https://registry.npmjs.org/-/package/${encodeURIComponent(packageName)}/dist-tags`,
|
|
144
|
+
{ headers: { accept: "application/json" } },
|
|
145
|
+
);
|
|
146
|
+
if (!response.ok) return;
|
|
147
|
+
const data = (await response.json()) as { latest?: unknown };
|
|
148
|
+
return typeof data.latest === "string" ? data.latest : undefined;
|
|
149
|
+
} catch {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export async function checkAndInvalidateOutdatedPackageCache({
|
|
155
|
+
fetchLatestVersion,
|
|
156
|
+
notify,
|
|
157
|
+
...input
|
|
158
|
+
}: CacheUpdateCheckInput): Promise<CacheInvalidationResult> {
|
|
159
|
+
const latestVersion = await (
|
|
160
|
+
fetchLatestVersion ?? (() => fetchNpmLatestVersion(input.packageName))
|
|
161
|
+
)();
|
|
162
|
+
if (!latestVersion)
|
|
163
|
+
return { reason: "latest-version-unavailable", removed: [] };
|
|
164
|
+
|
|
165
|
+
const result = invalidateOutdatedPackageCache({
|
|
166
|
+
...input,
|
|
167
|
+
latestVersion,
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
if (result.removed.length > 0) {
|
|
171
|
+
await notify?.(
|
|
172
|
+
`opencode-balancer v${latestVersion} is ready. Restart opencode to update from v${input.currentVersion}.`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return result;
|
|
177
|
+
}
|
package/dist/server/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
type Plugin,
|
|
6
6
|
tool,
|
|
7
7
|
} from "@opencode-ai/plugin";
|
|
8
|
+
import packageJson from "../../package.json" with { type: "json" };
|
|
8
9
|
import {
|
|
9
10
|
getActiveAccount,
|
|
10
11
|
getSelectedAccount,
|
|
@@ -15,6 +16,7 @@ import { openBalancerDatabase } from "../core/database";
|
|
|
15
16
|
import { storePath } from "../core/path";
|
|
16
17
|
import { getBalancingEnabled, resolveActiveSelection } from "../core/priority";
|
|
17
18
|
import { migrate } from "../core/schema";
|
|
19
|
+
import { checkAndInvalidateOutdatedPackageCache } from "./cache-update";
|
|
18
20
|
import { runFallbackBalancerCommand } from "./commands";
|
|
19
21
|
import { installFetchPatch } from "./fetch-patch";
|
|
20
22
|
import { setNativeAuth, showToast } from "./native";
|
|
@@ -24,6 +26,8 @@ import {
|
|
|
24
26
|
setPendingRequest,
|
|
25
27
|
} from "./request-balancer";
|
|
26
28
|
|
|
29
|
+
const PACKAGE_NAME = "@thelioo/opencode-balancer";
|
|
30
|
+
|
|
27
31
|
export function configureFallbackCommand(cfg: Config) {
|
|
28
32
|
if (!cfg.command?.balancer) return;
|
|
29
33
|
}
|
|
@@ -129,6 +133,12 @@ export const serverPlugin = (async ({ client }) => {
|
|
|
129
133
|
const db = openBalancerDatabase(storePath());
|
|
130
134
|
migrate(db);
|
|
131
135
|
installFetchPatch(db, client);
|
|
136
|
+
checkAndInvalidateOutdatedPackageCache({
|
|
137
|
+
currentVersion: packageJson.version,
|
|
138
|
+
moduleUrl: import.meta.url,
|
|
139
|
+
notify: (message) => showToast(client, message, "success"),
|
|
140
|
+
packageName: PACKAGE_NAME,
|
|
141
|
+
}).catch(() => {});
|
|
132
142
|
|
|
133
143
|
return createServerHooks({ client, db });
|
|
134
144
|
}) satisfies Plugin;
|
package/package.json
CHANGED