sidekick-agent-hub 0.23.0 → 0.24.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.
@@ -1,7 +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 Jt=Object.create;var Le=Object.defineProperty;var Kt=Object.getOwnPropertyDescriptor;var Ut=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,kt=Object.prototype.hasOwnProperty;var d=(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 Vt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ut(t))!kt.call(e,i)&&i!==n&&Le(e,i,{get:()=>t[i],enumerable:!(r=Kt(t,i))||r.enumerable});return e};var Gt=(e,t,n)=>(n=e!=null?Jt(Qt(e)):{},Vt(t||!e||!e.__esModule?Le(n,"default",{value:e,enumerable:!0}):n,e));var he=w(_=>{"use strict";var Yt=_&&_.__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]})),Xt=_&&_.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),fe=_&&_.__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"&&Yt(n,t,r[i]);return Xt(n,t),n}})();Object.defineProperty(_,"__esModule",{value:!0});_.getConfigDir=pe;_.getProjectDataPath=en;_.getGlobalDataPath=tn;_.encodeWorkspacePath=le;_.getProjectSlug=nn;_.resolveProjectIdentity=ve;_.getProjectSlugRaw=rn;var Zt=fe(d("fs")),J=fe(d("path")),Be=fe(d("os"));function pe(){return process.platform==="win32"?J.join(process.env.APPDATA||Be.homedir(),"sidekick"):J.join(Be.homedir(),".config","sidekick")}function en(e,t){return J.join(pe(),t,`${e}.json`)}function tn(e){return J.join(pe(),e)}function le(e){return e.replace(/\\/g,"/").replace(/[:/_]/g,"-")}function nn(e){return ve(e).canonicalSlug}function ve(e){let t=J.resolve(e||process.cwd()),n;try{n=Zt.realpathSync(t)}catch{n=t}let r=le(n),i=le(t);return{cwd:t,resolvedCwd:n,canonicalSlug:r,legacySlug:i,candidates:r===i?[r]:[r,i],hasLegacyMismatch:r!==i}}function rn(e){return ve(e).legacySlug}});var ee=w(g=>{"use strict";var cn=g&&g.__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]})),on=g&&g.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ze=g&&g.__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"&&cn(n,t,r[i]);return on(n,t),n}})();Object.defineProperty(g,"__esModule",{value:!0});g.getAccountsDir=ge;g.readSavedAccountRegistry=R;g.writeSavedAccountRegistry=K;g.listSavedAccountProfiles=ln;g.getActiveSavedAccount=fn;g.upsertSavedAccountProfile=pn;g.setActiveSavedAccount=vn;g.replaceSavedAccountProfiles=hn;g.removeSavedAccountProfile=gn;var X=ze(d("fs")),We=ze(d("path")),un=he();function ge(){return We.join((0,un.getConfigDir)(),"accounts")}function Je(){return We.join(ge(),"accounts.json")}function an(){X.mkdirSync(ge(),{recursive:!0,mode:448})}function sn(e,t,n=384){let r=e+".tmp",i=JSON.stringify(t,null,2);JSON.parse(i),X.writeFileSync(r,i,{encoding:"utf8",mode:n}),X.renameSync(r,e)}function Z(){return{version:2,activeByProvider:{"claude-code":null,codex:null},accounts:[]}}function Ke(e){let t=Z();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 dn(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 R(){try{let e=X.readFileSync(Je(),"utf8"),t=JSON.parse(e);return t?.version===2?Ke(t):t?.version===1&&Array.isArray(t.accounts)?dn(t):null}catch{return null}}function K(e){an(),sn(Je(),Ke(e))}function ln(e){let t=R();return t?e?t.accounts.filter(n=>n.providerId===e):t.accounts:[]}function fn(e){let t=R();if(!t)return null;let n=t.activeByProvider[e];return n?t.accounts.find(r=>r.providerId===e&&r.id===n)??null:null}function pn(e){let t=R()??Z(),n=t.accounts.findIndex(r=>r.providerId===e.providerId&&r.id===e.id);return n>=0?t.accounts[n]=e:t.accounts.push(e),K(t),t}function vn(e,t){let n=R()??Z();return n.activeByProvider[e]=t,K(n),n}function hn(e,t,n){let r=R()??Z();return r.accounts=r.accounts.filter(i=>i.providerId!==e).concat(t),r.activeByProvider[e]=n,K(r),r}function gn(e,t){let n=R();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),K(n),i}});var me=w(A=>{"use strict";var yn=A&&A.__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]})),mn=A&&A.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Qe=A&&A.__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 mn(n,t),n}})();Object.defineProperty(A,"__esModule",{value:!0});A.getClaudeProfilesDir=ke;A.getClaudeProfileHome=Ve;A.ensureClaudeProfileDirs=jn;A.claudeKeychainSuffix=Ge;A.claudeKeychainService=Ye;A.readClaudeProfileIdentity=Xe;A.keychainServiceExists=Ze;A.isClaudeProfileAuthenticated=Cn;var An=d("child_process"),Sn=d("crypto"),ye=Qe(d("fs")),te=Qe(d("path")),_n=ee(),Ue="Claude Code-credentials";function ke(){return te.join((0,_n.getAccountsDir)(),"claude","profiles")}function Ve(e){return te.join(ke(),e,"home")}function jn(e){ye.mkdirSync(Ve(e),{recursive:!0,mode:448})}function Ge(e){return(0,Sn.createHash)("sha256").update(e).digest("hex").slice(0,8)}function Ye(e){return e?`${Ue}-${Ge(e)}`:Ue}function Xe(e){try{let t=JSON.parse(ye.readFileSync(te.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 Ze(e){try{return(0,An.execFileSync)("security",["find-generic-password","-s",e],{stdio:["ignore","ignore","ignore"],timeout:4e3,killSignal:"SIGKILL"}),!0}catch{return!1}}function Cn(e){return(process.platform==="darwin"?Ze(Ye(e)):ye.existsSync(te.join(e,".credentials.json")))&&Xe(e)!==null}});var it=w(O=>{"use strict";var wn=O&&O.__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]})),bn=O&&O.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Se=O&&O.__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"&&wn(n,t,r[i]);return bn(n,t),n}})();Object.defineProperty(O,"__esModule",{value:!0});O.KEYCHAIN_SERVICE=void 0;O.readActiveCredentials=On;O.writeActiveCredentials=In;var Ae=Se(d("fs")),et=Se(d("path")),Pn=Se(d("os")),tt=d("child_process"),nt=me();O.KEYCHAIN_SERVICE="Claude Code-credentials";function rt(e){return et.join(e??et.join(Pn.homedir(),".claude"),".credentials.json")}function On(e){if(process.platform==="darwin")try{let t=(0,tt.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(Ae.readFileSync(rt(e),"utf8"))}catch{return null}}function In(e,t){let n=JSON.stringify(e);if(JSON.parse(n),process.platform==="darwin"){(0,tt.execFileSync)("security",["add-generic-password","-U","-s",(0,nt.claudeKeychainService)(t),"-a",process.env.USER||"user","-w",n],{stdio:["pipe","pipe","pipe"],timeout:4e3,killSignal:"SIGKILL"});return}let r=rt(t),i=r+".tmp";Ae.writeFileSync(i,n,{encoding:"utf8",mode:384}),Ae.renameSync(i,r)}});var ht=w(p=>{"use strict";var Dn=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]})),Mn=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"&&Dn(n,t,r[i]);return Mn(n,t),n}})();Object.defineProperty(p,"__esModule",{value:!0});p.readAccountRegistry=ie;p.writeAccountRegistry=re;p.readActiveClaudeAccount=ce;p.addCurrentAccount=Tn;p.switchToAccount=$n;p.resolveActiveClaudeHome=qn;p.applyActiveClaudeToLiveHome=pt;p.reconcileClaudeAuthState=Ln;p.removeAccount=Bn;p.listAccounts=zn;p.getActiveAccount=vt;p.resolveActiveClaudeAccount=Wn;p.isMultiAccountEnabled=Jn;var h=_e(d("fs")),v=_e(d("path")),ct=_e(d("os")),I=it(),y=ee(),z=me();function ot(){return v.join(ct.homedir(),".claude")}function M(){let e=v.join(ot(),".claude.json");try{if(JSON.parse(h.readFileSync(e,"utf8"))?.oauthAccount)return e}catch{}return v.join(ct.homedir(),".claude.json")}function L(){return v.join((0,y.getAccountsDir)(),"credentials")}function B(){return v.join((0,y.getAccountsDir)(),"configs")}function xn(){return v.join((0,y.getAccountsDir)(),"claude",".profiles-migrated-v1")}function Nn(){for(let e of[(0,y.getAccountsDir)(),L(),B()])h.mkdirSync(e,{recursive:!0,mode:448})}function E(e,t,n=384){h.mkdirSync(v.dirname(e),{recursive:!0,mode:448});let r=e+".tmp",i=JSON.stringify(t,null,2);JSON.parse(i),h.writeFileSync(r,i,{encoding:"utf8",mode:n}),h.renameSync(r,e)}function je(e){try{return JSON.parse(h.readFileSync(e,"utf8"))}catch{return null}}function ut(e){return je(e)?.oauthAccount??null}function at(e,t){E(v.join((0,z.getClaudeProfileHome)(e),".claude.json"),{oauthAccount:t})}function st(e,t){(0,I.writeActiveCredentials)(t,(0,z.getClaudeProfileHome)(e))}function ne(e,t,n){at(e,n),st(e,t)}function dt(e){return je(v.join(L(),`${e}.credentials.json`))}function lt(e){return je(v.join(B(),`${e}.config.json`))}function ft(e){return ut(v.join((0,z.getClaudeProfileHome)(e),".claude.json"))}function En(e){let t=(0,I.readActiveCredentials)((0,z.getClaudeProfileHome)(e)),n=ft(e);if(t&&n)return{credentials:t,oauthAccount:n};let r=dt(e),i=lt(e);if(r&&i){try{ne(e,r,i)}catch{}return{credentials:r,oauthAccount:i}}return null}function Fn(){return ut(M())}function Hn(){let e=ce();if(!e)return;let t=(0,I.readActiveCredentials)(),n=Fn();if(t)try{E(v.join(L(),`${e.uuid}.credentials.json`),t),st(e.uuid,t)}catch{}if(n)try{E(v.join(B(),`${e.uuid}.config.json`),n),at(e.uuid,n)}catch{}}function Rn(e){let t={};try{t=JSON.parse(h.readFileSync(M(),"utf8"))}catch{}t.oauthAccount=e,E(M(),t)}function ie(){let e=(0,y.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 re(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,y.replaceSavedAccountProfiles)("claude-code",t,e.activeAccountUuid)}function ce(){try{let e=h.readFileSync(M(),"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 Tn(e){let t=ce();if(!t)return{success:!1,error:"No active Claude account found. Sign in with `claude` first."};let n=(0,I.readActiveCredentials)();if(!n)return{success:!1,error:"Could not read Claude credentials."};let r;try{r=JSON.parse(h.readFileSync(M(),"utf8")).oauthAccount}catch{return{success:!1,error:"Could not read Claude config file."}}Nn();let i=ie()??{version:1,activeAccountUuid:null,accounts:[]},c=i.accounts.find(u=>u.uuid===t.uuid);if(c){e!==void 0&&(c.label=e),E(v.join(L(),`${t.uuid}.credentials.json`),n),E(v.join(B(),`${t.uuid}.config.json`),r);try{ne(t.uuid,n,r)}catch{}return i.activeAccountUuid=t.uuid,re(i),{success:!0}}E(v.join(L(),`${t.uuid}.credentials.json`),n),E(v.join(B(),`${t.uuid}.config.json`),r);try{ne(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,re(i),{success:!0}}function $n(e){let t=ie();if(!t)return{success:!1,error:"No account registry found. Save an account first."};if(!t.accounts.find(u=>u.uuid===e))return{success:!1,error:`Account ${e} not found in registry.`};let r=null,i=null;r=(0,I.readActiveCredentials)();try{i=h.readFileSync(M(),"utf8")}catch{}try{Hn()}catch{}try{(0,y.setActiveSavedAccount)("claude-code",e)}catch(u){return{success:!1,error:`Failed to update account registry: ${u}`}}let c=pt();if(!c.success){try{(0,y.setActiveSavedAccount)("claude-code",t.activeAccountUuid)}catch{}if(r)try{(0,I.writeActiveCredentials)(r)}catch{}if(i)try{h.writeFileSync(M(),i)}catch{}return c}return c}function qn(){let e=(0,y.getActiveSavedAccount)("claude-code");return e?(0,z.getClaudeProfileHome)(e.providerAccountId??e.id):ot()}function pt(){let e=(0,y.getActiveSavedAccount)("claude-code");if(!e)return{success:!1,error:"No active Claude account found."};let t=e.providerAccountId??e.id,n=En(t);if(!n)return{success:!1,error:`Stored credentials for ${e.email??t} not found.`};let r=(0,I.readActiveCredentials)(),i=null;try{i=h.readFileSync(M(),"utf8")}catch{}try{(0,I.writeActiveCredentials)(n.credentials)}catch(c){if(r)try{(0,I.writeActiveCredentials)(r)}catch{}return{success:!1,error:`Failed to write credentials: ${c}`}}try{Rn(n.oauthAccount)}catch(c){if(r)try{(0,I.writeActiveCredentials)(r)}catch{}if(i)try{h.writeFileSync(M(),i)}catch{}return{success:!1,error:`Failed to write config: ${c}`}}return{success:!0}}function Ln(){try{let e=xn();if(h.existsSync(e))return;let t=(0,y.readSavedAccountRegistry)();if(t)for(let n of t.accounts.filter(r=>r.providerId==="claude-code"))try{let r=n.providerAccountId??n.id;if((0,I.readActiveCredentials)((0,z.getClaudeProfileHome)(r))&&ft(r))continue;let i=dt(r),c=lt(r);if(!i||!c)continue;ne(r,i,c)}catch{}h.mkdirSync(v.dirname(e),{recursive:!0,mode:448}),h.writeFileSync(e,new Date().toISOString()+`
5
- `,{encoding:"utf8",mode:384})}catch{}}function Bn(e){let t=ie();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{h.unlinkSync(v.join(L(),`${e}.credentials.json`))}catch{}try{h.unlinkSync(v.join(B(),`${e}.config.json`))}catch{}return t.accounts.splice(n,1),t.activeAccountUuid===e&&(t.activeAccountUuid=t.accounts[0]?.uuid??null),re(t),{success:!0}}function zn(){return(0,y.listSavedAccountProfiles)("claude-code").map(e=>({uuid:e.providerAccountId??e.id,email:e.email??e.metadata?.email??"unknown",label:e.label,addedAt:e.addedAt}))}function vt(){let e=(0,y.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 Wn(){let e=ce();if(e){let n=(0,y.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,y.getActiveSavedAccount)("claude-code");if(!i||i.id!==r.id)try{(0,y.setActiveSavedAccount)("claude-code",r.id)}catch{}}return{email:e.email,label:r?.label,providerAccountId:e.uuid,registryAccountId:r?.id,source:"live"}}let t=vt();return t?{email:t.email,label:t.label,providerAccountId:t.uuid,registryAccountId:t.uuid,source:"registry"}:{source:"none"}}function Jn(){return(0,y.listSavedAccountProfiles)("claude-code").length>=1}});var Ot=w(l=>{"use strict";var Kn=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]})),Un=l&&l.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),be=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"&&Kn(n,t,r[i]);return Un(n,t),n}})();Object.defineProperty(l,"__esModule",{value:!0});l.getSystemCodexHome=U;l.getCodexMonitoringHomes=Yn;l.getCodexProfilesDir=St;l.getCodexProfileHome=x;l.readCodexAccountMetadata=ue;l.isCodexProfileAuthenticated=Ct;l.listCodexAccounts=Q;l.getActiveCodexAccount=ae;l.resolveSidekickCodexHome=Ie;l.resolveActiveCodexAccount=ar;l.getCodexExecutionEnv=sr;l.prepareCodexAccount=dr;l.finalizeCodexAccount=wt;l.switchToCodexAccount=fr;l.reconcileCodexAuthState=pr;l.removeCodexAccount=vr;var s=be(d("fs")),Qn=be(d("os")),o=be(d("path")),yt=d("child_process"),kn=d("crypto"),j=ee(),Vn=11520*60*1e3;function mt(){return o.join(Qn.homedir(),".codex")}function At(){let e=process.env.CODEX_HOME?.trim();return e||null}function Gn(e){let t=new Set,n=[];for(let r of e){let i=o.resolve(r);t.has(i)||(t.add(i),n.push(r))}return n}function U(){return At()??mt()}function Yn(){let e=At();if(e)return[e];let t=[mt()];for(let n of Q()){let r=x(n.id);s.existsSync(o.join(r,"sessions"))&&t.push(r)}return Gn(t)}function St(){return o.join((0,j.getAccountsDir)(),"codex","profiles")}function Pe(e){return o.join(St(),e)}function x(e){return o.join(Pe(e),"codex-home")}function _t(e){return o.join(Pe(e),"profile.json")}function jt(e){s.mkdirSync(x(e),{recursive:!0,mode:448})}function Xn(e,t,n=384){let r=e+".tmp",i=JSON.stringify(t,null,2);JSON.parse(i);try{s.writeFileSync(r,i,{encoding:"utf8",mode:n}),s.renameSync(r,e)}catch(c){try{s.unlinkSync(r)}catch{}throw c}}function S(e,t,n=384){s.mkdirSync(o.dirname(e),{recursive:!0,mode:448});let r=e+".tmp";try{s.writeFileSync(r,t,{encoding:"utf8",mode:n}),s.renameSync(r,e)}catch(i){try{s.unlinkSync(r)}catch{}throw i}}function F(e){try{return s.readFileSync(e,"utf8")}catch{return null}}function Zn(e){try{return JSON.parse(s.readFileSync(_t(e),"utf8"))}catch{return null}}function er(e,t){jt(e),Xn(_t(e),t)}function Ce(e,t){return s.existsSync(e)?(s.mkdirSync(o.dirname(t),{recursive:!0,mode:448}),s.copyFileSync(e,t),!0):!1}function tr(e,t){Ce(o.join(e,"config.toml"),o.join(t,"config.toml"))}function nr(e,t){let n=Ce(o.join(e,"auth.json"),o.join(t,"auth.json")),r=Ce(o.join(e,".credentials.json"),o.join(t,".credentials.json"));return n||r}function rr(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 Oe(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function T(e){let t=Oe(e);if(!t)return null;let n=t.tokens?.id_token,r=n?rr(n):null,i=r?.["https://api.openai.com/profile"],c=r?.["https://api.openai.com/auth"],u=typeof r?.email=="string"?r.email:typeof i?.email=="string"?i.email:void 0,f=typeof c?.chatgpt_account_id=="string"?c.chatgpt_account_id:t.tokens?.account_id,a=typeof c?.chatgpt_plan_type=="string"?c.chatgpt_plan_type:void 0,m=t.OPENAI_API_KEY||t.auth_mode==="api_key"?"api-key":"chatgpt";return{email:u,workspaceId:f,planType:a,authMode:m}}function we(e,t){let n=Oe(e);if(n?.last_refresh){let r=Date.parse(n.last_refresh);if(!Number.isNaN(r))return r}if(t)try{return s.statSync(t).mtimeMs}catch{}return null}function ir(e){let t=T(F(o.join(e,"auth.json")));return t?{email:t.email,workspaceId:t.workspaceId,planType:t.planType,authMode:t.authMode}:{}}function cr(e){let t=o.join(e,".credentials.json");if(!s.existsSync(t))return{};try{let n=JSON.parse(s.readFileSync(t,"utf8"));if(typeof n.OPENAI_API_KEY=="string"||typeof n.CODEX_API_KEY=="string")return{authMode:"api-key"}}catch{}return{}}function oe(e){try{let t={...process.env,CODEX_HOME:e},n=(0,yt.spawnSync)("codex",["login","status"],{encoding:"utf8",env:t,timeout:4e3,killSignal:"SIGKILL"}),r=String(n.stdout??"").trim();if(n.status===0&&/^Logged in/i.test(r))return/API key/i.test(r)?{loggedIn:!0,authMode:"api-key"}:/ChatGPT/i.test(r)?{loggedIn:!0,authMode:"chatgpt"}:{loggedIn:!0}}catch{}return{loggedIn:!1}}function or(){if(process.platform==="win32")return!1;try{return(0,yt.spawnSync)("pgrep",["-x","codex"],{encoding:"utf8",timeout:4e3,killSignal:"SIGKILL"}).status===0}catch{return!1}}function ue(e){let t=ir(e);if(t.email||t.workspaceId||t.planType||t.authMode)return t;let n=cr(e);if(n.authMode)return n;let r=oe(e);return r.loggedIn?{authMode:r.authMode??"unknown"}:{}}function Ct(e){return s.existsSync(o.join(e,"auth.json"))||s.existsSync(o.join(e,".credentials.json"))?!0:oe(e).loggedIn}function ur(e,t){let n=e.trim().toLowerCase();return Q().find(i=>i.id!==t&&(i.label??"").trim().toLowerCase()===n)?`A Codex account named "${e}" already exists.`:null}function Q(){return(0,j.listSavedAccountProfiles)("codex")}function ae(){return(0,j.getActiveSavedAccount)("codex")}function Ie(){return U()}function ar(){let e=T(F(o.join(Ie(),"auth.json")));if(e&&(e.email||e.workspaceId)){let n=De(e);if(n){let r=(0,j.getActiveSavedAccount)("codex");if(!r||r.id!==n.id)try{(0,j.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 sr(e=process.env){return{...e,CODEX_HOME:Ie()}}function dr(e){let t=e.trim();if(!t)return{success:!1,error:"Codex accounts require a non-empty label."};let n=ur(t);if(n)return{success:!1,error:n};let r=(0,kn.randomUUID)(),i=x(r);jt(r),er(r,{label:t,addedAt:new Date().toISOString()});let c=U();return tr(c,i),nr(c,i)?{...wt(r),profileId:r,codexHome:i,needsLogin:!1}:{success:!0,profileId:r,codexHome:i,needsLogin:!0}}function wt(e,t={}){let n=Zn(e);if(!n)return{success:!1,error:`Codex profile ${e} was not prepared.`};let r=x(e);if(!Ct(r))return{success:!1,error:"Codex profile is not authenticated yet."};let i=ue(r),c={id:e,providerId:"codex",label:n.label,email:i.email,addedAt:n.addedAt,metadata:i};return(0,j.upsertSavedAccountProfile)(c),t.activate===!1?{success:!0}:s.existsSync(o.join(r,"auth.json"))||s.existsSync(o.join(r,".credentials.json"))?Pt(c):((0,j.setActiveSavedAccount)("codex",e),{success:!0,warning:"Codex stores credentials in the OS keyring; sidekick cannot swap them per account, so `codex` keeps using the keyring credentials."})}function gt(){return o.join((0,j.getAccountsDir)(),"codex","stash")}function bt(e,t){try{let n=new Date().toISOString().replace(/[:.]/g,"-"),r=null;if(e&&(r=o.join(gt(),`auth-${n}.json`),S(r,e)),t){let i=o.join(gt(),`credentials-${n}.json`);S(i,t),r=r??i}return r}catch{return null}}function De(e){let t=Q();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 lr(e,t){if(!e&&!t)return{};try{let n=T(e),r=De(n);if(!r){let c=bt(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=x(r.id);e&&S(o.join(i,"auth.json"),e),t&&S(o.join(i,".credentials.json"),t);try{let c=ue(i);(0,j.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 Pt(e){let t=U(),n=o.join(t,"auth.json"),r=o.join(t,".credentials.json"),i=F(n),c=F(r);if(!i&&!c&&oe(t).loggedIn)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 u=x(e.id),f=o.join(u,"auth.json"),a=F(f),m=F(o.join(u,".credentials.json")),H=e.label??e.email??e.id;if(!a&&!m)return{success:!1,error:`No stored credentials for "${H}". Remove and re-add this account.`};if(a&&!Oe(a))return{success:!1,error:`Stored credentials for "${H}" are corrupted. Remove and re-add this account.`};let N=[];or()&&N.push("A codex process appears to be running; restart codex sessions so they pick up the switched account.");let P=T(i),W=T(a),He=e.metadata?.workspaceId??W?.workspaceId,Re=e.email??e.metadata?.email??W?.email;if(!!(P?.workspaceId&&He&&P.workspaceId===He||P?.email&&Re&&P.email===Re||i!==null&&i===a||!i&&!a&&c!==null&&c===m)){try{i&&S(f,i),c&&S(o.join(u,".credentials.json"),c);let q=ue(u);(0,j.upsertSavedAccountProfile)({...e,email:q.email??e.email,metadata:{...e.metadata,...q}})}catch{}return(0,j.setActiveSavedAccount)("codex",e.id),{success:!0,warning:N.length?N.join(" "):void 0}}let Te=we(a,f);Te!==null&&Date.now()-Te>Vn&&N.push(`Stored credentials for "${H}" have not been refreshed in over 8 days; codex may ask you to log in again.`);let $e=lr(i,c);$e.warning&&N.push($e.warning);let qe=()=>{try{i?S(n,i):s.rmSync(n,{force:!0}),c?S(r,c):s.rmSync(r,{force:!0})}catch{}};try{a?(S(n,a),m?S(r,m):c&&s.rmSync(r,{force:!0})):(S(r,m),i&&s.rmSync(n,{force:!0}))}catch(q){return qe(),{success:!1,error:`Failed to write Codex credentials: ${q}`}}try{(0,j.setActiveSavedAccount)("codex",e.id)}catch(q){return qe(),{success:!1,error:`Failed to update account registry: ${q}`}}return{success:!0,warning:N.length?N.join(" "):void 0}}function fr(e){let t=Q().find(n=>n.id===e);return t?Pt(t):{success:!1,error:`Codex account ${e} not found.`}}function pr(){try{let e=o.join((0,j.getAccountsDir)(),"codex",".live-auth-migrated-v1");if(s.existsSync(e))return;let t=()=>S(e,new Date().toISOString()+`
6
- `),n=ae();if(!n){t();return}let r=x(n.id),i=o.join(r,"auth.json"),c=F(i);if(!c){t();return}let u=U(),f=o.join(u,"auth.json"),a=F(f);if(!a){oe(u).loggedIn||S(f,c),t();return}let m=T(a),H=T(c);if(!!(m?.workspaceId&&H?.workspaceId&&m.workspaceId===H.workspaceId||m?.email&&m.email===H?.email)){let P=we(a,f),W=we(c,i);W!==null&&(P===null||W>P)?(bt(a,null),S(f,c)):S(i,a)}else{let P=De(m);P&&P.id!==n.id&&(S(o.join(x(P.id),"auth.json"),a),(0,j.setActiveSavedAccount)("codex",P.id))}t()}catch{}}function vr(e){return(0,j.removeSavedAccountProfile)("codex",e)?(s.rmSync(Pe(e),{recursive:!0,force:!0}),{success:!0}):{success:!1,error:`Codex account ${e} not found.`}}});var It=w(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.getActiveAccountStatus=mr;var hr=ht(),gr=Ot();function yr(e){return e instanceof Error?e.message:String(e)}function mr(e){try{let t=(0,hr.resolveActiveClaudeAccount)(),n=(0,gr.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??yr(t)}}}});var Dt=w(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.isAggregateCodexLimit=Ar;function Ar(e){return!e||e==="codex"}});var Ht=w(D=>{"use strict";var Sr=D&&D.__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]})),_r=D&&D.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Ne=D&&D.__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 _r(n,t),n}})();Object.defineProperty(D,"__esModule",{value:!0});D.writeQuotaSnapshot=Ir;D.readQuotaSnapshot=Dr;var jr=Ne(d("crypto")),k=Ne(d("fs")),Cr=Ne(d("path")),Nt=he(),Mt=Dt();function Et(){return Cr.join((0,Nt.getConfigDir)(),"quota-snapshots.json")}function wr(){k.mkdirSync((0,Nt.getConfigDir)(),{recursive:!0,mode:448})}function br(e,t,n=384){let r=`${e}.${process.pid}.${Date.now()}.${jr.randomBytes(8).toString("hex")}.tmp`,i=JSON.stringify(t,null,2);JSON.parse(i);try{k.writeFileSync(r,i,{encoding:"utf8",mode:n}),k.renameSync(r,e)}catch(c){try{k.rmSync(r,{force:!0})}catch{}throw c}}function Ft(){try{let e=JSON.parse(k.readFileSync(Et(),"utf8"));if(e?.version===1&&Array.isArray(e.snapshots))return e}catch{}return{version:1,snapshots:[]}}function Pr(e){wr(),br(Et(),e)}function xt(e){let t=e.capturedAt?Date.parse(e.capturedAt):NaN;return Number.isFinite(t)?t:0}function se(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Or(e,t){let n=(0,Mt.isAggregateCodexLimit)(e.limitId),r=(0,Mt.isAggregateCodexLimit)(t.limitId);if(n!==r)return n;let i=se(e.fiveHour.resetsAt),c=se(t.fiveHour.resetsAt);if(i!==c)return i>c;let u=se(e.sevenDay.resetsAt),f=se(t.sevenDay.resetsAt);if(u!==f)return u>f;let a=e.fiveHour.utilization+e.sevenDay.utilization,m=t.fiveHour.utilization+t.sevenDay.utilization;return a!==m?a>m:xt(e)>xt(t)}function Ir(e,t,n){let r=Ft(),i=r.snapshots.findIndex(a=>a.providerId===e&&a.accountId===t),c=i>=0?r.snapshots[i].quota:void 0,u={...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&&Or(r.snapshots[i].quota,u))return;let f={providerId:e,accountId:t,quota:u};i>=0?r.snapshots[i]=f:r.snapshots.push(f),Pr(r)}function Dr(e,t){let r=Ft().snapshots.find(i=>i.providerId===e&&i.accountId===t);return r?{...r.quota,providerId:e,source:"cache",stale:!0}:null}});var Fe=w(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.BurnRateCalculator=void 0;V.estimateTimeToQuota=Rt;var Ee=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 Rt(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)}};V.BurnRateCalculator=Ee;function Rt(e,t,n){if(n<=0)return null;let r=t-e;return r<=0?0:r/n}});var Tt=w(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.SEVEN_DAY_WINDOW_MS=b.FIVE_HOUR_WINDOW_MS=void 0;b.projectQuotaWindow=Y;b.withQuotaProjections=Nr;b.fetchQuota=Fr;var Mr="https://api.anthropic.com/api/oauth/usage",xr="oauth-2025-04-20";b.FIVE_HOUR_WINDOW_MS=5*36e5;b.SEVEN_DAY_WINDOW_MS=7*864e5;function Y(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 u=i?Date.parse(i):NaN,f=Number.isFinite(u)?u:Date.now(),a=r-(c-f);if(!(a<=0))return Math.min(Math.round(t*(r/a)),200)}function Nr(e,t={}){if(!e.available)return e;let n={...e},r=t.capturedAt??e.capturedAt;if(n.projectedFiveHour==null){let i=Y({utilization:n.fiveHour.utilization,resetsAt:n.fiveHour.resetsAt,windowMs:t.fiveHourWindowMs??b.FIVE_HOUR_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedFiveHour=i)}if(n.projectedSevenDay==null){let i=Y({utilization:n.sevenDay.utilization,resetsAt:n.sevenDay.resetsAt,windowMs:t.sevenDayWindowMs??b.SEVEN_DAY_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedSevenDay=i)}return n}function G(e,t={}){return{fiveHour:{utilization:0,resetsAt:""},sevenDay:{utilization:0,resetsAt:""},available:!1,error:e,...t}}function Er(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 Fr(e){try{let t=await fetch(Mr,{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-beta":xr,"Content-Type":"application/json"}});if(!t.ok)return t.status===401?G("Sign in to Claude Code to view quota",{failureKind:"auth",httpStatus:t.status}):t.status===429?G(`API error: ${t.status}`,{failureKind:"rate_limit",httpStatus:t.status,retryAfterMs:Er(t.headers.get("retry-after"))}):t.status>=500&&t.status<=599?G(`API error: ${t.status}`,{failureKind:"server",httpStatus:t.status}):G(`API error: ${t.status}`,{failureKind:"unknown",httpStatus:t.status});let n=await t.json(),r=n.five_hour?.utilization??0,i=n.seven_day?.utilization??0,c=n.five_hour?.resets_at??"",u=n.seven_day?.resets_at??"";return{fiveHour:{utilization:r,resetsAt:c},sevenDay:{utilization:i,resetsAt:u},available:!0,projectedFiveHour:Y({utilization:r,resetsAt:c,windowMs:b.FIVE_HOUR_WINDOW_MS}),projectedSevenDay:Y({utilization:i,resetsAt:u,windowMs:b.SEVEN_DAY_WINDOW_MS})}}catch{return G("Network error",{failureKind:"network"})}}});var qt=w(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.selectStatuslineAccount=$t;de.formatStatusline=Tr;var Hr=Tt(),Rr=Fe();function $t(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 Tr(e){let t=$t(e);if(!t)return"acct:none \xB7 quota unavailable";let n=qr(t.accountLabel),r=t.quota;if(!r?.available)return`acct:${n} \xB7 quota unavailable`;let i=e.now??new Date,c=Lr(r.fiveHour.utilization),u=Br(r.fiveHour.resetsAt,i),f=$r(r,i),a=f==null?"":` \xB7 ~${zr(f)} left`;return`acct:${n} \xB7 5h ${Math.round(c)}% resets ${u}${a}`}function $r(e,t){let n=Date.parse(e.fiveHour.resetsAt);if(!Number.isFinite(n))return null;let r=e.capturedAt?Date.parse(e.capturedAt):t.getTime(),c=((Number.isFinite(r)?r:t.getTime())-(n-Hr.FIVE_HOUR_WINDOW_MS))/6e4;if(c<=0||e.fiveHour.utilization<=0)return null;let u=e.fiveHour.utilization/c;return(0,Rr.estimateTimeToQuota)(e.fiveHour.utilization,100,u)}function qr(e){let t=e.trim();return(t.includes("@")?t.split("@")[0]:t).replace(/\s+/g,"-").slice(0,24)||"unknown"}function Lr(e){return Number.isFinite(e)?Math.min(100,Math.max(0,e)):0}function Br(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 zr(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 zt=w(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.selectStatuslineAccount=C.formatStatusline=C.estimateTimeToQuota=C.BurnRateCalculator=C.readQuotaSnapshot=C.getActiveAccountStatus=void 0;var Wr=It();Object.defineProperty(C,"getActiveAccountStatus",{enumerable:!0,get:function(){return Wr.getActiveAccountStatus}});var Jr=Ht();Object.defineProperty(C,"readQuotaSnapshot",{enumerable:!0,get:function(){return Jr.readQuotaSnapshot}});var Lt=Fe();Object.defineProperty(C,"BurnRateCalculator",{enumerable:!0,get:function(){return Lt.BurnRateCalculator}});Object.defineProperty(C,"estimateTimeToQuota",{enumerable:!0,get:function(){return Lt.estimateTimeToQuota}});var Bt=qt();Object.defineProperty(C,"formatStatusline",{enumerable:!0,get:function(){return Bt.formatStatusline}});Object.defineProperty(C,"selectStatuslineAccount",{enumerable:!0,get:function(){return Bt.selectStatuslineAccount}})});var $=Gt(zt(),1);function Wt(){let e=(0,$.getActiveAccountStatus)(),t=e.claude.accountId?(0,$.readQuotaSnapshot)("claude-code",e.claude.accountId):null,n=e.codex.accountId?(0,$.readQuotaSnapshot)("codex",e.codex.accountId):null;process.stdout.write(`${(0,$.formatStatusline)({accounts:e,claudeQuota:t,codexQuota:n})}
7
- `)}function Kr(e){for(let t=0;t<e.length;t++){let n=e[t];if(n!=="--json"){if(n==="--project"||n==="--provider"){t++;continue}if(!(n.startsWith("--project=")||n.startsWith("--provider=")))return n==="statusline"}}return!1}Kr(process.argv.slice(2))?Wt():await import("./sidekick-main.mjs");
4
+ var kt=Object.create;var ze=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Vt=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,Yt=Object.prototype.hasOwnProperty;var l=(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 b=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Xt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Vt(t))!Yt.call(e,i)&&i!==n&&ze(e,i,{get:()=>t[i],enumerable:!(r=Qt(t,i))||r.enumerable});return e};var Zt=(e,t,n)=>(n=e!=null?kt(Gt(e)):{},Xt(t||!e||!e.__esModule?ze(n,"default",{value:e,enumerable:!0}):n,e));var he=b(_=>{"use strict";var en=_&&_.__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]})),tn=_&&_.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),fe=_&&_.__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"&&en(n,t,r[i]);return tn(n,t),n}})();Object.defineProperty(_,"__esModule",{value:!0});_.getConfigDir=pe;_.getProjectDataPath=rn;_.getGlobalDataPath=cn;_.encodeWorkspacePath=le;_.getProjectSlug=on;_.resolveProjectIdentity=ve;_.getProjectSlugRaw=un;var nn=fe(l("fs")),U=fe(l("path")),We=fe(l("os"));function pe(){return process.platform==="win32"?U.join(process.env.APPDATA||We.homedir(),"sidekick"):U.join(We.homedir(),".config","sidekick")}function rn(e,t){return U.join(pe(),t,`${e}.json`)}function cn(e){return U.join(pe(),e)}function le(e){return e.replace(/\\/g,"/").replace(/[:/_]/g,"-")}function on(e){return ve(e).canonicalSlug}function ve(e){let t=U.resolve(e||process.cwd()),n;try{n=nn.realpathSync(t)}catch{n=t}let r=le(n),i=le(t);return{cwd:t,resolvedCwd:n,canonicalSlug:r,legacySlug:i,candidates:r===i?[r]:[r,i],hasLegacyMismatch:r!==i}}function un(e){return ve(e).legacySlug}});var ee=b(y=>{"use strict";var an=y&&y.__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]})),sn=y&&y.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Ke=y&&y.__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"&&an(n,t,r[i]);return sn(n,t),n}})();Object.defineProperty(y,"__esModule",{value:!0});y.getAccountsDir=ge;y.readSavedAccountRegistry=$;y.writeSavedAccountRegistry=J;y.listSavedAccountProfiles=vn;y.getActiveSavedAccount=hn;y.upsertSavedAccountProfile=gn;y.setActiveSavedAccount=yn;y.replaceSavedAccountProfiles=mn;y.removeSavedAccountProfile=An;var X=Ke(l("fs")),Ue=Ke(l("path")),dn=he();function ge(){return Ue.join((0,dn.getConfigDir)(),"accounts")}function Je(){return Ue.join(ge(),"accounts.json")}function ln(){X.mkdirSync(ge(),{recursive:!0,mode:448})}function fn(e,t,n=384){let r=e+".tmp",i=JSON.stringify(t,null,2);JSON.parse(i),X.writeFileSync(r,i,{encoding:"utf8",mode:n}),X.renameSync(r,e)}function Z(){return{version:2,activeByProvider:{"claude-code":null,codex:null},accounts:[]}}function ke(e){let t=Z();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 pn(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 $(){try{let e=X.readFileSync(Je(),"utf8"),t=JSON.parse(e);return t?.version===2?ke(t):t?.version===1&&Array.isArray(t.accounts)?pn(t):null}catch{return null}}function J(e){ln(),fn(Je(),ke(e))}function vn(e){let t=$();return t?e?t.accounts.filter(n=>n.providerId===e):t.accounts:[]}function hn(e){let t=$();if(!t)return null;let n=t.activeByProvider[e];return n?t.accounts.find(r=>r.providerId===e&&r.id===n)??null:null}function gn(e){let t=$()??Z(),n=t.accounts.findIndex(r=>r.providerId===e.providerId&&r.id===e.id);return n>=0?t.accounts[n]=e:t.accounts.push(e),J(t),t}function yn(e,t){let n=$()??Z();return n.activeByProvider[e]=t,J(n),n}function mn(e,t,n){let r=$()??Z();return r.accounts=r.accounts.filter(i=>i.providerId!==e).concat(t),r.activeByProvider[e]=n,J(r),r}function An(e,t){let n=$();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),J(n),i}});var me=b(A=>{"use strict";var Sn=A&&A.__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]})),_n=A&&A.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Ve=A&&A.__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"&&Sn(n,t,r[i]);return _n(n,t),n}})();Object.defineProperty(A,"__esModule",{value:!0});A.getClaudeProfilesDir=Ge;A.getClaudeProfileHome=Ye;A.ensureClaudeProfileDirs=bn;A.claudeKeychainSuffix=Xe;A.claudeKeychainService=Ze;A.readClaudeProfileIdentity=et;A.keychainServiceExists=tt;A.isClaudeProfileAuthenticated=Pn;var jn=l("child_process"),wn=l("crypto"),ye=Ve(l("fs")),te=Ve(l("path")),Cn=ee(),Qe="Claude Code-credentials";function Ge(){return te.join((0,Cn.getAccountsDir)(),"claude","profiles")}function Ye(e){return te.join(Ge(),e,"home")}function bn(e){ye.mkdirSync(Ye(e),{recursive:!0,mode:448})}function Xe(e){return(0,wn.createHash)("sha256").update(e).digest("hex").slice(0,8)}function Ze(e){return e?`${Qe}-${Xe(e)}`:Qe}function et(e){try{let t=JSON.parse(ye.readFileSync(te.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 tt(e){try{return(0,jn.execFileSync)("security",["find-generic-password","-s",e],{stdio:["ignore","ignore","ignore"],timeout:4e3,killSignal:"SIGKILL"}),!0}catch{return!1}}function Pn(e){return(process.platform==="darwin"?tt(Ze(e)):ye.existsSync(te.join(e,".credentials.json")))&&et(e)!==null}});var ot=b(I=>{"use strict";var On=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]})),In=I&&I.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),_e=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"&&On(n,t,r[i]);return In(n,t),n}})();Object.defineProperty(I,"__esModule",{value:!0});I.KEYCHAIN_SERVICE=void 0;I.readActiveCredentials=Dn;I.writeActiveCredentials=xn;var Se=_e(l("fs")),nt=_e(l("path")),Mn=_e(l("os")),rt=l("child_process"),it=me();I.KEYCHAIN_SERVICE="Claude Code-credentials";function Ae(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function ct(e){return nt.join(e??nt.join(Mn.homedir(),".claude"),".credentials.json")}function Dn(e){if(process.platform==="darwin")try{let t=(0,rt.execFileSync)("security",["find-generic-password","-s",(0,it.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(Se.readFileSync(ct(e),"utf8"))}catch{return null}}function xn(e,t){let n=JSON.stringify(e);if(JSON.parse(n),process.platform==="darwin"){let c=(0,it.claudeKeychainService)(t),u=process.env.USER||"user",s=["add-generic-password","-U","-s",Ae(c),"-a",Ae(u),"-w",Ae(n)].join(" ");(0,rt.execFileSync)("security",["-i"],{input:s+`
5
+ `,stdio:["pipe","pipe","pipe"],timeout:4e3,killSignal:"SIGKILL"});return}let r=ct(t),i=r+".tmp";Se.writeFileSync(i,n,{encoding:"utf8",mode:384}),Se.renameSync(i,r)}});var yt=b(p=>{"use strict";var Nn=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]})),En=p&&p.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),je=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"&&Nn(n,t,r[i]);return En(n,t),n}})();Object.defineProperty(p,"__esModule",{value:!0});p.readAccountRegistry=ie;p.writeAccountRegistry=re;p.readActiveClaudeAccount=ce;p.addCurrentAccount=Ln;p.switchToAccount=Bn;p.resolveActiveClaudeHome=zn;p.applyActiveClaudeToLiveHome=ht;p.reconcileClaudeAuthState=Wn;p.removeAccount=Kn;p.listAccounts=Un;p.getActiveAccount=gt;p.resolveActiveClaudeAccount=Jn;p.isMultiAccountEnabled=kn;var g=je(l("fs")),h=je(l("path")),ut=je(l("os")),M=ot(),m=ee(),W=me();function at(){return h.join(ut.homedir(),".claude")}function x(){let e=h.join(at(),".claude.json");try{if(JSON.parse(g.readFileSync(e,"utf8"))?.oauthAccount)return e}catch{}return h.join(ut.homedir(),".claude.json")}function B(){return h.join((0,m.getAccountsDir)(),"credentials")}function z(){return h.join((0,m.getAccountsDir)(),"configs")}function Fn(){return h.join((0,m.getAccountsDir)(),"claude",".profiles-migrated-v1")}function Tn(){for(let e of[(0,m.getAccountsDir)(),B(),z()])g.mkdirSync(e,{recursive:!0,mode:448})}function F(e,t,n=384){g.mkdirSync(h.dirname(e),{recursive:!0,mode:448});let r=e+".tmp",i=JSON.stringify(t,null,2);JSON.parse(i),g.writeFileSync(r,i,{encoding:"utf8",mode:n}),g.renameSync(r,e)}function we(e){try{return JSON.parse(g.readFileSync(e,"utf8"))}catch{return null}}function st(e){return we(e)?.oauthAccount??null}function dt(e,t){F(h.join((0,W.getClaudeProfileHome)(e),".claude.json"),{oauthAccount:t})}function lt(e,t){(0,M.writeActiveCredentials)(t,(0,W.getClaudeProfileHome)(e))}function ne(e,t,n){dt(e,n),lt(e,t)}function ft(e){return we(h.join(B(),`${e}.credentials.json`))}function pt(e){return we(h.join(z(),`${e}.config.json`))}function vt(e){return st(h.join((0,W.getClaudeProfileHome)(e),".claude.json"))}function Hn(e){let t=(0,M.readActiveCredentials)((0,W.getClaudeProfileHome)(e)),n=vt(e);if(t&&n)return{credentials:t,oauthAccount:n};let r=ft(e),i=pt(e);if(r&&i){try{ne(e,r,i)}catch{}return{credentials:r,oauthAccount:i}}return null}function $n(){return st(x())}function Rn(){let e=ce();if(!e)return;let t=(0,M.readActiveCredentials)(),n=$n();if(t)try{F(h.join(B(),`${e.uuid}.credentials.json`),t),lt(e.uuid,t)}catch{}if(n)try{F(h.join(z(),`${e.uuid}.config.json`),n),dt(e.uuid,n)}catch{}}function qn(e){let t={};try{t=JSON.parse(g.readFileSync(x(),"utf8"))}catch{}t.oauthAccount=e,F(x(),t)}function ie(){let e=(0,m.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 re(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,m.replaceSavedAccountProfiles)("claude-code",t,e.activeAccountUuid)}function ce(){try{let e=g.readFileSync(x(),"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 Ln(e){let t=ce();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(g.readFileSync(x(),"utf8")).oauthAccount}catch{return{success:!1,error:"Could not read Claude config file."}}Tn();let i=ie()??{version:1,activeAccountUuid:null,accounts:[]},c=i.accounts.find(u=>u.uuid===t.uuid);if(c){e!==void 0&&(c.label=e),F(h.join(B(),`${t.uuid}.credentials.json`),n),F(h.join(z(),`${t.uuid}.config.json`),r);try{ne(t.uuid,n,r)}catch{}return i.activeAccountUuid=t.uuid,re(i),{success:!0}}F(h.join(B(),`${t.uuid}.credentials.json`),n),F(h.join(z(),`${t.uuid}.config.json`),r);try{ne(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,re(i),{success:!0}}function Bn(e){let t=ie();if(!t)return{success:!1,error:"No account registry found. Save an account first."};if(!t.accounts.find(u=>u.uuid===e))return{success:!1,error:`Account ${e} not found in registry.`};let r=null,i=null;r=(0,M.readActiveCredentials)();try{i=g.readFileSync(x(),"utf8")}catch{}try{Rn()}catch{}try{(0,m.setActiveSavedAccount)("claude-code",e)}catch(u){return{success:!1,error:`Failed to update account registry: ${u}`}}let c=ht();if(!c.success){try{(0,m.setActiveSavedAccount)("claude-code",t.activeAccountUuid)}catch{}if(r)try{(0,M.writeActiveCredentials)(r)}catch{}if(i)try{g.writeFileSync(x(),i)}catch{}return c}return c}function zn(){let e=(0,m.getActiveSavedAccount)("claude-code");return e?(0,W.getClaudeProfileHome)(e.providerAccountId??e.id):at()}function ht(){let e=(0,m.getActiveSavedAccount)("claude-code");if(!e)return{success:!1,error:"No active Claude account found."};let t=e.providerAccountId??e.id,n=Hn(t);if(!n)return{success:!1,error:`Stored credentials for ${e.email??t} not found.`};let r=(0,M.readActiveCredentials)(),i=null;try{i=g.readFileSync(x(),"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{qn(n.oauthAccount)}catch(c){if(r)try{(0,M.writeActiveCredentials)(r)}catch{}if(i)try{g.writeFileSync(x(),i)}catch{}return{success:!1,error:`Failed to write config: ${c}`}}return{success:!0}}function Wn(){try{let e=Fn();if(g.existsSync(e))return;let t=(0,m.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,W.getClaudeProfileHome)(r))&&vt(r))continue;let i=ft(r),c=pt(r);if(!i||!c)continue;ne(r,i,c)}catch{}g.mkdirSync(h.dirname(e),{recursive:!0,mode:448}),g.writeFileSync(e,new Date().toISOString()+`
6
+ `,{encoding:"utf8",mode:384})}catch{}}function Kn(e){let t=ie();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{g.unlinkSync(h.join(B(),`${e}.credentials.json`))}catch{}try{g.unlinkSync(h.join(z(),`${e}.config.json`))}catch{}return t.accounts.splice(n,1),t.activeAccountUuid===e&&(t.activeAccountUuid=t.accounts[0]?.uuid??null),re(t),{success:!0}}function Un(){return(0,m.listSavedAccountProfiles)("claude-code").map(e=>({uuid:e.providerAccountId??e.id,email:e.email??e.metadata?.email??"unknown",label:e.label,addedAt:e.addedAt}))}function gt(){let e=(0,m.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 Jn(){let e=ce();if(e){let n=(0,m.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,m.getActiveSavedAccount)("claude-code");if(!i||i.id!==r.id)try{(0,m.setActiveSavedAccount)("claude-code",r.id)}catch{}}return{email:e.email,label:r?.label,providerAccountId:e.uuid,registryAccountId:r?.id,source:"live"}}let t=gt();return t?{email:t.email,label:t.label,providerAccountId:t.uuid,registryAccountId:t.uuid,source:"registry"}:{source:"none"}}function kn(){return(0,m.listSavedAccountProfiles)("claude-code").length>=1}});var Mt=b(f=>{"use strict";var Qn=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]})),Vn=f&&f.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Pe=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"&&Qn(n,t,r[i]);return Vn(n,t),n}})();Object.defineProperty(f,"__esModule",{value:!0});f.getSystemCodexHome=k;f.getCodexMonitoringHomes=er;f.getCodexProfilesDir=jt;f.getCodexProfileHome=N;f.readCodexAccountMetadata=ue;f.isCodexProfileAuthenticated=bt;f.listCodexAccounts=Q;f.getActiveCodexAccount=ae;f.resolveSidekickCodexHome=Me;f.resolveActiveCodexAccount=lr;f.getCodexExecutionEnv=fr;f.prepareCodexAccount=pr;f.finalizeCodexAccount=Pt;f.switchToCodexAccount=hr;f.reconcileCodexAuthState=gr;f.removeCodexAccount=yr;var d=Pe(l("fs")),Gn=Pe(l("os")),a=Pe(l("path")),At=l("child_process"),Yn=l("crypto"),j=ee(),Xn=11520*60*1e3;function St(){return a.join(Gn.homedir(),".codex")}function _t(){let e=process.env.CODEX_HOME?.trim();return e||null}function Zn(e){let t=new Set,n=[];for(let r of e){let i=a.resolve(r);t.has(i)||(t.add(i),n.push(r))}return n}function k(){return _t()??St()}function er(){let e=_t();if(e)return[e];let t=[St()];for(let n of Q()){let r=N(n.id);d.existsSync(a.join(r,"sessions"))&&t.push(r)}return Zn(t)}function jt(){return a.join((0,j.getAccountsDir)(),"codex","profiles")}function Oe(e){return a.join(jt(),e)}function N(e){return a.join(Oe(e),"codex-home")}function wt(e){return a.join(Oe(e),"profile.json")}function Ct(e){d.mkdirSync(N(e),{recursive:!0,mode:448})}function tr(e,t,n=384){let r=e+".tmp",i=JSON.stringify(t,null,2);JSON.parse(i);try{d.writeFileSync(r,i,{encoding:"utf8",mode:n}),d.renameSync(r,e)}catch(c){try{d.unlinkSync(r)}catch{}throw c}}function S(e,t,n=384){d.mkdirSync(a.dirname(e),{recursive:!0,mode:448});let r=e+".tmp";try{d.writeFileSync(r,t,{encoding:"utf8",mode:n}),d.renameSync(r,e)}catch(i){try{d.unlinkSync(r)}catch{}throw i}}function T(e){try{return d.readFileSync(e,"utf8")}catch{return null}}function nr(e){try{return JSON.parse(d.readFileSync(wt(e),"utf8"))}catch{return null}}function rr(e,t){Ct(e),tr(wt(e),t)}function Ce(e,t){return d.existsSync(e)?(d.mkdirSync(a.dirname(t),{recursive:!0,mode:448}),d.copyFileSync(e,t),!0):!1}function ir(e,t){Ce(a.join(e,"config.toml"),a.join(t,"config.toml"))}function cr(e,t){let n=Ce(a.join(e,"auth.json"),a.join(t,"auth.json")),r=Ce(a.join(e,".credentials.json"),a.join(t,".credentials.json"));return n||r}function or(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 Ie(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function R(e){let t=Ie(e);if(!t)return null;let n=t.tokens?.id_token,r=n?or(n):null,i=r?.["https://api.openai.com/profile"],c=r?.["https://api.openai.com/auth"],u=typeof r?.email=="string"?r.email:typeof i?.email=="string"?i.email:void 0,s=typeof c?.chatgpt_account_id=="string"?c.chatgpt_account_id:t.tokens?.account_id,o=typeof c?.chatgpt_plan_type=="string"?c.chatgpt_plan_type:void 0,v=t.OPENAI_API_KEY||t.auth_mode==="api_key"?"api-key":"chatgpt";return{email:u,workspaceId:s,planType:o,authMode:v}}function be(e,t){let n=Ie(e);if(n?.last_refresh){let r=Date.parse(n.last_refresh);if(!Number.isNaN(r))return r}if(t)try{return d.statSync(t).mtimeMs}catch{}return null}function ur(e){let t=R(T(a.join(e,"auth.json")));return t?{email:t.email,workspaceId:t.workspaceId,planType:t.planType,authMode:t.authMode}:{}}function ar(e){let t=a.join(e,".credentials.json");if(!d.existsSync(t))return{};try{let n=JSON.parse(d.readFileSync(t,"utf8"));if(typeof n.OPENAI_API_KEY=="string"||typeof n.CODEX_API_KEY=="string")return{authMode:"api-key"}}catch{}return{}}function oe(e){try{let t={...process.env,CODEX_HOME:e},n=(0,At.spawnSync)("codex",["login","status"],{encoding:"utf8",env:t,timeout:4e3,killSignal:"SIGKILL"}),r=String(n.stdout??"").trim();if(n.status===0&&/^Logged in/i.test(r))return/API key/i.test(r)?{loggedIn:!0,authMode:"api-key"}:/ChatGPT/i.test(r)?{loggedIn:!0,authMode:"chatgpt"}:{loggedIn:!0}}catch{}return{loggedIn:!1}}function sr(){if(process.platform==="win32")return!1;try{return(0,At.spawnSync)("pgrep",["-x","codex"],{encoding:"utf8",timeout:4e3,killSignal:"SIGKILL"}).status===0}catch{return!1}}function ue(e){let t=ur(e);if(t.email||t.workspaceId||t.planType||t.authMode)return t;let n=ar(e);if(n.authMode)return n;let r=oe(e);return r.loggedIn?{authMode:r.authMode??"unknown"}:{}}function bt(e){return d.existsSync(a.join(e,"auth.json"))||d.existsSync(a.join(e,".credentials.json"))?!0:oe(e).loggedIn}function dr(e,t){let n=e.trim().toLowerCase();return Q().find(i=>i.id!==t&&(i.label??"").trim().toLowerCase()===n)?`A Codex account named "${e}" already exists.`:null}function Q(){return(0,j.listSavedAccountProfiles)("codex")}function ae(){return(0,j.getActiveSavedAccount)("codex")}function Me(){return k()}function lr(){let e=R(T(a.join(Me(),"auth.json")));if(e&&(e.email||e.workspaceId)){let n=De(e);if(n){let r=(0,j.getActiveSavedAccount)("codex");if(!r||r.id!==n.id)try{(0,j.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 fr(e=process.env){return{...e,CODEX_HOME:Me()}}function pr(e){let t=e.trim();if(!t)return{success:!1,error:"Codex accounts require a non-empty label."};let n=dr(t);if(n)return{success:!1,error:n};let r=(0,Yn.randomUUID)(),i=N(r);Ct(r),rr(r,{label:t,addedAt:new Date().toISOString()});let c=k();return ir(c,i),cr(c,i)?{...Pt(r),profileId:r,codexHome:i,needsLogin:!1}:{success:!0,profileId:r,codexHome:i,needsLogin:!0}}function Pt(e,t={}){let n=nr(e);if(!n)return{success:!1,error:`Codex profile ${e} was not prepared.`};let r=N(e);if(!bt(r))return{success:!1,error:"Codex profile is not authenticated yet."};let i=ue(r),c={id:e,providerId:"codex",label:n.label,email:i.email,addedAt:n.addedAt,metadata:i};return(0,j.upsertSavedAccountProfile)(c),t.activate===!1?{success:!0}:d.existsSync(a.join(r,"auth.json"))||d.existsSync(a.join(r,".credentials.json"))?It(c):((0,j.setActiveSavedAccount)("codex",e),{success:!0,warning:"Codex stores credentials in the OS keyring; sidekick cannot swap them per account, so `codex` keeps using the keyring credentials."})}function mt(){return a.join((0,j.getAccountsDir)(),"codex","stash")}function Ot(e,t){try{let n=new Date().toISOString().replace(/[:.]/g,"-"),r=null;if(e&&(r=a.join(mt(),`auth-${n}.json`),S(r,e)),t){let i=a.join(mt(),`credentials-${n}.json`);S(i,t),r=r??i}return r}catch{return null}}function De(e){let t=Q();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 vr(e,t){if(!e&&!t)return{};try{let n=R(e),r=De(n);if(!r){let c=Ot(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=N(r.id);e&&S(a.join(i,"auth.json"),e),t&&S(a.join(i,".credentials.json"),t);try{let c=ue(i);(0,j.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 It(e){let t=k(),n=a.join(t,"auth.json"),r=a.join(t,".credentials.json"),i=T(n),c=T(r);if(!i&&!c&&oe(t).loggedIn)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 u=N(e.id),s=a.join(u,"auth.json"),o=T(s),v=T(a.join(u,".credentials.json")),H=e.label??e.email??e.id;if(!o&&!v)return{success:!1,error:`No stored credentials for "${H}". Remove and re-add this account.`};if(o&&!Ie(o))return{success:!1,error:`Stored credentials for "${H}" are corrupted. Remove and re-add this account.`};let E=[];sr()&&E.push("A codex process appears to be running; restart codex sessions so they pick up the switched account.");let O=R(i),K=R(o),$e=e.metadata?.workspaceId??K?.workspaceId,Re=e.email??e.metadata?.email??K?.email;if(!!(O?.workspaceId&&$e&&O.workspaceId===$e||O?.email&&Re&&O.email===Re||i!==null&&i===o||!i&&!o&&c!==null&&c===v)){try{i&&S(s,i),c&&S(a.join(u,".credentials.json"),c);let L=ue(u);(0,j.upsertSavedAccountProfile)({...e,email:L.email??e.email,metadata:{...e.metadata,...L}})}catch{}return(0,j.setActiveSavedAccount)("codex",e.id),{success:!0,warning:E.length?E.join(" "):void 0}}let qe=be(o,s);qe!==null&&Date.now()-qe>Xn&&E.push(`Stored credentials for "${H}" have not been refreshed in over 8 days; codex may ask you to log in again.`);let Le=vr(i,c);Le.warning&&E.push(Le.warning);let Be=()=>{try{i?S(n,i):d.rmSync(n,{force:!0}),c?S(r,c):d.rmSync(r,{force:!0})}catch{}};try{o?(S(n,o),v?S(r,v):c&&d.rmSync(r,{force:!0})):(S(r,v),i&&d.rmSync(n,{force:!0}))}catch(L){return Be(),{success:!1,error:`Failed to write Codex credentials: ${L}`}}try{(0,j.setActiveSavedAccount)("codex",e.id)}catch(L){return Be(),{success:!1,error:`Failed to update account registry: ${L}`}}return{success:!0,warning:E.length?E.join(" "):void 0}}function hr(e){let t=Q().find(n=>n.id===e);return t?It(t):{success:!1,error:`Codex account ${e} not found.`}}function gr(){try{let e=a.join((0,j.getAccountsDir)(),"codex",".live-auth-migrated-v1");if(d.existsSync(e))return;let t=()=>S(e,new Date().toISOString()+`
7
+ `),n=ae();if(!n){t();return}let r=N(n.id),i=a.join(r,"auth.json"),c=T(i);if(!c){t();return}let u=k(),s=a.join(u,"auth.json"),o=T(s);if(!o){oe(u).loggedIn||S(s,c),t();return}let v=R(o),H=R(c);if(!!(v?.workspaceId&&H?.workspaceId&&v.workspaceId===H.workspaceId||v?.email&&v.email===H?.email)){let O=be(o,s),K=be(c,i);K!==null&&(O===null||K>O)?(Ot(o,null),S(s,c)):S(i,o)}else{let O=De(v);O&&O.id!==n.id&&(S(a.join(N(O.id),"auth.json"),o),(0,j.setActiveSavedAccount)("codex",O.id))}t()}catch{}}function yr(e){return(0,j.removeSavedAccountProfile)("codex",e)?(d.rmSync(Oe(e),{recursive:!0,force:!0}),{success:!0}):{success:!1,error:`Codex account ${e} not found.`}}});var Dt=b(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.getActiveAccountStatus=_r;var mr=yt(),Ar=Mt();function Sr(e){return e instanceof Error?e.message:String(e)}function _r(e){try{let t=(0,mr.resolveActiveClaudeAccount)(),n=(0,Ar.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??Sr(t)}}}});var xt=b(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.isAggregateCodexLimit=jr;function jr(e){return!e||e==="codex"}});var Rt=b(D=>{"use strict";var wr=D&&D.__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]})),Cr=D&&D.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Ee=D&&D.__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 Cr(n,t),n}})();Object.defineProperty(D,"__esModule",{value:!0});D.writeQuotaSnapshot=Fr;D.readQuotaSnapshot=Tr;var Ft=Ee(l("crypto")),w=Ee(l("fs")),br=Ee(l("path")),Tt=he(),Nt=xt(),Pr=15,Or=1e4,Ir=15e3,Mr=new Int32Array(new SharedArrayBuffer(4));function Fe(){return br.join((0,Tt.getConfigDir)(),"quota-snapshots.json")}function Ht(){w.mkdirSync((0,Tt.getConfigDir)(),{recursive:!0,mode:448})}function Dr(e,t,n=384){let r=`${e}.${process.pid}.${Date.now()}.${Ft.randomBytes(8).toString("hex")}.tmp`,i=JSON.stringify(t,null,2);JSON.parse(i);try{w.writeFileSync(r,i,{encoding:"utf8",mode:n}),w.renameSync(r,e)}catch(c){try{w.rmSync(r,{force:!0})}catch{}throw c}}function $t(){try{let e=JSON.parse(w.readFileSync(Fe(),"utf8"));if(e?.version===1&&Array.isArray(e.snapshots))return e}catch{}return{version:1,snapshots:[]}}function xr(e){Ht(),Dr(Fe(),e)}function Nr(e){Ht();let t=`${Fe()}.lock`,n=`${process.pid}:${Ft.randomBytes(16).toString("hex")}`,r=Date.now()+Ir;for(;;)try{let i=w.openSync(t,"wx",384);w.writeFileSync(i,n,"utf8"),w.fsyncSync(i),w.closeSync(i);break}catch(i){if(i.code!=="EEXIST")throw i;try{let c=w.statSync(t);if(Date.now()-c.mtimeMs>Or){let u=w.readFileSync(t,"utf8"),s=Number.parseInt(u.split(":",1)[0],10),o=Number.isInteger(s)&&s>0;if(o)try{process.kill(s,0)}catch(v){o=v.code==="EPERM"}o||w.rmSync(t,{force:!0})}}catch{}if(Date.now()>=r)throw new Error(`Timed out waiting for quota lock: ${t}`);Atomics.wait(Mr,0,0,Pr)}try{return e()}finally{try{w.readFileSync(t,"utf8")===n&&w.rmSync(t,{force:!0})}catch{}}}function Et(e){let t=e.capturedAt?Date.parse(e.capturedAt):NaN;return Number.isFinite(t)?t:0}function se(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Er(e,t){let n=(0,Nt.isAggregateCodexLimit)(e.limitId),r=(0,Nt.isAggregateCodexLimit)(t.limitId);if(n!==r)return n;let i=se(e.fiveHour.resetsAt),c=se(t.fiveHour.resetsAt);if(i!==c)return i>c;let u=se(e.sevenDay.resetsAt),s=se(t.sevenDay.resetsAt);if(u!==s)return u>s;let o=e.fiveHour.utilization+e.sevenDay.utilization,v=t.fiveHour.utilization+t.sevenDay.utilization;return o!==v?o>v:Et(e)>Et(t)}function Fr(e,t,n){Nr(()=>{let r=$t(),i=r.snapshots.findIndex(o=>o.providerId===e&&o.accountId===t),c=i>=0?r.snapshots[i].quota:void 0,u={...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&&Er(r.snapshots[i].quota,u))return;let s={providerId:e,accountId:t,quota:u};i>=0?r.snapshots[i]=s:r.snapshots.push(s),xr(r)})}function Tr(e,t){let r=$t().snapshots.find(i=>i.providerId===e&&i.accountId===t);return r?{...r.quota,providerId:e,source:"cache",stale:!0}:null}});var He=b(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.BurnRateCalculator=void 0;V.estimateTimeToQuota=qt;var Te=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 qt(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)}};V.BurnRateCalculator=Te;function qt(e,t,n){if(n<=0)return null;let r=t-e;return r<=0?0:r/n}});var Lt=b(P=>{"use strict";Object.defineProperty(P,"__esModule",{value:!0});P.SEVEN_DAY_WINDOW_MS=P.FIVE_HOUR_WINDOW_MS=void 0;P.projectQuotaWindow=Y;P.withQuotaProjections=qr;P.fetchQuota=Br;var Hr="https://api.anthropic.com/api/oauth/usage",$r="oauth-2025-04-20",Rr=1e4;P.FIVE_HOUR_WINDOW_MS=5*36e5;P.SEVEN_DAY_WINDOW_MS=7*864e5;function Y(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 u=i?Date.parse(i):NaN,s=Number.isFinite(u)?u:Date.now(),o=r-(c-s);if(!(o<=0))return Math.min(Math.round(t*(r/o)),200)}function qr(e,t={}){if(!e.available)return e;let n={...e},r=t.capturedAt??e.capturedAt;if(n.projectedFiveHour==null){let i=Y({utilization:n.fiveHour.utilization,resetsAt:n.fiveHour.resetsAt,windowMs:t.fiveHourWindowMs??P.FIVE_HOUR_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedFiveHour=i)}if(n.projectedSevenDay==null){let i=Y({utilization:n.sevenDay.utilization,resetsAt:n.sevenDay.resetsAt,windowMs:t.sevenDayWindowMs??P.SEVEN_DAY_WINDOW_MS,capturedAt:r});i!==void 0&&(n.projectedSevenDay=i)}return n}function G(e,t={}){return{fiveHour:{utilization:0,resetsAt:""},sevenDay:{utilization:0,resetsAt:""},available:!1,error:e,...t}}function Lr(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 Br(e){let t=new AbortController,n=setTimeout(()=>t.abort(),Rr);n.unref();try{let r=await fetch(Hr,{method:"GET",signal:t.signal,headers:{Authorization:`Bearer ${e}`,"anthropic-beta":$r,"Content-Type":"application/json"}});if(!r.ok)return r.status===401?G("Sign in to Claude Code to view quota",{failureKind:"auth",httpStatus:r.status}):r.status===429?G(`API error: ${r.status}`,{failureKind:"rate_limit",httpStatus:r.status,retryAfterMs:Lr(r.headers.get("retry-after"))}):r.status>=500&&r.status<=599?G(`API error: ${r.status}`,{failureKind:"server",httpStatus:r.status}):G(`API error: ${r.status}`,{failureKind:"unknown",httpStatus:r.status});let i=await r.json(),c=i.five_hour?.utilization??0,u=i.seven_day?.utilization??0,s=i.five_hour?.resets_at??"",o=i.seven_day?.resets_at??"";return{fiveHour:{utilization:c,resetsAt:s},sevenDay:{utilization:u,resetsAt:o},available:!0,projectedFiveHour:Y({utilization:c,resetsAt:s,windowMs:P.FIVE_HOUR_WINDOW_MS}),projectedSevenDay:Y({utilization:u,resetsAt:o,windowMs:P.SEVEN_DAY_WINDOW_MS})}}catch{return G("Network error",{failureKind:"network"})}finally{clearTimeout(n)}}});var zt=b(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.selectStatuslineAccount=Bt;de.formatStatusline=Kr;var zr=Lt(),Wr=He();function Bt(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 Kr(e){let t=Bt(e);if(!t)return"acct:none \xB7 quota unavailable";let n=Jr(t.accountLabel),r=t.quota;if(!r?.available)return`acct:${n} \xB7 quota unavailable`;let i=e.now??new Date,c=kr(r.fiveHour.utilization),u=Qr(r.fiveHour.resetsAt,i),s=Ur(r,i),o=s==null?"":` \xB7 ~${Vr(s)} left`;return`acct:${n} \xB7 5h ${Math.round(c)}% resets ${u}${o}`}function Ur(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 u=(c-(n-zr.FIVE_HOUR_WINDOW_MS))/6e4;if(u<=0||e.fiveHour.utilization<=0)return null;let s=e.fiveHour.utilization/u,o=(0,Wr.estimateTimeToQuota)(e.fiveHour.utilization,100,s),v=(n-r)/6e4;return o!==null&&o<v?o:null}function Jr(e){let t=e.trim();return(t.includes("@")?t.split("@")[0]:t).replace(/\s+/g,"-").slice(0,24)||"unknown"}function kr(e){return Number.isFinite(e)?Math.min(100,Math.max(0,e)):0}function Qr(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 Vr(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 Ut=b(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.selectStatuslineAccount=C.formatStatusline=C.estimateTimeToQuota=C.BurnRateCalculator=C.readQuotaSnapshot=C.getActiveAccountStatus=void 0;var Gr=Dt();Object.defineProperty(C,"getActiveAccountStatus",{enumerable:!0,get:function(){return Gr.getActiveAccountStatus}});var Yr=Rt();Object.defineProperty(C,"readQuotaSnapshot",{enumerable:!0,get:function(){return Yr.readQuotaSnapshot}});var Wt=He();Object.defineProperty(C,"BurnRateCalculator",{enumerable:!0,get:function(){return Wt.BurnRateCalculator}});Object.defineProperty(C,"estimateTimeToQuota",{enumerable:!0,get:function(){return Wt.estimateTimeToQuota}});var Kt=zt();Object.defineProperty(C,"formatStatusline",{enumerable:!0,get:function(){return Kt.formatStatusline}});Object.defineProperty(C,"selectStatuslineAccount",{enumerable:!0,get:function(){return Kt.selectStatuslineAccount}})});var q=Zt(Ut(),1);function Jt(){let e=(0,q.getActiveAccountStatus)(),t=e.claude.accountId?(0,q.readQuotaSnapshot)("claude-code",e.claude.accountId):null,n=e.codex.accountId?(0,q.readQuotaSnapshot)("codex",e.codex.accountId):null;process.stdout.write(`${(0,q.formatStatusline)({accounts:e,claudeQuota:t,codexQuota:n})}
8
+ `)}function Xr(e){for(let t=0;t<e.length;t++){let n=e[t];if(n!=="--json"){if(n==="--project"||n==="--provider"){t++;continue}if(!(n.startsWith("--project=")||n.startsWith("--provider=")))return n==="statusline"}}return!1}Xr(process.argv.slice(2))?Jt():await import("./sidekick-main.mjs");