@cortexkit/opencode-openai-auth 0.4.2 → 0.5.0

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.
Files changed (62) hide show
  1. package/README.md +8 -4
  2. package/dist/cli.js +1 -1
  3. package/dist/codex-http.d.ts +1 -1
  4. package/dist/commands.d.ts +6 -0
  5. package/dist/core/accounts.d.ts +6 -1
  6. package/dist/core/background-quota-refresh.d.ts +46 -0
  7. package/dist/core/cachekeep.d.ts +4 -0
  8. package/dist/core/oauth.d.ts +1 -1
  9. package/dist/core/quota-manager.d.ts +18 -15
  10. package/dist/core/refresh-all-quota.d.ts +12 -1
  11. package/dist/core/sticky-routing.d.ts +43 -0
  12. package/dist/dump.d.ts +1 -0
  13. package/dist/{index-x1c39tzz.js → index-6rnw2cgs.js} +1 -1
  14. package/dist/index-89mh4ahn.js +89 -0
  15. package/dist/index-rfgyxxxq.js +1 -0
  16. package/dist/index-s5fbqqwx.js +3 -0
  17. package/dist/index-vrdc90yd.js +6 -0
  18. package/dist/index-wnxfzjfr.js +2 -0
  19. package/dist/{index-jpx7h5gc.js → index-wpd7mg3p.js} +1 -1
  20. package/dist/index-zkzb0twr.js +2 -0
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +101 -83
  23. package/dist/{quota-normalize-02mn21p4.js → quota-normalize-n02dfdx0.js} +1 -1
  24. package/dist/raw-ws-bun.d.ts +2 -0
  25. package/dist/raw-ws-node.d.ts +2 -0
  26. package/dist/raw-ws-upgrade.d.ts +2 -0
  27. package/dist/rpc/port-file.d.ts +4 -0
  28. package/dist/rpc/port-file.js +1 -1
  29. package/dist/rpc/protocol.d.ts +1 -0
  30. package/dist/rpc/rpc-client.js +1 -1
  31. package/dist/rpc/rpc-dir.d.ts +6 -0
  32. package/dist/rpc/rpc-dir.js +1 -1
  33. package/dist/rpc/rpc-server.d.ts +2 -0
  34. package/dist/sidebar-state.d.ts +46 -5
  35. package/dist/sidebar-state.js +1 -1
  36. package/dist/{token-dab1ama0.js → token-5hdnazxp.js} +1 -1
  37. package/dist/token-util-3d2nj45d.js +1 -0
  38. package/dist/tui-preferences.js +1 -1
  39. package/dist/tui.d.ts +9 -0
  40. package/dist/version.d.ts +1 -1
  41. package/dist/ws-pool.d.ts +2 -11
  42. package/dist/ws.d.ts +7 -2
  43. package/package.json +2 -2
  44. package/src/rpc/port-file.ts +115 -8
  45. package/src/rpc/protocol.ts +1 -0
  46. package/src/rpc/rpc-dir.ts +31 -7
  47. package/src/rpc/rpc-server.ts +18 -2
  48. package/src/sidebar-state.ts +771 -23
  49. package/src/tui/command-dialogs.tsx +25 -3
  50. package/src/tui-compiled/rpc/port-file.ts +115 -8
  51. package/src/tui-compiled/rpc/protocol.ts +1 -0
  52. package/src/tui-compiled/rpc/rpc-dir.ts +31 -7
  53. package/src/tui-compiled/sidebar-state.ts +771 -23
  54. package/src/tui-compiled/tui/command-dialogs.tsx +17 -4
  55. package/src/tui-compiled/tui.tsx +50 -15
  56. package/src/tui.tsx +57 -19
  57. package/dist/index-72cas5ht.js +0 -7
  58. package/dist/index-dc7za61x.js +0 -89
  59. package/dist/index-hjgzqz1c.js +0 -1
  60. package/dist/index-qnd9x5jh.js +0 -2
  61. package/dist/index-wpk440dz.js +0 -2
  62. package/dist/token-util-41n40m0y.js +0 -1
