sidekick-agent-hub 0.24.5 → 0.25.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.
package/README.md CHANGED
@@ -8,6 +8,7 @@ Sidekick CLI reads from `~/.config/sidekick/` — the same data files the [VS Co
8
8
 
9
9
  ## What's New
10
10
 
11
+ - **`sidekick history`** — list your most recent Codex prompts across every workspace, newest first; `--path <id-or-prefix>` resolves a session to its transcript file for `less`/`jq`, and `--json` emits full ids and timestamps. `sidekick dump --list` and the session picker now read a cheap preview index with a `--limit` bound (default 50), so huge session histories list quickly.
11
12
  - **`sidekick statusline`, `today` & `doctor`** — a cache-only one-line account/quota/burn footer, a cache-only daily brief, and cross-provider health diagnostics.
12
13
  - **Quick capture** — `sidekick tasks add`, `tasks done`, `note add`, and `decision add` write straight to the shared project stores with atomic merges.
13
14
  - **`sidekick mcp`** — a read-only stdio MCP facts server so Claude Code or Codex can inspect quota, burn rate, context pressure, and project stores mid-session.
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __createRequire } from "module";
3
3
  const require = __createRequire(import.meta.url);
4
- var Ln=Object.create;var ct=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var Tn=Object.getOwnPropertyNames;var Rn=Object.getPrototypeOf,Hn=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var j=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Wn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Tn(t))!Hn.call(e,i)&&i!==n&&ct(e,i,{get:()=>t[i],enumerable:!(r=$n(t,i))||r.enumerable});return e};var qn=(e,t,n)=>(n=e!=null?Ln(Rn(e)):{},Wn(t||!e||!e.__esModule?ct(n,"default",{value:e,enumerable:!0}):n,e));var be=j(p=>{"use strict";var Bn=p&&p.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),zn=p&&p.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),_e=p&&p.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Bn(n,t,r[i]);return zn(n,t),n}})();Object.defineProperty(p,"__esModule",{value:!0});p.CONFIG_DIR_ENV_VAR=void 0;p.getDefaultConfigDir=at;p.setConfigDir=kn;p.getConfigDirOverride=Jn;p.getConfigDir=Ce;p.getProjectDataPath=Un;p.getGlobalDataPath=Qn;p.encodeWorkspacePath=we;p.getProjectSlug=Vn;p.resolveProjectIdentity=je;p.getProjectSlugRaw=Gn;var Kn=_e(f("fs")),W=_e(f("path")),ot=_e(f("os"));p.CONFIG_DIR_ENV_VAR="SIDEKICK_CONFIG_DIR";var ie=null;function at(){return process.platform==="win32"?W.join(process.env.APPDATA||ot.homedir(),"sidekick"):W.join(ot.homedir(),".config","sidekick")}function kn(e){let t=e?.trim();ie=t?W.resolve(t):null}function Jn(){return ie}function Ce(){if(ie)return ie;let e=process.env[p.CONFIG_DIR_ENV_VAR]?.trim();return e?W.resolve(e):at()}function Un(e,t){return W.join(Ce(),t,`${e}.json`)}function Qn(e){return W.join(Ce(),e)}function we(e){return e.replace(/\\/g,"/").replace(/[:/_]/g,"-")}function Vn(e){return je(e).canonicalSlug}function je(e){let t=W.resolve(e||process.cwd()),n;try{n=Kn.realpathSync(t)}catch{n=t}let r=we(n),i=we(t);return{cwd:t,resolvedCwd:n,canonicalSlug:r,legacySlug:i,candidates:r===i?[r]:[r,i],hasLegacyMismatch:r!==i}}function Gn(e){return je(e).legacySlug}});var X=j(b=>{"use strict";var Yn=b&&b.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Xn=b&&b.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Ie=b&&b.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Yn(n,t,r[i]);return Xn(n,t),n}})();Object.defineProperty(b,"__esModule",{value:!0});b.atomicWriteJson=st;b.atomicWriteJsonSync=dt;b.atomicWriteFileSync=lt;b.updateJsonStoreAtomic=ir;b.withFileLockSync=yt;b.updateJsonStoreAtomicSync=ur;var J=Ie(f("crypto")),a=Ie(f("fs")),k=Ie(f("path")),Oe=1e4,K=3e3,Zn=12e4,ut=15e3,er=15,tr=new Int32Array(new SharedArrayBuffer(4));async function nr(e){let t;try{t=await a.promises.open(e,"r"),await t.sync()}catch(n){let r=n.code;if(!["EISDIR","EINVAL","ENOSYS","EPERM","EACCES"].includes(r??""))throw n}finally{await t?.close().catch(()=>{})}}function rr(e){let t;try{t=a.openSync(e,"r"),a.fsyncSync(t)}catch(n){let r=n.code;if(!["EISDIR","EINVAL","ENOSYS","EPERM","EACCES"].includes(r??""))throw n}finally{t!==void 0&&a.closeSync(t)}}async function st(e,t){await a.promises.mkdir(k.dirname(e),{recursive:!0,mode:448});let n=`${e}.${process.pid}.${J.randomBytes(8).toString("hex")}.tmp`,r;try{r=await a.promises.open(n,"wx",384),await r.writeFile(JSON.stringify(t,null,2),"utf8"),await r.sync(),await r.close(),r=void 0,await a.promises.rename(n,e),await nr(k.dirname(e))}catch(i){throw await r?.close().catch(()=>{}),await a.promises.rm(n,{force:!0}).catch(()=>{}),i}}function dt(e,t){lt(e,JSON.stringify(t,null,2))}function lt(e,t,n=384){a.mkdirSync(k.dirname(e),{recursive:!0,mode:448});let r=`${e}.${process.pid}.${J.randomBytes(8).toString("hex")}.tmp`,i;try{i=a.openSync(r,"wx",n),a.writeFileSync(i,t,{encoding:"utf8"}),a.fsyncSync(i),a.closeSync(i),i=void 0,a.renameSync(r,e),rr(k.dirname(e))}catch(c){throw i!==void 0&&a.closeSync(i),a.rmSync(r,{force:!0}),c}}async function ir(e,t,n){await a.promises.mkdir(k.dirname(e),{recursive:!0,mode:448});let r=`${e}.lock`,i=await cr(r);try{let c=t(),o;try{o=await a.promises.readFile(e,"utf8")}catch(s){if(s.code!=="ENOENT")throw s}if(o!==void 0)try{c=JSON.parse(o)}catch{let s=`${e}.corrupt-${Date.now()}-${J.randomBytes(4).toString("hex")}`;await a.promises.rename(e,s)}let d=await n(c);return await st(e,d),d}finally{await or(r,i)}}async function cr(e){let t=Date.now()+K,n=null;for(;;)try{let r=await a.promises.open(e,"wx",384),i=`${process.pid}:${J.randomBytes(16).toString("hex")}`;await r.writeFile(i,"utf8"),await r.sync();let c=setInterval(()=>{a.promises.utimes(e,new Date,new Date).catch(()=>{})},Math.floor(Oe/3));return c.unref(),{handle:r,token:i,heartbeat:c}}catch(r){if(r.code!=="EEXIST")throw r;let i=await a.promises.readFile(e,"utf8").catch(()=>null);i!==null&&i!==n&&(n=i,t=Date.now()+K);try{let c=await a.promises.stat(e),o=Date.now()-c.mtimeMs;o>Oe&&!ft(i,o)&&await a.promises.rm(e,{force:!0})}catch{}if(Date.now()>=t)throw new Error(`Timed out waiting for store lock: ${e} (no progress for ${K}ms)`);await new Promise(c=>setTimeout(c,15))}}async function or(e,t){clearInterval(t.heartbeat),await t.handle.close().catch(()=>{});try{await a.promises.readFile(e,"utf8")===t.token&&await a.promises.rm(e,{force:!0})}catch{}}function ft(e,t){if(t>Zn)return!1;let n=Number.parseInt((e??"").split(":",1)[0],10);if(!Number.isInteger(n)||n<=0)return!1;try{return process.kill(n,0),!0}catch(r){return r.code==="EPERM"}}function yt(e,t){let n=ar(e);try{return t()}finally{try{a.readFileSync(e,"utf8")===n&&a.rmSync(e,{force:!0})}catch{}}}function ar(e){let t=Date.now(),n=t+K,r=null;for(;;)try{let i=a.openSync(e,"wx",384),c=`${process.pid}:${J.randomBytes(16).toString("hex")}`;return a.writeFileSync(i,c,"utf8"),a.fsyncSync(i),a.closeSync(i),c}catch(i){if(i.code!=="EEXIST")throw i;let c=null;try{c=a.readFileSync(e,"utf8")}catch{}c!==null&&c!==r&&(r=c,n=Date.now()+K);try{let d=a.statSync(e),s=Date.now()-d.mtimeMs;s>Oe&&!ft(c,s)&&a.rmSync(e,{force:!0})}catch{}let o=Date.now();if(o>=n)throw new Error(`Timed out waiting for store lock: ${e} (no progress for ${K}ms)`);if(o-t>=ut)throw new Error(`Timed out waiting for store lock: ${e} (blocked synchronously for ${ut}ms)`);Atomics.wait(tr,0,0,er)}}function ur(e,t,n){return a.mkdirSync(k.dirname(e),{recursive:!0,mode:448}),yt(`${e}.lock`,()=>{let r=t(),i;try{i=a.readFileSync(e,"utf8")}catch(o){if(o.code!=="ENOENT")throw o}if(i!==void 0)try{r=JSON.parse(i)}catch{let o=`${e}.corrupt-${Date.now()}-${J.randomBytes(4).toString("hex")}`;a.renameSync(e,o)}let c=n(r);return dt(e,c),c})}});var oe=j(S=>{"use strict";var sr=S&&S.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),dr=S&&S.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),pt=S&&S.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&sr(n,t,r[i]);return dr(n,t),n}})();Object.defineProperty(S,"__esModule",{value:!0});S.getAccountsDir=Pe;S.readSavedAccountRegistry=Z;S.writeSavedAccountRegistry=yr;S.listSavedAccountProfiles=pr;S.getActiveSavedAccount=mr;S.upsertSavedAccountProfile=hr;S.setActiveSavedAccount=gr;S.replaceSavedAccountProfiles=vr;S.removeSavedAccountProfile=Ar;var mt=pt(f("fs")),ht=pt(f("path")),lr=be(),ce=X();function Pe(){return ht.join((0,lr.getConfigDir)(),"accounts")}function xe(){return ht.join(Pe(),"accounts.json")}function De(){return xe()+".lock"}function Me(){mt.mkdirSync(Pe(),{recursive:!0,mode:448})}function Ee(e){(0,ce.atomicWriteJsonSync)(xe(),vt(e))}function Fe(e){return Me(),(0,ce.withFileLockSync)(De(),()=>{let t=e(Z()??gt());return Ee(t),t})}function gt(){return{version:2,activeByProvider:{"claude-code":null,codex:null},accounts:[]}}function vt(e){let t=gt();return t.activeByProvider["claude-code"]=e.activeByProvider?.["claude-code"]??null,t.activeByProvider.codex=e.activeByProvider?.codex??null,t.accounts=Array.isArray(e.accounts)?e.accounts.filter(n=>!!n&&(n.providerId==="claude-code"||n.providerId==="codex")&&typeof n.id=="string"&&typeof n.addedAt=="string").map(n=>({...n,label:n.label||void 0,email:n.email||void 0,providerAccountId:n.providerAccountId||void 0,metadata:n.metadata?{email:n.metadata.email||void 0,workspaceId:n.metadata.workspaceId||void 0,planType:n.metadata.planType||void 0,authMode:n.metadata.authMode||void 0}:void 0})):[],t}function fr(e){return{version:2,activeByProvider:{"claude-code":e.activeAccountUuid,codex:null},accounts:e.accounts.map(t=>({id:t.uuid,providerId:"claude-code",providerAccountId:t.uuid,email:t.email,label:t.label,addedAt:t.addedAt,metadata:{email:t.email}}))}}function Z(){try{let e=mt.readFileSync(xe(),"utf8"),t=JSON.parse(e);return t?.version===2?vt(t):t?.version===1&&Array.isArray(t.accounts)?fr(t):null}catch{return null}}function yr(e){Me(),(0,ce.withFileLockSync)(De(),()=>Ee(e))}function pr(e){let t=Z();return t?e?t.accounts.filter(n=>n.providerId===e):t.accounts:[]}function mr(e){let t=Z();if(!t)return null;let n=t.activeByProvider[e];return n?t.accounts.find(r=>r.providerId===e&&r.id===n)??null:null}function hr(e){return Fe(t=>{let n=t.accounts.findIndex(r=>r.providerId===e.providerId&&r.id===e.id);return n>=0?t.accounts[n]=e:t.accounts.push(e),t})}function gr(e,t){return Fe(n=>(n.activeByProvider[e]=t,n))}function vr(e,t,n){return Fe(r=>(r.accounts=r.accounts.filter(i=>i.providerId!==e).concat(t),r.activeByProvider[e]=n,r))}function Ar(e,t){return Me(),(0,ce.withFileLockSync)(De(),()=>{let n=Z();if(!n)return null;let r=n.accounts.findIndex(c=>c.providerId===e&&c.id===t);if(r===-1)return null;let[i]=n.accounts.splice(r,1);return n.activeByProvider[e]===t&&(n.activeByProvider[e]=n.accounts.find(c=>c.providerId===e)?.id??null),Ee(n),i})}});var Le=j(_=>{"use strict";var Sr=_&&_.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),wr=_&&_.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),St=_&&_.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Sr(n,t,r[i]);return wr(n,t),n}})();Object.defineProperty(_,"__esModule",{value:!0});_.getClaudeProfilesDir=wt;_.getClaudeProfileHome=_t;_.ensureClaudeProfileDirs=br;_.claudeKeychainSuffix=Ct;_.claudeKeychainService=jt;_.readClaudeProfileIdentity=bt;_.keychainServiceExists=Ot;_.isClaudeProfileAuthenticated=Or;var _r=f("child_process"),Cr=f("crypto"),Ne=St(f("fs")),ae=St(f("path")),jr=oe(),At="Claude Code-credentials";function wt(){return ae.join((0,jr.getAccountsDir)(),"claude","profiles")}function _t(e){return ae.join(wt(),e,"home")}function br(e){Ne.mkdirSync(_t(e),{recursive:!0,mode:448})}function Ct(e){return(0,Cr.createHash)("sha256").update(e).digest("hex").slice(0,8)}function jt(e){return e?`${At}-${Ct(e)}`:At}function bt(e){try{let t=JSON.parse(Ne.readFileSync(ae.join(e,".claude.json"),"utf8")),n=t?.oauthAccount?.emailAddress,r=t?.oauthAccount?.accountUuid;return typeof n=="string"&&typeof r=="string"?{email:n,uuid:r}:null}catch{return null}}function Ot(e){try{return(0,_r.execFileSync)("security",["find-generic-password","-s",e],{stdio:["ignore","ignore","ignore"],timeout:4e3,killSignal:"SIGKILL"}),!0}catch{return!1}}function Or(e){return(process.platform==="darwin"?Ot(jt(e)):Ne.existsSync(ae.join(e,".credentials.json")))&&bt(e)!==null}});var Mt=j(x=>{"use strict";var Ir=x&&x.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Pr=x&&x.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Re=x&&x.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Ir(n,t,r[i]);return Pr(n,t),n}})();Object.defineProperty(x,"__esModule",{value:!0});x.KEYCHAIN_SERVICE=void 0;x.readActiveCredentials=Dr;x.writeActiveCredentials=Mr;var Te=Re(f("fs")),It=Re(f("path")),xr=Re(f("os")),Pt=f("child_process"),xt=Le();x.KEYCHAIN_SERVICE="Claude Code-credentials";function $e(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Dt(e){return It.join(e??It.join(xr.homedir(),".claude"),".credentials.json")}function Dr(e){if(process.platform==="darwin")try{let t=(0,Pt.execFileSync)("security",["find-generic-password","-s",(0,xt.claudeKeychainService)(e),"-w"],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:4e3,killSignal:"SIGKILL"});return JSON.parse(t.trim())}catch{return null}try{return JSON.parse(Te.readFileSync(Dt(e),"utf8"))}catch{return null}}function Mr(e,t){let n=JSON.stringify(e);if(JSON.parse(n),process.platform==="darwin"){let c=(0,xt.claudeKeychainService)(t),o=process.env.USER||"user",d=["add-generic-password","-U","-s",$e(c),"-a",$e(o),"-w",$e(n)].join(" ");(0,Pt.execFileSync)("security",["-i"],{input:d+`
5
- `,stdio:["pipe","pipe","pipe"],timeout:4e3,killSignal:"SIGKILL"});return}let r=Dt(t),i=r+".tmp";Te.writeFileSync(i,n,{encoding:"utf8",mode:384}),Te.renameSync(i,r)}});var zt=j(h=>{"use strict";var Er=h&&h.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Fr=h&&h.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),He=h&&h.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Er(n,t,r[i]);return Fr(n,t),n}})();Object.defineProperty(h,"__esModule",{value:!0});h.readAccountRegistry=de;h.writeAccountRegistry=se;h.readActiveClaudeAccount=le;h.addCurrentAccount=Wr;h.switchToAccount=qr;h.resolveActiveClaudeHome=zr;h.applyActiveClaudeToLiveHome=Kr;h.reconcileClaudeAuthState=kr;h.removeAccount=Jr;h.listAccounts=Ur;h.getActiveAccount=Bt;h.resolveActiveClaudeAccount=Qr;h.isMultiAccountEnabled=Vr;var C=He(f("fs")),m=He(f("path")),Et=He(f("os")),M=Mt(),L=X(),v=oe(),V=Le();function Ft(){return m.join(Et.homedir(),".claude")}function $(){let e=m.join(Ft(),".claude.json");try{if(JSON.parse(C.readFileSync(e,"utf8"))?.oauthAccount)return e}catch{}return m.join(Et.homedir(),".claude.json")}function U(){return m.join((0,v.getAccountsDir)(),"credentials")}function Q(){return m.join((0,v.getAccountsDir)(),"configs")}function Nr(){return m.join((0,v.getAccountsDir)(),"claude",".profiles-migrated-v1")}function Lr(){for(let e of[(0,v.getAccountsDir)(),U(),Q()])C.mkdirSync(e,{recursive:!0,mode:448})}function We(e){try{return JSON.parse(C.readFileSync(e,"utf8"))}catch{return null}}function Nt(e){return We(e)?.oauthAccount??null}function Lt(e,t){(0,L.atomicWriteJsonSync)(m.join((0,V.getClaudeProfileHome)(e),".claude.json"),{oauthAccount:t})}function $t(e,t){(0,M.writeActiveCredentials)(t,(0,V.getClaudeProfileHome)(e))}function ue(e,t,n){Lt(e,n),$t(e,t)}function Tt(e){return We(m.join(U(),`${e}.credentials.json`))}function Rt(e){return We(m.join(Q(),`${e}.config.json`))}function Ht(e){return Nt(m.join((0,V.getClaudeProfileHome)(e),".claude.json"))}function $r(e){let t=(0,M.readActiveCredentials)((0,V.getClaudeProfileHome)(e)),n=Ht(e);if(t&&n)return{credentials:t,oauthAccount:n};let r=Tt(e),i=Rt(e);if(r&&i){try{ue(e,r,i)}catch{}return{credentials:r,oauthAccount:i}}return null}function Tr(){return Nt($())}function Rr(){let e=le();if(!e)return;let t=(0,M.readActiveCredentials)(),n=Tr();if(t)try{(0,L.atomicWriteJsonSync)(m.join(U(),`${e.uuid}.credentials.json`),t),$t(e.uuid,t)}catch{}if(n)try{(0,L.atomicWriteJsonSync)(m.join(Q(),`${e.uuid}.config.json`),n),Lt(e.uuid,n)}catch{}}function Hr(e){let t={};try{t=JSON.parse(C.readFileSync($(),"utf8"))}catch{}t.oauthAccount=e,(0,L.atomicWriteJsonSync)($(),t)}function de(){let e=(0,v.readSavedAccountRegistry)();if(!e)return null;let t=e.accounts.filter(n=>n.providerId==="claude-code").map(n=>({uuid:n.providerAccountId??n.id,email:n.email??n.metadata?.email??"unknown",label:n.label,addedAt:n.addedAt}));return{version:1,activeAccountUuid:e.activeByProvider["claude-code"],accounts:t}}function se(e){let t=e.accounts.map(n=>({id:n.uuid,providerId:"claude-code",providerAccountId:n.uuid,email:n.email,label:n.label,addedAt:n.addedAt,metadata:{email:n.email}}));(0,v.replaceSavedAccountProfiles)("claude-code",t,e.activeAccountUuid)}function le(){try{let e=C.readFileSync($(),"utf8"),t=JSON.parse(e),n=t?.oauthAccount?.emailAddress,r=t?.oauthAccount?.accountUuid;return!n||!r?null:{email:n,uuid:r}}catch{return null}}function Wr(e){let t=le();if(!t)return{success:!1,error:"No active Claude account found. Sign in with `claude` first."};let n=(0,M.readActiveCredentials)();if(!n)return{success:!1,error:"Could not read Claude credentials."};let r;try{r=JSON.parse(C.readFileSync($(),"utf8")).oauthAccount}catch{return{success:!1,error:"Could not read Claude config file."}}Lr();let i=de()??{version:1,activeAccountUuid:null,accounts:[]},c=i.accounts.find(o=>o.uuid===t.uuid);if(c){e!==void 0&&(c.label=e),(0,L.atomicWriteJsonSync)(m.join(U(),`${t.uuid}.credentials.json`),n),(0,L.atomicWriteJsonSync)(m.join(Q(),`${t.uuid}.config.json`),r);try{ue(t.uuid,n,r)}catch{}return i.activeAccountUuid=t.uuid,se(i),{success:!0}}(0,L.atomicWriteJsonSync)(m.join(U(),`${t.uuid}.credentials.json`),n),(0,L.atomicWriteJsonSync)(m.join(Q(),`${t.uuid}.config.json`),r);try{ue(t.uuid,n,r)}catch{}return i.accounts.push({uuid:t.uuid,email:t.email,label:e,addedAt:new Date().toISOString()}),i.activeAccountUuid=t.uuid,se(i),{success:!0}}function Wt(e){let t=m.join((0,v.getAccountsDir)(),"claude");return C.mkdirSync(t,{recursive:!0,mode:448}),(0,L.withFileLockSync)(m.join(t,"auth-swap.lock"),e)}function qr(e){try{return Wt(()=>Br(e))}catch(t){return{success:!1,error:`Could not acquire the account-switch lock: ${t}`}}}function Br(e){let t=de();if(!t)return{success:!1,error:"No account registry found. Save an account first."};if(!t.accounts.find(o=>o.uuid===e))return{success:!1,error:`Account ${e} not found in registry.`};let r=null,i=null;r=(0,M.readActiveCredentials)();try{i=C.readFileSync($(),"utf8")}catch{}try{Rr()}catch{}try{(0,v.setActiveSavedAccount)("claude-code",e)}catch(o){return{success:!1,error:`Failed to update account registry: ${o}`}}let c=qt();if(!c.success){try{(0,v.setActiveSavedAccount)("claude-code",t.activeAccountUuid)}catch{}if(r)try{(0,M.writeActiveCredentials)(r)}catch{}if(i)try{C.writeFileSync($(),i)}catch{}return c}return c}function zr(){let e=(0,v.getActiveSavedAccount)("claude-code");return e?(0,V.getClaudeProfileHome)(e.providerAccountId??e.id):Ft()}function Kr(){try{return Wt(qt)}catch(e){return{success:!1,error:`Could not acquire the account-switch lock: ${e}`}}}function qt(){let e=(0,v.getActiveSavedAccount)("claude-code");if(!e)return{success:!1,error:"No active Claude account found."};let t=e.providerAccountId??e.id,n=$r(t);if(!n)return{success:!1,error:`Stored credentials for ${e.email??t} not found.`};let r=(0,M.readActiveCredentials)(),i=null;try{i=C.readFileSync($(),"utf8")}catch{}try{(0,M.writeActiveCredentials)(n.credentials)}catch(c){if(r)try{(0,M.writeActiveCredentials)(r)}catch{}return{success:!1,error:`Failed to write credentials: ${c}`}}try{Hr(n.oauthAccount)}catch(c){if(r)try{(0,M.writeActiveCredentials)(r)}catch{}if(i)try{C.writeFileSync($(),i)}catch{}return{success:!1,error:`Failed to write config: ${c}`}}return{success:!0}}function kr(){try{let e=Nr();if(C.existsSync(e))return;let t=(0,v.readSavedAccountRegistry)();if(t)for(let n of t.accounts.filter(r=>r.providerId==="claude-code"))try{let r=n.providerAccountId??n.id;if((0,M.readActiveCredentials)((0,V.getClaudeProfileHome)(r))&&Ht(r))continue;let i=Tt(r),c=Rt(r);if(!i||!c)continue;ue(r,i,c)}catch{}C.mkdirSync(m.dirname(e),{recursive:!0,mode:448}),C.writeFileSync(e,new Date().toISOString()+`
6
- `,{encoding:"utf8",mode:384})}catch{}}function Jr(e){let t=de();if(!t)return{success:!1,error:"No account registry found."};let n=t.accounts.findIndex(r=>r.uuid===e);if(n===-1)return{success:!1,error:`Account ${e} not found.`};try{C.unlinkSync(m.join(U(),`${e}.credentials.json`))}catch{}try{C.unlinkSync(m.join(Q(),`${e}.config.json`))}catch{}return t.accounts.splice(n,1),t.activeAccountUuid===e&&(t.activeAccountUuid=t.accounts[0]?.uuid??null),se(t),{success:!0}}function Ur(){return(0,v.listSavedAccountProfiles)("claude-code").map(e=>({uuid:e.providerAccountId??e.id,email:e.email??e.metadata?.email??"unknown",label:e.label,addedAt:e.addedAt}))}function Bt(){let e=(0,v.getActiveSavedAccount)("claude-code");return e?{uuid:e.providerAccountId??e.id,email:e.email??e.metadata?.email??"unknown",label:e.label,addedAt:e.addedAt}:null}function Qr(){let e=le();if(e){let n=(0,v.listSavedAccountProfiles)("claude-code"),r=n.find(i=>(i.providerAccountId??i.id)===e.uuid)??n.find(i=>(i.email??i.metadata?.email)===e.email);if(r){let i=(0,v.getActiveSavedAccount)("claude-code");if(!i||i.id!==r.id)try{(0,v.setActiveSavedAccount)("claude-code",r.id)}catch{}}return{email:e.email,label:r?.label,providerAccountId:e.uuid,registryAccountId:r?.id,source:"live"}}let t=Bt();return t?{email:t.email,label:t.label,providerAccountId:t.uuid,registryAccountId:t.uuid,source:"registry"}:{source:"none"}}function Vr(){return(0,v.listSavedAccountProfiles)("claude-code").length>=1}});var yn=j(l=>{"use strict";var Gr=l&&l.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Yr=l&&l.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ze=l&&l.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Gr(n,t,r[i]);return Yr(n,t),n}})();Object.defineProperty(l,"__esModule",{value:!0});l.getSystemCodexHome=F;l.getCodexMonitoringHomes=ni;l.getCodexProfilesDir=Ut;l.getCodexProfileHome=E;l.readCodexAccountMetadata=Xt;l.readCodexAccountMetadataAsync=Zt;l.isCodexProfileAuthenticated=en;l.isCodexProfileAuthenticatedAsync=tn;l.listCodexAccounts=G;l.getActiveCodexAccount=ge;l.resolveSidekickCodexHome=Ue;l.resolveActiveCodexAccount=fi;l.getCodexExecutionEnv=yi;l.prepareCodexAccount=pi;l.prepareCodexAccountAsync=mi;l.finalizeCodexAccount=cn;l.finalizeCodexAccountAsync=on;l.switchToCodexAccount=Ai;l.switchToCodexAccountAsync=Si;l.reconcileCodexAuthState=wi;l.reconcileCodexAuthStateAsync=_i;l.removeCodexAccount=Ci;var g=ze(f("fs")),Xr=ze(f("os")),u=ze(f("path")),fe=f("child_process"),Zr=f("crypto"),w=oe(),A=X(),ei=11520*60*1e3;function kt(){return u.join(Xr.homedir(),".codex")}function Jt(){let e=process.env.CODEX_HOME?.trim();return e||null}function ti(e){let t=new Set,n=[];for(let r of e){let i=u.resolve(r);t.has(i)||(t.add(i),n.push(r))}return n}function F(){return Jt()??kt()}function ni(){let e=Jt();if(e)return[e];let t=[kt()];for(let n of G()){let r=E(n.id);g.existsSync(u.join(r,"sessions"))&&t.push(r)}return ti(t)}function Ut(){return u.join((0,w.getAccountsDir)(),"codex","profiles")}function Ke(e){return u.join(Ut(),e)}function E(e){return u.join(Ke(e),"codex-home")}function Qt(e){return u.join(Ke(e),"profile.json")}function Vt(e){g.mkdirSync(E(e),{recursive:!0,mode:448})}function R(e){try{return g.readFileSync(e,"utf8")}catch{return null}}function ke(e){try{return JSON.parse(g.readFileSync(Qt(e),"utf8"))}catch{return null}}function ri(e,t){Vt(e),(0,A.atomicWriteJsonSync)(Qt(e),t)}function qe(e,t){return g.existsSync(e)?(g.mkdirSync(u.dirname(t),{recursive:!0,mode:448}),g.copyFileSync(e,t),!0):!1}function ii(e,t){qe(u.join(e,"config.toml"),u.join(t,"config.toml"))}function ci(e,t){let n=qe(u.join(e,"auth.json"),u.join(t,"auth.json")),r=qe(u.join(e,".credentials.json"),u.join(t,".credentials.json"));return n||r}function oi(e){let t=e.split(".");if(t.length<2)return null;try{let n=Buffer.from(t[1],"base64url").toString("utf8");return JSON.parse(n)}catch{return null}}function Je(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function q(e){let t=Je(e);if(!t)return null;let n=t.tokens?.id_token,r=n?oi(n):null,i=r?.["https://api.openai.com/profile"],c=r?.["https://api.openai.com/auth"],o=typeof r?.email=="string"?r.email:typeof i?.email=="string"?i.email:void 0,d=typeof c?.chatgpt_account_id=="string"?c.chatgpt_account_id:t.tokens?.account_id,s=typeof c?.chatgpt_plan_type=="string"?c.chatgpt_plan_type:void 0,y=t.OPENAI_API_KEY||t.auth_mode==="api_key"?"api-key":"chatgpt";return{email:o,workspaceId:d,planType:s,authMode:y}}function Be(e,t){let n=Je(e);if(n?.last_refresh){let r=Date.parse(n.last_refresh);if(!Number.isNaN(r))return r}if(t)try{return g.statSync(t).mtimeMs}catch{}return null}function ai(e){let t=q(R(u.join(e,"auth.json")));return t?{email:t.email,workspaceId:t.workspaceId,planType:t.planType,authMode:t.authMode}:{}}function ui(e){let t=u.join(e,".credentials.json");if(!g.existsSync(t))return{};try{let n=JSON.parse(g.readFileSync(t,"utf8"));if(typeof n.OPENAI_API_KEY=="string"||typeof n.CODEX_API_KEY=="string")return{authMode:"api-key"}}catch{}return{}}var ye=4e3;function Gt(e,t){let n=t.trim();return e===0&&/^Logged in/i.test(n)?/API key/i.test(n)?{loggedIn:!0,authMode:"api-key"}:/ChatGPT/i.test(n)?{loggedIn:!0,authMode:"chatgpt"}:{loggedIn:!0}:{loggedIn:!1}}function pe(e){try{let t={...process.env,CODEX_HOME:e},n=(0,fe.spawnSync)("codex",["login","status"],{encoding:"utf8",env:t,timeout:ye,killSignal:"SIGKILL"});return Gt(n.status,String(n.stdout??""))}catch{}return{loggedIn:!1}}function me(e){return new Promise(t=>{try{let n={...process.env,CODEX_HOME:e};(0,fe.execFile)("codex",["login","status"],{encoding:"utf8",env:n,timeout:ye,killSignal:"SIGKILL"},(r,i)=>{t(r?{loggedIn:!1}:Gt(0,String(i??"")))})}catch{t({loggedIn:!1})}})}function si(){if(process.platform==="win32")return!1;try{return(0,fe.spawnSync)("pgrep",["-x","codex"],{encoding:"utf8",timeout:ye,killSignal:"SIGKILL"}).status===0}catch{return!1}}function di(){return process.platform==="win32"?Promise.resolve(!1):new Promise(e=>{try{(0,fe.execFile)("pgrep",["-x","codex"],{encoding:"utf8",timeout:ye,killSignal:"SIGKILL"},t=>e(!t))}catch{e(!1)}})}function he(e){let t=ai(e);if(t.email||t.workspaceId||t.planType||t.authMode)return t;let n=ui(e);return n.authMode?n:null}function Yt(e){return e.loggedIn?{authMode:e.authMode??"unknown"}:{}}function Xt(e){return he(e)??Yt(pe(e))}async function Zt(e){return he(e)??Yt(await me(e))}function ee(e){return g.existsSync(u.join(e,"auth.json"))||g.existsSync(u.join(e,".credentials.json"))}function en(e){return ee(e)||pe(e).loggedIn}async function tn(e){return ee(e)||(await me(e)).loggedIn}function li(e,t){let n=e.trim().toLowerCase();return G().find(i=>i.id!==t&&(i.label??"").trim().toLowerCase()===n)?`A Codex account named "${e}" already exists.`:null}function G(){return(0,w.listSavedAccountProfiles)("codex")}function ge(){return(0,w.getActiveSavedAccount)("codex")}function Ue(){return F()}function fi(){let e=q(R(u.join(Ue(),"auth.json")));if(e&&(e.email||e.workspaceId)){let n=Qe(e);if(n){let r=(0,w.getActiveSavedAccount)("codex");if(!r||r.id!==n.id)try{(0,w.setActiveSavedAccount)("codex",n.id)}catch{}}return{email:e.email??n?.email??n?.metadata?.email,label:n?.label,providerAccountId:n?.providerAccountId??e.workspaceId,registryAccountId:n?.id,source:"live"}}let t=ge();return t?{email:t.email??t.metadata?.email,label:t.label,providerAccountId:t.providerAccountId,registryAccountId:t.id,source:"registry"}:{source:"none"}}function yi(e=process.env){return{...e,CODEX_HOME:Ue()}}function nn(e){let t=e.trim();if(!t)return{result:{success:!1,error:"Codex accounts require a non-empty label."}};let n=li(t);if(n)return{result:{success:!1,error:n}};let r=(0,Zr.randomUUID)(),i=E(r);Vt(r),ri(r,{label:t,addedAt:new Date().toISOString()});let c=F();return ii(c,i),ci(c,i)?{finalize:{profileId:r,codexHome:i}}:{result:{success:!0,profileId:r,codexHome:i,needsLogin:!0}}}function pi(e){let t=nn(e);return"finalize"in t?{...cn(t.finalize.profileId),...t.finalize,needsLogin:!1}:t.result}async function mi(e){let t=nn(e);return"finalize"in t?{...await on(t.finalize.profileId),...t.finalize,needsLogin:!1}:t.result}function rn(e,t,n){let r=ke(e);if(!r)return{result:{success:!1,error:`Codex profile ${e} was not prepared.`}};let i=E(e);if(!n.authenticated)return{result:{success:!1,error:"Codex profile is not authenticated yet."}};let c={id:e,providerId:"codex",label:r.label,email:n.metadata.email,addedAt:r.addedAt,metadata:n.metadata};return(0,w.upsertSavedAccountProfile)(c),t.activate===!1?{result:{success:!0}}:ee(i)?{swap:c}:((0,w.setActiveSavedAccount)("codex",e),{result:{success:!0,warning:"Codex stores credentials in the OS keyring; sidekick cannot swap them per account, so `codex` keeps using the keyring credentials."}})}function cn(e,t={}){if(!ke(e))return{success:!1,error:`Codex profile ${e} was not prepared.`};let n=E(e),r=en(n),i=rn(e,t,{authenticated:r,metadata:r?Xt(n):{}});return"swap"in i?un(i.swap):i.result}async function on(e,t={}){if(!ke(e))return{success:!1,error:`Codex profile ${e} was not prepared.`};let n=E(e),r=await tn(n),i=rn(e,t,{authenticated:r,metadata:r?await Zt(n):{}});return"swap"in i?sn(i.swap):i.result}function Kt(){return u.join((0,w.getAccountsDir)(),"codex","stash")}function an(e,t){try{let n=new Date().toISOString().replace(/[:.]/g,"-"),r=null;if(e&&(r=u.join(Kt(),`auth-${n}.json`),(0,A.atomicWriteFileSync)(r,e)),t){let i=u.join(Kt(),`credentials-${n}.json`);(0,A.atomicWriteFileSync)(i,t),r=r??i}return r}catch{return null}}function Qe(e){let t=G();if(e?.workspaceId){let n=t.find(r=>r.metadata?.workspaceId===e.workspaceId);if(n)return n}if(e?.email){let n=t.find(r=>(r.email??r.metadata?.email)===e.email);if(n)return n}return!e?.workspaceId&&!e?.email?ge():null}function hi(e,t){if(!e&&!t)return{};try{let n=q(e),r=Qe(n);if(!r){let c=an(e,t);return{stashPath:c??void 0,warning:c?`Live Codex credentials did not match any saved account; stashed at ${c}.`:"Live Codex credentials did not match any saved account and could not be stashed."}}let i=E(r.id);e&&(0,A.atomicWriteFileSync)(u.join(i,"auth.json"),e),t&&(0,A.atomicWriteFileSync)(u.join(i,".credentials.json"),t);try{let c=he(i)??{};(0,w.upsertSavedAccountProfile)({...r,email:c.email??r.email,metadata:{...r.metadata,...c}})}catch{}return{syncedProfileId:r.id}}catch(n){return{warning:`Could not back up live Codex credentials: ${n}`}}}function ve(e){let t=u.join((0,w.getAccountsDir)(),"codex");return g.mkdirSync(t,{recursive:!0,mode:448}),(0,A.withFileLockSync)(u.join(t,"auth-swap.lock"),e)}function gi(){let e=F();return{codexRunning:si(),systemKeyringLoggedIn:ee(e)?!1:pe(e).loggedIn}}async function vi(){let e=F();return{codexRunning:await di(),systemKeyringLoggedIn:ee(e)?!1:(await me(e)).loggedIn}}function un(e){let t=gi();try{return ve(()=>dn(e,t))}catch(n){return{success:!1,error:`Could not acquire the account-switch lock: ${n}`}}}async function sn(e){let t=await vi();try{return ve(()=>dn(e,t))}catch(n){return{success:!1,error:`Could not acquire the account-switch lock: ${n}`}}}function dn(e,t){let n=F(),r=u.join(n,"auth.json"),i=u.join(n,".credentials.json"),c=R(r),o=R(i);if(!c&&!o&&t.systemKeyringLoggedIn)return{success:!1,error:'Codex stores credentials in the OS keyring; file-based account switching is not supported. Set `cli_auth_credentials_store = "file"` in ~/.codex/config.toml and run `codex login` again.'};let d=E(e.id),s=u.join(d,"auth.json"),y=R(s),D=R(u.join(d,".credentials.json")),H=e.label??e.email??e.id;if(!y&&!D)return{success:!1,error:`No stored credentials for "${H}". Remove and re-add this account.`};if(y&&!Je(y))return{success:!1,error:`Stored credentials for "${H}" are corrupted. Remove and re-add this account.`};let T=[];t.codexRunning&&T.push("A codex process appears to be running; restart codex sessions so they pick up the switched account.");let P=q(c),Y=q(y),et=e.metadata?.workspaceId??Y?.workspaceId,tt=e.email??e.metadata?.email??Y?.email;if(!!(P?.workspaceId&&et&&P.workspaceId===et||P?.email&&tt&&P.email===tt||c!==null&&c===y||!c&&!y&&o!==null&&o===D)){try{c&&(0,A.atomicWriteFileSync)(s,c),o&&(0,A.atomicWriteFileSync)(u.join(d,".credentials.json"),o);let z=he(d)??{};(0,w.upsertSavedAccountProfile)({...e,email:z.email??e.email,metadata:{...e.metadata,...z}})}catch{}return(0,w.setActiveSavedAccount)("codex",e.id),{success:!0,warning:T.length?T.join(" "):void 0}}let nt=Be(y,s);nt!==null&&Date.now()-nt>ei&&T.push(`Stored credentials for "${H}" have not been refreshed in over 8 days; codex may ask you to log in again.`);let rt=hi(c,o);rt.warning&&T.push(rt.warning);let it=()=>{try{c?(0,A.atomicWriteFileSync)(r,c):g.rmSync(r,{force:!0}),o?(0,A.atomicWriteFileSync)(i,o):g.rmSync(i,{force:!0})}catch{}};try{y?((0,A.atomicWriteFileSync)(r,y),D?(0,A.atomicWriteFileSync)(i,D):o&&g.rmSync(i,{force:!0})):((0,A.atomicWriteFileSync)(i,D),c&&g.rmSync(r,{force:!0}))}catch(z){return it(),{success:!1,error:`Failed to write Codex credentials: ${z}`}}try{(0,w.setActiveSavedAccount)("codex",e.id)}catch(z){return it(),{success:!1,error:`Failed to update account registry: ${z}`}}return{success:!0,warning:T.length?T.join(" "):void 0}}function Ai(e){let t=G().find(n=>n.id===e);return t?un(t):{success:!1,error:`Codex account ${e} not found.`}}async function Si(e){let t=G().find(n=>n.id===e);return t?sn(t):{success:!1,error:`Codex account ${e} not found.`}}function ln(){let e=u.join((0,w.getAccountsDir)(),"codex",".live-auth-migrated-v1");return g.existsSync(e)?!1:!g.existsSync(u.join(F(),"auth.json"))}function wi(){try{let e=ln()?pe(F()).loggedIn:!1;ve(()=>fn({systemKeyringLoggedIn:e}))}catch{}}async function _i(){try{let e=ln()?(await me(F())).loggedIn:!1;ve(()=>fn({systemKeyringLoggedIn:e}))}catch{}}function fn(e){try{let t=u.join((0,w.getAccountsDir)(),"codex",".live-auth-migrated-v1");if(g.existsSync(t))return;let n=()=>(0,A.atomicWriteFileSync)(t,new Date().toISOString()+`
7
- `),r=ge();if(!r){n();return}let i=E(r.id),c=u.join(i,"auth.json"),o=R(c);if(!o){n();return}let d=F(),s=u.join(d,"auth.json"),y=R(s);if(!y){e.systemKeyringLoggedIn||(0,A.atomicWriteFileSync)(s,o),n();return}let D=q(y),H=q(o);if(!!(D?.workspaceId&&H?.workspaceId&&D.workspaceId===H.workspaceId||D?.email&&D.email===H?.email)){let P=Be(y,s),Y=Be(o,c);Y!==null&&(P===null||Y>P)?(an(y,null),(0,A.atomicWriteFileSync)(s,o)):(0,A.atomicWriteFileSync)(c,y)}else{let P=Qe(D);P&&P.id!==r.id&&((0,A.atomicWriteFileSync)(u.join(E(P.id),"auth.json"),y),(0,w.setActiveSavedAccount)("codex",P.id))}n()}catch{}}function Ci(e){return(0,w.removeSavedAccountProfile)("codex",e)?(g.rmSync(Ke(e),{recursive:!0,force:!0}),{success:!0}):{success:!1,error:`Codex account ${e} not found.`}}});var pn=j(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.getActiveAccountStatus=Ii;var ji=zt(),bi=yn();function Oi(e){return e instanceof Error?e.message:String(e)}function Ii(e){try{let t=(0,ji.resolveActiveClaudeAccount)(),n=(0,bi.resolveActiveCodexAccount)(),r=t.source!=="none"?{present:!0,...t.registryAccountId?{accountId:t.registryAccountId}:{},email:t.email,label:t.label??t.email}:{present:!1},i=n.source!=="none"?{present:!0,...n.registryAccountId?{accountId:n.registryAccountId}:{},email:n.email,label:n.label??n.email??n.providerAccountId}:{present:!1};return{ok:r.present||i.present,claude:r,codex:i,error:e}}catch(t){return{ok:!1,claude:{present:!1},codex:{present:!1},error:e??Oi(t)}}}});var mn=j(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.isAggregateCodexLimit=Pi;function Pi(e){return!e||e==="codex"}});var jn=j(N=>{"use strict";var xi=N&&N.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Di=N&&N.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),vn=N&&N.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&xi(n,t,r[i]);return Di(n,t),n}})();Object.defineProperty(N,"__esModule",{value:!0});N.writeQuotaSnapshot=Li;N.readQuotaSnapshot=$i;var An=vn(f("fs")),Mi=vn(f("path")),Sn=be(),wn=X(),hn=mn();function Ye(){return Mi.join((0,Sn.getConfigDir)(),"quota-snapshots.json")}function _n(){An.mkdirSync((0,Sn.getConfigDir)(),{recursive:!0,mode:448})}function Cn(){try{let e=JSON.parse(An.readFileSync(Ye(),"utf8"));if(e?.version===1&&Array.isArray(e.snapshots))return e}catch{}return{version:1,snapshots:[]}}function Ei(e){_n(),(0,wn.atomicWriteJsonSync)(Ye(),e)}function Fi(e){return _n(),(0,wn.withFileLockSync)(`${Ye()}.lock`,e)}function gn(e){let t=e.capturedAt?Date.parse(e.capturedAt):NaN;return Number.isFinite(t)?t:0}function Ae(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Ni(e,t){let n=(0,hn.isAggregateCodexLimit)(e.limitId),r=(0,hn.isAggregateCodexLimit)(t.limitId);if(n!==r)return n;let i=Ae(e.fiveHour.resetsAt),c=Ae(t.fiveHour.resetsAt);if(i!==c)return i>c;let o=Ae(e.sevenDay.resetsAt),d=Ae(t.sevenDay.resetsAt);if(o!==d)return o>d;let s=e.fiveHour.utilization+e.sevenDay.utilization,y=t.fiveHour.utilization+t.sevenDay.utilization;return s!==y?s>y:gn(e)>gn(t)}function Li(e,t,n){Fi(()=>{let r=Cn(),i=r.snapshots.findIndex(s=>s.providerId===e&&s.accountId===t),c=i>=0?r.snapshots[i].quota:void 0,o={...n,providerId:e,capturedAt:n.capturedAt??new Date().toISOString(),source:n.source??"session",stale:!1,resetCredits:n.resetCredits??(e==="codex"?c?.resetCredits:void 0)};if(i>=0&&Ni(r.snapshots[i].quota,o))return;let d={providerId:e,accountId:t,quota:o};i>=0?r.snapshots[i]=d:r.snapshots.push(d),Ei(r)})}function $i(e,t){let r=Cn().snapshots.find(i=>i.providerId===e&&i.accountId===t);return r?{...r.quota,providerId:e,source:"cache",stale:!0}:null}});var Ze=j(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.BurnRateCalculator=void 0;te.estimateTimeToQuota=bn;var Xe=class{events=[];windowMs;constructor(t=5){this.windowMs=t*6e4}addEvent(t,n=new Date){this.events.push({tokens:t,timestamp:n}),this.pruneOldEvents(n)}calculateBurnRate(t=new Date){if(this.pruneOldEvents(t),this.events.length===0)return 0;let n=this.events.reduce((i,c)=>i+c.tokens,0),r=Math.max((t.getTime()-this.events[0].timestamp.getTime())/6e4,1);return n/r}estimateTimeToQuota(t,n,r=new Date){return bn(t,n,this.calculateBurnRate(r))}getEventCount(){return this.events.length}reset(){this.events=[]}pruneOldEvents(t){let n=t.getTime()-this.windowMs;this.events=this.events.filter(r=>r.timestamp.getTime()>=n)}};te.BurnRateCalculator=Xe;function bn(e,t,n){if(n<=0)return null;let r=t-e;return r<=0?0:r/n}});var On=j(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.SEVEN_DAY_WINDOW_MS=I.FIVE_HOUR_WINDOW_MS=void 0;I.projectQuotaWindow=re;I.withQuotaProjections=Wi;I.fetchQuota=Bi;var Ti="https://api.anthropic.com/api/oauth/usage",Ri="oauth-2025-04-20",Hi=1e4;I.FIVE_HOUR_WINDOW_MS=5*36e5;I.SEVEN_DAY_WINDOW_MS=7*864e5;function re(e){let{utilization:t,resetsAt:n,windowMs:r,capturedAt:i}=e;if(!n||t<=0||!Number.isFinite(t)||r<=0)return;let c=new Date(n).getTime();if(!Number.isFinite(c))return;let o=i?Date.parse(i):NaN,d=Number.isFinite(o)?o:Date.now(),s=r-(c-d);if(!(s<=0))return Math.min(Math.round(t*(r/s)),200)}function Wi(e,t={}){if(!e.available)return e;let n={...e},r=t.capturedAt??e.capturedAt;if(n.projectedFiveHour==null){let i=re({utilization:n.fiveHour.utilization,resetsAt:n.fiveHour.resetsAt,windowMs:t.fiveHourWindowMs??I.FIVE_HOUR_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedFiveHour=i)}if(n.projectedSevenDay==null){let i=re({utilization:n.sevenDay.utilization,resetsAt:n.sevenDay.resetsAt,windowMs:t.sevenDayWindowMs??I.SEVEN_DAY_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedSevenDay=i)}return n}function ne(e,t={}){return{fiveHour:{utilization:0,resetsAt:""},sevenDay:{utilization:0,resetsAt:""},available:!1,error:e,...t}}function qi(e){if(!e)return;let t=Number(e);if(Number.isFinite(t)&&t>=0)return Math.round(t*1e3);let n=Date.parse(e);if(!Number.isNaN(n))return Math.max(n-Date.now(),0)}async function Bi(e){let t=new AbortController,n=setTimeout(()=>t.abort(),Hi);n.unref();try{let r=await fetch(Ti,{method:"GET",signal:t.signal,headers:{Authorization:`Bearer ${e}`,"anthropic-beta":Ri,"Content-Type":"application/json"}});if(!r.ok)return r.status===401?ne("Sign in to Claude Code to view quota",{failureKind:"auth",httpStatus:r.status}):r.status===429?ne(`API error: ${r.status}`,{failureKind:"rate_limit",httpStatus:r.status,retryAfterMs:qi(r.headers.get("retry-after"))}):r.status>=500&&r.status<=599?ne(`API error: ${r.status}`,{failureKind:"server",httpStatus:r.status}):ne(`API error: ${r.status}`,{failureKind:"unknown",httpStatus:r.status});let i=await r.json(),c=i.five_hour?.utilization??0,o=i.seven_day?.utilization??0,d=i.five_hour?.resets_at??"",s=i.seven_day?.resets_at??"";return{fiveHour:{utilization:c,resetsAt:d},sevenDay:{utilization:o,resetsAt:s},available:!0,projectedFiveHour:re({utilization:c,resetsAt:d,windowMs:I.FIVE_HOUR_WINDOW_MS}),projectedSevenDay:re({utilization:o,resetsAt:s,windowMs:I.SEVEN_DAY_WINDOW_MS})}}catch{return ne("Network error",{failureKind:"network"})}finally{clearTimeout(n)}}});var Pn=j(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.selectStatuslineAccount=In;Se.formatStatusline=ki;var zi=On(),Ki=Ze();function In(e){return e.accounts.claude.present?{providerId:"claude-code",accountId:e.accounts.claude.accountId,accountLabel:e.accounts.claude.label??e.accounts.claude.email??"claude",quota:e.claudeQuota??null}:e.accounts.codex.present?{providerId:"codex",accountId:e.accounts.codex.accountId,accountLabel:e.accounts.codex.label??e.accounts.codex.email??"codex",quota:e.codexQuota??null}:null}function ki(e){let t=In(e);if(!t)return"acct:none \xB7 quota unavailable";let n=Ui(t.accountLabel),r=t.quota;if(!r?.available)return`acct:${n} \xB7 quota unavailable`;let i=e.now??new Date,c=Qi(r.fiveHour.utilization),o=Vi(r.fiveHour.resetsAt,i),d=Ji(r,i),s=d==null?"":` \xB7 ~${Gi(d)} left`;return`acct:${n} \xB7 5h ${Math.round(c)}% resets ${o}${s}`}function Ji(e,t){let n=Date.parse(e.fiveHour.resetsAt);if(!Number.isFinite(n))return null;let r=t.getTime();if(n<=r)return null;let i=e.capturedAt?Date.parse(e.capturedAt):t.getTime(),c=Number.isFinite(i)?i:t.getTime();if(c>=n)return null;let o=(c-(n-zi.FIVE_HOUR_WINDOW_MS))/6e4;if(o<=0||e.fiveHour.utilization<=0)return null;let d=e.fiveHour.utilization/o,s=(0,Ki.estimateTimeToQuota)(e.fiveHour.utilization,100,d),y=(n-r)/6e4;return s!==null&&s<y?s:null}function Ui(e){let t=e.trim();return(t.includes("@")?t.split("@")[0]:t).replace(/\s+/g,"-").slice(0,24)||"unknown"}function Qi(e){return Number.isFinite(e)?Math.min(100,Math.max(0,e)):0}function Vi(e,t){let n=new Date(e),r=Number.isNaN(n.getTime())?t:n;return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)}function Gi(e){let t=Math.max(0,Math.round(e));if(t<60)return`${t}min`;let n=Math.floor(t/60),r=t%60;return r?`${n}h${r}m`:`${n}h`}});var Mn=j(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.selectStatuslineAccount=O.formatStatusline=O.estimateTimeToQuota=O.BurnRateCalculator=O.readQuotaSnapshot=O.getActiveAccountStatus=void 0;var Yi=pn();Object.defineProperty(O,"getActiveAccountStatus",{enumerable:!0,get:function(){return Yi.getActiveAccountStatus}});var Xi=jn();Object.defineProperty(O,"readQuotaSnapshot",{enumerable:!0,get:function(){return Xi.readQuotaSnapshot}});var xn=Ze();Object.defineProperty(O,"BurnRateCalculator",{enumerable:!0,get:function(){return xn.BurnRateCalculator}});Object.defineProperty(O,"estimateTimeToQuota",{enumerable:!0,get:function(){return xn.estimateTimeToQuota}});var Dn=Pn();Object.defineProperty(O,"formatStatusline",{enumerable:!0,get:function(){return Dn.formatStatusline}});Object.defineProperty(O,"selectStatuslineAccount",{enumerable:!0,get:function(){return Dn.selectStatuslineAccount}})});var B=qn(Mn(),1);function En(){let e=(0,B.getActiveAccountStatus)(),t=e.claude.accountId?(0,B.readQuotaSnapshot)("claude-code",e.claude.accountId):null,n=e.codex.accountId?(0,B.readQuotaSnapshot)("codex",e.codex.accountId):null;process.stdout.write(`${(0,B.formatStatusline)({accounts:e,claudeQuota:t,codexQuota:n})}
8
- `)}var Fn=["--project","--provider"],Zi=["--json","--no-color"];function ec(e){for(let t=0;t<e.length;t++){let n=e[t];if(!Zi.includes(n)){if(Fn.includes(n)){t++;continue}if(!Fn.some(r=>n.startsWith(`${r}=`)))return n}}}function Nn(e){return ec(e)==="statusline"}Nn(process.argv.slice(2))?En():await import("./sidekick-main.mjs");
4
+ var qn=Object.create;var st=Object.defineProperty;var Wn=Object.getOwnPropertyDescriptor;var Bn=Object.getOwnPropertyNames;var zn=Object.getPrototypeOf,Un=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var w=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Kn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Bn(t))!Un.call(e,i)&&i!==n&&st(e,i,{get:()=>t[i],enumerable:!(r=Wn(t,i))||r.enumerable});return e};var kn=(e,t,n)=>(n=e!=null?qn(zn(e)):{},Kn(t||!e||!e.__esModule?st(n,"default",{value:e,enumerable:!0}):n,e));var be=w(p=>{"use strict";var Jn=p&&p.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Vn=p&&p.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Oe=p&&p.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Jn(n,t,r[i]);return Vn(n,t),n}})();Object.defineProperty(p,"__esModule",{value:!0});p.CONFIG_DIR_ENV_VAR=void 0;p.getDefaultConfigDir=lt;p.setConfigDir=Gn;p.getConfigDirOverride=Yn;p.getConfigDir=je;p.getProjectDataPath=Xn;p.getGlobalDataPath=Zn;p.encodeWorkspacePath=Ce;p.getProjectSlug=er;p.resolveProjectIdentity=Ie;p.getProjectSlugRaw=tr;var Qn=Oe(f("fs")),W=Oe(f("path")),dt=Oe(f("os"));p.CONFIG_DIR_ENV_VAR="SIDEKICK_CONFIG_DIR";var ce=null;function lt(){return process.platform==="win32"?W.join(process.env.APPDATA||dt.homedir(),"sidekick"):W.join(dt.homedir(),".config","sidekick")}function Gn(e){let t=e?.trim();ce=t?W.resolve(t):null}function Yn(){return ce}function je(){if(ce)return ce;let e=process.env[p.CONFIG_DIR_ENV_VAR]?.trim();return e?W.resolve(e):lt()}function Xn(e,t){return W.join(je(),t,`${e}.json`)}function Zn(e){return W.join(je(),e)}function Ce(e){return e.replace(/\\/g,"/").replace(/[:/_]/g,"-")}function er(e){return Ie(e).canonicalSlug}function Ie(e){let t=W.resolve(e||process.cwd()),n;try{n=Qn.realpathSync(t)}catch{n=t}let r=Ce(n),i=Ce(t);return{cwd:t,resolvedCwd:n,canonicalSlug:r,legacySlug:i,candidates:r===i?[r]:[r,i],hasLegacyMismatch:r!==i}}function tr(e){return Ie(e).legacySlug}});var Z=w(I=>{"use strict";var nr=I&&I.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),rr=I&&I.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),De=I&&I.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&nr(n,t,r[i]);return rr(n,t),n}})();Object.defineProperty(I,"__esModule",{value:!0});I.atomicWriteJson=yt;I.atomicWriteJsonSync=pt;I.atomicWriteFileSync=mt;I.updateJsonStoreAtomic=sr;I.withFileLockSync=gt;I.updateJsonStoreAtomicSync=yr;var J=De(f("crypto")),a=De(f("fs")),k=De(f("path")),Pe=1e4,K=3e3,ir=12e4,ft=15e3,cr=15,or=new Int32Array(new SharedArrayBuffer(4));async function ar(e){let t;try{t=await a.promises.open(e,"r"),await t.sync()}catch(n){let r=n.code;if(!["EISDIR","EINVAL","ENOSYS","EPERM","EACCES"].includes(r??""))throw n}finally{await t?.close().catch(()=>{})}}function ur(e){let t;try{t=a.openSync(e,"r"),a.fsyncSync(t)}catch(n){let r=n.code;if(!["EISDIR","EINVAL","ENOSYS","EPERM","EACCES"].includes(r??""))throw n}finally{t!==void 0&&a.closeSync(t)}}async function yt(e,t){await a.promises.mkdir(k.dirname(e),{recursive:!0,mode:448});let n=`${e}.${process.pid}.${J.randomBytes(8).toString("hex")}.tmp`,r;try{r=await a.promises.open(n,"wx",384),await r.writeFile(JSON.stringify(t,null,2),"utf8"),await r.sync(),await r.close(),r=void 0,await a.promises.rename(n,e),await ar(k.dirname(e))}catch(i){throw await r?.close().catch(()=>{}),await a.promises.rm(n,{force:!0}).catch(()=>{}),i}}function pt(e,t){mt(e,JSON.stringify(t,null,2))}function mt(e,t,n=384){a.mkdirSync(k.dirname(e),{recursive:!0,mode:448});let r=`${e}.${process.pid}.${J.randomBytes(8).toString("hex")}.tmp`,i;try{i=a.openSync(r,"wx",n),a.writeFileSync(i,t,{encoding:"utf8"}),a.fsyncSync(i),a.closeSync(i),i=void 0,a.renameSync(r,e),ur(k.dirname(e))}catch(c){throw i!==void 0&&a.closeSync(i),a.rmSync(r,{force:!0}),c}}async function sr(e,t,n){await a.promises.mkdir(k.dirname(e),{recursive:!0,mode:448});let r=`${e}.lock`,i=await dr(r);try{let c=t(),o;try{o=await a.promises.readFile(e,"utf8")}catch(s){if(s.code!=="ENOENT")throw s}if(o!==void 0)try{c=JSON.parse(o)}catch{let s=`${e}.corrupt-${Date.now()}-${J.randomBytes(4).toString("hex")}`;await a.promises.rename(e,s)}let d=await n(c);return await yt(e,d),d}finally{await lr(r,i)}}async function dr(e){let t=Date.now()+K,n=null;for(;;)try{let r=await a.promises.open(e,"wx",384),i=`${process.pid}:${J.randomBytes(16).toString("hex")}`;await r.writeFile(i,"utf8"),await r.sync();let c=setInterval(()=>{a.promises.utimes(e,new Date,new Date).catch(()=>{})},Math.floor(Pe/3));return c.unref(),{handle:r,token:i,heartbeat:c}}catch(r){if(r.code!=="EEXIST")throw r;let i=await a.promises.readFile(e,"utf8").catch(()=>null);i!==null&&i!==n&&(n=i,t=Date.now()+K);try{let c=await a.promises.stat(e),o=Date.now()-c.mtimeMs;o>Pe&&!ht(i,o)&&await a.promises.rm(e,{force:!0})}catch{}if(Date.now()>=t)throw new Error(`Timed out waiting for store lock: ${e} (no progress for ${K}ms)`);await new Promise(c=>setTimeout(c,15))}}async function lr(e,t){clearInterval(t.heartbeat),await t.handle.close().catch(()=>{});try{await a.promises.readFile(e,"utf8")===t.token&&await a.promises.rm(e,{force:!0})}catch{}}function ht(e,t){if(t>ir)return!1;let n=Number.parseInt((e??"").split(":",1)[0],10);if(!Number.isInteger(n)||n<=0)return!1;try{return process.kill(n,0),!0}catch(r){return r.code==="EPERM"}}function gt(e,t){let n=fr(e);try{return t()}finally{try{a.readFileSync(e,"utf8")===n&&a.rmSync(e,{force:!0})}catch{}}}function fr(e){let t=Date.now(),n=t+K,r=null;for(;;)try{let i=a.openSync(e,"wx",384),c=`${process.pid}:${J.randomBytes(16).toString("hex")}`;return a.writeFileSync(i,c,"utf8"),a.fsyncSync(i),a.closeSync(i),c}catch(i){if(i.code!=="EEXIST")throw i;let c=null;try{c=a.readFileSync(e,"utf8")}catch{}c!==null&&c!==r&&(r=c,n=Date.now()+K);try{let d=a.statSync(e),s=Date.now()-d.mtimeMs;s>Pe&&!ht(c,s)&&a.rmSync(e,{force:!0})}catch{}let o=Date.now();if(o>=n)throw new Error(`Timed out waiting for store lock: ${e} (no progress for ${K}ms)`);if(o-t>=ft)throw new Error(`Timed out waiting for store lock: ${e} (blocked synchronously for ${ft}ms)`);Atomics.wait(or,0,0,cr)}}function yr(e,t,n){return a.mkdirSync(k.dirname(e),{recursive:!0,mode:448}),gt(`${e}.lock`,()=>{let r=t(),i;try{i=a.readFileSync(e,"utf8")}catch(o){if(o.code!=="ENOENT")throw o}if(i!==void 0)try{r=JSON.parse(i)}catch{let o=`${e}.corrupt-${Date.now()}-${J.randomBytes(4).toString("hex")}`;a.renameSync(e,o)}let c=n(r);return pt(e,c),c})}});var vt=w(oe=>{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});oe._onRawAccountsChanged=pr;oe._emitAccountsChanged=mr;var xe=new Set;function pr(e){return xe.add(e),()=>xe.delete(e)}function mr(e){for(let t of xe)try{t(e)}catch{}}});var Me=w(D=>{"use strict";Object.defineProperty(D,"__esModule",{value:!0});D.MODEL_PROVIDER_IDS=D.RUNTIME_QUOTA_PROVIDER_IDS=D.QUOTA_PROVIDER_IDS=D.ACCOUNT_PROVIDER_IDS=D.SESSION_PROVIDER_IDS=void 0;D.SESSION_PROVIDER_IDS=["claude-code","opencode","codex"];D.ACCOUNT_PROVIDER_IDS=["claude-code","codex"];D.QUOTA_PROVIDER_IDS=["claude-code","codex","zai"];D.RUNTIME_QUOTA_PROVIDER_IDS=["claude","codex","zai"];D.MODEL_PROVIDER_IDS=["anthropic","openai","google","unknown"]});var ue=w(v=>{"use strict";var hr=v&&v.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),gr=v&&v.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),At=v&&v.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&hr(n,t,r[i]);return gr(n,t),n}})();Object.defineProperty(v,"__esModule",{value:!0});v.ACCOUNT_PROVIDER_IDS=void 0;v.getAccountsDir=Ee;v.readSavedAccountRegistry=ee;v.writeSavedAccountRegistry=wr;v.listSavedAccountProfiles=Cr;v.getActiveSavedAccount=Or;v.upsertSavedAccountProfile=jr;v.setActiveSavedAccount=Ir;v.replaceSavedAccountProfiles=br;v.removeSavedAccountProfile=Pr;var St=At(f("fs")),_t=At(f("path")),vr=be(),ae=Z(),Ar=vt(),Sr=Me();Object.defineProperty(v,"ACCOUNT_PROVIDER_IDS",{enumerable:!0,get:function(){return Sr.ACCOUNT_PROVIDER_IDS}});function Ee(){return _t.join((0,vr.getConfigDir)(),"accounts")}function Re(){return _t.join(Ee(),"accounts.json")}function Ne(){return Re()+".lock"}function Fe(){St.mkdirSync(Ee(),{recursive:!0,mode:448})}function Te(e){(0,ae.atomicWriteJsonSync)(Re(),Ct(e)),(0,Ar._emitAccountsChanged)("local")}function Le(e){return Fe(),(0,ae.withFileLockSync)(Ne(),()=>{let t=e(ee()??wt());return Te(t),t})}function wt(){return{version:2,activeByProvider:{"claude-code":null,codex:null},accounts:[]}}function Ct(e){let t=wt();return t.activeByProvider["claude-code"]=e.activeByProvider?.["claude-code"]??null,t.activeByProvider.codex=e.activeByProvider?.codex??null,t.accounts=Array.isArray(e.accounts)?e.accounts.filter(n=>!!n&&(n.providerId==="claude-code"||n.providerId==="codex")&&typeof n.id=="string"&&typeof n.addedAt=="string").map(n=>({...n,label:n.label||void 0,email:n.email||void 0,providerAccountId:n.providerAccountId||void 0,metadata:n.metadata?{email:n.metadata.email||void 0,workspaceId:n.metadata.workspaceId||void 0,planType:n.metadata.planType||void 0,authMode:n.metadata.authMode||void 0}:void 0})):[],t}function _r(e){return{version:2,activeByProvider:{"claude-code":e.activeAccountUuid,codex:null},accounts:e.accounts.map(t=>({id:t.uuid,providerId:"claude-code",providerAccountId:t.uuid,email:t.email,label:t.label,addedAt:t.addedAt,metadata:{email:t.email}}))}}function ee(){try{let e=St.readFileSync(Re(),"utf8"),t=JSON.parse(e);return t?.version===2?Ct(t):t?.version===1&&Array.isArray(t.accounts)?_r(t):null}catch{return null}}function wr(e){Fe(),(0,ae.withFileLockSync)(Ne(),()=>Te(e))}function Cr(e){let t=ee();return t?e?t.accounts.filter(n=>n.providerId===e):t.accounts:[]}function Or(e){let t=ee();if(!t)return null;let n=t.activeByProvider[e];return n?t.accounts.find(r=>r.providerId===e&&r.id===n)??null:null}function jr(e){return Le(t=>{let n=t.accounts.findIndex(r=>r.providerId===e.providerId&&r.id===e.id);return n>=0?t.accounts[n]=e:t.accounts.push(e),t})}function Ir(e,t){return Le(n=>(n.activeByProvider[e]=t,n))}function br(e,t,n){return Le(r=>(r.accounts=r.accounts.filter(i=>i.providerId!==e).concat(t),r.activeByProvider[e]=n,r))}function Pr(e,t){return Fe(),(0,ae.withFileLockSync)(Ne(),()=>{let n=ee();if(!n)return null;let r=n.accounts.findIndex(c=>c.providerId===e&&c.id===t);if(r===-1)return null;let[i]=n.accounts.splice(r,1);return n.activeByProvider[e]===t&&(n.activeByProvider[e]=n.accounts.find(c=>c.providerId===e)?.id??null),Te(n),i})}});var He=w(C=>{"use strict";var Dr=C&&C.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),xr=C&&C.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),jt=C&&C.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Dr(n,t,r[i]);return xr(n,t),n}})();Object.defineProperty(C,"__esModule",{value:!0});C.getClaudeProfilesDir=It;C.getClaudeProfileHome=bt;C.ensureClaudeProfileDirs=Nr;C.claudeKeychainSuffix=Pt;C.claudeKeychainService=Dt;C.readClaudeProfileIdentity=xt;C.keychainServiceExists=Mt;C.isClaudeProfileAuthenticated=Fr;var Mr=f("child_process"),Er=f("crypto"),$e=jt(f("fs")),se=jt(f("path")),Rr=ue(),Ot="Claude Code-credentials";function It(){return se.join((0,Rr.getAccountsDir)(),"claude","profiles")}function bt(e){return se.join(It(),e,"home")}function Nr(e){$e.mkdirSync(bt(e),{recursive:!0,mode:448})}function Pt(e){return(0,Er.createHash)("sha256").update(e).digest("hex").slice(0,8)}function Dt(e){return e?`${Ot}-${Pt(e)}`:Ot}function xt(e){try{let t=JSON.parse($e.readFileSync(se.join(e,".claude.json"),"utf8")),n=t?.oauthAccount?.emailAddress,r=t?.oauthAccount?.accountUuid;return typeof n=="string"&&typeof r=="string"?{email:n,uuid:r}:null}catch{return null}}function Mt(e){try{return(0,Mr.execFileSync)("security",["find-generic-password","-s",e],{stdio:["ignore","ignore","ignore"],timeout:4e3,killSignal:"SIGKILL"}),!0}catch{return!1}}function Fr(e){return(process.platform==="darwin"?Mt(Dt(e)):$e.existsSync(se.join(e,".credentials.json")))&&xt(e)!==null}});var Tt=w(x=>{"use strict";var Tr=x&&x.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Lr=x&&x.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Be=x&&x.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Tr(n,t,r[i]);return Lr(n,t),n}})();Object.defineProperty(x,"__esModule",{value:!0});x.KEYCHAIN_SERVICE=void 0;x.readActiveCredentials=Hr;x.writeActiveCredentials=qr;var We=Be(f("fs")),Et=Be(f("path")),$r=Be(f("os")),Rt=f("child_process"),Nt=He();x.KEYCHAIN_SERVICE="Claude Code-credentials";function qe(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Ft(e){return Et.join(e??Et.join($r.homedir(),".claude"),".credentials.json")}function Hr(e){if(process.platform==="darwin")try{let t=(0,Rt.execFileSync)("security",["find-generic-password","-s",(0,Nt.claudeKeychainService)(e),"-w"],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:4e3,killSignal:"SIGKILL"});return JSON.parse(t.trim())}catch{return null}try{return JSON.parse(We.readFileSync(Ft(e),"utf8"))}catch{return null}}function qr(e,t){let n=JSON.stringify(e);if(JSON.parse(n),process.platform==="darwin"){let c=(0,Nt.claudeKeychainService)(t),o=process.env.USER||"user",d=["add-generic-password","-U","-s",qe(c),"-a",qe(o),"-w",qe(n)].join(" ");(0,Rt.execFileSync)("security",["-i"],{input:d+`
5
+ `,stdio:["pipe","pipe","pipe"],timeout:4e3,killSignal:"SIGKILL"});return}let r=Ft(t),i=r+".tmp";We.writeFileSync(i,n,{encoding:"utf8",mode:384}),We.renameSync(i,r)}});var Vt=w(h=>{"use strict";var Wr=h&&h.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Br=h&&h.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ze=h&&h.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&Wr(n,t,r[i]);return Br(n,t),n}})();Object.defineProperty(h,"__esModule",{value:!0});h.readAccountRegistry=fe;h.writeAccountRegistry=le;h.readActiveClaudeAccount=ye;h.addCurrentAccount=Qr;h.switchToAccount=Gr;h.resolveActiveClaudeHome=Xr;h.applyActiveClaudeToLiveHome=Zr;h.reconcileClaudeAuthState=ei;h.removeAccount=ti;h.listAccounts=ni;h.getActiveAccount=Jt;h.resolveActiveClaudeAccount=ri;h.isMultiAccountEnabled=ii;var O=ze(f("fs")),m=ze(f("path")),Lt=ze(f("os")),E=Tt(),T=Z(),A=ue(),G=He();function $t(){return m.join(Lt.homedir(),".claude")}function L(){let e=m.join($t(),".claude.json");try{if(JSON.parse(O.readFileSync(e,"utf8"))?.oauthAccount)return e}catch{}return m.join(Lt.homedir(),".claude.json")}function V(){return m.join((0,A.getAccountsDir)(),"credentials")}function Q(){return m.join((0,A.getAccountsDir)(),"configs")}function zr(){return m.join((0,A.getAccountsDir)(),"claude",".profiles-migrated-v1")}function Ur(){for(let e of[(0,A.getAccountsDir)(),V(),Q()])O.mkdirSync(e,{recursive:!0,mode:448})}function Ue(e){try{return JSON.parse(O.readFileSync(e,"utf8"))}catch{return null}}function Ht(e){return Ue(e)?.oauthAccount??null}function qt(e,t){(0,T.atomicWriteJsonSync)(m.join((0,G.getClaudeProfileHome)(e),".claude.json"),{oauthAccount:t})}function Wt(e,t){(0,E.writeActiveCredentials)(t,(0,G.getClaudeProfileHome)(e))}function de(e,t,n){qt(e,n),Wt(e,t)}function Bt(e){return Ue(m.join(V(),`${e}.credentials.json`))}function zt(e){return Ue(m.join(Q(),`${e}.config.json`))}function Ut(e){return Ht(m.join((0,G.getClaudeProfileHome)(e),".claude.json"))}function Kr(e){let t=(0,E.readActiveCredentials)((0,G.getClaudeProfileHome)(e)),n=Ut(e);if(t&&n)return{credentials:t,oauthAccount:n};let r=Bt(e),i=zt(e);if(r&&i){try{de(e,r,i)}catch{}return{credentials:r,oauthAccount:i}}return null}function kr(){return Ht(L())}function Jr(){let e=ye();if(!e)return;let t=(0,E.readActiveCredentials)(),n=kr();if(t)try{(0,T.atomicWriteJsonSync)(m.join(V(),`${e.uuid}.credentials.json`),t),Wt(e.uuid,t)}catch{}if(n)try{(0,T.atomicWriteJsonSync)(m.join(Q(),`${e.uuid}.config.json`),n),qt(e.uuid,n)}catch{}}function Vr(e){let t={};try{t=JSON.parse(O.readFileSync(L(),"utf8"))}catch{}t.oauthAccount=e,(0,T.atomicWriteJsonSync)(L(),t)}function fe(){let e=(0,A.readSavedAccountRegistry)();if(!e)return null;let t=e.accounts.filter(n=>n.providerId==="claude-code").map(n=>({uuid:n.providerAccountId??n.id,email:n.email??n.metadata?.email??"unknown",label:n.label,addedAt:n.addedAt}));return{version:1,activeAccountUuid:e.activeByProvider["claude-code"],accounts:t}}function le(e){let t=e.accounts.map(n=>({id:n.uuid,providerId:"claude-code",providerAccountId:n.uuid,email:n.email,label:n.label,addedAt:n.addedAt,metadata:{email:n.email}}));(0,A.replaceSavedAccountProfiles)("claude-code",t,e.activeAccountUuid)}function ye(){try{let e=O.readFileSync(L(),"utf8"),t=JSON.parse(e),n=t?.oauthAccount?.emailAddress,r=t?.oauthAccount?.accountUuid;return!n||!r?null:{email:n,uuid:r}}catch{return null}}function Qr(e){let t=ye();if(!t)return{success:!1,error:"No active Claude account found. Sign in with `claude` first."};let n=(0,E.readActiveCredentials)();if(!n)return{success:!1,error:"Could not read Claude credentials."};let r;try{r=JSON.parse(O.readFileSync(L(),"utf8")).oauthAccount}catch{return{success:!1,error:"Could not read Claude config file."}}Ur();let i=fe()??{version:1,activeAccountUuid:null,accounts:[]},c=i.accounts.find(o=>o.uuid===t.uuid);if(c){e!==void 0&&(c.label=e),(0,T.atomicWriteJsonSync)(m.join(V(),`${t.uuid}.credentials.json`),n),(0,T.atomicWriteJsonSync)(m.join(Q(),`${t.uuid}.config.json`),r);try{de(t.uuid,n,r)}catch{}return i.activeAccountUuid=t.uuid,le(i),{success:!0}}(0,T.atomicWriteJsonSync)(m.join(V(),`${t.uuid}.credentials.json`),n),(0,T.atomicWriteJsonSync)(m.join(Q(),`${t.uuid}.config.json`),r);try{de(t.uuid,n,r)}catch{}return i.accounts.push({uuid:t.uuid,email:t.email,label:e,addedAt:new Date().toISOString()}),i.activeAccountUuid=t.uuid,le(i),{success:!0}}function Kt(e){let t=m.join((0,A.getAccountsDir)(),"claude");return O.mkdirSync(t,{recursive:!0,mode:448}),(0,T.withFileLockSync)(m.join(t,"auth-swap.lock"),e)}function Gr(e){try{return Kt(()=>Yr(e))}catch(t){return{success:!1,error:`Could not acquire the account-switch lock: ${t}`}}}function Yr(e){let t=fe();if(!t)return{success:!1,error:"No account registry found. Save an account first."};if(!t.accounts.find(o=>o.uuid===e))return{success:!1,error:`Account ${e} not found in registry.`};let r=null,i=null;r=(0,E.readActiveCredentials)();try{i=O.readFileSync(L(),"utf8")}catch{}try{Jr()}catch{}try{(0,A.setActiveSavedAccount)("claude-code",e)}catch(o){return{success:!1,error:`Failed to update account registry: ${o}`}}let c=kt();if(!c.success){try{(0,A.setActiveSavedAccount)("claude-code",t.activeAccountUuid)}catch{}if(r)try{(0,E.writeActiveCredentials)(r)}catch{}if(i)try{O.writeFileSync(L(),i)}catch{}return c}return c}function Xr(){let e=(0,A.getActiveSavedAccount)("claude-code");return e?(0,G.getClaudeProfileHome)(e.providerAccountId??e.id):$t()}function Zr(){try{return Kt(kt)}catch(e){return{success:!1,error:`Could not acquire the account-switch lock: ${e}`}}}function kt(){let e=(0,A.getActiveSavedAccount)("claude-code");if(!e)return{success:!1,error:"No active Claude account found."};let t=e.providerAccountId??e.id,n=Kr(t);if(!n)return{success:!1,error:`Stored credentials for ${e.email??t} not found.`};let r=(0,E.readActiveCredentials)(),i=null;try{i=O.readFileSync(L(),"utf8")}catch{}try{(0,E.writeActiveCredentials)(n.credentials)}catch(c){if(r)try{(0,E.writeActiveCredentials)(r)}catch{}return{success:!1,error:`Failed to write credentials: ${c}`}}try{Vr(n.oauthAccount)}catch(c){if(r)try{(0,E.writeActiveCredentials)(r)}catch{}if(i)try{O.writeFileSync(L(),i)}catch{}return{success:!1,error:`Failed to write config: ${c}`}}return{success:!0}}function ei(){try{let e=zr();if(O.existsSync(e))return;let t=(0,A.readSavedAccountRegistry)();if(t)for(let n of t.accounts.filter(r=>r.providerId==="claude-code"))try{let r=n.providerAccountId??n.id;if((0,E.readActiveCredentials)((0,G.getClaudeProfileHome)(r))&&Ut(r))continue;let i=Bt(r),c=zt(r);if(!i||!c)continue;de(r,i,c)}catch{}O.mkdirSync(m.dirname(e),{recursive:!0,mode:448}),O.writeFileSync(e,new Date().toISOString()+`
6
+ `,{encoding:"utf8",mode:384})}catch{}}function ti(e){let t=fe();if(!t)return{success:!1,error:"No account registry found."};let n=t.accounts.findIndex(r=>r.uuid===e);if(n===-1)return{success:!1,error:`Account ${e} not found.`};try{O.unlinkSync(m.join(V(),`${e}.credentials.json`))}catch{}try{O.unlinkSync(m.join(Q(),`${e}.config.json`))}catch{}return t.accounts.splice(n,1),t.activeAccountUuid===e&&(t.activeAccountUuid=t.accounts[0]?.uuid??null),le(t),{success:!0}}function ni(){return(0,A.listSavedAccountProfiles)("claude-code").map(e=>({uuid:e.providerAccountId??e.id,email:e.email??e.metadata?.email??"unknown",label:e.label,addedAt:e.addedAt}))}function Jt(){let e=(0,A.getActiveSavedAccount)("claude-code");return e?{uuid:e.providerAccountId??e.id,email:e.email??e.metadata?.email??"unknown",label:e.label,addedAt:e.addedAt}:null}function ri(){let e=ye();if(e){let n=(0,A.listSavedAccountProfiles)("claude-code"),r=n.find(i=>(i.providerAccountId??i.id)===e.uuid)??n.find(i=>(i.email??i.metadata?.email)===e.email);if(r){let i=(0,A.getActiveSavedAccount)("claude-code");if(!i||i.id!==r.id)try{(0,A.setActiveSavedAccount)("claude-code",r.id)}catch{}}return{email:e.email,label:r?.label,providerAccountId:e.uuid,registryAccountId:r?.id,source:"live"}}let t=Jt();return t?{email:t.email,label:t.label,providerAccountId:t.uuid,registryAccountId:t.uuid,source:"registry"}:{source:"none"}}function ii(){return(0,A.listSavedAccountProfiles)("claude-code").length>=1}});var vn=w(l=>{"use strict";var ci=l&&l.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),oi=l&&l.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Je=l&&l.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&ci(n,t,r[i]);return oi(n,t),n}})();Object.defineProperty(l,"__esModule",{value:!0});l.getSystemCodexHome=N;l.getCodexMonitoringHomes=li;l.getCodexProfilesDir=Xt;l.getCodexProfileHome=R;l.readCodexAccountMetadata=rn;l.readCodexAccountMetadataAsync=cn;l.isCodexProfileAuthenticated=on;l.isCodexProfileAuthenticatedAsync=an;l.listCodexAccounts=Y;l.getActiveCodexAccount=Ae;l.resolveSidekickCodexHome=Ye;l.resolveActiveCodexAccount=_i;l.getCodexExecutionEnv=wi;l.prepareCodexAccount=Ci;l.prepareCodexAccountAsync=Oi;l.finalizeCodexAccount=dn;l.finalizeCodexAccountAsync=ln;l.switchToCodexAccount=Pi;l.switchToCodexAccountAsync=Di;l.reconcileCodexAuthState=xi;l.reconcileCodexAuthStateAsync=Mi;l.removeCodexAccount=Ei;var g=Je(f("fs")),ai=Je(f("os")),u=Je(f("path")),pe=f("child_process"),ui=f("crypto"),_=ue(),S=Z(),si=11520*60*1e3;function Gt(){return u.join(ai.homedir(),".codex")}function Yt(){let e=process.env.CODEX_HOME?.trim();return e||null}function di(e){let t=new Set,n=[];for(let r of e){let i=u.resolve(r);t.has(i)||(t.add(i),n.push(r))}return n}function N(){return Yt()??Gt()}function li(){let e=Yt();if(e)return[e];let t=[Gt()];for(let n of Y()){let r=R(n.id);g.existsSync(u.join(r,"sessions"))&&t.push(r)}return di(t)}function Xt(){return u.join((0,_.getAccountsDir)(),"codex","profiles")}function Ve(e){return u.join(Xt(),e)}function R(e){return u.join(Ve(e),"codex-home")}function Zt(e){return u.join(Ve(e),"profile.json")}function en(e){g.mkdirSync(R(e),{recursive:!0,mode:448})}function H(e){try{return g.readFileSync(e,"utf8")}catch{return null}}function Qe(e){try{return JSON.parse(g.readFileSync(Zt(e),"utf8"))}catch{return null}}function fi(e,t){en(e),(0,S.atomicWriteJsonSync)(Zt(e),t)}function Ke(e,t){return g.existsSync(e)?(g.mkdirSync(u.dirname(t),{recursive:!0,mode:448}),g.copyFileSync(e,t),!0):!1}function yi(e,t){Ke(u.join(e,"config.toml"),u.join(t,"config.toml"))}function pi(e,t){let n=Ke(u.join(e,"auth.json"),u.join(t,"auth.json")),r=Ke(u.join(e,".credentials.json"),u.join(t,".credentials.json"));return n||r}function mi(e){let t=e.split(".");if(t.length<2)return null;try{let n=Buffer.from(t[1],"base64url").toString("utf8");return JSON.parse(n)}catch{return null}}function Ge(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function B(e){let t=Ge(e);if(!t)return null;let n=t.tokens?.id_token,r=n?mi(n):null,i=r?.["https://api.openai.com/profile"],c=r?.["https://api.openai.com/auth"],o=typeof r?.email=="string"?r.email:typeof i?.email=="string"?i.email:void 0,d=typeof c?.chatgpt_account_id=="string"?c.chatgpt_account_id:t.tokens?.account_id,s=typeof c?.chatgpt_plan_type=="string"?c.chatgpt_plan_type:void 0,y=t.OPENAI_API_KEY||t.auth_mode==="api_key"?"api-key":"chatgpt";return{email:o,workspaceId:d,planType:s,authMode:y}}function ke(e,t){let n=Ge(e);if(n?.last_refresh){let r=Date.parse(n.last_refresh);if(!Number.isNaN(r))return r}if(t)try{return g.statSync(t).mtimeMs}catch{}return null}function hi(e){let t=B(H(u.join(e,"auth.json")));return t?{email:t.email,workspaceId:t.workspaceId,planType:t.planType,authMode:t.authMode}:{}}function gi(e){let t=u.join(e,".credentials.json");if(!g.existsSync(t))return{};try{let n=JSON.parse(g.readFileSync(t,"utf8"));if(typeof n.OPENAI_API_KEY=="string"||typeof n.CODEX_API_KEY=="string")return{authMode:"api-key"}}catch{}return{}}var me=4e3;function tn(e,t){let n=t.trim();return e===0&&/^Logged in/i.test(n)?/API key/i.test(n)?{loggedIn:!0,authMode:"api-key"}:/ChatGPT/i.test(n)?{loggedIn:!0,authMode:"chatgpt"}:{loggedIn:!0}:{loggedIn:!1}}function he(e){try{let t={...process.env,CODEX_HOME:e},n=(0,pe.spawnSync)("codex",["login","status"],{encoding:"utf8",env:t,timeout:me,killSignal:"SIGKILL"});return tn(n.status,String(n.stdout??""))}catch{}return{loggedIn:!1}}function ge(e){return new Promise(t=>{try{let n={...process.env,CODEX_HOME:e};(0,pe.execFile)("codex",["login","status"],{encoding:"utf8",env:n,timeout:me,killSignal:"SIGKILL"},(r,i)=>{t(r?{loggedIn:!1}:tn(0,String(i??"")))})}catch{t({loggedIn:!1})}})}function vi(){if(process.platform==="win32")return!1;try{return(0,pe.spawnSync)("pgrep",["-x","codex"],{encoding:"utf8",timeout:me,killSignal:"SIGKILL"}).status===0}catch{return!1}}function Ai(){return process.platform==="win32"?Promise.resolve(!1):new Promise(e=>{try{(0,pe.execFile)("pgrep",["-x","codex"],{encoding:"utf8",timeout:me,killSignal:"SIGKILL"},t=>e(!t))}catch{e(!1)}})}function ve(e){let t=hi(e);if(t.email||t.workspaceId||t.planType||t.authMode)return t;let n=gi(e);return n.authMode?n:null}function nn(e){return e.loggedIn?{authMode:e.authMode??"unknown"}:{}}function rn(e){return ve(e)??nn(he(e))}async function cn(e){return ve(e)??nn(await ge(e))}function te(e){return g.existsSync(u.join(e,"auth.json"))||g.existsSync(u.join(e,".credentials.json"))}function on(e){return te(e)||he(e).loggedIn}async function an(e){return te(e)||(await ge(e)).loggedIn}function Si(e,t){let n=e.trim().toLowerCase();return Y().find(i=>i.id!==t&&(i.label??"").trim().toLowerCase()===n)?`A Codex account named "${e}" already exists.`:null}function Y(){return(0,_.listSavedAccountProfiles)("codex")}function Ae(){return(0,_.getActiveSavedAccount)("codex")}function Ye(){return N()}function _i(){let e=B(H(u.join(Ye(),"auth.json")));if(e&&(e.email||e.workspaceId)){let n=Xe(e);if(n){let r=(0,_.getActiveSavedAccount)("codex");if(!r||r.id!==n.id)try{(0,_.setActiveSavedAccount)("codex",n.id)}catch{}}return{email:e.email??n?.email??n?.metadata?.email,label:n?.label,providerAccountId:n?.providerAccountId??e.workspaceId,registryAccountId:n?.id,source:"live"}}let t=Ae();return t?{email:t.email??t.metadata?.email,label:t.label,providerAccountId:t.providerAccountId,registryAccountId:t.id,source:"registry"}:{source:"none"}}function wi(e=process.env){return{...e,CODEX_HOME:Ye()}}function un(e){let t=e.trim();if(!t)return{result:{success:!1,error:"Codex accounts require a non-empty label."}};let n=Si(t);if(n)return{result:{success:!1,error:n}};let r=(0,ui.randomUUID)(),i=R(r);en(r),fi(r,{label:t,addedAt:new Date().toISOString()});let c=N();return yi(c,i),pi(c,i)?{finalize:{profileId:r,codexHome:i}}:{result:{success:!0,profileId:r,codexHome:i,needsLogin:!0}}}function Ci(e){let t=un(e);return"finalize"in t?{...dn(t.finalize.profileId),...t.finalize,needsLogin:!1}:t.result}async function Oi(e){let t=un(e);return"finalize"in t?{...await ln(t.finalize.profileId),...t.finalize,needsLogin:!1}:t.result}function sn(e,t,n){let r=Qe(e);if(!r)return{result:{success:!1,error:`Codex profile ${e} was not prepared.`}};let i=R(e);if(!n.authenticated)return{result:{success:!1,error:"Codex profile is not authenticated yet."}};let c={id:e,providerId:"codex",label:r.label,email:n.metadata.email,addedAt:r.addedAt,metadata:n.metadata};return(0,_.upsertSavedAccountProfile)(c),t.activate===!1?{result:{success:!0}}:te(i)?{swap:c}:((0,_.setActiveSavedAccount)("codex",e),{result:{success:!0,warning:"Codex stores credentials in the OS keyring; sidekick cannot swap them per account, so `codex` keeps using the keyring credentials."}})}function dn(e,t={}){if(!Qe(e))return{success:!1,error:`Codex profile ${e} was not prepared.`};let n=R(e),r=on(n),i=sn(e,t,{authenticated:r,metadata:r?rn(n):{}});return"swap"in i?yn(i.swap):i.result}async function ln(e,t={}){if(!Qe(e))return{success:!1,error:`Codex profile ${e} was not prepared.`};let n=R(e),r=await an(n),i=sn(e,t,{authenticated:r,metadata:r?await cn(n):{}});return"swap"in i?pn(i.swap):i.result}function Qt(){return u.join((0,_.getAccountsDir)(),"codex","stash")}function fn(e,t){try{let n=new Date().toISOString().replace(/[:.]/g,"-"),r=null;if(e&&(r=u.join(Qt(),`auth-${n}.json`),(0,S.atomicWriteFileSync)(r,e)),t){let i=u.join(Qt(),`credentials-${n}.json`);(0,S.atomicWriteFileSync)(i,t),r=r??i}return r}catch{return null}}function Xe(e){let t=Y();if(e?.workspaceId){let n=t.find(r=>r.metadata?.workspaceId===e.workspaceId);if(n)return n}if(e?.email){let n=t.find(r=>(r.email??r.metadata?.email)===e.email);if(n)return n}return!e?.workspaceId&&!e?.email?Ae():null}function ji(e,t){if(!e&&!t)return{};try{let n=B(e),r=Xe(n);if(!r){let c=fn(e,t);return{stashPath:c??void 0,warning:c?`Live Codex credentials did not match any saved account; stashed at ${c}.`:"Live Codex credentials did not match any saved account and could not be stashed."}}let i=R(r.id);e&&(0,S.atomicWriteFileSync)(u.join(i,"auth.json"),e),t&&(0,S.atomicWriteFileSync)(u.join(i,".credentials.json"),t);try{let c=ve(i)??{};(0,_.upsertSavedAccountProfile)({...r,email:c.email??r.email,metadata:{...r.metadata,...c}})}catch{}return{syncedProfileId:r.id}}catch(n){return{warning:`Could not back up live Codex credentials: ${n}`}}}function Se(e){let t=u.join((0,_.getAccountsDir)(),"codex");return g.mkdirSync(t,{recursive:!0,mode:448}),(0,S.withFileLockSync)(u.join(t,"auth-swap.lock"),e)}function Ii(){let e=N();return{codexRunning:vi(),systemKeyringLoggedIn:te(e)?!1:he(e).loggedIn}}async function bi(){let e=N();return{codexRunning:await Ai(),systemKeyringLoggedIn:te(e)?!1:(await ge(e)).loggedIn}}function yn(e){let t=Ii();try{return Se(()=>mn(e,t))}catch(n){return{success:!1,error:`Could not acquire the account-switch lock: ${n}`}}}async function pn(e){let t=await bi();try{return Se(()=>mn(e,t))}catch(n){return{success:!1,error:`Could not acquire the account-switch lock: ${n}`}}}function mn(e,t){let n=N(),r=u.join(n,"auth.json"),i=u.join(n,".credentials.json"),c=H(r),o=H(i);if(!c&&!o&&t.systemKeyringLoggedIn)return{success:!1,error:'Codex stores credentials in the OS keyring; file-based account switching is not supported. Set `cli_auth_credentials_store = "file"` in ~/.codex/config.toml and run `codex login` again.'};let d=R(e.id),s=u.join(d,"auth.json"),y=H(s),M=H(u.join(d,".credentials.json")),q=e.label??e.email??e.id;if(!y&&!M)return{success:!1,error:`No stored credentials for "${q}". Remove and re-add this account.`};if(y&&!Ge(y))return{success:!1,error:`Stored credentials for "${q}" are corrupted. Remove and re-add this account.`};let $=[];t.codexRunning&&$.push("A codex process appears to be running; restart codex sessions so they pick up the switched account.");let P=B(c),X=B(y),it=e.metadata?.workspaceId??X?.workspaceId,ct=e.email??e.metadata?.email??X?.email;if(!!(P?.workspaceId&&it&&P.workspaceId===it||P?.email&&ct&&P.email===ct||c!==null&&c===y||!c&&!y&&o!==null&&o===M)){try{c&&(0,S.atomicWriteFileSync)(s,c),o&&(0,S.atomicWriteFileSync)(u.join(d,".credentials.json"),o);let U=ve(d)??{};(0,_.upsertSavedAccountProfile)({...e,email:U.email??e.email,metadata:{...e.metadata,...U}})}catch{}return(0,_.setActiveSavedAccount)("codex",e.id),{success:!0,warning:$.length?$.join(" "):void 0}}let ot=ke(y,s);ot!==null&&Date.now()-ot>si&&$.push(`Stored credentials for "${q}" have not been refreshed in over 8 days; codex may ask you to log in again.`);let at=ji(c,o);at.warning&&$.push(at.warning);let ut=()=>{try{c?(0,S.atomicWriteFileSync)(r,c):g.rmSync(r,{force:!0}),o?(0,S.atomicWriteFileSync)(i,o):g.rmSync(i,{force:!0})}catch{}};try{y?((0,S.atomicWriteFileSync)(r,y),M?(0,S.atomicWriteFileSync)(i,M):o&&g.rmSync(i,{force:!0})):((0,S.atomicWriteFileSync)(i,M),c&&g.rmSync(r,{force:!0}))}catch(U){return ut(),{success:!1,error:`Failed to write Codex credentials: ${U}`}}try{(0,_.setActiveSavedAccount)("codex",e.id)}catch(U){return ut(),{success:!1,error:`Failed to update account registry: ${U}`}}return{success:!0,warning:$.length?$.join(" "):void 0}}function Pi(e){let t=Y().find(n=>n.id===e);return t?yn(t):{success:!1,error:`Codex account ${e} not found.`}}async function Di(e){let t=Y().find(n=>n.id===e);return t?pn(t):{success:!1,error:`Codex account ${e} not found.`}}function hn(){let e=u.join((0,_.getAccountsDir)(),"codex",".live-auth-migrated-v1");return g.existsSync(e)?!1:!g.existsSync(u.join(N(),"auth.json"))}function xi(){try{let e=hn()?he(N()).loggedIn:!1;Se(()=>gn({systemKeyringLoggedIn:e}))}catch{}}async function Mi(){try{let e=hn()?(await ge(N())).loggedIn:!1;Se(()=>gn({systemKeyringLoggedIn:e}))}catch{}}function gn(e){try{let t=u.join((0,_.getAccountsDir)(),"codex",".live-auth-migrated-v1");if(g.existsSync(t))return;let n=()=>(0,S.atomicWriteFileSync)(t,new Date().toISOString()+`
7
+ `),r=Ae();if(!r){n();return}let i=R(r.id),c=u.join(i,"auth.json"),o=H(c);if(!o){n();return}let d=N(),s=u.join(d,"auth.json"),y=H(s);if(!y){e.systemKeyringLoggedIn||(0,S.atomicWriteFileSync)(s,o),n();return}let M=B(y),q=B(o);if(!!(M?.workspaceId&&q?.workspaceId&&M.workspaceId===q.workspaceId||M?.email&&M.email===q?.email)){let P=ke(y,s),X=ke(o,c);X!==null&&(P===null||X>P)?(fn(y,null),(0,S.atomicWriteFileSync)(s,o)):(0,S.atomicWriteFileSync)(c,y)}else{let P=Xe(M);P&&P.id!==r.id&&((0,S.atomicWriteFileSync)(u.join(R(P.id),"auth.json"),y),(0,_.setActiveSavedAccount)("codex",P.id))}n()}catch{}}function Ei(e){return(0,_.removeSavedAccountProfile)("codex",e)?(g.rmSync(Ve(e),{recursive:!0,force:!0}),{success:!0}):{success:!1,error:`Codex account ${e} not found.`}}});var An=w(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.getActiveAccountStatus=Ti;var Ri=Vt(),Ni=vn();function Fi(e){return e instanceof Error?e.message:String(e)}function Ti(e){try{let t=(0,Ri.resolveActiveClaudeAccount)(),n=(0,Ni.resolveActiveCodexAccount)(),r=t.source!=="none"?{present:!0,...t.registryAccountId?{accountId:t.registryAccountId}:{},email:t.email,label:t.label??t.email}:{present:!1},i=n.source!=="none"?{present:!0,...n.registryAccountId?{accountId:n.registryAccountId}:{},email:n.email,label:n.label??n.email??n.providerAccountId}:{present:!1};return{ok:r.present||i.present,claude:r,codex:i,error:e}}catch(t){return{ok:!1,claude:{present:!1},codex:{present:!1},error:e??Fi(t)}}}});var Sn=w(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.isAggregateCodexLimit=Li;function Li(e){return!e||e==="codex"}});var Dn=w(F=>{"use strict";var $i=F&&F.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Hi=F&&F.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Cn=F&&F.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&$i(n,t,r[i]);return Hi(n,t),n}})();Object.defineProperty(F,"__esModule",{value:!0});F.writeQuotaSnapshot=Ui;F.readQuotaSnapshot=Ki;var On=Cn(f("fs")),qi=Cn(f("path")),jn=be(),In=Z(),_n=Sn();function tt(){return qi.join((0,jn.getConfigDir)(),"quota-snapshots.json")}function bn(){On.mkdirSync((0,jn.getConfigDir)(),{recursive:!0,mode:448})}function Pn(){try{let e=JSON.parse(On.readFileSync(tt(),"utf8"));if(e?.version===1&&Array.isArray(e.snapshots))return e}catch{}return{version:1,snapshots:[]}}function Wi(e){bn(),(0,In.atomicWriteJsonSync)(tt(),e)}function Bi(e){return bn(),(0,In.withFileLockSync)(`${tt()}.lock`,e)}function wn(e){let t=e.capturedAt?Date.parse(e.capturedAt):NaN;return Number.isFinite(t)?t:0}function _e(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function zi(e,t){let n=(0,_n.isAggregateCodexLimit)(e.limitId),r=(0,_n.isAggregateCodexLimit)(t.limitId);if(n!==r)return n;let i=_e(e.fiveHour.resetsAt),c=_e(t.fiveHour.resetsAt);if(i!==c)return i>c;let o=_e(e.sevenDay.resetsAt),d=_e(t.sevenDay.resetsAt);if(o!==d)return o>d;let s=e.fiveHour.utilization+e.sevenDay.utilization,y=t.fiveHour.utilization+t.sevenDay.utilization;return s!==y?s>y:wn(e)>wn(t)}function Ui(e,t,n){Bi(()=>{let r=Pn(),i=r.snapshots.findIndex(s=>s.providerId===e&&s.accountId===t),c=i>=0?r.snapshots[i].quota:void 0,o={...n,providerId:e,capturedAt:n.capturedAt??new Date().toISOString(),source:n.source??"session",stale:!1,resetCredits:n.resetCredits??(e==="codex"?c?.resetCredits:void 0)};if(i>=0&&zi(r.snapshots[i].quota,o))return;let d={providerId:e,accountId:t,quota:o};i>=0?r.snapshots[i]=d:r.snapshots.push(d),Wi(r)})}function Ki(e,t){let r=Pn().snapshots.find(i=>i.providerId===e&&i.accountId===t);return r?{...r.quota,providerId:e,source:"cache",stale:!0}:null}});var rt=w(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.BurnRateCalculator=void 0;ne.estimateTimeToQuota=xn;var nt=class{events=[];windowMs;constructor(t=5){this.windowMs=t*6e4}addEvent(t,n=new Date){this.events.push({tokens:t,timestamp:n}),this.pruneOldEvents(n)}calculateBurnRate(t=new Date){if(this.pruneOldEvents(t),this.events.length===0)return 0;let n=this.events.reduce((i,c)=>i+c.tokens,0),r=Math.max((t.getTime()-this.events[0].timestamp.getTime())/6e4,1);return n/r}estimateTimeToQuota(t,n,r=new Date){return xn(t,n,this.calculateBurnRate(r))}getEventCount(){return this.events.length}reset(){this.events=[]}pruneOldEvents(t){let n=t.getTime()-this.windowMs;this.events=this.events.filter(r=>r.timestamp.getTime()>=n)}};ne.BurnRateCalculator=nt;function xn(e,t,n){if(n<=0)return null;let r=t-e;return r<=0?0:r/n}});var Mn=w(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.SEVEN_DAY_WINDOW_MS=j.FIVE_HOUR_WINDOW_MS=j.QUOTA_PROVIDER_IDS=void 0;j.projectQuotaWindow=ie;j.withQuotaProjections=Gi;j.fetchQuota=Xi;var ki=Me();Object.defineProperty(j,"QUOTA_PROVIDER_IDS",{enumerable:!0,get:function(){return ki.QUOTA_PROVIDER_IDS}});var Ji="https://api.anthropic.com/api/oauth/usage",Vi="oauth-2025-04-20",Qi=1e4;j.FIVE_HOUR_WINDOW_MS=5*36e5;j.SEVEN_DAY_WINDOW_MS=7*864e5;function ie(e){let{utilization:t,resetsAt:n,windowMs:r,capturedAt:i}=e;if(!n||t<=0||!Number.isFinite(t)||r<=0)return;let c=new Date(n).getTime();if(!Number.isFinite(c))return;let o=i?Date.parse(i):NaN,d=Number.isFinite(o)?o:Date.now(),s=r-(c-d);if(!(s<=0))return Math.min(Math.round(t*(r/s)),200)}function Gi(e,t={}){if(!e.available)return e;let n={...e},r=t.capturedAt??e.capturedAt;if(n.projectedFiveHour==null){let i=ie({utilization:n.fiveHour.utilization,resetsAt:n.fiveHour.resetsAt,windowMs:t.fiveHourWindowMs??j.FIVE_HOUR_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedFiveHour=i)}if(n.projectedSevenDay==null){let i=ie({utilization:n.sevenDay.utilization,resetsAt:n.sevenDay.resetsAt,windowMs:t.sevenDayWindowMs??j.SEVEN_DAY_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedSevenDay=i)}return n}function re(e,t={}){return{fiveHour:{utilization:0,resetsAt:""},sevenDay:{utilization:0,resetsAt:""},available:!1,error:e,...t}}function Yi(e){if(!e)return;let t=Number(e);if(Number.isFinite(t)&&t>=0)return Math.round(t*1e3);let n=Date.parse(e);if(!Number.isNaN(n))return Math.max(n-Date.now(),0)}async function Xi(e){let t=new AbortController,n=setTimeout(()=>t.abort(),Qi);n.unref();try{let r=await fetch(Ji,{method:"GET",signal:t.signal,headers:{Authorization:`Bearer ${e}`,"anthropic-beta":Vi,"Content-Type":"application/json"}});if(!r.ok)return r.status===401?re("Sign in to Claude Code to view quota",{failureKind:"auth",httpStatus:r.status}):r.status===429?re(`API error: ${r.status}`,{failureKind:"rate_limit",httpStatus:r.status,retryAfterMs:Yi(r.headers.get("retry-after"))}):r.status>=500&&r.status<=599?re(`API error: ${r.status}`,{failureKind:"server",httpStatus:r.status}):re(`API error: ${r.status}`,{failureKind:"unknown",httpStatus:r.status});let i=await r.json(),c=i.five_hour?.utilization??0,o=i.seven_day?.utilization??0,d=i.five_hour?.resets_at??"",s=i.seven_day?.resets_at??"";return{fiveHour:{utilization:c,resetsAt:d},sevenDay:{utilization:o,resetsAt:s},available:!0,projectedFiveHour:ie({utilization:c,resetsAt:d,windowMs:j.FIVE_HOUR_WINDOW_MS}),projectedSevenDay:ie({utilization:o,resetsAt:s,windowMs:j.SEVEN_DAY_WINDOW_MS})}}catch{return re("Network error",{failureKind:"network"})}finally{clearTimeout(n)}}});var Rn=w(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.selectStatuslineAccount=En;we.formatStatusline=tc;var Zi=Mn(),ec=rt();function En(e){return e.accounts.claude.present?{providerId:"claude-code",accountId:e.accounts.claude.accountId,accountLabel:e.accounts.claude.label??e.accounts.claude.email??"claude",quota:e.claudeQuota??null}:e.accounts.codex.present?{providerId:"codex",accountId:e.accounts.codex.accountId,accountLabel:e.accounts.codex.label??e.accounts.codex.email??"codex",quota:e.codexQuota??null}:null}function tc(e){let t=En(e);if(!t)return"acct:none \xB7 quota unavailable";let n=rc(t.accountLabel),r=t.quota;if(!r?.available)return`acct:${n} \xB7 quota unavailable`;let i=e.now??new Date,c=ic(r.fiveHour.utilization),o=cc(r.fiveHour.resetsAt,i),d=nc(r,i),s=d==null?"":` \xB7 ~${oc(d)} left`;return`acct:${n} \xB7 5h ${Math.round(c)}% resets ${o}${s}`}function nc(e,t){let n=Date.parse(e.fiveHour.resetsAt);if(!Number.isFinite(n))return null;let r=t.getTime();if(n<=r)return null;let i=e.capturedAt?Date.parse(e.capturedAt):t.getTime(),c=Number.isFinite(i)?i:t.getTime();if(c>=n)return null;let o=(c-(n-Zi.FIVE_HOUR_WINDOW_MS))/6e4;if(o<=0||e.fiveHour.utilization<=0)return null;let d=e.fiveHour.utilization/o,s=(0,ec.estimateTimeToQuota)(e.fiveHour.utilization,100,d),y=(n-r)/6e4;return s!==null&&s<y?s:null}function rc(e){let t=e.trim();return(t.includes("@")?t.split("@")[0]:t).replace(/\s+/g,"-").slice(0,24)||"unknown"}function ic(e){return Number.isFinite(e)?Math.min(100,Math.max(0,e)):0}function cc(e,t){let n=new Date(e),r=Number.isNaN(n.getTime())?t:n;return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)}function oc(e){let t=Math.max(0,Math.round(e));if(t<60)return`${t}min`;let n=Math.floor(t/60),r=t%60;return r?`${n}h${r}m`:`${n}h`}});var Tn=w(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.selectStatuslineAccount=b.formatStatusline=b.estimateTimeToQuota=b.BurnRateCalculator=b.readQuotaSnapshot=b.getActiveAccountStatus=void 0;var ac=An();Object.defineProperty(b,"getActiveAccountStatus",{enumerable:!0,get:function(){return ac.getActiveAccountStatus}});var uc=Dn();Object.defineProperty(b,"readQuotaSnapshot",{enumerable:!0,get:function(){return uc.readQuotaSnapshot}});var Nn=rt();Object.defineProperty(b,"BurnRateCalculator",{enumerable:!0,get:function(){return Nn.BurnRateCalculator}});Object.defineProperty(b,"estimateTimeToQuota",{enumerable:!0,get:function(){return Nn.estimateTimeToQuota}});var Fn=Rn();Object.defineProperty(b,"formatStatusline",{enumerable:!0,get:function(){return Fn.formatStatusline}});Object.defineProperty(b,"selectStatuslineAccount",{enumerable:!0,get:function(){return Fn.selectStatuslineAccount}})});var z=kn(Tn(),1);function Ln(){let e=(0,z.getActiveAccountStatus)(),t=e.claude.accountId?(0,z.readQuotaSnapshot)("claude-code",e.claude.accountId):null,n=e.codex.accountId?(0,z.readQuotaSnapshot)("codex",e.codex.accountId):null;process.stdout.write(`${(0,z.formatStatusline)({accounts:e,claudeQuota:t,codexQuota:n})}
8
+ `)}var $n=["--project","--provider"],sc=["--json","--no-color"];function dc(e){for(let t=0;t<e.length;t++){let n=e[t];if(!sc.includes(n)){if($n.includes(n)){t++;continue}if(!$n.some(r=>n.startsWith(`${r}=`)))return n}}}function Hn(e){return dc(e)==="statusline"}Hn(process.argv.slice(2))?Ln():await import("./sidekick-main.mjs");