@@ -0,0 +1,2 @@
1
+ import{ta as g}from"./index-vrdc90yd.js";import{za as m}from"./index-s5fbqqwx.js";import{createHash as Jj,randomUUID as Zj}from"node:crypto";import{chmod as $j,mkdir as Vj,readFile as l,rename as Xj,rm as Kj,writeFile as Yj}from"node:fs/promises";import{tmpdir as Gj}from"node:os";import{dirname as Lj,join as u}from"node:path";var d=["primary","secondary"],r={primary:300,secondary:10080};function W(j){return Number.isInteger(j)?String(j):String(Math.round(j*10)/10)}function e(j,J){let Z=j!==void 0&&Number.isFinite(j)&&j>0?j:r[J];if(Z<60)return`${W(Z)}m`;if(Z<1440)return`${W(Z/60)}h`;return`${W(Z/1440)}d`}function jj(j){if(!j)return[];let J=[];for(let Z of d){let $=j[Z];if(!$)continue;let V=$.windowMinutes,X=V!==void 0&&Number.isFinite(V)&&V>0?V:r[Z];J.push({key:Z,label:e(X,Z),window:$,windowMs:X*60000})}return J}var M=m("sidebar"),zj="OPENCODE_OPENAI_AUTH_SIDEBAR_STATE_FILE",Dj=u(Gj(),"opencode-openai-auth"),c=u(Dj,"sidebar-state.json"),Oj=/^[a-f0-9]{64}$/,b=604800000,Bj=256,o=3600000;function R(j){return Jj("sha256").update(j).digest("hex")}function Tj(j){return typeof j==="number"&&Number.isFinite(j)&&j>=0?j:void 0}function S(j){let J=Tj(j);return J!==void 0?{resetCredits:J}:{}}function Uj(j){if(j===null||typeof j!=="object"||Array.isArray(j))return;let J={};for(let[Z,$]of Object.entries(j)){if($===null||typeof $!=="object"||Array.isArray($))continue;let V=$;if(typeof V.activeId!=="string"||typeof V.route!=="string"||typeof V.updatedAt!=="number"||!Number.isFinite(V.updatedAt))continue;J[Z]={activeId:V.activeId,route:V.route,updatedAt:V.updatedAt}}return Object.keys(J).length>0?J:void 0}function Qj(j){if(j===null||typeof j!=="object"||Array.isArray(j))return;let J={};for(let[Z,$]of Object.entries(j)){if(!Oj.test(Z)||$===null||typeof $!=="object"||Array.isArray($))continue;let V=$;if(typeof V.accountId!=="string"||V.accountId.length===0||typeof V.assignedAt!=="number"||!Number.isFinite(V.assignedAt)||V.assignedAt<0||typeof V.lastSeenAt!=="number"||!Number.isFinite(V.lastSeenAt)||V.lastSeenAt<0||typeof V.inputBytes!=="number"||!Number.isFinite(V.inputBytes)||V.inputBytes<0)continue;let X=V.quotaCheckedAt;if(X!==void 0&&(typeof X!=="number"||!Number.isFinite(X)||X<0))continue;J[Z]={accountId:V.accountId,assignedAt:V.assignedAt,lastSeenAt:V.lastSeenAt,inputBytes:V.inputBytes,...X===void 0?{}:{quotaCheckedAt:X}}}return Object.keys(J).length>0?J:void 0}function T(){return process.env[zj]||c}var Q={main:{quota:null,killed:!1},fallbacks:[],activeId:void 0,route:"main",lastUpdated:0};function x(j){if(j===null||typeof j!=="object"||Array.isArray(j))return Q;let J=j,Z=J.main,$;if(Z!==null&&typeof Z==="object"&&!Array.isArray(Z)){let G=Z;$={quota:"quota"in G?G.quota:null,killed:typeof G.killed==="boolean"?G.killed:!1,...typeof G.mainAccountId==="string"?{mainAccountId:G.mainAccountId}:{},...typeof G.quotaBackedOff==="boolean"?{quotaBackedOff:G.quotaBackedOff}:{},...typeof G.quotaBackoffUntil==="number"?{quotaBackoffUntil:G.quotaBackoffUntil}:{},...typeof G.refreshBackedOff==="boolean"?{refreshBackedOff:G.refreshBackedOff}:{},...typeof G.refreshBackoffUntil==="number"?{refreshBackoffUntil:G.refreshBackoffUntil}:{},...S(G.resetCredits)}}else $={quota:null,killed:!1};let V=J.fallbacks,X=Array.isArray(V)?V.filter((G)=>G!==null&&typeof G==="object"&&!Array.isArray(G)&&typeof G.id==="string").map((G)=>({id:G.id,label:typeof G.label==="string"?G.label:void 0,...typeof G.accountId==="string"?{accountId:G.accountId}:{},quota:"quota"in G?G.quota:null,killed:typeof G.killed==="boolean"?G.killed:!1,enabled:typeof G.enabled==="boolean"?G.enabled:!0,...S(G.resetCredits)})):[],K=typeof J.activeId==="string"?J.activeId:void 0,Y=typeof J.route==="string"?J.route:Q.route,L=typeof J.lastUpdated==="number"?J.lastUpdated:0,z=typeof J.planType==="string"?J.planType:void 0,D=typeof J.credits==="number"?J.credits:void 0,O=Uj(J.activeRouting),B=Qj(J.stickyAssignments);return{main:$,fallbacks:X,activeId:K,route:Y,lastUpdated:L,...O!==void 0?{activeRouting:O}:{},...B!==void 0?{stickyAssignments:B}:{},...z!==void 0?{planType:z}:{},...D!==void 0?{credits:D}:{}}}async function pj(j=T()){try{let J=await l(j,"utf8");return x(JSON.parse(J))}catch{return Q}}var Nj=3600000,y=128;function a(j,J,Z=Date.now()){if(!(j.updatedAt>=Z-Nj&&j.updatedAt<=Z))return!1;if(J===void 0)return!0;return j.activeId==="main"||J.some((V)=>V.enabled!==!1&&V.killed!==!0&&V.id===j.activeId)}function _j(j,J=Date.now()){let Z;for(let $ of d){let V=j?.[$];if(typeof V?.resetsAt!=="string"||!Number.isFinite(V.usedPercent)||V.usedPercent<100)continue;let X=Date.parse(V.resetsAt);if(!Number.isFinite(X)||X<=J)continue;if(!Z||X<Z.resetAtMs)Z={resetsAt:V.resetsAt,resetAtMs:X}}return Z}function _(j,J=Date.now()){return _j(j,J)!==void 0}function Pj(j,J,Z=Date.now()){if(!J||j.route!=="sticky-balanced")return;let $=j.stickyAssignments?.[R(J)];if(!$||$.lastSeenAt<Z-b)return;if($.accountId==="main")return j.main?.killed||_(j.main?.quota,Z)?void 0:"main";let V=j.fallbacks?.find((X)=>X.id===$.accountId);if(!V||V.enabled===!1||V.killed===!0||_(V.quota,Z))return;return V.id}function hj(j,J,Z=Date.now()){if(!J)return{activeId:j.activeId??"main",route:j.route};let $=J?j.activeRouting?.[J]:void 0,V=$?.activeId==="main"?j.main.quota:j.fallbacks.find((L)=>L.id===$?.activeId)?.quota;if($&&a($,j.fallbacks,Z)&&!_(V,Z))return{activeId:$.activeId,route:$.route};let X=Pj(j,J,Z);if(X)return{activeId:X,route:j.route};let K=j.fallbacks.filter((L)=>L.enabled&&!L.killed),Y=K.find((L)=>!_(L.quota,Z))??K[0];return{activeId:j.route==="fallback-first"&&Y?Y.id:"main",route:j.route}}function i(j,J,Z=Date.now(),$){if(!j)return;let V=Object.entries(j).filter(([K,Y])=>K!==$&&a(Y,J,Z)),X=V.length<=y?V:V.sort((K,Y)=>Y[1].updatedAt-K[1].updatedAt).slice(0,y);return X.length>0?Object.fromEntries(X):void 0}function H(j,J,Z=Date.now(),$){if(!j)return;let V=0,X=0,K=0,Y=[];for(let[z,D]of Object.entries(j)){if(z===$){K+=1;continue}if(D.lastSeenAt<Z-b){X+=1;continue}if(J!==void 0&&!J.has(D.accountId)){V+=1;continue}Y.push([z,D])}let L=V+X+K;if(L>0)M.debug("pruned sticky assignments",{pid:process.pid,removed:L,reasons:{"account-not-in-roster":V,expired:X,"explicit-removal":K}});return Y.length>0?Object.fromEntries(Y):void 0}function Fj(j,J){let Z=Object.keys(j).length-Bj;if(Z<=0)return j;let $=new Set(Object.entries(j).filter(([V])=>V!==J).sort(([V,X],[K,Y])=>X.lastSeenAt-Y.lastSeenAt||V.localeCompare(K)).slice(0,Z).map(([V])=>V));return Object.fromEntries(Object.entries(j).filter(([V])=>!$.has(V)))}function Rj(j,J){if(j===J)return!0;if(!j||!J)return!1;let Z=Object.entries(j);if(Z.length!==Object.keys(J).length)return!1;return Z.every(([$,V])=>Object.is(J[$],V))}function f(j,J,Z,$){return j!==void 0&&J.has(j.accountId)&&!Z.has(j.accountId)&&j.lastSeenAt>=$-b}function A(j,J,Z){return J>j.inputBytes||Z-j.lastSeenAt>=o}function Hj(j){let J=new Map(j),Z={get size(){return J.size},has:($)=>J.has($),get:($)=>J.get($),entries:()=>J.entries(),keys:()=>J.keys(),values:()=>J.values(),forEach:($,V)=>{J.forEach((X,K)=>{$.call(V,X,K,Z)})},[Symbol.iterator]:()=>J[Symbol.iterator]()};return Object.freeze(Z)}function Wj(j,J){let Z=new Map;for(let $ of Object.values(j??{})){if($.quotaCheckedAt!==J[$.accountId])continue;Z.set($.accountId,(Z.get($.accountId)??0)+$.inputBytes)}return Hj(Z)}function I(j){if(j===void 0)return;return new Set(["main",...j.filter((J)=>J.enabled!==!1&&J.killed!==!0).map((J)=>J.id)])}var E=Promise.resolve(),Ej=3,Cj=1e4,qj=15000;function U(j){let J=E.then(j);return E=J.catch(()=>{}),J}function wj(j,J=T()){return U(()=>q(j,J))}async function s(j){try{return n(await C(j))}catch{return Q}}async function C(j){try{return await l(j,"utf8")}catch(J){if(J.code==="ENOENT")return"";throw J}}function n(j){if(j==="")return Q;try{return x(JSON.parse(j))}catch{return Q}}async function Mj(j){await t(j);let J=Date.now()+qj;while(Date.now()<=J){let Z=await g({name:"sidebar-write",path:j,ttlMs:Cj,renew:!0});if(Z)return Z;await new Promise(($)=>setTimeout($,10))}throw Error("Timed out waiting for the sidebar state write lock")}async function t(j){let J=Lj(j);if(await Vj(J,{recursive:!0,mode:448}),j!==c)return;await $j(J,448).catch((Z)=>{M.warn("sidebar directory permission remediation failed",{pid:process.pid,error:Z instanceof Error?Z.message:String(Z)})})}async function N(j,J,Z){let $=await Mj(j);try{for(let K=0;K<Ej;K+=1){let Y=await C(j),L=J(n(Y));if(!L)return;if(K===0)await Z?.beforeRecheck?.();if(await C(j)!==Y)continue;await q(L,j);return}let V=await s(j),X=J(V);if(X)await q(X,j)}finally{await $.release()}}function P(j){let J;for(let Z of[j?.primary?.checkedAt,j?.secondary?.checkedAt,j?.checkedAt])if(typeof Z==="number"&&Number.isFinite(Z))J=J===void 0?Z:Math.max(J,Z);return J}function k(j,J){let Z=P(j),$=P(J);if($!==void 0&&(Z===void 0||$>Z))return J;return j}function p(j,J){return j!==void 0&&J!==void 0&&j===J}function F(j,J){let Z=j?.checkedAt;if(typeof Z==="number"&&Number.isFinite(Z))return Z;if(typeof J==="number"&&Number.isFinite(J))return J;return}function h(j,J,Z,$,V){if(j&&J){let X=F(j,$),K=F(J,V);if(K!==void 0&&(X===void 0||K>X))return J;return j}return Z?J:j}function w(j,J){if(!j)return J;if(!J)return j;let Z=P(j),$=P(J),V=$!==void 0&&(Z===void 0||$>Z),X=h(j.primary,J.primary,V,j.checkedAt,J.checkedAt),K=h(j.secondary,J.secondary,V,j.checkedAt,J.checkedAt),Y;for(let L of[F(X),F(K)])if(L!==void 0)Y=Y===void 0?L:Math.max(Y,L);return{...j,primary:X,secondary:K,checkedAt:Y??j.checkedAt}}function mj(j,J=T(),Z){return U(async()=>{await N(J,($)=>{let V=new Map($.fallbacks.map((z)=>[z.id,z])),X=p(j.main.mainAccountId,$.main.mainAccountId),K=X?w(j.main.quota,$.main.quota):k(j.main.quota,$.main.quota),Y=Date.now(),L=H($.stickyAssignments,I(j.fallbacks),Y);return{...$,...j,main:{...j.main,quota:K,mainAccountId:X?j.main.mainAccountId:K===$.main.quota&&K!==j.main.quota?$.main.mainAccountId:j.main.mainAccountId},fallbacks:j.fallbacks.map((z)=>{let D=V.get(z.id),O=p(z.accountId,D?.accountId),B=O?w(z.quota,D?.quota??null):k(z.quota,D?.quota??null);return{...z,quota:B,accountId:O?z.accountId:B===D?.quota&&B!==z.quota?D?.accountId:z.accountId}}),activeId:$.activeId,activeRouting:$.activeRouting,stickyAssignments:L,lastUpdated:Math.max(Y,$.lastUpdated+1)}},Z)})}function gj(j,J,Z=T(),$){return U(async()=>{await N(Z,(V)=>{let X=i({...V.activeRouting,[j.sessionId]:{activeId:j.activeId,route:j.route,updatedAt:j.updatedAt}},J,Date.now()),K=H(V.stickyAssignments,I(J),Date.now());return{...V,activeId:j.activeId,route:j.route,activeRouting:X,stickyAssignments:K,lastUpdated:Math.max(Date.now(),V.lastUpdated+1)}},$)})}function dj(j,J=T()){return U(async()=>{await N(J,(Z)=>({...Z,activeId:j.activeId,route:j.route,lastUpdated:Math.max(Date.now(),Z.lastUpdated+1)}))})}function rj(j,J,Z=T(),$){return U(async()=>{await N(Z,(V)=>{let X=Date.now(),K=i(V.activeRouting,J,X,j),Y=H(V.stickyAssignments,I(J),X,R(j));return{...V,activeRouting:K,stickyAssignments:Y,lastUpdated:Math.max(Date.now(),V.lastUpdated+1)}},$)})}async function lj(j,J=T(),Z){let $=R(j.sessionId),V=new Set(j.validPinnedAccountIds),X=new Set(j.excludeAccountIds),K=(await s(J)).stickyAssignments?.[$];if(f(K,V,X,j.now)&&!A(K,j.requestBytes,j.now))return K;let Y;return await U(async()=>{await N(J,(L)=>{let z=H(L.stickyAssignments,V,j.now),D=!Rj(L.stickyAssignments,z),O=z?.[$];if(f(O,V,X,j.now)){let G=A(O,j.requestBytes,j.now),v=G?{...O,inputBytes:Math.max(O.inputBytes,j.requestBytes),...j.now-O.lastSeenAt>=o?{lastSeenAt:j.now}:{}}:O;if(Y=v,!D&&!G)return;return{...L,stickyAssignments:{...z,[$]:v},lastUpdated:Math.max(j.now,L.lastUpdated+1)}}let B=j.choose(Wj(z,j.quotaCheckedAtByAccount));if(!B){if(Y=void 0,!D)return;return{...L,stickyAssignments:z,lastUpdated:Math.max(j.now,L.lastUpdated+1)}}return Y={accountId:B.accountId,assignedAt:j.now,lastSeenAt:j.now,inputBytes:j.requestBytes,...B.quotaCheckedAt===void 0?{}:{quotaCheckedAt:B.quotaCheckedAt}},{...L,stickyAssignments:Fj({...z,[$]:Y},$),lastUpdated:Math.max(j.now,L.lastUpdated+1)}},Z)}),Y}async function uj(j,J=T()){let Z=R(j),$=!1;return await U(async()=>{await N(J,(V)=>{let X=V.stickyAssignments;if(X?.[Z]===void 0){$=!1;return}$=!0;let{[Z]:K,...Y}=X;return{...V,...Object.keys(Y).length>0?{stickyAssignments:Y}:{stickyAssignments:void 0},lastUpdated:Math.max(Date.now(),V.lastUpdated+1)}})}),$}async function q(j,J){let Z=`${J}.${Zj()}.tmp`;try{await t(J),await Yj(Z,JSON.stringify(x(j)),{encoding:"utf8",mode:384}),await Xj(Z,J)}catch($){throw await Kj(Z,{force:!0}).catch(()=>{}),M.warn("sidebar write failed",{pid:process.pid,error:$ instanceof Error?$.message:String($)}),$}}function cj(){return E}function oj(j){let J=j.activeId;if(J&&J!=="main"){let Z=j.fallbacks.find(($)=>$.enabled&&$.id===J);if(Z)return{id:Z.id,name:Z.label??Z.id,quota:Z.quota,killed:Z.killed}}return{id:"main",name:"main",quota:j.main.quota,killed:j.main.killed}}function aj(j){let J=j?.primary?.usedPercent??null,Z=j?.secondary?.usedPercent??null,$=jj(j);return{primaryUsedPercent:J,secondaryUsedPercent:Z,text:$.length===0?null:$.map(({label:V,window:X})=>`${V}: ${Math.round(X.usedPercent)}%`).join(" ")}}var bj=300000,xj=0.01,Ij=1;function ij(j,J,Z){if(!j.resetsAt)return null;let $=new Date(j.resetsAt).getTime();if(!Number.isFinite($))return null;let V=$-J,X=Z-V;if(X<bj)return null;if(X<J*xj)return null;if(X>=J)return null;let K=j.usedPercent,Y=Math.min(Math.max(X/J*100,0),100),L=K-Y,z=Math.abs(L)<Ij?"on-pace":L>0?"deficit":"reserve",D=null;if(K>0){let O=X*100/K,B=V+O;if(B<$)D=new Date(B).toISOString()}return{pacePercent:Y,deltaPercent:L,state:z,runsOutAt:D}}
2
+ export{e as S,jj as T,b as U,Bj as V,R as W,T as X,Q as Y,x as Z,pj as _,Nj as $,y as aa,a as ba,_j as ca,_ as da,Pj as ea,hj as fa,i as ga,H as ha,wj as ia,mj as ja,gj as ka,dj as la,rj as ma,lj as na,uj as oa,cj as pa,oj as qa,aj as ra,ij as sa};
@@ -1,2 +1,2 @@
1
1
  import{createRequire as s}from"node:module";var j=Object.create;var{getPrototypeOf:k,defineProperty:f,getOwnPropertyNames:l}=Object;var m=Object.prototype.hasOwnProperty;function n(a){return this[a]}var o,p,t=(a,b,c)=>{var g=a!=null&&typeof a==="object";if(g){var h=b?o??=new WeakMap:p??=new WeakMap,i=h.get(a);if(i)return i}c=a!=null?j(k(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of l(a))if(!m.call(d,e))f(d,e,{get:n.bind(a,e),enumerable:!0});if(g)h.set(a,d);return d};var u=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var q=(a)=>a;function r(a,b){this[a]=q.bind(null,b)}var v=(a,b)=>{for(var c in b)f(a,c,{get:b[c],enumerable:!0,configurable:!0,set:r.bind(b,c)})};var x=s(import.meta.url);
2
- export{t as ra,u as sa,v as ta,x as ua};
2
+ export{t as Da,u as Ea,v as Fa,x as Ga};
@@ -0,0 +1,2 @@
1
+ import{za as _}from"./index-s5fbqqwx.js";import{chmod as L,mkdir as M,readdir as W,readFile as $,rename as R,rmdir as S,unlink as X,writeFile as U}from"node:fs/promises";import{join as N,resolve as Y}from"node:path";var A=_("rpc");function E(q){try{return process.kill(q,0),!0}catch(H){return H.code==="EPERM"}}function C(q){return/^(?:openai-auth-)?[0-9a-f]{16}$/.test(q)}function O(q){return q!==null&&typeof q==="object"&&!Array.isArray(q)&&typeof q.pid==="number"&&Number.isFinite(q.pid)&&typeof q.port==="number"&&Number.isFinite(q.port)}async function Z(q){A.debug("rpc corrupt port file",{pid:process.pid,portFile:q}),await X(q).catch(()=>{})}async function w(q,H,I={}){let J=async()=>{if(await M(q,{recursive:!0,mode:I.secureDir?448:void 0}),I.secureDir)await L(q,448);await I.beforeWrite?.();let z={...H,startedAt:Date.now()},K=N(q,`port-${H.pid}.json`),B=`${K}.${process.pid}.tmp`;return await U(B,JSON.stringify(z),{encoding:"utf8",mode:384}),await R(B,K),K};try{return await J()}catch(z){if(z.code==="ENOENT")return await J();throw z}}async function x(q,H){let I;try{I=await W(q,{withFileTypes:!0})}catch(z){if(z.code==="ENOENT")return;throw z}let J=Y(H);for(let z of I){if(!z.isDirectory()||!C(z.name))continue;let K=N(q,z.name),B;try{B=await W(K)}catch(G){if(G.code==="ENOENT")continue;throw G}for(let G of B){if(!G.startsWith("port-")||!G.endsWith(".json"))continue;let Q=N(K,G),T;try{T=await $(Q,"utf8")}catch{continue}if(T===void 0)continue;let V;try{V=JSON.parse(T)}catch{await Z(Q);continue}if(!O(V)){await Z(Q);continue}if(!E(V.pid))await X(Q).catch(()=>{})}if(Y(K)!==J)await S(K).catch(()=>{})}}async function y(q,H){let I;try{I=await W(q)}catch{return null}let J=[];for(let B of I){if(!B.startsWith("port-")||!B.endsWith(".json"))continue;try{let G=JSON.parse(await $(N(q,B),"utf8"));if(Number.isFinite(G.port))if(E(G.pid))J.push(G);else X(N(q,B)).catch(()=>{})}catch{}}if(J.length===0)return null;let z=H!==void 0&&H>=1?J.filter((B)=>B.pid===H):[];return(z.length>0?z:J).sort((B,G)=>G.startedAt-B.startedAt)[0]??null}
2
+ export{w as ua,x as va,y as wa};
package/dist/index.d.ts CHANGED
@@ -17,7 +17,7 @@ interface CodexAuthPluginOptions {
17
17
  }
18
18
  export declare function findCachekeepFallbackAccount(accounts: FallbackAccount[], accountId: string): OAuthAccount | undefined;
19
19
  export declare function mergePushedQuotaMetadata(incoming: OAuthQuotaSnapshot, previous: OAuthQuotaSnapshot | undefined): OAuthQuotaSnapshot;
20
- export declare function buildSidebarMachineState(qm: QuotaManager, store: AccountStorage, now?: number): SidebarMachineState;
20
+ export declare function buildSidebarMachineState(qm: QuotaManager, store: AccountStorage, now?: number, mainAccountIdentity?: string | undefined): SidebarMachineState;
21
21
  export declare function buildSidebarState(qm: QuotaManager, store: AccountStorage, activeId: string, now?: number): SidebarState;
22
22
  export declare function resolveSidebarSessionId(headers: Headers): string | undefined;
23
23
  export declare function CodexAuthPlugin(input: PluginInput, options?: CodexAuthPluginOptions): Promise<Hooks>;