@ppcode.dev/ppcode 2.1.92-4 → 2.1.92-6
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/cli.js +11 -4
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -5,18 +5,25 @@ process.env.DISABLE_TELEMETRY = '1';
|
|
|
5
5
|
process.env.CLAUDE_CODE_ENABLE_TELEMETRY = '0';
|
|
6
6
|
process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1';
|
|
7
7
|
// ppcode: force base URL
|
|
8
|
-
process.env.ANTHROPIC_BASE_URL =
|
|
8
|
+
process.env.ANTHROPIC_BASE_URL = 'https://www.ppcode.dev';
|
|
9
9
|
// ppcode: load API key from ppcode_apikey field in ~/.claude.json
|
|
10
|
+
// If no ppcode_apikey exists, clear any OAuth tokens so user must /login with ppcode
|
|
10
11
|
if (!process.env.ANTHROPIC_API_KEY) {
|
|
11
12
|
try {
|
|
12
13
|
const _fs = require('fs'), _path = require('path'), _os = require('os');
|
|
13
14
|
const _cf = _path.join(_os.homedir(), '.claude.json');
|
|
14
15
|
if (_fs.existsSync(_cf)) {
|
|
15
16
|
const _d = JSON.parse(_fs.readFileSync(_cf, 'utf-8'));
|
|
16
|
-
if (_d.ppcode_apikey)
|
|
17
|
+
if (_d.ppcode_apikey) {
|
|
18
|
+
process.env.ANTHROPIC_API_KEY = _d.ppcode_apikey;
|
|
19
|
+
}
|
|
17
20
|
}
|
|
18
21
|
} catch {}
|
|
19
22
|
}
|
|
23
|
+
// ppcode: block OAuth fallback — force ppcode /login
|
|
24
|
+
delete process.env.ANTHROPIC_AUTH_TOKEN;
|
|
25
|
+
delete process.env.CLAUDE_CODE_OAUTH_TOKEN;
|
|
26
|
+
process.env._PPCODE_NO_OAUTH = '1';
|
|
20
27
|
// (c) Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://code.claude.com/docs/en/legal-and-compliance.
|
|
21
28
|
|
|
22
29
|
// Version: 2.1.92
|
|
@@ -471,7 +478,7 @@ https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Coul
|
|
|
471
478
|
To learn more about Universe Domain retrieval, visit:
|
|
472
479
|
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class gT1{get isGCE(){return this.checkIsGCE}constructor(q={}){if(s86.add(this),this.checkIsGCE=void 0,this.jsonContent=null,this.cachedCredential=null,JG6.set(this,null),this.clientOptions={},this._cachedProjectId=q.projectId||null,this.cachedCredential=q.authClient||null,this.keyFilename=q.keyFilename||q.keyFile,this.scopes=q.scopes,this.clientOptions=q.clientOptions||{},this.jsonContent=q.credentials||null,this.apiKey=q.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw RangeError(cf.GoogleAuthExceptionMessages.API_KEY_WITH_CREDENTIALS);if(q.universeDomain)this.clientOptions.universeDomain=q.universeDomain}setGapicJWTValues(q){q.defaultServicePath=this.defaultServicePath,q.useJWTAccessWithScope=this.useJWTAccessWithScope,q.defaultScopes=this.defaultScopes}getProjectId(q){if(q)this.getProjectIdAsync().then((K)=>q(null,K),q);else return this.getProjectIdAsync()}async getProjectIdOptional(){try{return await this.getProjectId()}catch(q){if(q instanceof Error&&q.message===cf.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)return null;else throw q}}async findAndCacheProjectId(){let q=null;if(q||(q=await this.getProductionProjectId()),q||(q=await this.getFileProjectId()),q||(q=await this.getDefaultServiceProjectId()),q||(q=await this.getGCEProjectId()),q||(q=await this.getExternalAccountClientProjectId()),q)return this._cachedProjectId=q,q;else throw Error(cf.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)}async getProjectIdAsync(){if(this._cachedProjectId)return this._cachedProjectId;if(!this._findProjectIdPromise)this._findProjectIdPromise=this.findAndCacheProjectId();return this._findProjectIdPromise}async getUniverseDomainFromMetadataServer(){var q;let K;try{K=await md6.universe("universe-domain"),K||(K=pT1.DEFAULT_UNIVERSE)}catch(_){if(_&&((q=_===null||_===void 0?void 0:_.response)===null||q===void 0?void 0:q.status)===404)K=pT1.DEFAULT_UNIVERSE;else throw _}return K}async getUniverseDomain(){let q=(0,fSq.originalOrCamelOptions)(this.clientOptions).get("universe_domain");try{q!==null&&q!==void 0||(q=(await this.getClient()).universeDomain)}catch(K){q!==null&&q!==void 0||(q=pT1.DEFAULT_UNIVERSE)}return q}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(q={},K){let _;if(typeof q==="function")K=q;else _=q;if(K)this.getApplicationDefaultAsync(_).then((z)=>K(null,z.credential,z.projectId),K);else return this.getApplicationDefaultAsync(_)}async getApplicationDefaultAsync(q={}){if(this.cachedCredential)return await a86(this,s86,"m",MG6).call(this,this.cachedCredential,null);let K;if(K=await this._tryGetApplicationCredentialsFromEnvironmentVariable(q),K){if(K instanceof jG6.JWT)K.scopes=this.scopes;else if(K instanceof pd6.BaseExternalAccountClient)K.scopes=this.getAnyScopes();return await a86(this,s86,"m",MG6).call(this,K)}if(K=await this._tryGetApplicationCredentialsFromWellKnownFile(q),K){if(K instanceof jG6.JWT)K.scopes=this.scopes;else if(K instanceof pd6.BaseExternalAccountClient)K.scopes=this.getAnyScopes();return await a86(this,s86,"m",MG6).call(this,K)}if(await this._checkIsGCE())return q.scopes=this.getAnyScopes(),await a86(this,s86,"m",MG6).call(this,new bs9.Compute(q));throw Error(cf.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async _checkIsGCE(){if(this.checkIsGCE===void 0)this.checkIsGCE=md6.getGCPResidency()||await md6.isAvailable();return this.checkIsGCE}async _tryGetApplicationCredentialsFromEnvironmentVariable(q){let K=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials;if(!K||K.length===0)return null;try{return this._getApplicationCredentialsFromFilePath(K,q)}catch(_){if(_ instanceof Error)_.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${_.message}`;throw _}}async _tryGetApplicationCredentialsFromWellKnownFile(q){let K=null;if(this._isWindows())K=process.env.APPDATA;else{let z=process.env.HOME;if(z)K=BT1.join(z,".config")}if(K){if(K=BT1.join(K,"gcloud","application_default_credentials.json"),!Bd6.existsSync(K))K=null}if(!K)return null;return await this._getApplicationCredentialsFromFilePath(K,q)}async _getApplicationCredentialsFromFilePath(q,K={}){if(!q||q.length===0)throw Error("The file path is invalid.");try{if(q=Bd6.realpathSync(q),!Bd6.lstatSync(q).isFile())throw Error()}catch(z){if(z instanceof Error)z.message=`The file at ${q} does not exist, or it is not a file. ${z.message}`;throw z}let _=Bd6.createReadStream(q);return this.fromStream(_,K)}fromImpersonatedJSON(q){var K,_,z,Y;if(!q)throw Error("Must pass in a JSON object containing an impersonated refresh token");if(q.type!==HG6.IMPERSONATED_ACCOUNT_TYPE)throw Error(`The incoming JSON object does not have the "${HG6.IMPERSONATED_ACCOUNT_TYPE}" type`);if(!q.source_credentials)throw Error("The incoming JSON object does not contain a source_credentials field");if(!q.service_account_impersonation_url)throw Error("The incoming JSON object does not contain a service_account_impersonation_url field");let $=this.fromJSON(q.source_credentials);if(((K=q.service_account_impersonation_url)===null||K===void 0?void 0:K.length)>256)throw RangeError(`Target principal is too long: ${q.service_account_impersonation_url}`);let A=(z=(_=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(q.service_account_impersonation_url))===null||_===void 0?void 0:_.groups)===null||z===void 0?void 0:z.target;if(!A)throw RangeError(`Cannot extract target principal from ${q.service_account_impersonation_url}`);let O=(Y=this.getAnyScopes())!==null&&Y!==void 0?Y:[];return new HG6.Impersonated({...q,sourceClient:$,targetPrincipal:A,targetScopes:Array.isArray(O)?O:[O]})}fromJSON(q,K={}){let _,z=(0,fSq.originalOrCamelOptions)(K).get("universe_domain");if(q.type===WSq.USER_REFRESH_ACCOUNT_TYPE)_=new WSq.UserRefreshClient(K),_.fromJSON(q);else if(q.type===HG6.IMPERSONATED_ACCOUNT_TYPE)_=this.fromImpersonatedJSON(q);else if(q.type===pd6.EXTERNAL_ACCOUNT_TYPE)_=us9.ExternalAccountClient.fromJSON(q,K),_.scopes=this.getAnyScopes();else if(q.type===DSq.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE)_=new DSq.ExternalAccountAuthorizedUserClient(q,K);else K.scopes=this.scopes,_=new jG6.JWT(K),this.setGapicJWTValues(_),_.fromJSON(q);if(z)_.universeDomain=z;return _}_cacheClientFromJSON(q,K){let _=this.fromJSON(q,K);return this.jsonContent=q,this.cachedCredential=_,_}fromStream(q,K={},_){let z={};if(typeof K==="function")_=K;else z=K;if(_)this.fromStreamAsync(q,z).then((Y)=>_(null,Y),_);else return this.fromStreamAsync(q,z)}fromStreamAsync(q,K){return new Promise((_,z)=>{if(!q)throw Error("Must pass in a stream containing the Google auth settings.");let Y=[];q.setEncoding("utf8").on("error",z).on("data",($)=>Y.push($)).on("end",()=>{try{try{let $=JSON.parse(Y.join("")),A=this._cacheClientFromJSON($,K);return _(A)}catch($){if(!this.keyFilename)throw $;let A=new jG6.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=A,this.setGapicJWTValues(A),_(A)}}catch($){return z($)}})})}fromAPIKey(q,K={}){return new jG6.JWT({...K,apiKey:q})}_isWindows(){let q=hs9.platform();if(q&&q.length>=3){if(q.substring(0,3).toLowerCase()==="win")return!0}return!1}async getDefaultServiceProjectId(){return new Promise((q)=>{(0,Rs9.exec)("gcloud config config-helper --format json",(K,_)=>{if(!K&&_)try{let z=JSON.parse(_).configuration.properties.core.project;q(z);return}catch(z){}q(null)})})}getProductionProjectId(){return process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project}async getFileProjectId(){if(this.cachedCredential)return this.cachedCredential.projectId;if(this.keyFilename){let K=await this.getClient();if(K&&K.projectId)return K.projectId}let q=await this._tryGetApplicationCredentialsFromEnvironmentVariable();if(q)return q.projectId;else return null}async getExternalAccountClientProjectId(){if(!this.jsonContent||this.jsonContent.type!==pd6.EXTERNAL_ACCOUNT_TYPE)return null;return await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await md6.project("project-id")}catch(q){return null}}getCredentials(q){if(q)this.getCredentialsAsync().then((K)=>q(null,K),q);else return this.getCredentialsAsync()}async getCredentialsAsync(){let q=await this.getClient();if(q instanceof HG6.Impersonated)return{client_email:q.getTargetPrincipal()};if(q instanceof pd6.BaseExternalAccountClient){let K=q.getServiceAccountEmail();if(K)return{client_email:K,universe_domain:q.universeDomain}}if(this.jsonContent)return{client_email:this.jsonContent.client_email,private_key:this.jsonContent.private_key,universe_domain:this.jsonContent.universe_domain};if(await this._checkIsGCE()){let[K,_]=await Promise.all([md6.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:K,universe_domain:_}}throw Error(cf.GoogleAuthExceptionMessages.NO_CREDENTIALS_FOUND)}async getClient(){if(this.cachedCredential)return this.cachedCredential;PSq(this,JG6,a86(this,JG6,"f")||a86(this,s86,"m",ZSq).call(this),"f");try{return await a86(this,JG6,"f")}finally{PSq(this,JG6,null,"f")}}async getIdTokenClient(q){let K=await this.getClient();if(!("fetchIdToken"in K))throw Error("Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.");return new xs9.IdTokenClient({targetAudience:q,idTokenProvider:K})}async getAccessToken(){return(await(await this.getClient()).getAccessToken()).token}async getRequestHeaders(q){return(await this.getClient()).getRequestHeaders(q)}async authorizeRequest(q){q=q||{};let K=q.url||q.uri,z=await(await this.getClient()).getRequestHeaders(K);return q.headers=Object.assign(q.headers||{},z),q}async request(q){return(await this.getClient()).request(q)}getEnv(){return(0,Is9.getEnv)()}async sign(q,K){let _=await this.getClient(),z=await this.getUniverseDomain();if(K=K||`https://iamcredentials.${z}/v1/projects/-/serviceAccounts/`,_ instanceof HG6.Impersonated)return(await _.sign(q)).signedBlob;let Y=(0,Ss9.createCrypto)();if(_ instanceof jG6.JWT&&_.key)return await Y.sign(_.key,q);let $=await this.getCredentials();if(!$.client_email)throw Error("Cannot sign data without `client_email`.");return this.signBlob(Y,$.client_email,q,K)}async signBlob(q,K,_,z){let Y=new URL(z+`${K}:signBlob`);return(await this.request({method:"POST",url:Y.href,data:{payload:q.encodeBase64StringUtf8(_)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}}cf.GoogleAuth=gT1;JG6=new WeakMap,s86=new WeakSet,MG6=async function(K,_=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let z=await this.getProjectIdOptional();if(_)K.quotaProjectId=_;return this.cachedCredential=K,{credential:K,projectId:z}},ZSq=async function(){if(this.jsonContent)return this._cacheClientFromJSON(this.jsonContent,this.clientOptions);else if(this.keyFilename){let K=BT1.resolve(this.keyFilename),_=Bd6.createReadStream(K);return await this.fromStreamAsync(_,this.clientOptions)}else if(this.apiKey){let K=await this.fromAPIKey(this.apiKey,this.clientOptions);K.scopes=this.scopes;let{credential:_}=await a86(this,s86,"m",MG6).call(this,K);return _}else{let{credential:K}=await this.getApplicationDefaultAsync(this.clientOptions);return K}};gT1.DefaultTransporter=Cs9.DefaultTransporter});var VSq=m((vSq)=>{Object.defineProperty(vSq,"__esModule",{value:!0});vSq.IAMAuth=void 0;class TSq{constructor(q,K){this.selector=q,this.token=K,this.selector=q,this.token=K}getRequestHeaders(){return{"x-goog-iam-authority-selector":this.selector,"x-goog-iam-authorization-token":this.token}}}vSq.IAMAuth=TSq});var LSq=m((ySq)=>{Object.defineProperty(ySq,"__esModule",{value:!0});ySq.DownscopedClient=ySq.EXPIRATION_TIME_OFFSET=ySq.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var ms9=U6("stream"),ps9=tg(),Bs9=wT1(),gs9="urn:ietf:params:oauth:grant-type:token-exchange",Fs9="urn:ietf:params:oauth:token-type:access_token",Us9="urn:ietf:params:oauth:token-type:access_token";ySq.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;ySq.EXPIRATION_TIME_OFFSET=300000;class NSq extends ps9.AuthClient{constructor(q,K,_,z){super({..._,quotaProjectId:z});if(this.authClient=q,this.credentialAccessBoundary=K,K.accessBoundary.accessBoundaryRules.length===0)throw Error("At least one access boundary rule needs to be defined.");else if(K.accessBoundary.accessBoundaryRules.length>ySq.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw Error(`The provided access boundary has more than ${ySq.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let Y of K.accessBoundary.accessBoundaryRules)if(Y.availablePermissions.length===0)throw Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new Bs9.StsCredentials(`https://sts.${this.universeDomain}/v1/token`),this.cachedDownscopedAccessToken=null}setCredentials(q){if(!q.expiry_date)throw Error("The access token expiry_date field is missing in the provided credentials.");super.setCredentials(q),this.cachedDownscopedAccessToken=q}async getAccessToken(){if(!this.cachedDownscopedAccessToken||this.isExpired(this.cachedDownscopedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedDownscopedAccessToken.access_token,expirationTime:this.cachedDownscopedAccessToken.expiry_date,res:this.cachedDownscopedAccessToken.res}}async getRequestHeaders(){let K={Authorization:`Bearer ${(await this.getAccessToken()).token}`};return this.addSharedMetadataHeaders(K)}request(q,K){if(K)this.requestAsync(q).then((_)=>K(null,_),(_)=>{return K(_,_.response)});else return this.requestAsync(q)}async requestAsync(q,K=!1){let _;try{let z=await this.getRequestHeaders();if(q.headers=q.headers||{},z&&z["x-goog-user-project"])q.headers["x-goog-user-project"]=z["x-goog-user-project"];if(z&&z.Authorization)q.headers.Authorization=z.Authorization;_=await this.transporter.request(q)}catch(z){let Y=z.response;if(Y){let $=Y.status,A=Y.config.data instanceof ms9.Readable;if(!K&&($===401||$===403)&&!A&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(q,!0)}throw z}return _}async refreshAccessTokenAsync(){var q;let K=(await this.authClient.getAccessToken()).token,_={grantType:gs9,requestedTokenType:Fs9,subjectToken:K,subjectTokenType:Us9},z=await this.stsCredential.exchangeToken(_,void 0,this.credentialAccessBoundary),Y=((q=this.authClient.credentials)===null||q===void 0?void 0:q.expiry_date)||null,$=z.expires_in?new Date().getTime()+z.expires_in*1000:Y;return this.cachedDownscopedAccessToken={access_token:z.access_token,expiry_date:$,res:z.res},this.credentials={},Object.assign(this.credentials,this.cachedDownscopedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedDownscopedAccessToken.expiry_date,access_token:this.cachedDownscopedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedDownscopedAccessToken}isExpired(q){let K=new Date().getTime();return q.expiry_date?K>=q.expiry_date-this.eagerRefreshThresholdMillis:!1}}ySq.DownscopedClient=NSq});var SSq=m((RSq)=>{Object.defineProperty(RSq,"__esModule",{value:!0});RSq.PassThroughClient=void 0;var ds9=tg();class UT1 extends ds9.AuthClient{async request(q){return this.transporter.request(q)}async getAccessToken(){return{}}async getRequestHeaders(){return{}}}RSq.PassThroughClient=UT1;var cs9=new UT1;cs9.getAccessToken()});var KD8=m((Aw)=>{Object.defineProperty(Aw,"__esModule",{value:!0});Aw.GoogleAuth=Aw.auth=Aw.DefaultTransporter=Aw.PassThroughClient=Aw.ExecutableError=Aw.PluggableAuthClient=Aw.DownscopedClient=Aw.BaseExternalAccountClient=Aw.ExternalAccountClient=Aw.IdentityPoolClient=Aw.AwsRequestSigner=Aw.AwsClient=Aw.UserRefreshClient=Aw.LoginTicket=Aw.ClientAuthentication=Aw.OAuth2Client=Aw.CodeChallengeMethod=Aw.Impersonated=Aw.JWT=Aw.JWTAccess=Aw.IdTokenClient=Aw.IAMAuth=Aw.GCPEnv=Aw.Compute=Aw.DEFAULT_UNIVERSE=Aw.AuthClient=Aw.gaxios=Aw.gcpMetadata=void 0;var CSq=GSq();Object.defineProperty(Aw,"GoogleAuth",{enumerable:!0,get:function(){return CSq.GoogleAuth}});Aw.gcpMetadata=Rd6();Aw.gaxios=eI();var bSq=tg();Object.defineProperty(Aw,"AuthClient",{enumerable:!0,get:function(){return bSq.AuthClient}});Object.defineProperty(Aw,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return bSq.DEFAULT_UNIVERSE}});var ls9=rG1();Object.defineProperty(Aw,"Compute",{enumerable:!0,get:function(){return ls9.Compute}});var ns9=aG1();Object.defineProperty(Aw,"GCPEnv",{enumerable:!0,get:function(){return ns9.GCPEnv}});var is9=VSq();Object.defineProperty(Aw,"IAMAuth",{enumerable:!0,get:function(){return is9.IAMAuth}});var rs9=oG1();Object.defineProperty(Aw,"IdTokenClient",{enumerable:!0,get:function(){return rs9.IdTokenClient}});var os9=KT1();Object.defineProperty(Aw,"JWTAccess",{enumerable:!0,get:function(){return os9.JWTAccess}});var as9=zT1();Object.defineProperty(Aw,"JWT",{enumerable:!0,get:function(){return as9.JWT}});var ss9=$T1();Object.defineProperty(Aw,"Impersonated",{enumerable:!0,get:function(){return ss9.Impersonated}});var QT1=O$6();Object.defineProperty(Aw,"CodeChallengeMethod",{enumerable:!0,get:function(){return QT1.CodeChallengeMethod}});Object.defineProperty(Aw,"OAuth2Client",{enumerable:!0,get:function(){return QT1.OAuth2Client}});Object.defineProperty(Aw,"ClientAuthentication",{enumerable:!0,get:function(){return QT1.ClientAuthentication}});var ts9=lG1();Object.defineProperty(Aw,"LoginTicket",{enumerable:!0,get:function(){return ts9.LoginTicket}});var es9=YT1();Object.defineProperty(Aw,"UserRefreshClient",{enumerable:!0,get:function(){return es9.UserRefreshClient}});var qt9=VT1();Object.defineProperty(Aw,"AwsClient",{enumerable:!0,get:function(){return qt9.AwsClient}});var Kt9=TT1();Object.defineProperty(Aw,"AwsRequestSigner",{enumerable:!0,get:function(){return Kt9.AwsRequestSigner}});var _t9=GT1();Object.defineProperty(Aw,"IdentityPoolClient",{enumerable:!0,get:function(){return _t9.IdentityPoolClient}});var zt9=uT1();Object.defineProperty(Aw,"ExternalAccountClient",{enumerable:!0,get:function(){return zt9.ExternalAccountClient}});var Yt9=o86();Object.defineProperty(Aw,"BaseExternalAccountClient",{enumerable:!0,get:function(){return Yt9.BaseExternalAccountClient}});var $t9=LSq();Object.defineProperty(Aw,"DownscopedClient",{enumerable:!0,get:function(){return $t9.DownscopedClient}});var xSq=qD8();Object.defineProperty(Aw,"PluggableAuthClient",{enumerable:!0,get:function(){return xSq.PluggableAuthClient}});Object.defineProperty(Aw,"ExecutableError",{enumerable:!0,get:function(){return xSq.ExecutableError}});var At9=SSq();Object.defineProperty(Aw,"PassThroughClient",{enumerable:!0,get:function(){return At9.PassThroughClient}});var Ot9=Sd6();Object.defineProperty(Aw,"DefaultTransporter",{enumerable:!0,get:function(){return Ot9.DefaultTransporter}});var wt9=new CSq.GoogleAuth;Aw.auth=wt9});var _D8=(q)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[q]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(q)?.trim();return};var ISq=y(()=>{yZ()});function zD8(q){return q!=null&&typeof q==="object"&&!Array.isArray(q)}var dT1=(q)=>(dT1=Array.isArray,dT1(q)),cT1;var lT1=y(()=>{ISq();cT1=dT1});function*Xt9(q){if(!q)return;if(uSq in q){let{values:z,nulls:Y}=q;yield*z.entries();for(let $ of Y)yield[$,null];return}let K=!1,_;if(q instanceof Headers)_=q.entries();else if(cT1(q))_=q;else K=!0,_=Object.entries(q??{});for(let z of _){let Y=z[0];if(typeof Y!=="string")throw TypeError("expected header name to be a string");let $=cT1(z[1])?z[1]:[z[1]],A=!1;for(let O of $){if(O===void 0)continue;if(K&&!A)A=!0,yield[Y,null];yield[Y,O]}}}var uSq,mSq=(q)=>{let K=new Headers,_=new Set;for(let z of q){let Y=new Set;for(let[$,A]of Xt9(z)){let O=$.toLowerCase();if(!Y.has(O))K.delete($),Y.add(O);if(A===null)K.delete($),_.add(O);else K.append($,A),_.delete(O)}}return{[uSq]:!0,values:K,nulls:_}};var pSq=y(()=>{lT1();uSq=Symbol.for("brand.privateNullableHeaders")});function Dt9(q){let K=new $E(q);return delete K.batches,K}function ft9(q){let K=new EZ(q);return delete K.messages.batches,K}var BSq,Pt9="vertex-2023-10-16",Wt9,nT1;var iT1=y(()=>{hc();dx6();lT1();pSq();hc();BSq=O6(KD8(),1),Wt9=new Set(["/v1/messages","/v1/messages?beta=true"]);nT1=class nT1 extends D${constructor({baseURL:q=_D8("ANTHROPIC_VERTEX_BASE_URL"),region:K=_D8("CLOUD_ML_REGION")??null,projectId:_=_D8("ANTHROPIC_VERTEX_PROJECT_ID")??null,...z}={}){if(!K)throw Error("No region was given. The client should be instantiated with the `region` option or the `CLOUD_ML_REGION` environment variable should be set.");super({baseURL:q||(K==="global"?"https://aiplatform.googleapis.com/v1":`https://${K}-aiplatform.googleapis.com/v1`),...z});if(this.messages=Dt9(this),this.beta=ft9(this),this.region=K,this.projectId=_,this.accessToken=z.accessToken??null,z.authClient&&z.googleAuth)throw Error("You cannot provide both `authClient` and `googleAuth`. Please provide only one of them.");else if(z.authClient)this._authClientPromise=Promise.resolve(z.authClient);else this._auth=z.googleAuth??new BSq.GoogleAuth({scopes:"https://www.googleapis.com/auth/cloud-platform"}),this._authClientPromise=this._auth.getClient()}validateHeaders(){}async prepareOptions(q){let K=await this._authClientPromise,_=await K.getRequestHeaders(),z=K.projectId??_["x-goog-user-project"];if(!this.projectId&&z)this.projectId=z;q.headers=mSq([_,q.headers])}async buildRequest(q){if(zD8(q.body))q.body={...q.body};if(zD8(q.body)){if(!q.body.anthropic_version)q.body.anthropic_version=Pt9}if(Wt9.has(q.path)&&q.method==="post"){if(!this.projectId)throw Error("No projectId was given and it could not be resolved from credentials. The client should be instantiated with the `projectId` option or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.");if(!zD8(q.body))throw Error("Expected request body to be an object for post /v1/messages");let K=q.body.model;q.body.model=void 0;let z=q.body.stream??!1?"streamRawPredict":"rawPredict";q.path=`/projects/${this.projectId}/locations/${this.region}/publishers/anthropic/models/${K}:${z}`}if(q.path==="/v1/messages/count_tokens"||q.path=="/v1/messages/count_tokens?beta=true"&&q.method==="post"){if(!this.projectId)throw Error("No projectId was given and it could not be resolved from credentials. The client should be instantiated with the `projectId` option or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.");q.path=`/projects/${this.projectId}/locations/${this.region}/publishers/anthropic/models/count-tokens:rawPredict`}return super.buildRequest(q)}}});var gSq={};T8(gSq,{default:()=>nT1,BaseAnthropic:()=>D$,AnthropicVertex:()=>nT1});var FSq=y(()=>{iT1();iT1()});import{randomUUID as Zt9}from"crypto";function YD8(){return{error:(q,...K)=>console.error("[Anthropic SDK ERROR]",q,...K),warn:(q,...K)=>console.error("[Anthropic SDK WARN]",q,...K),info:(q,...K)=>console.error("[Anthropic SDK INFO]",q,...K),debug:(q,...K)=>console.error("[Anthropic SDK DEBUG]",q,...K)}}async function eE({apiKey:q,maxRetries:K,model:_,fetchOverride:z,source:Y}){let $=process.env.CLAUDE_CODE_CONTAINER_ID,A=process.env.CLAUDE_CODE_REMOTE_SESSION_ID,O=process.env.CLAUDE_AGENT_SDK_CLIENT_APP,w=Tt9(),j={"x-app":"cli","User-Agent":hS(),"X-Claude-Code-Session-Id":N8(),...w,...$?{"x-claude-remote-container-id":$}:{},...A?{"x-claude-remote-session-id":A}:{},...O?{"x-client-app":O}:{}};if(N(`[API:request] Creating client, ANTHROPIC_CUSTOM_HEADERS present: ${!!process.env.ANTHROPIC_CUSTOM_HEADERS}, has Authorization header: ${!!w.Authorization}`),i6(process.env.CLAUDE_CODE_ADDITIONAL_PROTECTION))j["x-anthropic-additional-protection"]="true";if(N("[API:auth] OAuth token check starting"),await k$(),N("[API:auth] OAuth token check complete"),!d7())await Gt9(j,i7());let J=vt9(z,Y),M={defaultHeaders:j,maxRetries:K,timeout:parseInt(process.env.API_TIMEOUT_MS||String(600000),10),dangerouslyAllowBrowser:!0,fetchOptions:fz6({forAnthropicAPI:!0}),...J&&{fetch:J}};if(i6(process.env.CLAUDE_CODE_USE_BEDROCK)){let{AnthropicBedrock:P}=await Promise.resolve().then(() => (qWq(),ePq)),W=_===PH()&&process.env.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION?process.env.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION:e36(),D={...M,awsRegion:W,...i6(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)&&{skipAuth:!0},...$B()&&{logger:YD8()}};if(process.env.AWS_BEARER_TOKEN_BEDROCK)D.skipAuth=!0,D.defaultHeaders={...D.defaultHeaders,Authorization:`Bearer ${process.env.AWS_BEARER_TOKEN_BEDROCK}`};else if(!i6(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)){let f=await l66();if(f)D.awsAccessKey=f.accessKeyId,D.awsSecretKey=f.secretAccessKey,D.awsSessionToken=f.sessionToken}return new P(D)}if(i6(process.env.CLAUDE_CODE_USE_FOUNDRY)){let{AnthropicFoundry:P}=await Promise.resolve().then(() => (OWq(),AWq)),W;if(!process.env.ANTHROPIC_FOUNDRY_API_KEY)if(i6(process.env.CLAUDE_CODE_SKIP_FOUNDRY_AUTH))W=()=>Promise.resolve("");else{let{DefaultAzureCredential:f,getBearerTokenProvider:G}=await Promise.resolve().then(() => (kNq(),vNq));W=G(new f,"https://cognitiveservices.azure.com/.default")}let D={...M,...W&&{azureADTokenProvider:W},...$B()&&{logger:YD8()}};return new P(D)}if(i6(process.env.CLAUDE_CODE_USE_VERTEX)){if(!i6(process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH))await gd6();let[{AnthropicVertex:P},{GoogleAuth:W}]=await Promise.all([Promise.resolve().then(() => (FSq(),gSq)),Promise.resolve().then(() => O6(KD8(),1))]),D=process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project,f=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials,G=i6(process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH)?{getClient:()=>({getRequestHeaders:()=>({})})}:new W({scopes:["https://www.googleapis.com/auth/cloud-platform"],...D||f?{}:{projectId:process.env.ANTHROPIC_VERTEX_PROJECT_ID}}),Z={...M,region:G38(_),googleAuth:G,...$B()&&{logger:YD8()}};return new P(Z)}let X={apiKey:d7()?null:q||zv(),authToken:d7()?Kq()?.accessToken:void 0,...{},...M,...$B()&&{logger:YD8()}};return new Rx(X)}async function Gt9(q,K){let _=process.env.ANTHROPIC_AUTH_TOKEN||await WG6(K);if(_)q.Authorization=`Bearer ${_}`}function Tt9(){let q={},K=process.env.ANTHROPIC_CUSTOM_HEADERS;if(!K)return q;let _=K.split(/\n|\r\n/);for(let z of _){if(!z.trim())continue;let Y=z.indexOf(":");if(Y===-1)continue;let $=z.slice(0,Y).trim(),A=z.slice(Y+1).trim();if($)q[$]=A}return q}function vt9(q,K){let _=q??globalThis.fetch,z=E7()==="firstParty"&&WP();return(Y,$)=>{let A=new Headers($?.headers);if(z&&!A.has(XG6))A.set(XG6,Zt9());try{let O=Y instanceof Request?Y.url:String(Y),w=A.get(XG6);N(`[API REQUEST] ${new URL(O).pathname}${w?` ${XG6}=${w}`:""} source=${K??"unknown"}`)}catch{}return _(Y,{...$,headers:A})}}var XG6="x-client-request-id";var PG6=y(()=>{LZ();G7();jG();aq();Az();qv();v8();H3();_8();m8()});import{readFileSync as kt9}from"fs";import{mkdir as Vt9,writeFile as Nt9}from"fs/promises";import{join as USq}from"path";function dSq(){return USq(c1(),"cache")}function cSq(){return USq(dSq(),"model-capabilities.json")}function lSq(){return!1}function Et9(q){return[...q].sort((K,_)=>_.id.length-K.id.length||K.id.localeCompare(_.id))}function oT1(q){if(!lSq())return;let K=rT1(cSq());if(!K||K.length===0)return;let _=q.toLowerCase(),z=K.find((Y)=>Y.id.toLowerCase()===_);if(z)return z;return K.find((Y)=>_.includes(Y.id.toLowerCase()))}async function nSq(){if(!lSq())return;if(iA())return;try{let q=await eE({maxRetries:1}),K=d7()?[rM]:void 0,_=[];for await(let $ of q.models.list({betas:K})){let A=QSq().safeParse($);if(A.success)_.push(A.data)}if(_.length===0)return;let z=cSq(),Y=Et9(_);if(QJ(rT1(z),Y)){N("[modelCapabilities] cache unchanged, skipping write");return}await Vt9(dSq(),{recursive:!0}),await Nt9(z,g6({models:Y,timestamp:Date.now()}),{encoding:"utf-8",mode:384}),rT1.cache.delete(z),N(`[modelCapabilities] cached ${Y.length} models`)}catch(q){N(`[modelCapabilities] fetch failed: ${q instanceof Error?q.message:"unknown"}`)}}var QSq,yt9,rT1;var aT1=y(()=>{Ee();F4();x7();H3();PG6();G7();_8();m8();vO();l8();Az();QSq=B6(()=>L.object({id:L.string(),max_input_tokens:L.number().optional(),max_tokens:L.number().optional()}).strip()),yt9=B6(()=>L.object({models:L.array(QSq()),timestamp:L.number()}));rT1=_1((q)=>{try{let K=kt9(q,"utf-8"),_=yt9().safeParse(m5(K,!1));return _.success?_.data.models:null}catch{return null}},(q)=>q)});function Mn(){return i6(process.env.CLAUDE_CODE_DISABLE_1M_CONTEXT)}function cE(q){if(Mn())return!1;return/\[1m\]/i.test(q)}function FX1(q){if(Mn())return!1;let K=bY(q);return K.includes("claude-sonnet-4")||K.includes("opus-4-6")}function lf(q,K){if(cE(q))return 1e6;let _=oT1(q);if(_?.max_input_tokens&&_.max_input_tokens>=1e5){if(_.max_input_tokens>sT1&&Mn())return sT1;return _.max_input_tokens}if(K?.includes(s66)&&FX1(q))return 1e6;if(eT1(q))return 1e6;return sT1}function eT1(q){if(Mn())return!1;if(cE(q))return!1;if(!bY(q).includes("sonnet-4-6"))return!1;return j8().clientDataCache?.coral_reef_sonnet==="true"}function $D8(q,K){if(!q)return{used:null,remaining:null};let _=q.input_tokens+q.cache_creation_input_tokens+q.cache_read_input_tokens,z=Math.round(_/K*100),Y=Math.min(100,Math.max(0,z));return{used:Y,remaining:100-Y}}function t86(q){let K,_,z=bY(q);if(z.includes("opus-4-6"))K=64000,_=128000;else if(z.includes("sonnet-4-6"))K=32000,_=128000;else if(z.includes("opus-4-5")||z.includes("sonnet-4")||z.includes("haiku-4"))K=32000,_=64000;else if(z.includes("opus-4-1")||z.includes("opus-4"))K=32000,_=32000;else if(z.includes("claude-3-opus"))K=4096,_=4096;else if(z.includes("claude-3-sonnet"))K=8192,_=8192;else if(z.includes("claude-3-haiku"))K=4096,_=4096;else if(z.includes("3-5-sonnet")||z.includes("3-5-haiku"))K=8192,_=8192;else if(z.includes("3-7-sonnet"))K=32000,_=64000;else K=Lt9,_=Rt9;let Y=oT1(q);if(Y?.max_tokens&&Y.max_tokens>=4096)_=Y.max_tokens,K=Math.min(K,_);return{default:K,upperLimit:_}}function oSq(q){return t86(q).upperLimit-1}var sT1=200000,iSq=20000,Lt9=32000,Rt9=64000,rSq=8000,tT1=64000;var fP=y(()=>{e66();V1();m8();aq();aT1()});var ht9,e86;var AD8=y(()=>{F4();Az();ht9=[{modelEnvVar:"ANTHROPIC_DEFAULT_OPUS_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES"},{modelEnvVar:"ANTHROPIC_DEFAULT_SONNET_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES"},{modelEnvVar:"ANTHROPIC_DEFAULT_HAIKU_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES"}],e86=_1((q,K)=>{if(E7()==="firstParty")return;let _=q.toLowerCase();for(let z of ht9){let Y=process.env[z.modelEnvVar],$=process.env[z.capabilitiesEnvVar];if(!Y||$===void 0)continue;if(_!==Y.toLowerCase())continue;return $.toLowerCase().split(",").map((A)=>A.trim()).includes(K)}return},(q,K)=>`${q.toLowerCase()}:${K}`)});function St9(q){let K=[],_=[];for(let z of q)if(sSq.includes(z))K.push(z);else _.push(z);return{allowed:K,disallowed:_}}function tSq(q){if(!q||q.length===0)return;if(d7()){console.warn("Warning: Custom betas are only available for API key users. Ignoring provided betas.");return}let{allowed:K,disallowed:_}=St9(q);for(let z of _)console.warn(`Warning: Beta header '${z}' is not allowed. Only the following betas are supported: ${sSq.join(", ")}`);return K.length>0?K:void 0}function aSq(q){let K=e86(q,"interleaved_thinking");if(K!==void 0)return K;let _=bY(q),z=E7();if(z==="foundry")return!0;if(z==="firstParty")return!_.includes("claude-3-");return _.includes("claude-opus-4")||_.includes("claude-sonnet-4")}function Ct9(q){let K=bY(q);return K.includes("claude-opus-4")||K.includes("claude-sonnet-4")||K.includes("claude-haiku-4")}function bt9(q){let K=bY(q),_=E7();if(_==="foundry")return!0;if(_==="firstParty")return!K.includes("claude-3-");return K.includes("claude-opus-4")||K.includes("claude-sonnet-4")||K.includes("claude-haiku-4")}function j$6(q){let K=bY(q),_=E7();if(_!=="firstParty"&&_!=="foundry")return!1;return K.includes("claude-sonnet-4-6")||K.includes("claude-sonnet-4-5")||K.includes("claude-opus-4-1")||K.includes("claude-opus-4-5")||K.includes("claude-opus-4-6")||K.includes("claude-haiku-4-5")}function DG6(q){{let K=bY(q);if(E7()!=="firstParty")return!1;let _=g8("tengu_auto_mode_config",{}),z=q.toLowerCase();if(_?.allowModels?.some((Y)=>Y.toLowerCase()===z||Y.toLowerCase()===K))return!0;return/^claude-(opus|sonnet)-4-6/.test(K)}return!1}function eSq(){let q=E7();if(q==="vertex"||q==="bedrock")return J2q;return H2q}function q16(){return(E7()==="firstParty"||E7()==="foundry")&&!i6(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function fG6(){return E7()==="firstParty"&&!i6(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function OD8(q,K){let _=[...qL(q)];if(K?.isAgenticQuery){if(!_.includes(mJ8))_.push(mJ8)}let z=QM();if(!z||z.length===0)return _;return[..._,...z.filter((Y)=>!_.includes(Y))]}function wD8(){qv1.cache?.clear?.(),qL.cache?.clear?.(),Kv1.cache?.clear?.()}var sSq,qv1,qL,Kv1;var HG=y(()=>{F4();o1();v8();e66();H3();G7();fP();m8();aq();AD8();Az();U1();sSq=[s66];qv1=_1((q)=>{let K=[],_=bY(q).includes("haiku"),z=E7(),Y=q16();if(!_)K.push(mJ8);if(d7())K.push(rM);if(cE(q))K.push(s66);if(!i6(process.env.DISABLE_INTERLEAVED_THINKING)&&aSq(q))K.push(j2q);if(Y&&aSq(q)&&!i7()&&N7().showThinkingSummaries!==!0)K.push(BJ8);M2q;let $=i6(process.env.USE_API_CONTEXT_MANAGEMENT)&&!1,A=bt9(q);if(q16()&&($||A))K.push(pJ8);let O=tY("tengu_tool_pear"),w=!O&&g8("tengu_amber_json_tools",!1);if(Y&&j$6(q)&&O)K.push(t66);if(z==="vertex"&&Ct9(q))K.push(yX1);if(z==="foundry")K.push(yX1);if(Y)K.push(pF6);if(process.env.ANTHROPIC_BETAS)K.push(...process.env.ANTHROPIC_BETAS.split(",").map((j)=>j.trim()).filter(Boolean));return K}),qL=_1((q)=>{let K=qv1(q);if(E7()==="bedrock")return K.filter((_)=>!SX1.has(_));return K}),Kv1=_1((q)=>{return qv1(q).filter((_)=>SX1.has(_))})});var KCq=m((TDA,qCq)=>{var K16=U6("constants"),xt9=process.cwd,jD8=null,It9=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!jD8)jD8=xt9.call(process);return jD8};try{process.cwd()}catch(q){}if(typeof process.chdir==="function"){if(HD8=process.chdir,process.chdir=function(q){jD8=null,HD8.call(process,q)},Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,HD8)}var HD8;qCq.exports=ut9;function ut9(q){if(K16.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./))K(q);if(!q.lutimes)_(q);if(q.chown=$(q.chown),q.fchown=$(q.fchown),q.lchown=$(q.lchown),q.chmod=z(q.chmod),q.fchmod=z(q.fchmod),q.lchmod=z(q.lchmod),q.chownSync=A(q.chownSync),q.fchownSync=A(q.fchownSync),q.lchownSync=A(q.lchownSync),q.chmodSync=Y(q.chmodSync),q.fchmodSync=Y(q.fchmodSync),q.lchmodSync=Y(q.lchmodSync),q.stat=O(q.stat),q.fstat=O(q.fstat),q.lstat=O(q.lstat),q.statSync=w(q.statSync),q.fstatSync=w(q.fstatSync),q.lstatSync=w(q.lstatSync),q.chmod&&!q.lchmod)q.lchmod=function(H,J,M){if(M)process.nextTick(M)},q.lchmodSync=function(){};if(q.chown&&!q.lchown)q.lchown=function(H,J,M,X){if(X)process.nextTick(X)},q.lchownSync=function(){};if(It9==="win32")q.rename=typeof q.rename!=="function"?q.rename:function(H){function J(M,X,P){var W=Date.now(),D=0;H(M,X,function f(G){if(G&&(G.code==="EACCES"||G.code==="EPERM"||G.code==="EBUSY")&&Date.now()-W<60000){if(setTimeout(function(){q.stat(X,function(Z,T){if(Z&&Z.code==="ENOENT")H(M,X,f);else P(G)})},D),D<100)D+=10;return}if(P)P(G)})}if(Object.setPrototypeOf)Object.setPrototypeOf(J,H);return J}(q.rename);q.read=typeof q.read!=="function"?q.read:function(H){function J(M,X,P,W,D,f){var G;if(f&&typeof f==="function"){var Z=0;G=function(T,v,V){if(T&&T.code==="EAGAIN"&&Z<10)return Z++,H.call(q,M,X,P,W,D,G);f.apply(this,arguments)}}return H.call(q,M,X,P,W,D,G)}if(Object.setPrototypeOf)Object.setPrototypeOf(J,H);return J}(q.read),q.readSync=typeof q.readSync!=="function"?q.readSync:function(H){return function(J,M,X,P,W){var D=0;while(!0)try{return H.call(q,J,M,X,P,W)}catch(f){if(f.code==="EAGAIN"&&D<10){D++;continue}throw f}}}(q.readSync);function K(H){H.lchmod=function(J,M,X){H.open(J,K16.O_WRONLY|K16.O_SYMLINK,M,function(P,W){if(P){if(X)X(P);return}H.fchmod(W,M,function(D){H.close(W,function(f){if(X)X(D||f)})})})},H.lchmodSync=function(J,M){var X=H.openSync(J,K16.O_WRONLY|K16.O_SYMLINK,M),P=!0,W;try{W=H.fchmodSync(X,M),P=!1}finally{if(P)try{H.closeSync(X)}catch(D){}else H.closeSync(X)}return W}}function _(H){if(K16.hasOwnProperty("O_SYMLINK")&&H.futimes)H.lutimes=function(J,M,X,P){H.open(J,K16.O_SYMLINK,function(W,D){if(W){if(P)P(W);return}H.futimes(D,M,X,function(f){H.close(D,function(G){if(P)P(f||G)})})})},H.lutimesSync=function(J,M,X){var P=H.openSync(J,K16.O_SYMLINK),W,D=!0;try{W=H.futimesSync(P,M,X),D=!1}finally{if(D)try{H.closeSync(P)}catch(f){}else H.closeSync(P)}return W};else if(H.futimes)H.lutimes=function(J,M,X,P){if(P)process.nextTick(P)},H.lutimesSync=function(){}}function z(H){if(!H)return H;return function(J,M,X){return H.call(q,J,M,function(P){if(j(P))P=null;if(X)X.apply(this,arguments)})}}function Y(H){if(!H)return H;return function(J,M){try{return H.call(q,J,M)}catch(X){if(!j(X))throw X}}}function $(H){if(!H)return H;return function(J,M,X,P){return H.call(q,J,M,X,function(W){if(j(W))W=null;if(P)P.apply(this,arguments)})}}function A(H){if(!H)return H;return function(J,M,X){try{return H.call(q,J,M,X)}catch(P){if(!j(P))throw P}}}function O(H){if(!H)return H;return function(J,M,X){if(typeof M==="function")X=M,M=null;function P(W,D){if(D){if(D.uid<0)D.uid+=4294967296;if(D.gid<0)D.gid+=4294967296}if(X)X.apply(this,arguments)}return M?H.call(q,J,M,P):H.call(q,J,P)}}function w(H){if(!H)return H;return function(J,M){var X=M?H.call(q,J,M):H.call(q,J);if(X){if(X.uid<0)X.uid+=4294967296;if(X.gid<0)X.gid+=4294967296}return X}}function j(H){if(!H)return!0;if(H.code==="ENOSYS")return!0;var J=!process.getuid||process.getuid()!==0;if(J){if(H.code==="EINVAL"||H.code==="EPERM")return!0}return!1}}});var YCq=m((vDA,zCq)=>{var _Cq=U6("stream").Stream;zCq.exports=mt9;function mt9(q){return{ReadStream:K,WriteStream:_};function K(z,Y){if(!(this instanceof K))return new K(z,Y);_Cq.call(this);var $=this;this.path=z,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536,Y=Y||{};var A=Object.keys(Y);for(var O=0,w=A.length;O<w;O++){var j=A[O];this[j]=Y[j]}if(this.encoding)this.setEncoding(this.encoding);if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!=="number")throw TypeError("end must be a Number");if(this.start>this.end)throw Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){$._read()});return}q.open(this.path,this.flags,this.mode,function(H,J){if(H){$.emit("error",H),$.readable=!1;return}$.fd=J,$.emit("open",J),$._read()})}function _(z,Y){if(!(this instanceof _))return new _(z,Y);_Cq.call(this),this.path=z,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,Y=Y||{};var $=Object.keys(Y);for(var A=0,O=$.length;A<O;A++){var w=$[A];this[w]=Y[w]}if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.start<0)throw Error("start must be >= zero");this.pos=this.start}if(this.busy=!1,this._queue=[],this.fd===null)this._open=q.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush()}}});var ACq=m((kDA,$Cq)=>{$Cq.exports=Bt9;var pt9=Object.getPrototypeOf||function(q){return q.__proto__};function Bt9(q){if(q===null||typeof q!=="object")return q;if(q instanceof Object)var K={__proto__:pt9(q)};else var K=Object.create(null);return Object.getOwnPropertyNames(q).forEach(function(_){Object.defineProperty(K,_,Object.getOwnPropertyDescriptor(q,_))}),K}});var kA=m((VDA,$v1)=>{var ZH=U6("fs"),gt9=KCq(),Ft9=YCq(),Ut9=ACq(),JD8=U6("util"),nf,XD8;if(typeof Symbol==="function"&&typeof Symbol.for==="function")nf=Symbol.for("graceful-fs.queue"),XD8=Symbol.for("graceful-fs.previous");else nf="___graceful-fs.queue",XD8="___graceful-fs.previous";function Qt9(){}function wCq(q,K){Object.defineProperty(q,nf,{get:function(){return K}})}var H$6=Qt9;if(JD8.debuglog)H$6=JD8.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))H$6=function(){var q=JD8.format.apply(JD8,arguments);q="GFS4: "+q.split(/\n/).join(`
|
|
473
480
|
GFS4: `),console.error(q)};if(!ZH[nf]){if(_v1=global[nf]||[],wCq(ZH,_v1),ZH.close=function(q){function K(_,z){return q.call(ZH,_,function(Y){if(!Y)OCq();if(typeof z==="function")z.apply(this,arguments)})}return Object.defineProperty(K,XD8,{value:q}),K}(ZH.close),ZH.closeSync=function(q){function K(_){q.apply(ZH,arguments),OCq()}return Object.defineProperty(K,XD8,{value:q}),K}(ZH.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))process.on("exit",function(){H$6(ZH[nf]),U6("assert").equal(ZH[nf].length,0)})}var _v1;if(!global[nf])wCq(global,ZH[nf]);$v1.exports=zv1(Ut9(ZH));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!ZH.__patched)$v1.exports=zv1(ZH),ZH.__patched=!0;function zv1(q){gt9(q),q.gracefulify=zv1,q.createReadStream=v,q.createWriteStream=V;var K=q.readFile;q.readFile=_;function _(R,x,I){if(typeof x==="function")I=x,x=null;return B(R,x,I);function B(p,C,g,F){return K(p,C,function(U){if(U&&(U.code==="EMFILE"||U.code==="ENFILE"))ZG6([B,[p,C,g],U,F||Date.now(),Date.now()]);else if(typeof g==="function")g.apply(this,arguments)})}}var z=q.writeFile;q.writeFile=Y;function Y(R,x,I,B){if(typeof I==="function")B=I,I=null;return p(R,x,I,B);function p(C,g,F,U,c){return z(C,g,F,function(K6){if(K6&&(K6.code==="EMFILE"||K6.code==="ENFILE"))ZG6([p,[C,g,F,U],K6,c||Date.now(),Date.now()]);else if(typeof U==="function")U.apply(this,arguments)})}}var $=q.appendFile;if($)q.appendFile=A;function A(R,x,I,B){if(typeof I==="function")B=I,I=null;return p(R,x,I,B);function p(C,g,F,U,c){return $(C,g,F,function(K6){if(K6&&(K6.code==="EMFILE"||K6.code==="ENFILE"))ZG6([p,[C,g,F,U],K6,c||Date.now(),Date.now()]);else if(typeof U==="function")U.apply(this,arguments)})}}var O=q.copyFile;if(O)q.copyFile=w;function w(R,x,I,B){if(typeof I==="function")B=I,I=0;return p(R,x,I,B);function p(C,g,F,U,c){return O(C,g,F,function(K6){if(K6&&(K6.code==="EMFILE"||K6.code==="ENFILE"))ZG6([p,[C,g,F,U],K6,c||Date.now(),Date.now()]);else if(typeof U==="function")U.apply(this,arguments)})}}var j=q.readdir;q.readdir=J;var H=/^v[0-5]\./;function J(R,x,I){if(typeof x==="function")I=x,x=null;var B=H.test(process.version)?function(g,F,U,c){return j(g,p(g,F,U,c))}:function(g,F,U,c){return j(g,F,p(g,F,U,c))};return B(R,x,I);function p(C,g,F,U){return function(c,K6){if(c&&(c.code==="EMFILE"||c.code==="ENFILE"))ZG6([B,[C,g,F],c,U||Date.now(),Date.now()]);else{if(K6&&K6.sort)K6.sort();if(typeof F==="function")F.call(this,c,K6)}}}}if(process.version.substr(0,4)==="v0.8"){var M=Ft9(q);f=M.ReadStream,Z=M.WriteStream}var X=q.ReadStream;if(X)f.prototype=Object.create(X.prototype),f.prototype.open=G;var P=q.WriteStream;if(P)Z.prototype=Object.create(P.prototype),Z.prototype.open=T;Object.defineProperty(q,"ReadStream",{get:function(){return f},set:function(R){f=R},enumerable:!0,configurable:!0}),Object.defineProperty(q,"WriteStream",{get:function(){return Z},set:function(R){Z=R},enumerable:!0,configurable:!0});var W=f;Object.defineProperty(q,"FileReadStream",{get:function(){return W},set:function(R){W=R},enumerable:!0,configurable:!0});var D=Z;Object.defineProperty(q,"FileWriteStream",{get:function(){return D},set:function(R){D=R},enumerable:!0,configurable:!0});function f(R,x){if(this instanceof f)return X.apply(this,arguments),this;else return f.apply(Object.create(f.prototype),arguments)}function G(){var R=this;S(R.path,R.flags,R.mode,function(x,I){if(x){if(R.autoClose)R.destroy();R.emit("error",x)}else R.fd=I,R.emit("open",I),R.read()})}function Z(R,x){if(this instanceof Z)return P.apply(this,arguments),this;else return Z.apply(Object.create(Z.prototype),arguments)}function T(){var R=this;S(R.path,R.flags,R.mode,function(x,I){if(x)R.destroy(),R.emit("error",x);else R.fd=I,R.emit("open",I)})}function v(R,x){return new q.ReadStream(R,x)}function V(R,x){return new q.WriteStream(R,x)}var E=q.open;q.open=S;function S(R,x,I,B){if(typeof I==="function")B=I,I=null;return p(R,x,I,B);function p(C,g,F,U,c){return E(C,g,F,function(K6,t){if(K6&&(K6.code==="EMFILE"||K6.code==="ENFILE"))ZG6([p,[C,g,F,U],K6,c||Date.now(),Date.now()]);else if(typeof U==="function")U.apply(this,arguments)})}}return q}function ZG6(q){H$6("ENQUEUE",q[0].name,q[1]),ZH[nf].push(q),Yv1()}var MD8;function OCq(){var q=Date.now();for(var K=0;K<ZH[nf].length;++K)if(ZH[nf][K].length>2)ZH[nf][K][3]=q,ZH[nf][K][4]=q;Yv1()}function Yv1(){if(clearTimeout(MD8),MD8=void 0,ZH[nf].length===0)return;var q=ZH[nf].shift(),K=q[0],_=q[1],z=q[2],Y=q[3],$=q[4];if(Y===void 0)H$6("RETRY",K.name,_),K.apply(null,_);else if(Date.now()-Y>=60000){H$6("TIMEOUT",K.name,_);var A=_.pop();if(typeof A==="function")A.call(null,z)}else{var O=Date.now()-$,w=Math.max($-Y,1),j=Math.min(w*1.2,100);if(O>=j)H$6("RETRY",K.name,_),K.apply(null,_.concat([Y]));else ZH[nf].push(q)}if(MD8===void 0)MD8=setTimeout(Yv1,0)}});var HCq=m((NDA,jCq)=>{function SS(q,K){if(typeof K==="boolean")K={forever:K};if(this._originalTimeouts=JSON.parse(JSON.stringify(q)),this._timeouts=q,this._options=K||{},this._maxRetryTime=K&&K.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever)this._cachedTimeouts=this._timeouts.slice(0)}jCq.exports=SS;SS.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};SS.prototype.stop=function(){if(this._timeout)clearTimeout(this._timeout);this._timeouts=[],this._cachedTimeouts=null};SS.prototype.retry=function(q){if(this._timeout)clearTimeout(this._timeout);if(!q)return!1;var K=new Date().getTime();if(q&&K-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(q);var _=this._timeouts.shift();if(_===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),_=this._timeouts.shift();else return!1;var z=this,Y=setTimeout(function(){if(z._attempts++,z._operationTimeoutCb){if(z._timeout=setTimeout(function(){z._operationTimeoutCb(z._attempts)},z._operationTimeout),z._options.unref)z._timeout.unref()}z._fn(z._attempts)},_);if(this._options.unref)Y.unref();return!0};SS.prototype.attempt=function(q,K){if(this._fn=q,K){if(K.timeout)this._operationTimeout=K.timeout;if(K.cb)this._operationTimeoutCb=K.cb}var _=this;if(this._operationTimeoutCb)this._timeout=setTimeout(function(){_._operationTimeoutCb()},_._operationTimeout);this._operationStart=new Date().getTime(),this._fn(this._attempts)};SS.prototype.try=function(q){console.log("Using RetryOperation.try() is deprecated"),this.attempt(q)};SS.prototype.start=function(q){console.log("Using RetryOperation.start() is deprecated"),this.attempt(q)};SS.prototype.start=SS.prototype.try;SS.prototype.errors=function(){return this._errors};SS.prototype.attempts=function(){return this._attempts};SS.prototype.mainError=function(){if(this._errors.length===0)return null;var q={},K=null,_=0;for(var z=0;z<this._errors.length;z++){var Y=this._errors[z],$=Y.message,A=(q[$]||0)+1;if(q[$]=A,A>=_)K=Y,_=A}return K}});var MCq=m((ct9)=>{var dt9=HCq();ct9.operation=function(q){var K=ct9.timeouts(q);return new dt9(K,{forever:q&&q.forever,unref:q&&q.unref,maxRetryTime:q&&q.maxRetryTime})};ct9.timeouts=function(q){if(q instanceof Array)return[].concat(q);var K={retries:10,factor:2,minTimeout:1000,maxTimeout:1/0,randomize:!1};for(var _ in q)K[_]=q[_];if(K.minTimeout>K.maxTimeout)throw Error("minTimeout is greater than maxTimeout");var z=[];for(var Y=0;Y<K.retries;Y++)z.push(this.createTimeout(Y,K));if(q&&q.forever&&!z.length)z.push(this.createTimeout(Y,K));return z.sort(function($,A){return $-A}),z};ct9.createTimeout=function(q,K){var _=K.randomize?Math.random()+1:1,z=Math.round(_*K.minTimeout*Math.pow(K.factor,q));return z=Math.min(z,K.maxTimeout),z};ct9.wrap=function(q,K,_){if(K instanceof Array)_=K,K=null;if(!_){_=[];for(var z in q)if(typeof q[z]==="function")_.push(z)}for(var Y=0;Y<_.length;Y++){var $=_[Y],A=q[$];q[$]=function(w){var j=ct9.operation(K),H=Array.prototype.slice.call(arguments,1),J=H.pop();H.push(function(M){if(j.retry(M))return;if(M)arguments[0]=j.mainError();J.apply(this,arguments)}),j.attempt(function(){w.apply(q,H)})}.bind(q,A),q[$].options=K}}});var XCq=m((EDA,PD8)=>{PD8.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32")PD8.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")PD8.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var PCq=m((LDA,TG6)=>{var Tj=global.process,J$6=function(q){return q&&typeof q==="object"&&typeof q.removeListener==="function"&&typeof q.emit==="function"&&typeof q.reallyExit==="function"&&typeof q.listeners==="function"&&typeof q.kill==="function"&&typeof q.pid==="number"&&typeof q.on==="function"};if(!J$6(Tj))TG6.exports=function(){return function(){}};else{if(Av1=U6("assert"),M$6=XCq(),Ov1=/^win/i.test(Tj.platform),GG6=U6("events"),typeof GG6!=="function")GG6=GG6.EventEmitter;if(Tj.__signal_exit_emitter__)kP=Tj.__signal_exit_emitter__;else kP=Tj.__signal_exit_emitter__=new GG6,kP.count=0,kP.emitted={};if(!kP.infinite)kP.setMaxListeners(1/0),kP.infinite=!0;TG6.exports=function(q,K){if(!J$6(global.process))return function(){};if(Av1.equal(typeof q,"function","a callback must be provided for exit handler"),X$6===!1)WD8();var _="exit";if(K&&K.alwaysLast)_="afterexit";var z=function(){if(kP.removeListener(_,q),kP.listeners("exit").length===0&&kP.listeners("afterexit").length===0)Fd6()};return kP.on(_,q),z},Fd6=function(){if(!X$6||!J$6(global.process))return;X$6=!1,M$6.forEach(function(K){try{Tj.removeListener(K,Ud6[K])}catch(_){}}),Tj.emit=Qd6,Tj.reallyExit=DD8,kP.count-=1},TG6.exports.unload=Fd6,_16=function(K,_,z){if(kP.emitted[K])return;kP.emitted[K]=!0,kP.emit(K,_,z)},Ud6={},M$6.forEach(function(q){Ud6[q]=function(){if(!J$6(global.process))return;var _=Tj.listeners(q);if(_.length===kP.count){if(Fd6(),_16("exit",null,q),_16("afterexit",null,q),Ov1&&q==="SIGHUP")q="SIGINT";Tj.kill(Tj.pid,q)}}}),TG6.exports.signals=function(){return M$6},X$6=!1,WD8=function(){if(X$6||!J$6(global.process))return;X$6=!0,kP.count+=1,M$6=M$6.filter(function(K){try{return Tj.on(K,Ud6[K]),!0}catch(_){return!1}}),Tj.emit=jv1,Tj.reallyExit=wv1},TG6.exports.load=WD8,DD8=Tj.reallyExit,wv1=function(K){if(!J$6(global.process))return;Tj.exitCode=K||0,_16("exit",Tj.exitCode,null),_16("afterexit",Tj.exitCode,null),DD8.call(Tj,Tj.exitCode)},Qd6=Tj.emit,jv1=function(K,_){if(K==="exit"&&J$6(global.process)){if(_!==void 0)Tj.exitCode=_;var z=Qd6.apply(this,arguments);return _16("exit",Tj.exitCode,null),_16("afterexit",Tj.exitCode,null),z}else return Qd6.apply(this,arguments)}}var Av1,M$6,Ov1,GG6,kP,Fd6,_16,Ud6,X$6,WD8,DD8,wv1,Qd6,jv1});var DCq=m((at9,Hv1)=>{var WCq=Symbol();function rt9(q,K,_){let z=K[WCq];if(z)return K.stat(q,($,A)=>{if($)return _($);_(null,A.mtime,z)});let Y=new Date(Math.ceil(Date.now()/1000)*1000+5);K.utimes(q,Y,Y,($)=>{if($)return _($);K.stat(q,(A,O)=>{if(A)return _(A);let w=O.mtime.getTime()%1000===0?"s":"ms";Object.defineProperty(K,WCq,{value:w}),_(null,O.mtime,w)})})}function ot9(q){let K=Date.now();if(q==="s")K=Math.ceil(K/1000)*1000;return new Date(K)}at9.probe=rt9;at9.getMtime=ot9});var vCq=m(($e9,cd6)=>{var et9=U6("path"),Xv1=kA(),qe9=MCq(),Ke9=PCq(),fCq=DCq(),tn={};function dd6(q,K){return K.lockfilePath||`${q}.lock`}function Pv1(q,K,_){if(!K.realpath)return _(null,et9.resolve(q));K.fs.realpath(q,_)}function Mv1(q,K,_){let z=dd6(q,K);K.fs.mkdir(z,(Y)=>{if(!Y)return fCq.probe(z,K.fs,($,A,O)=>{if($)return K.fs.rmdir(z,()=>{}),_($);_(null,A,O)});if(Y.code!=="EEXIST")return _(Y);if(K.stale<=0)return _(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:q}));K.fs.stat(z,($,A)=>{if($){if($.code==="ENOENT")return Mv1(q,{...K,stale:0},_);return _($)}if(!ZCq(A,K))return _(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:q}));GCq(q,K,(O)=>{if(O)return _(O);Mv1(q,{...K,stale:0},_)})})})}function ZCq(q,K){return q.mtime.getTime()<Date.now()-K.stale}function GCq(q,K,_){K.fs.rmdir(dd6(q,K),(z)=>{if(z&&z.code!=="ENOENT")return _(z);_()})}function fD8(q,K){let _=tn[q];if(_.updateTimeout)return;if(_.updateDelay=_.updateDelay||K.update,_.updateTimeout=setTimeout(()=>{_.updateTimeout=null,K.fs.stat(_.lockfilePath,(z,Y)=>{let $=_.lastUpdate+K.stale<Date.now();if(z){if(z.code==="ENOENT"||$)return Jv1(q,_,Object.assign(z,{code:"ECOMPROMISED"}));return _.updateDelay=1000,fD8(q,K)}if(_.mtime.getTime()!==Y.mtime.getTime())return Jv1(q,_,Object.assign(Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let O=fCq.getMtime(_.mtimePrecision);K.fs.utimes(_.lockfilePath,O,O,(w)=>{let j=_.lastUpdate+K.stale<Date.now();if(_.released)return;if(w){if(w.code==="ENOENT"||j)return Jv1(q,_,Object.assign(w,{code:"ECOMPROMISED"}));return _.updateDelay=1000,fD8(q,K)}_.mtime=O,_.lastUpdate=Date.now(),_.updateDelay=null,fD8(q,K)})})},_.updateDelay),_.updateTimeout.unref)_.updateTimeout.unref()}function Jv1(q,K,_){if(K.released=!0,K.updateTimeout)clearTimeout(K.updateTimeout);if(tn[q]===K)delete tn[q];K.options.onCompromised(_)}function _e9(q,K,_){K={stale:1e4,update:null,realpath:!0,retries:0,fs:Xv1,onCompromised:(z)=>{throw z},...K},K.retries=K.retries||0,K.retries=typeof K.retries==="number"?{retries:K.retries}:K.retries,K.stale=Math.max(K.stale||0,2000),K.update=K.update==null?K.stale/2:K.update||0,K.update=Math.max(Math.min(K.update,K.stale/2),1000),Pv1(q,K,(z,Y)=>{if(z)return _(z);let $=qe9.operation(K.retries);$.attempt(()=>{Mv1(Y,K,(A,O,w)=>{if($.retry(A))return;if(A)return _($.mainError());let j=tn[Y]={lockfilePath:dd6(Y,K),mtime:O,mtimePrecision:w,options:K,lastUpdate:Date.now()};fD8(Y,K),_(null,(H)=>{if(j.released)return H&&H(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));TCq(Y,{...K,realpath:!1},H)})})})})}function TCq(q,K,_){K={fs:Xv1,realpath:!0,...K},Pv1(q,K,(z,Y)=>{if(z)return _(z);let $=tn[Y];if(!$)return _(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));$.updateTimeout&&clearTimeout($.updateTimeout),$.released=!0,delete tn[Y],GCq(Y,K,_)})}function ze9(q,K,_){K={stale:1e4,realpath:!0,fs:Xv1,...K},K.stale=Math.max(K.stale||0,2000),Pv1(q,K,(z,Y)=>{if(z)return _(z);K.fs.stat(dd6(Y,K),($,A)=>{if($)return $.code==="ENOENT"?_(null,!1):_($);return _(null,!ZCq(A,K))})})}function Ye9(){return tn}Ke9(()=>{for(let q in tn){let K=tn[q].options;try{K.fs.rmdirSync(dd6(q,K))}catch(_){}}});$e9.lock=_e9;$e9.unlock=TCq;$e9.check=ze9;$e9.getLocks=Ye9});var VCq=m((RDA,kCq)=>{var He9=kA();function Je9(q){let K=["mkdir","realpath","stat","rmdir","utimes"],_={...q};return K.forEach((z)=>{_[z]=(...Y)=>{let $=Y.pop(),A;try{A=q[`${z}Sync`](...Y)}catch(O){return $(O)}$(null,A)}}),_}function Me9(q){return(...K)=>new Promise((_,z)=>{K.push((Y,$)=>{if(Y)z(Y);else _($)}),q(...K)})}function Xe9(q){return(...K)=>{let _,z;if(K.push((Y,$)=>{_=Y,z=$}),q(...K),_)throw _;return z}}function Pe9(q){if(q={...q},q.fs=Je9(q.fs||He9),typeof q.retries==="number"&&q.retries>0||q.retries&&typeof q.retries.retries==="number"&&q.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return q}kCq.exports={toPromise:Me9,toSync:Xe9,toSyncOptions:Pe9}});var yCq=m((hDA,z16)=>{var vG6=vCq(),{toPromise:ZD8,toSync:GD8,toSyncOptions:Wv1}=VCq();async function NCq(q,K){let _=await ZD8(vG6.lock)(q,K);return ZD8(_)}function We9(q,K){let _=GD8(vG6.lock)(q,Wv1(K));return GD8(_)}function De9(q,K){return ZD8(vG6.unlock)(q,K)}function fe9(q,K){return GD8(vG6.unlock)(q,Wv1(K))}function Ze9(q,K){return ZD8(vG6.check)(q,K)}function Ge9(q,K){return GD8(vG6.check)(q,Wv1(K))}z16.exports=NCq;z16.exports.lock=NCq;z16.exports.unlock=De9;z16.exports.lockSync=We9;z16.exports.unlockSync=fe9;z16.exports.check=Ze9;z16.exports.checkSync=Ge9});function fv1(){if(!Dv1)Dv1=yCq();return Dv1}function PJ(q,K){return fv1().lock(q,K)}function ECq(q,K){return fv1().lockSync(q,K)}function LCq(q,K){return fv1().check(q,K)}var Dv1;function RCq(q,K){return{name:`${q.name}-with-${K.name}-fallback`,read(){let _=q.read();if(_!==null&&_!==void 0)return _;return K.read()||{}},async readAsync(){let _=await q.readAsync();if(_!==null&&_!==void 0)return _;return await K.readAsync()||{}},update(_){let z=q.read(),Y=q.update(_);if(Y.success){if(z===null)K.delete();return Y}let $=K.update(_);if($.success){if(z!==null)q.delete();return{success:!0,warning:$.warning}}return{success:!1}},delete(){let _=q.delete(),z=K.delete();return _||z}}}async function ve9(){try{let q=gE(bz6),K=An(),{stdout:_,code:z}=await a8("security",["find-generic-password","-a",K,"-w","-s",q],{useCwd:!1,preserveOutputOnError:!1});if(z===0&&_)return r8(_.trim())}catch(q){}return null}function SCq(){if(kG6!==void 0)return kG6;if(process.platform!=="darwin")return kG6=!1,!1;try{kG6=K_6("security",["show-keychain-info"],{reject:!1,stdio:["ignore","pipe","pipe"]}).exitCode===36}catch{kG6=!1}return kG6}var Te9=4032,hCq,kG6;var Zv1=y(()=>{Df();_8();XK();k41();l8();xz6();hCq={name:"keychain",read(){let q=DP.cache;if(Date.now()-q.cachedAt<bJ1)return q.data;try{let K=gE(bz6),_=An(),z=Ph(`security find-generic-password -a "${_}" -w -s "${K}"`);if(z){let Y=r8(z);return DP.cache={data:Y,cachedAt:Date.now()},Y}}catch(K){}if(q.data!==null)return N("[keychain] read failed; serving stale cache",{level:"warn"}),DP.cache={data:q.data,cachedAt:Date.now()},q.data;return DP.cache={data:null,cachedAt:Date.now()},null},async readAsync(){let q=DP.cache;if(Date.now()-q.cachedAt<bJ1)return q.data;if(DP.readInFlight)return DP.readInFlight;let K=DP.generation,_=ve9().then((z)=>{if(K===DP.generation){if(z===null&&q.data!==null)N("[keychain] readAsync failed; serving stale cache",{level:"warn"});let Y=z??q.data;return DP.cache={data:Y,cachedAt:Date.now()},DP.readInFlight=null,Y}return z});return DP.readInFlight=_,_},update(q){ZV();try{let K=gE(bz6),_=An(),z=g6(q),Y=Buffer.from(z,"utf-8").toString("hex"),$=`add-generic-password -U -a "${_}" -s "${K}" -X "${Y}"
|
|
474
|
-
`,A;if($.length<=Te9)A=K_6("security",["-i"],{input:$,stdio:["pipe","pipe","pipe"],reject:!1});else N(`Keychain payload (${z.length}B JSON) exceeds security -i stdin limit; using argv`,{level:"warn"}),A=K_6("security",["add-generic-password","-U","-a",_,"-s",K,"-X",Y],{stdio:["ignore","pipe","pipe"],reject:!1});if(A.exitCode!==0)return{success:!1};return DP.cache={data:q,cachedAt:Date.now()},{success:!0}}catch(K){return{success:!1}}},delete(){ZV();try{let q=gE(bz6),K=An();return Ph(`security delete-generic-password -a "${K}" -s "${q}"`),!0}catch(q){return!1}}}});import{chmodSync as ke9}from"fs";import{join as Ve9}from"path";function TD8(){let q=c1(),K=".credentials.json";return{storageDir:q,storagePath:Ve9(q,".credentials.json")}}var Gv1;var CCq=y(()=>{m8();y8();e7();l8();Gv1={name:"plaintext",read(){let{storagePath:q}=TD8();try{let K=X8().readFileSync(q,{encoding:"utf8"});return r8(K)}catch{return null}},async readAsync(){let{storagePath:q}=TD8();try{let K=await X8().readFile(q,{encoding:"utf8"});return r8(K)}catch{return null}},update(q){try{let{storageDir:K,storagePath:_}=TD8();try{X8().mkdirSync(K)}catch(z){if(s1(z)!=="EEXIST")throw z}return $j(_,g6(q),{encoding:"utf8",flush:!1}),ke9(_,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch{return{success:!1}}},delete(){let{storagePath:q}=TD8();try{return X8().unlinkSync(q),!0}catch(K){if(s1(K)==="ENOENT")return!0;return!1}}}});function c3(){if(process.platform==="darwin")return RCq(hCq,Gv1);return Gv1}var $16=y(()=>{Zv1();CCq()});import{execFile as Ne9}from"child_process";function bCq(q){return new Promise((K)=>{Ne9("security",["find-generic-password","-a",An(),"-w","-s",q],{encoding:"utf-8",timeout:ye9},(_,z)=>{K({stdout:_?null:z?.trim()||null,timedOut:Boolean(_&&"killed"in _&&_.killed)})})})}function xCq(){if(process.platform!=="darwin"||vD8||f9())return;let q=bCq(gE(bz6)),K=bCq(gE());vD8=Promise.all([q,K]).then(([_,z])=>{if(!_.timedOut)HYq(_.stdout);if(!z.timedOut)Tv1={stdout:z.stdout}})}async function ICq(){if(vD8)await vD8}function uCq(){return Tv1}function vv1(){Tv1=null}var ye9=1e4,Tv1=null,vD8=null;var kv1=y(()=>{m8();xz6()});function R7(q,K,_){return new Promise((z,Y)=>{if(K?.aborted){if(_?.throwOnAbort||_?.abortError)Y(_.abortError?.()??Error("aborted"));else z();return}let $=setTimeout((O,w,j)=>{O?.removeEventListener("abort",w),j()},q,K,A,z);function A(){if(clearTimeout($),_?.throwOnAbort||_?.abortError)Y(_.abortError?.()??Error("aborted"));else z()}if(K?.addEventListener("abort",A,{once:!0}),_?.unref)$.unref()})}function pCq(){return mCq}function kD8(){mCq.clear()}var mCq;var VD8=y(()=>{mCq=new Map});var _L={};T8(_L,{validateForceLoginOrg:()=>qi,saveOAuthTokensIfNeeded:()=>yG6,saveApiKey:()=>RJ1,removeApiKey:()=>pv1,refreshGcpCredentialsIfNeeded:()=>gd6,refreshGcpAuth:()=>nCq,refreshAwsAuth:()=>cCq,refreshAndGetAwsCredentials:()=>l66,prefetchGcpCredentialsIfSafe:()=>uv1,prefetchAwsCredentialsAndBedRockInfoIfSafe:()=>mv1,prefetchApiKeyFromApiKeyHelperIfSafe:()=>bv1,isUsing3PServices:()=>A16,isTeamSubscriber:()=>W$6,isTeamPremiumSubscriber:()=>_86,isProSubscriber:()=>mI,isOverageProvisioningAllowed:()=>EG6,isOtelHeadersHelperFromProjectOrLocalSettings:()=>oCq,isMaxSubscriber:()=>HS,isGcpAuthRefreshFromProjectSettings:()=>Iv1,isEnterpriseSubscriber:()=>LG6,isCustomApiKeyApproved:()=>Fe9,isConsumerSubscriber:()=>sd6,isClaudeAISubscriber:()=>d7,isAwsCredentialExportFromProjectSettings:()=>Sv1,isAwsAuthRefreshFromProjectSettings:()=>Rv1,isAnthropicAuthEnabled:()=>WJ,is1PApiCustomer:()=>P$6,hasProfileScope:()=>BW,hasOpusAccess:()=>de9,hasAnthropicApiKeyAuth:()=>Ev1,handleOAuth401Error:()=>OS,getSubscriptionType:()=>yK,getSubscriptionName:()=>ED8,getRateLimitTier:()=>qF,getOtelHeadersFromHelper:()=>Bv1,getOauthAccountInfo:()=>B_,getConfiguredApiKeyHelper:()=>eg,getClaudeAIOAuthTokensAsync:()=>nd6,getClaudeAIOAuthTokens:()=>Kq,getAuthTokenSource:()=>qS,getApiKeyHelperElapsedMs:()=>Cv1,getApiKeyFromConfigOrMacOSKeychain:()=>NG6,getApiKeyFromApiKeyHelperCached:()=>Nv1,getApiKeyFromApiKeyHelper:()=>WG6,getAnthropicApiKeyWithSource:()=>Ow,getAnthropicApiKey:()=>zv,getAccountInformation:()=>RG6,clearOAuthTokenCache:()=>ad6,clearGcpCredentialsCache:()=>od6,clearAwsCredentialsCache:()=>rd6,clearApiKeyHelperCache:()=>id6,checkGcpCredentialsValid:()=>lCq,checkAndRefreshOAuthTokenIfNeeded:()=>k$,calculateApiKeyHelperTTL:()=>dCq});import{exec as UCq}from"child_process";import{mkdir as Ee9,stat as Le9}from"fs/promises";import{join as Re9}from"path";function yD8(){return i6(process.env.CLAUDE_CODE_REMOTE)||process.env.CLAUDE_CODE_ENTRYPOINT==="claude-desktop"}function WJ(){return!1;let q=false,_=(Z7()||{}).apiKeyHelper,z=process.env.ANTHROPIC_AUTH_TOKEN||_||process.env.CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR,{source:Y}=Ow({skipRetrievingKeyFromApiKeyHelper:!0}),$=Y==="ANTHROPIC_API_KEY"||Y==="apiKeyHelper";return!(q||z&&!yD8()||$&&!yD8())}function qS(){if(f9()){if(eg())return{source:"apiKeyHelper",hasToken:!0};return{source:"none",hasToken:!1}}if(process.env.ANTHROPIC_AUTH_TOKEN&&!yD8())return{source:"ANTHROPIC_AUTH_TOKEN",hasToken:!0};if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{source:"CLAUDE_CODE_OAUTH_TOKEN",hasToken:!0};if(HJ8()){if(process.env.CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR)return{source:"CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",hasToken:!0};return{source:"CCR_OAUTH_TOKEN_FILE",hasToken:!0}}if(eg()&&!yD8())return{source:"apiKeyHelper",hasToken:!0};let _=Kq();if(KS(_?.scopes)&&_?.accessToken)return{source:"claude.ai",hasToken:!0};return{source:"none",hasToken:!1}}function zv(){let{key:q}=Ow();return q}function Ev1(){let{key:q,source:K}=Ow({skipRetrievingKeyFromApiKeyHelper:!0});return q!==null&&K!=="none"}function Ow(q={}){if(f9()){if(process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};if(eg())return{key:q.skipRetrievingKeyFromApiKeyHelper?null:Nv1(),source:"apiKeyHelper"};return{key:null,source:"none"}}let K=LT()?void 0:process.env.ANTHROPIC_API_KEY;if(cb6()&&K)return{key:K,source:"ANTHROPIC_API_KEY"};if(i6(!1)){let $=SJ1();if($)return{key:$,source:"ANTHROPIC_API_KEY"};if(!K&&!process.env.CLAUDE_CODE_OAUTH_TOKEN&&!process.env.CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR)throw Error("ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN env var is required");if(K)return{key:K,source:"ANTHROPIC_API_KEY"};return{key:null,source:"none"}}if(K&&j8().customApiKeyResponses?.approved?.includes(GV(K)))return{key:K,source:"ANTHROPIC_API_KEY"};let _=SJ1();if(_)return{key:_,source:"ANTHROPIC_API_KEY"};if(eg()){if(q.skipRetrievingKeyFromApiKeyHelper)return{key:null,source:"apiKeyHelper"};return{key:Nv1(),source:"apiKeyHelper"}}let Y=NG6();if(Y)return Y;return{key:null,source:"none"}}function eg(){if(f9())return v1("flagSettings")?.apiKeyHelper;return(Z7()||{}).apiKeyHelper}function QCq(){let q=eg();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.apiKeyHelper===q||_?.apiKeyHelper===q}function Lv1(){return(Z7()||{}).awsAuthRefresh}function Rv1(){let q=Lv1();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.awsAuthRefresh===q||_?.awsAuthRefresh===q}function hv1(){return(Z7()||{}).awsCredentialExport}function Sv1(){let q=hv1();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.awsCredentialExport===q||_?.awsCredentialExport===q}function dCq(){let q=process.env.CLAUDE_CODE_API_KEY_HELPER_TTL_MS;if(q){let K=parseInt(q,10);if(!Number.isNaN(K)&&K>=0)return K;N(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${q}`,{level:"error"})}return he9}function Cv1(){let q=en?.startedAt;return q?Date.now()-q:0}async function WG6(q){if(!eg())return null;let K=dCq();if(KL){if(Date.now()-KL.timestamp<K)return KL.value;if(!en)en={promise:BCq(q,!1,VG6),startedAt:null};return KL.value}if(en)return en.promise;return en={promise:BCq(q,!0,VG6),startedAt:Date.now()},en.promise}async function BCq(q,K,_){try{let z=await Se9(q);if(_!==VG6)return z;if(z!==null)KL={value:z,timestamp:Date.now()};return z}catch(z){if(_!==VG6)return" ";let Y=z instanceof Error?z.message:String(z);if(console.error($8.red(`apiKeyHelper failed: ${Y}`)),N(`Error getting API key from apiKeyHelper: ${Y}`,{level:"error"}),!K&&KL&&KL.value!==" ")return KL={...KL,timestamp:Date.now()},KL.value;return KL={value:" ",timestamp:Date.now()}," "}finally{if(_===VG6)en=null}}async function Se9(q){let K=eg();if(!K)return null;if(QCq()){if(!l$()&&!q){let $=Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("apiKeyHelper invoked before trust check",$),d("tengu_apiKeyHelper_missing_trust11",{}),null}}let _=await m_(K,{shell:!0,timeout:600000,reject:!1});if(_.failed){let Y=_.timedOut?"timed out":`exited ${_.exitCode}`,$=_.stderr?.trim();throw Error($?`${Y}: ${$}`:Y)}let z=_.stdout?.trim();if(!z)throw Error("did not return a value");return z}function Nv1(){return KL?.value??null}function id6(){VG6++,KL=null,en=null}function bv1(q){if(QCq()&&!l$())return;WG6(q)}async function be9(){let q=Lv1();if(!q)return!1;if(Rv1()){if(!l$()&&!i7()){let _=Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("awsAuthRefresh invoked before trust check",_),d("tengu_awsAuthRefresh_missing_trust",{}),!1}}try{return N("Fetching AWS caller identity for AWS auth refresh command"),await VX1(),N("Fetched AWS caller identity, skipping AWS auth refresh command"),!1}catch{return cCq(q)}}function cCq(q){N("Running AWS auth refresh command");let K=FW.getInstance();return K.startAuthentication(),new Promise((_)=>{let z=UCq(q,{timeout:xe9});z.stdout.on("data",(Y)=>{let $=Y.toString().trim();if($)K.addOutput($),N($,{level:"debug"})}),z.stderr.on("data",(Y)=>{let $=Y.toString().trim();if($)K.setError($),N($,{level:"error"})}),z.on("close",(Y,$)=>{if(Y===0)N("AWS auth refresh completed successfully"),K.endAuthentication(!0),_(!0);else{let O=$==="SIGTERM"?$8.red("AWS auth refresh timed out after 3 minutes. Run your auth command manually in a separate terminal."):$8.red("Error running awsAuthRefresh (in settings or ~/.claude.json):");console.error(O),K.endAuthentication(!1),_(!1)}})})}async function Ie9(){let q=hv1();if(!q)return null;if(Sv1()){if(!l$()&&!i7()){let _=Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("awsCredentialExport invoked before trust check",_),d("tengu_awsCredentialExport_missing_trust",{}),null}}try{return N("Fetching AWS caller identity for credential export command"),await VX1(),N("Fetched AWS caller identity, skipping AWS credential export command"),null}catch{try{N("Running AWS credential export command");let K=await m_(q,{shell:!0,reject:!1});if(K.exitCode!==0||!K.stdout)throw Error("awsCredentialExport did not return a valid value");let _=r8(K.stdout.trim());if(!O2q(_))throw Error("awsCredentialExport did not return valid AWS STS output structure");return N("AWS credentials retrieved from awsCredentialExport"),{accessKeyId:_.Credentials.AccessKeyId,secretAccessKey:_.Credentials.SecretAccessKey,sessionToken:_.Credentials.SessionToken}}catch(K){let _=$8.red("Error getting AWS credentials from awsCredentialExport (in settings or ~/.claude.json):");if(K instanceof Error)console.error(_,K.message);else console.error(_,K);return null}}}function rd6(){l66.cache.clear()}function xv1(){return(Z7()||{}).gcpAuthRefresh}function Iv1(){let q=xv1();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.gcpAuthRefresh===q||_?.gcpAuthRefresh===q}async function lCq(){try{let{GoogleAuth:q}=await Promise.resolve().then(() => O6(KD8(),1)),K=new q({scopes:["https://www.googleapis.com/auth/cloud-platform"]}),_=(async()=>{await(await K.getClient()).getAccessToken()})(),z=R7(ue9).then(()=>{throw new aCq("GCP credentials check timed out")});return await Promise.race([_,z]),!0}catch{return!1}}async function pe9(){let q=xv1();if(!q)return!1;if(Iv1()){if(!l$()&&!i7()){let _=Error(`Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("gcpAuthRefresh invoked before trust check",_),d("tengu_gcpAuthRefresh_missing_trust",{}),!1}}try{if(N("Checking GCP credentials validity for auth refresh"),await lCq())return N("GCP credentials are valid, skipping auth refresh command"),!1}catch{}return nCq(q)}function nCq(q){N("Running GCP auth refresh command");let K=FW.getInstance();return K.startAuthentication(),new Promise((_)=>{let z=UCq(q,{timeout:Be9});z.stdout.on("data",(Y)=>{let $=Y.toString().trim();if($)K.addOutput($),N($,{level:"debug"})}),z.stderr.on("data",(Y)=>{let $=Y.toString().trim();if($)K.setError($),N($,{level:"error"})}),z.on("close",(Y,$)=>{if(Y===0)N("GCP auth refresh completed successfully"),K.endAuthentication(!0),_(!0);else{let O=$==="SIGTERM"?$8.red("GCP auth refresh timed out after 3 minutes. Run your auth command manually in a separate terminal."):$8.red("Error running gcpAuthRefresh (in settings or ~/.claude.json):");console.error(O),K.endAuthentication(!1),_(!1)}})})}function od6(){gd6.cache.clear()}function uv1(){if(!xv1())return;if(Iv1()){if(!l$()&&!i7())return}gd6()}function mv1(){let q=Lv1(),K=hv1();if(!q&&!K)return;if(Rv1()||Sv1()){if(!l$()&&!i7())return}l66(),n9()}function ge9(q){return/^[a-zA-Z0-9-_]+$/.test(q)}async function RJ1(q){if(!ge9(q))throw Error("Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.");await iCq();let K=!1;if(process.platform==="darwin")try{let z=gE(),Y=An(),$=Buffer.from(q,"utf-8").toString("hex"),A=`add-generic-password -U -a "${Y}" -s "${z}" -X "${$}"
|
|
481
|
+
`,A;if($.length<=Te9)A=K_6("security",["-i"],{input:$,stdio:["pipe","pipe","pipe"],reject:!1});else N(`Keychain payload (${z.length}B JSON) exceeds security -i stdin limit; using argv`,{level:"warn"}),A=K_6("security",["add-generic-password","-U","-a",_,"-s",K,"-X",Y],{stdio:["ignore","pipe","pipe"],reject:!1});if(A.exitCode!==0)return{success:!1};return DP.cache={data:q,cachedAt:Date.now()},{success:!0}}catch(K){return{success:!1}}},delete(){ZV();try{let q=gE(bz6),K=An();return Ph(`security delete-generic-password -a "${K}" -s "${q}"`),!0}catch(q){return!1}}}});import{chmodSync as ke9}from"fs";import{join as Ve9}from"path";function TD8(){let q=c1(),K=".credentials.json";return{storageDir:q,storagePath:Ve9(q,".credentials.json")}}var Gv1;var CCq=y(()=>{m8();y8();e7();l8();Gv1={name:"plaintext",read(){let{storagePath:q}=TD8();try{let K=X8().readFileSync(q,{encoding:"utf8"});return r8(K)}catch{return null}},async readAsync(){let{storagePath:q}=TD8();try{let K=await X8().readFile(q,{encoding:"utf8"});return r8(K)}catch{return null}},update(q){try{let{storageDir:K,storagePath:_}=TD8();try{X8().mkdirSync(K)}catch(z){if(s1(z)!=="EEXIST")throw z}return $j(_,g6(q),{encoding:"utf8",flush:!1}),ke9(_,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch{return{success:!1}}},delete(){let{storagePath:q}=TD8();try{return X8().unlinkSync(q),!0}catch(K){if(s1(K)==="ENOENT")return!0;return!1}}}});function c3(){if(process.platform==="darwin")return RCq(hCq,Gv1);return Gv1}var $16=y(()=>{Zv1();CCq()});import{execFile as Ne9}from"child_process";function bCq(q){return new Promise((K)=>{Ne9("security",["find-generic-password","-a",An(),"-w","-s",q],{encoding:"utf-8",timeout:ye9},(_,z)=>{K({stdout:_?null:z?.trim()||null,timedOut:Boolean(_&&"killed"in _&&_.killed)})})})}function xCq(){if(process.platform!=="darwin"||vD8||f9())return;let q=bCq(gE(bz6)),K=bCq(gE());vD8=Promise.all([q,K]).then(([_,z])=>{if(!_.timedOut)HYq(_.stdout);if(!z.timedOut)Tv1={stdout:z.stdout}})}async function ICq(){if(vD8)await vD8}function uCq(){return Tv1}function vv1(){Tv1=null}var ye9=1e4,Tv1=null,vD8=null;var kv1=y(()=>{m8();xz6()});function R7(q,K,_){return new Promise((z,Y)=>{if(K?.aborted){if(_?.throwOnAbort||_?.abortError)Y(_.abortError?.()??Error("aborted"));else z();return}let $=setTimeout((O,w,j)=>{O?.removeEventListener("abort",w),j()},q,K,A,z);function A(){if(clearTimeout($),_?.throwOnAbort||_?.abortError)Y(_.abortError?.()??Error("aborted"));else z()}if(K?.addEventListener("abort",A,{once:!0}),_?.unref)$.unref()})}function pCq(){return mCq}function kD8(){mCq.clear()}var mCq;var VD8=y(()=>{mCq=new Map});var _L={};T8(_L,{validateForceLoginOrg:()=>qi,saveOAuthTokensIfNeeded:()=>yG6,saveApiKey:()=>RJ1,removeApiKey:()=>pv1,refreshGcpCredentialsIfNeeded:()=>gd6,refreshGcpAuth:()=>nCq,refreshAwsAuth:()=>cCq,refreshAndGetAwsCredentials:()=>l66,prefetchGcpCredentialsIfSafe:()=>uv1,prefetchAwsCredentialsAndBedRockInfoIfSafe:()=>mv1,prefetchApiKeyFromApiKeyHelperIfSafe:()=>bv1,isUsing3PServices:()=>A16,isTeamSubscriber:()=>W$6,isTeamPremiumSubscriber:()=>_86,isProSubscriber:()=>mI,isOverageProvisioningAllowed:()=>EG6,isOtelHeadersHelperFromProjectOrLocalSettings:()=>oCq,isMaxSubscriber:()=>HS,isGcpAuthRefreshFromProjectSettings:()=>Iv1,isEnterpriseSubscriber:()=>LG6,isCustomApiKeyApproved:()=>Fe9,isConsumerSubscriber:()=>sd6,isClaudeAISubscriber:()=>d7,isAwsCredentialExportFromProjectSettings:()=>Sv1,isAwsAuthRefreshFromProjectSettings:()=>Rv1,isAnthropicAuthEnabled:()=>WJ,is1PApiCustomer:()=>P$6,hasProfileScope:()=>BW,hasOpusAccess:()=>de9,hasAnthropicApiKeyAuth:()=>Ev1,handleOAuth401Error:()=>OS,getSubscriptionType:()=>yK,getSubscriptionName:()=>ED8,getRateLimitTier:()=>qF,getOtelHeadersFromHelper:()=>Bv1,getOauthAccountInfo:()=>B_,getConfiguredApiKeyHelper:()=>eg,getClaudeAIOAuthTokensAsync:()=>nd6,getClaudeAIOAuthTokens:()=>Kq,getAuthTokenSource:()=>qS,getApiKeyHelperElapsedMs:()=>Cv1,getApiKeyFromConfigOrMacOSKeychain:()=>NG6,getApiKeyFromApiKeyHelperCached:()=>Nv1,getApiKeyFromApiKeyHelper:()=>WG6,getAnthropicApiKeyWithSource:()=>Ow,getAnthropicApiKey:()=>zv,getAccountInformation:()=>RG6,clearOAuthTokenCache:()=>ad6,clearGcpCredentialsCache:()=>od6,clearAwsCredentialsCache:()=>rd6,clearApiKeyHelperCache:()=>id6,checkGcpCredentialsValid:()=>lCq,checkAndRefreshOAuthTokenIfNeeded:()=>k$,calculateApiKeyHelperTTL:()=>dCq});import{exec as UCq}from"child_process";import{mkdir as Ee9,stat as Le9}from"fs/promises";import{join as Re9}from"path";function yD8(){return i6(process.env.CLAUDE_CODE_REMOTE)||process.env.CLAUDE_CODE_ENTRYPOINT==="claude-desktop"}function WJ(){return!1;let q=false,_=(Z7()||{}).apiKeyHelper,z=process.env.ANTHROPIC_AUTH_TOKEN||_||process.env.CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR,{source:Y}=Ow({skipRetrievingKeyFromApiKeyHelper:!0}),$=Y==="ANTHROPIC_API_KEY"||Y==="apiKeyHelper";return!(q||z&&!yD8()||$&&!yD8())}function qS(){if(process.env._PPCODE_NO_OAUTH&&!process.env.ANTHROPIC_API_KEY)return{source:"none",hasToken:!1};if(f9()){if(eg())return{source:"apiKeyHelper",hasToken:!0};return{source:"none",hasToken:!1}}if(process.env.ANTHROPIC_AUTH_TOKEN&&!yD8())return{source:"ANTHROPIC_AUTH_TOKEN",hasToken:!0};if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{source:"CLAUDE_CODE_OAUTH_TOKEN",hasToken:!0};if(HJ8()){if(process.env.CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR)return{source:"CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",hasToken:!0};return{source:"CCR_OAUTH_TOKEN_FILE",hasToken:!0}}if(eg()&&!yD8())return{source:"apiKeyHelper",hasToken:!0};let _=Kq();if(KS(_?.scopes)&&_?.accessToken)return{source:"claude.ai",hasToken:!0};return{source:"none",hasToken:!1}}function zv(){let{key:q}=Ow();return q}function Ev1(){let{key:q,source:K}=Ow({skipRetrievingKeyFromApiKeyHelper:!0});return q!==null&&K!=="none"}function Ow(q={}){if(f9()){if(process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};if(eg())return{key:q.skipRetrievingKeyFromApiKeyHelper?null:Nv1(),source:"apiKeyHelper"};return{key:null,source:"none"}}let K=LT()?void 0:process.env.ANTHROPIC_API_KEY;if(cb6()&&K)return{key:K,source:"ANTHROPIC_API_KEY"};if(i6(!1)){let $=SJ1();if($)return{key:$,source:"ANTHROPIC_API_KEY"};if(!K&&!process.env.CLAUDE_CODE_OAUTH_TOKEN&&!process.env.CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR)throw Error("ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN env var is required");if(K)return{key:K,source:"ANTHROPIC_API_KEY"};return{key:null,source:"none"}}if(K&&j8().customApiKeyResponses?.approved?.includes(GV(K)))return{key:K,source:"ANTHROPIC_API_KEY"};let _=SJ1();if(_)return{key:_,source:"ANTHROPIC_API_KEY"};if(eg()){if(q.skipRetrievingKeyFromApiKeyHelper)return{key:null,source:"apiKeyHelper"};return{key:Nv1(),source:"apiKeyHelper"}}let Y=NG6();if(Y)return Y;return{key:null,source:"none"}}function eg(){if(f9())return v1("flagSettings")?.apiKeyHelper;return(Z7()||{}).apiKeyHelper}function QCq(){let q=eg();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.apiKeyHelper===q||_?.apiKeyHelper===q}function Lv1(){return(Z7()||{}).awsAuthRefresh}function Rv1(){let q=Lv1();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.awsAuthRefresh===q||_?.awsAuthRefresh===q}function hv1(){return(Z7()||{}).awsCredentialExport}function Sv1(){let q=hv1();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.awsCredentialExport===q||_?.awsCredentialExport===q}function dCq(){let q=process.env.CLAUDE_CODE_API_KEY_HELPER_TTL_MS;if(q){let K=parseInt(q,10);if(!Number.isNaN(K)&&K>=0)return K;N(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${q}`,{level:"error"})}return he9}function Cv1(){let q=en?.startedAt;return q?Date.now()-q:0}async function WG6(q){if(!eg())return null;let K=dCq();if(KL){if(Date.now()-KL.timestamp<K)return KL.value;if(!en)en={promise:BCq(q,!1,VG6),startedAt:null};return KL.value}if(en)return en.promise;return en={promise:BCq(q,!0,VG6),startedAt:Date.now()},en.promise}async function BCq(q,K,_){try{let z=await Se9(q);if(_!==VG6)return z;if(z!==null)KL={value:z,timestamp:Date.now()};return z}catch(z){if(_!==VG6)return" ";let Y=z instanceof Error?z.message:String(z);if(console.error($8.red(`apiKeyHelper failed: ${Y}`)),N(`Error getting API key from apiKeyHelper: ${Y}`,{level:"error"}),!K&&KL&&KL.value!==" ")return KL={...KL,timestamp:Date.now()},KL.value;return KL={value:" ",timestamp:Date.now()}," "}finally{if(_===VG6)en=null}}async function Se9(q){let K=eg();if(!K)return null;if(QCq()){if(!l$()&&!q){let $=Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("apiKeyHelper invoked before trust check",$),d("tengu_apiKeyHelper_missing_trust11",{}),null}}let _=await m_(K,{shell:!0,timeout:600000,reject:!1});if(_.failed){let Y=_.timedOut?"timed out":`exited ${_.exitCode}`,$=_.stderr?.trim();throw Error($?`${Y}: ${$}`:Y)}let z=_.stdout?.trim();if(!z)throw Error("did not return a value");return z}function Nv1(){return KL?.value??null}function id6(){VG6++,KL=null,en=null}function bv1(q){if(QCq()&&!l$())return;WG6(q)}async function be9(){let q=Lv1();if(!q)return!1;if(Rv1()){if(!l$()&&!i7()){let _=Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("awsAuthRefresh invoked before trust check",_),d("tengu_awsAuthRefresh_missing_trust",{}),!1}}try{return N("Fetching AWS caller identity for AWS auth refresh command"),await VX1(),N("Fetched AWS caller identity, skipping AWS auth refresh command"),!1}catch{return cCq(q)}}function cCq(q){N("Running AWS auth refresh command");let K=FW.getInstance();return K.startAuthentication(),new Promise((_)=>{let z=UCq(q,{timeout:xe9});z.stdout.on("data",(Y)=>{let $=Y.toString().trim();if($)K.addOutput($),N($,{level:"debug"})}),z.stderr.on("data",(Y)=>{let $=Y.toString().trim();if($)K.setError($),N($,{level:"error"})}),z.on("close",(Y,$)=>{if(Y===0)N("AWS auth refresh completed successfully"),K.endAuthentication(!0),_(!0);else{let O=$==="SIGTERM"?$8.red("AWS auth refresh timed out after 3 minutes. Run your auth command manually in a separate terminal."):$8.red("Error running awsAuthRefresh (in settings or ~/.claude.json):");console.error(O),K.endAuthentication(!1),_(!1)}})})}async function Ie9(){let q=hv1();if(!q)return null;if(Sv1()){if(!l$()&&!i7()){let _=Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("awsCredentialExport invoked before trust check",_),d("tengu_awsCredentialExport_missing_trust",{}),null}}try{return N("Fetching AWS caller identity for credential export command"),await VX1(),N("Fetched AWS caller identity, skipping AWS credential export command"),null}catch{try{N("Running AWS credential export command");let K=await m_(q,{shell:!0,reject:!1});if(K.exitCode!==0||!K.stdout)throw Error("awsCredentialExport did not return a valid value");let _=r8(K.stdout.trim());if(!O2q(_))throw Error("awsCredentialExport did not return valid AWS STS output structure");return N("AWS credentials retrieved from awsCredentialExport"),{accessKeyId:_.Credentials.AccessKeyId,secretAccessKey:_.Credentials.SecretAccessKey,sessionToken:_.Credentials.SessionToken}}catch(K){let _=$8.red("Error getting AWS credentials from awsCredentialExport (in settings or ~/.claude.json):");if(K instanceof Error)console.error(_,K.message);else console.error(_,K);return null}}}function rd6(){l66.cache.clear()}function xv1(){return(Z7()||{}).gcpAuthRefresh}function Iv1(){let q=xv1();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.gcpAuthRefresh===q||_?.gcpAuthRefresh===q}async function lCq(){try{let{GoogleAuth:q}=await Promise.resolve().then(() => O6(KD8(),1)),K=new q({scopes:["https://www.googleapis.com/auth/cloud-platform"]}),_=(async()=>{await(await K.getClient()).getAccessToken()})(),z=R7(ue9).then(()=>{throw new aCq("GCP credentials check timed out")});return await Promise.race([_,z]),!0}catch{return!1}}async function pe9(){let q=xv1();if(!q)return!1;if(Iv1()){if(!l$()&&!i7()){let _=Error(`Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.FEEDBACK_CHANNEL}.`);return OE("gcpAuthRefresh invoked before trust check",_),d("tengu_gcpAuthRefresh_missing_trust",{}),!1}}try{if(N("Checking GCP credentials validity for auth refresh"),await lCq())return N("GCP credentials are valid, skipping auth refresh command"),!1}catch{}return nCq(q)}function nCq(q){N("Running GCP auth refresh command");let K=FW.getInstance();return K.startAuthentication(),new Promise((_)=>{let z=UCq(q,{timeout:Be9});z.stdout.on("data",(Y)=>{let $=Y.toString().trim();if($)K.addOutput($),N($,{level:"debug"})}),z.stderr.on("data",(Y)=>{let $=Y.toString().trim();if($)K.setError($),N($,{level:"error"})}),z.on("close",(Y,$)=>{if(Y===0)N("GCP auth refresh completed successfully"),K.endAuthentication(!0),_(!0);else{let O=$==="SIGTERM"?$8.red("GCP auth refresh timed out after 3 minutes. Run your auth command manually in a separate terminal."):$8.red("Error running gcpAuthRefresh (in settings or ~/.claude.json):");console.error(O),K.endAuthentication(!1),_(!1)}})})}function od6(){gd6.cache.clear()}function uv1(){if(!xv1())return;if(Iv1()){if(!l$()&&!i7())return}gd6()}function mv1(){let q=Lv1(),K=hv1();if(!q&&!K)return;if(Rv1()||Sv1()){if(!l$()&&!i7())return}l66(),n9()}function ge9(q){return/^[a-zA-Z0-9-_]+$/.test(q)}async function RJ1(q){if(!ge9(q))throw Error("Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.");await iCq();let K=!1;if(process.platform==="darwin")try{let z=gE(),Y=An(),$=Buffer.from(q,"utf-8").toString("hex"),A=`add-generic-password -U -a "${Y}" -s "${z}" -X "${$}"
|
|
475
482
|
`;await m_("security",["-i"],{input:A,reject:!1}),d("tengu_api_key_saved_to_keychain",{}),K=!0}catch(z){H6(z),d("tengu_api_key_keychain_error",{error:d6(z)}),d("tengu_api_key_saved_to_config",{})}else d("tengu_api_key_saved_to_config",{});let _=GV(q);b8((z)=>{let Y=z.customApiKeyResponses?.approved??[];return{...z,primaryApiKey:K?z.primaryApiKey:q,customApiKeyResponses:{...z.customApiKeyResponses,approved:Y.includes(_)?Y:[...Y,_],rejected:z.customApiKeyResponses?.rejected??[]}}}),NG6.cache.clear?.(),vv1()}function Fe9(q){let K=j8(),_=GV(q);return K.customApiKeyResponses?.approved?.includes(_)??!1}async function pv1(){await iCq(),b8((q)=>({...q,primaryApiKey:void 0})),NG6.cache.clear?.(),vv1()}async function iCq(){try{await JYq()}catch(q){H6(q)}}function yG6(q){if(!KS(q.scopes))return d("tengu_oauth_tokens_not_claude_ai",{}),{success:!0};if(!q.refreshToken||!q.expiresAt)return d("tengu_oauth_tokens_inference_only",{}),{success:!0};let K=c3(),_=K.name;try{let z=K.read()||{},Y=z.claudeAiOauth;z.claudeAiOauth={accessToken:q.accessToken,refreshToken:q.refreshToken,expiresAt:q.expiresAt,scopes:q.scopes,subscriptionType:q.subscriptionType??Y?.subscriptionType??null,rateLimitTier:q.rateLimitTier??Y?.rateLimitTier??null};let $=K.update(z);if($.success)d("tengu_oauth_tokens_saved",{storageBackend:_});else d("tengu_oauth_tokens_save_failed",{storageBackend:_});return Kq.cache?.clear?.(),wD8(),kD8(),$}catch(z){return H6(z),d("tengu_oauth_tokens_save_exception",{storageBackend:_,error:d6(z)}),{success:!1,warning:"Failed to save OAuth tokens"}}}function ad6(){Kq.cache?.clear?.(),ZV()}async function Ue9(){try{let{mtimeMs:q}=await Le9(Re9(c1(),".credentials.json"));if(q!==gCq)gCq=q,ad6()}catch{Kq.cache?.clear?.()}}function OS(q){let K=Vv1.get(q);if(K)return K;let _=Qe9(q).finally(()=>{Vv1.delete(q)});return Vv1.set(q,_),_}async function Qe9(q){ad6();let K=await nd6();if(!K?.refreshToken)return!1;if(K.accessToken!==q)return d("tengu_oauth_401_recovered_from_keychain",{}),!0;return k$(0,!0)}async function nd6(){if(f9())return null;if(process.env.CLAUDE_CODE_OAUTH_TOKEN||HJ8())return Kq();try{let _=(await c3().readAsync())?.claudeAiOauth;if(!_?.accessToken)return null;return _}catch(q){return H6(q),null}}function k$(q=0,K=!1){if(q===0&&!K){if(ld6)return ld6;return ld6=yv1(q,K).finally(()=>{ld6=null}),ld6}return yv1(q,K)}async function yv1(q,K){await Ue9();let z=Kq();if(!K){if(!z?.refreshToken||!Gg(z.expiresAt))return!1}if(!z?.refreshToken)return!1;if(!KS(z.scopes))return!1;Kq.cache?.clear?.(),ZV();let Y=await nd6();if(!Y?.refreshToken||!Gg(Y.expiresAt))return!1;let $=c1();await Ee9($,{recursive:!0});let A;try{d("tengu_oauth_token_refresh_lock_acquiring",{}),A=await PJ($),d("tengu_oauth_token_refresh_lock_acquired",{})}catch(O){if(O.code==="ELOCKED"){if(q<5)return d("tengu_oauth_token_refresh_lock_retry",{retryCount:q+1}),await R7(1000+Math.random()*1000),yv1(q+1,K);return d("tengu_oauth_token_refresh_lock_retry_limit_reached",{maxRetries:5}),!1}return H6(O),d("tengu_oauth_token_refresh_lock_error",{error:d6(O)}),!1}try{Kq.cache?.clear?.(),ZV();let O=await nd6();if(!O?.refreshToken||!Gg(O.expiresAt))return d("tengu_oauth_token_refresh_race_resolved",{}),!1;d("tengu_oauth_token_refresh_starting",{});let w=await kF6(O.refreshToken,{scopes:KS(O.scopes)?void 0:O.scopes});return yG6(w),Kq.cache?.clear?.(),ZV(),!0}catch(O){H6(O),Kq.cache?.clear?.(),ZV();let w=await nd6();if(w&&!Gg(w.expiresAt))return d("tengu_oauth_token_refresh_race_recovered",{}),!0;return!1}finally{d("tengu_oauth_token_refresh_lock_releasing",{}),await A(),d("tengu_oauth_token_refresh_lock_released",{})}}function d7(){if(!WJ())return!1;return KS(Kq()?.scopes)}function BW(){return Kq()?.scopes?.includes(e96)??!1}function P$6(){if(i6(process.env.CLAUDE_CODE_USE_BEDROCK)||i6(process.env.CLAUDE_CODE_USE_VERTEX)||i6(process.env.CLAUDE_CODE_USE_FOUNDRY))return!1;if(d7())return!1;return!0}function B_(){return WJ()?j8().oauthAccount:void 0}function EG6(){let K=B_()?.billingType;if(!d7()||!K)return!1;if(K!=="stripe_subscription"&&K!=="stripe_subscription_contracted"&&K!=="apple_subscription"&&K!=="google_play_subscription")return!1;return!0}function de9(){let q=yK();return q==="max"||q==="enterprise"||q==="team"||q==="pro"||q===null}function yK(){if(OYq())return AYq();if(!WJ())return null;let q=Kq();if(!q)return null;return q.subscriptionType??null}function HS(){return yK()==="max"}function W$6(){return yK()==="team"}function _86(){return yK()==="team"&&qF()==="default_claude_max_5x"}function LG6(){return yK()==="enterprise"}function mI(){return yK()==="pro"}function qF(){if(!WJ())return null;let q=Kq();if(!q)return null;return q.rateLimitTier??null}function ED8(){switch(yK()){case"enterprise":return"Claude Enterprise";case"team":return"Claude Team";case"max":return"Claude Max";case"pro":return"Claude Pro";default:return"Claude API"}}function A16(){return!!(i6(process.env.CLAUDE_CODE_USE_BEDROCK)||i6(process.env.CLAUDE_CODE_USE_VERTEX)||i6(process.env.CLAUDE_CODE_USE_FOUNDRY))}function rCq(){return(Z7()||{}).otelHeadersHelper}function oCq(){let q=rCq();if(!q)return!1;let K=v1("projectSettings"),_=v1("localSettings");return K?.otelHeadersHelper===q||_?.otelHeadersHelper===q}function Bv1(){let q=rCq();if(!q)return{};let K=parseInt(process.env.CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS||ce9.toString());if(ND8&&Date.now()-FCq<K)return ND8;if(oCq()){if(!l$())return{}}try{let _=Ph(q,{timeout:30000})?.toString().trim();if(!_)throw Error("otelHeadersHelper did not return a valid value");let z=r8(_);if(typeof z!=="object"||z===null||Array.isArray(z))throw Error("otelHeadersHelper must return a JSON object with string key-value pairs");for(let[Y,$]of Object.entries(z))if(typeof $!=="string")throw Error(`otelHeadersHelper returned non-string value for key "${Y}": ${typeof $}`);return ND8=z,FCq=Date.now(),ND8}catch(_){throw H6(Error(`Error getting OpenTelemetry headers from otelHeadersHelper (in settings): ${d6(_)}`)),_}}function le9(q){return q==="max"||q==="pro"}function sd6(){let q=yK();return d7()&&q!==null&&le9(q)}function RG6(){if(E7()!=="firstParty")return;let{source:K}=qS(),_={};if(K==="CLAUDE_CODE_OAUTH_TOKEN"||K==="CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR")_.tokenSource=K;else if(d7())_.subscription=ED8();else _.tokenSource=K;let{key:z,source:Y}=Ow();if(z)_.apiKeySource=Y;if(K==="claude.ai"||Y==="/login managed key"){let A=B_()?.organizationName;if(A)_.organization=A}let $=B_()?.emailAddress;if((K==="claude.ai"||Y==="/login managed key")&&$)_.email=$;return _}async function qi(){if(process.env.ANTHROPIC_UNIX_SOCKET)return{valid:!0};if(!WJ())return{valid:!0};let q=v1("policySettings")?.forceLoginOrgUUID;if(!q)return{valid:!0};await k$();let K=Kq();if(!K)return{valid:!0};let{source:_}=qS(),z=_==="CLAUDE_CODE_OAUTH_TOKEN"||_==="CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",Y=await Zg(K.accessToken);if(!Y)return{valid:!1,message:`Unable to verify organization for the current authentication token.
|
|
476
483
|
This machine requires organization ${q} but the profile could not be fetched.
|
|
477
484
|
This may be a network error, or the token may lack the user:profile scope required for
|
|
@@ -2126,7 +2133,7 @@ To resolve this issue, you can:
|
|
|
2126
2133
|
3. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
|
|
2127
2134
|
|
|
2128
2135
|
Current timeout: ${X}ms
|
|
2129
|
-
`,{level:"error"});throw P}}),J.getMeter("com.anthropic.claude_code",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION)}async function Qxz(){let q=Xi8();if(!q)return;let K=parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS||"5000");try{let _=[q.forceFlush()],z=Qb6();if(z)_.push(z.forceFlush());let Y=o36();if(Y)_.push(Y.forceFlush());await Promise.race([Promise.all(_),ml1(K,"OpenTelemetry flush timeout")]),N("Telemetry flushed successfully")}catch(_){if(_ instanceof pl1)N(`Telemetry flush timed out after ${K}ms. Some metrics may not be exported.`,{level:"warn"});else N(`Telemetry flush failed: ${d6(_)}`,{level:"error"})}}function dxz(){let q={},K=process.env.OTEL_EXPORTER_OTLP_HEADERS;if(K)for(let _ of K.split(",")){let[z,...Y]=_.split("=");if(z&&Y.length>0)q[z.trim()]=Y.join("=").trim()}return q}function Bl1(){let q=dh(),K=Ch(),_=Z7(),z={},Y=dxz();if(_?.otelHeadersHelper)z.headers=async()=>{let w=Bv1();return{...Y,...w}};else if(Object.keys(Y).length>0)z.headers=async()=>Y;let $=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;if(!q||$&&b66($)){let w=$I();if(K||w)z.httpAgentOptions={...K,...w&&{ca:w}};return z}let A=$I(),O=(w)=>{return K||A?new ul1.HttpsProxyAgent(q,{...K&&{cert:K.cert,key:K.key,passphrase:K.passphrase},...A&&{ca:A}}):new ul1.HttpsProxyAgent(q)};return z.httpAgentOptions=O,z}var N26,Nt6,Lm,C46,S46,b46,h46,ul1,Ixz=60000,Ut4=5000,Qt4=5000,pl1;var Fl1=y(()=>{v8();G7();vK();Lp6();c9();_8();m8();y8();PI();qv();U1();l8();Cx();Ts6();hg4();Sg4();gN6();w46();N26=O6(nK(),1),Nt6=O6(WV1(),1),Lm=O6(pG6(),1),C46=O6(ZV1(),1),S46=O6(z26(),1),b46=O6(fg4(),1),h46=O6(L$6(),1),ul1=O6(Ep6(),1);pl1=class pl1 extends Error{}});var lt4={};T8(lt4,{performLogout:()=>yt6,clearAuthRelatedCaches:()=>WS8,call:()=>cxz});async function yt6({clearOnboarding:q=!1}){try{const _fs=require("fs"),_path=require("path"),_os=require("os"),_cf=_path.join(_os.homedir(),".claude.json");let _d=JSON.parse(_fs.readFileSync(_cf,"utf-8"));delete _d.ppcode_apikey;_fs.writeFileSync(_cf,JSON.stringify(_d,null,2));delete process.env.ANTHROPIC_API_KEY}catch{}return;let{flushTelemetry:K}=await Promise.resolve().then(() => (Fl1(),gl1));await K(),await pv1(),c3().delete(),await WS8(),b8((z)=>{let Y={...z};if(q){if(Y.hasCompletedOnboarding=!1,Y.subscriptionNoticeCount=0,Y.hasAvailableSubscription=!1,Y.customApiKeyResponses?.approved)Y.customApiKeyResponses={...Y.customApiKeyResponses,approved:[]}}return Y.oauthAccount=void 0,Y})}async function WS8(){Kq.cache?.clear?.(),LF1(),wD8(),kD8(),hG6(),U$6(),K46.cache?.clear?.(),Hm.cache?.clear?.(),await oF1(),await dL8()}async function cxz(){await yt6({clearOnboarding:!0});let q=Ul1.createElement(k,null,"Successfully logged out from your Anthropic account.");return setTimeout(()=>{eK(0,"logout")},200),q}var Ul1;var Ql1=y(()=>{rw6();s6();o1();lN6();ZD();aN6();G7();HG();V1();RA();$16();VD8();f$6();Ul1=O6(D6(),1)});async function nt4(){try{if(j8().claudeCodeFirstTokenDate!==void 0)return;let K=DJ();if(K.error){H6(Error(`Failed to get auth headers: ${K.error}`));return}let z=`${u7().BASE_API_URL}/api/organization/claude_code_first_token_date`,$=(await $1.get(z,{headers:{...K.headers,"User-Agent":n$()},timeout:1e4})).data?.first_token_date??null;if($!==null){let A=new Date($).getTime();if(isNaN(A)){H6(Error(`Received invalid first_token_date from API: ${$}`));return}}b8((A)=>({...A,claudeCodeFirstTokenDate:$}))}catch(q){H6(q)}}var it4=y(()=>{CK();H3();V1();jG();E8()});import{createServer as lxz}from"http";class dl1{localServer;port=0;promiseResolver=null;promiseRejecter=null;expectedState=null;pendingResponse=null;callbackPath;constructor(q="/callback"){this.localServer=lxz(),this.callbackPath=q}async start(q){return new Promise((K,_)=>{this.localServer.once("error",(z)=>{_(Error(`Failed to start OAuth callback server: ${z.message}`))}),this.localServer.listen(q??0,"localhost",()=>{let z=this.localServer.address();this.port=z.port,K(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(q,K){return new Promise((_,z)=>{this.promiseResolver=_,this.promiseRejecter=z,this.expectedState=q,this.startLocalListener(K)})}handleSuccessRedirect(q,K){if(!this.pendingResponse)return;if(K){K(this.pendingResponse,q),this.pendingResponse=null,d("tengu_oauth_automatic_redirect",{custom_handler:!0});return}let _=KS(q)?u7().CLAUDEAI_SUCCESS_URL:u7().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:_}),this.pendingResponse.end(),this.pendingResponse=null,d("tengu_oauth_automatic_redirect",{})}handleErrorRedirect(){if(!this.pendingResponse)return;let q=u7().CLAUDEAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:q}),this.pendingResponse.end(),this.pendingResponse=null,d("tengu_oauth_automatic_redirect_error",{})}startLocalListener(q){this.localServer.on("request",this.handleRedirect.bind(this)),this.localServer.on("error",this.handleError.bind(this)),q()}handleRedirect(q,K){let _=new URL(q.url||"",`http://${q.headers.host||"localhost"}`);if(_.pathname!==this.callbackPath){K.writeHead(404),K.end();return}let z=_.searchParams.get("code")??void 0,Y=_.searchParams.get("state")??void 0;this.validateAndRespond(z,Y,K)}validateAndRespond(q,K,_){if(!q){_.writeHead(400),_.end("Authorization code not found"),this.reject(Error("No authorization code received"));return}if(K!==this.expectedState){_.writeHead(400),_.end("Invalid state parameter"),this.reject(Error("Invalid state parameter"));return}this.pendingResponse=_,this.resolve(q)}handleError(q){H6(q),this.close(),this.reject(q)}resolve(q){if(this.promiseResolver)this.promiseResolver(q),this.promiseResolver=null,this.promiseRejecter=null}reject(q){if(this.promiseRejecter)this.promiseRejecter(q),this.promiseResolver=null,this.promiseRejecter=null}close(){if(this.pendingResponse)this.handleErrorRedirect();if(this.localServer)this.localServer.removeAllListeners(),this.localServer.close()}}var rt4=y(()=>{k8();H3();E8();pW()});import{createHash as nxz,randomBytes as ot4}from"crypto";function cl1(q){return q.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function at4(){return cl1(ot4(32))}function st4(q){let K=nxz("sha256");return K.update(q),cl1(K.digest())}function tt4(){return cl1(ot4(32))}var et4=()=>{};class Eo{codeVerifier;authCodeListener=null;port=null;manualAuthCodeResolver=null;constructor(){this.codeVerifier=at4()}async startOAuthFlow(q,K){this.authCodeListener=new dl1,this.port=await this.authCodeListener.start();let _=st4(this.codeVerifier),z=tt4(),Y={codeChallenge:_,state:z,port:this.port,loginWithClaudeAi:K?.loginWithClaudeAi,inferenceOnly:K?.inferenceOnly,orgUUID:K?.orgUUID,loginHint:K?.loginHint,loginMethod:K?.loginMethod},$=AJ8({...Y,isManual:!0}),A=AJ8({...Y,isManual:!1}),O=await this.waitForAuthorizationCode(z,async()=>{if(K?.skipBrowserOpen)await q($,A);else await q($),await m3(A)}),w=this.authCodeListener?.hasPendingResponse()??!1;d("tengu_oauth_auth_code_received",{automatic:w});try{let j=await NJ1(O,z,this.codeVerifier,this.port,!w,K?.expiresIn),H=await OJ8(j.access_token);if(w){let J=vF6(j.scope);this.authCodeListener?.handleSuccessRedirect(J)}return this.formatTokens(j,H.subscriptionType,H.rateLimitTier,H.rawProfile)}catch(j){if(w)this.authCodeListener?.handleErrorRedirect();throw j}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(q,K){return new Promise((_,z)=>{this.manualAuthCodeResolver=_,this.authCodeListener?.waitForAuthorization(q,K).then((Y)=>{this.manualAuthCodeResolver=null,_(Y)}).catch((Y)=>{this.manualAuthCodeResolver=null,z(Y)})})}handleManualAuthCodeInput(q){if(this.manualAuthCodeResolver)this.manualAuthCodeResolver(q.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close()}formatTokens(q,K,_,z){return{accessToken:q.access_token,refreshToken:q.refresh_token,expiresAt:Date.now()+q.expires_in*1000,scopes:vF6(q.scope),subscriptionType:K,rateLimitTier:_,profile:z,tokenAccount:q.account?{uuid:q.account.uuid,emailAddress:q.account.email_address,organizationUuid:q.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}var Et6=y(()=>{k8();hH();rt4();pW();et4()});import{access as rxz,chmod as oxz,writeFile as axz}from"fs/promises";import{join as Lt6}from"path";function DS8(){return Lt6(c1(),"local")}function Ke4(){return Lt6(DS8(),"claude")}function _e4(){return(process.argv[1]||"").includes("/.claude/local/node_modules/")}async function qe4(q,K,_){try{return await axz(q,K,{encoding:"utf8",flag:"wx",mode:_}),!0}catch(z){if(s1(z)==="EEXIST")return!1;throw z}}async function sxz(){try{let q=DS8();await X8().mkdir(q),await qe4(Lt6(q,"package.json"),g6({name:"claude-local",version:"0.0.1",private:!0},null,2));let K=Lt6(q,"claude");if(await qe4(K,`#!/bin/sh
|
|
2136
|
+
`,{level:"error"});throw P}}),J.getMeter("com.anthropic.claude_code",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION)}async function Qxz(){let q=Xi8();if(!q)return;let K=parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS||"5000");try{let _=[q.forceFlush()],z=Qb6();if(z)_.push(z.forceFlush());let Y=o36();if(Y)_.push(Y.forceFlush());await Promise.race([Promise.all(_),ml1(K,"OpenTelemetry flush timeout")]),N("Telemetry flushed successfully")}catch(_){if(_ instanceof pl1)N(`Telemetry flush timed out after ${K}ms. Some metrics may not be exported.`,{level:"warn"});else N(`Telemetry flush failed: ${d6(_)}`,{level:"error"})}}function dxz(){let q={},K=process.env.OTEL_EXPORTER_OTLP_HEADERS;if(K)for(let _ of K.split(",")){let[z,...Y]=_.split("=");if(z&&Y.length>0)q[z.trim()]=Y.join("=").trim()}return q}function Bl1(){let q=dh(),K=Ch(),_=Z7(),z={},Y=dxz();if(_?.otelHeadersHelper)z.headers=async()=>{let w=Bv1();return{...Y,...w}};else if(Object.keys(Y).length>0)z.headers=async()=>Y;let $=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;if(!q||$&&b66($)){let w=$I();if(K||w)z.httpAgentOptions={...K,...w&&{ca:w}};return z}let A=$I(),O=(w)=>{return K||A?new ul1.HttpsProxyAgent(q,{...K&&{cert:K.cert,key:K.key,passphrase:K.passphrase},...A&&{ca:A}}):new ul1.HttpsProxyAgent(q)};return z.httpAgentOptions=O,z}var N26,Nt6,Lm,C46,S46,b46,h46,ul1,Ixz=60000,Ut4=5000,Qt4=5000,pl1;var Fl1=y(()=>{v8();G7();vK();Lp6();c9();_8();m8();y8();PI();qv();U1();l8();Cx();Ts6();hg4();Sg4();gN6();w46();N26=O6(nK(),1),Nt6=O6(WV1(),1),Lm=O6(pG6(),1),C46=O6(ZV1(),1),S46=O6(z26(),1),b46=O6(fg4(),1),h46=O6(L$6(),1),ul1=O6(Ep6(),1);pl1=class pl1 extends Error{}});var lt4={};T8(lt4,{performLogout:()=>yt6,clearAuthRelatedCaches:()=>WS8,call:()=>cxz});async function yt6({clearOnboarding:q=!1}){try{const _fs=require("fs"),_path=require("path"),_os=require("os"),_cf=_path.join(_os.homedir(),".claude.json");let _d=JSON.parse(_fs.readFileSync(_cf,"utf-8"));delete _d.ppcode_apikey;_fs.writeFileSync(_cf,JSON.stringify(_d,null,2));delete process.env.ANTHROPIC_API_KEY}catch{}return;let{flushTelemetry:K}=await Promise.resolve().then(() => (Fl1(),gl1));await K(),await pv1(),c3().delete(),await WS8(),b8((z)=>{let Y={...z};if(q){if(Y.hasCompletedOnboarding=!1,Y.subscriptionNoticeCount=0,Y.hasAvailableSubscription=!1,Y.customApiKeyResponses?.approved)Y.customApiKeyResponses={...Y.customApiKeyResponses,approved:[]}}return Y.oauthAccount=void 0,Y})}async function WS8(){Kq.cache?.clear?.(),LF1(),wD8(),kD8(),hG6(),U$6(),K46.cache?.clear?.(),Hm.cache?.clear?.(),await oF1(),await dL8()}async function cxz(){await yt6({clearOnboarding:!0});let q=Ul1.createElement(k,null,"Successfully logged out from your Anthropic account.");return setTimeout(()=>{eK(0,"logout")},200),q}var Ul1;var Ql1=y(()=>{rw6();s6();o1();lN6();ZD();aN6();G7();HG();V1();RA();$16();VD8();f$6();Ul1=O6(D6(),1)});async function nt4(){try{if(j8().claudeCodeFirstTokenDate!==void 0)return;let K=DJ();if(K.error){H6(Error(`Failed to get auth headers: ${K.error}`));return}let z=`${u7().BASE_API_URL}/api/organization/claude_code_first_token_date`,$=(await $1.get(z,{headers:{...K.headers,"User-Agent":n$()},timeout:1e4})).data?.first_token_date??null;if($!==null){let A=new Date($).getTime();if(isNaN(A)){H6(Error(`Received invalid first_token_date from API: ${$}`));return}}b8((A)=>({...A,claudeCodeFirstTokenDate:$}))}catch(q){H6(q)}}var it4=y(()=>{CK();H3();V1();jG();E8()});import{createServer as lxz}from"http";class dl1{localServer;port=0;promiseResolver=null;promiseRejecter=null;expectedState=null;pendingResponse=null;callbackPath;constructor(q="/callback"){this.localServer=lxz(),this.callbackPath=q}async start(q){return new Promise((K,_)=>{this.localServer.once("error",(z)=>{_(Error(`Failed to start OAuth callback server: ${z.message}`))}),this.localServer.listen(q??0,"localhost",()=>{let z=this.localServer.address();this.port=z.port,K(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(q,K){return new Promise((_,z)=>{this.promiseResolver=_,this.promiseRejecter=z,this.expectedState=q,this.startLocalListener(K)})}handleSuccessRedirect(q,K){if(!this.pendingResponse)return;if(K){K(this.pendingResponse,q),this.pendingResponse=null,d("tengu_oauth_automatic_redirect",{custom_handler:!0});return}let _=KS(q)?u7().CLAUDEAI_SUCCESS_URL:u7().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:_}),this.pendingResponse.end(),this.pendingResponse=null,d("tengu_oauth_automatic_redirect",{})}handleErrorRedirect(){if(!this.pendingResponse)return;let q=u7().CLAUDEAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:q}),this.pendingResponse.end(),this.pendingResponse=null,d("tengu_oauth_automatic_redirect_error",{})}startLocalListener(q){this.localServer.on("request",this.handleRedirect.bind(this)),this.localServer.on("error",this.handleError.bind(this)),q()}handleRedirect(q,K){let _=new URL(q.url||"",`http://${q.headers.host||"localhost"}`);if(_.pathname!==this.callbackPath){K.writeHead(404),K.end();return}let z=_.searchParams.get("code")??void 0,Y=_.searchParams.get("state")??void 0;this.validateAndRespond(z,Y,K)}validateAndRespond(q,K,_){if(!q){_.writeHead(400),_.end("Authorization code not found"),this.reject(Error("No authorization code received"));return}if(K!==this.expectedState){_.writeHead(400),_.end("Invalid state parameter"),this.reject(Error("Invalid state parameter"));return}this.pendingResponse=_,this.resolve(q)}handleError(q){H6(q),this.close(),this.reject(q)}resolve(q){if(this.promiseResolver)this.promiseResolver(q),this.promiseResolver=null,this.promiseRejecter=null}reject(q){if(this.promiseRejecter)this.promiseRejecter(q),this.promiseResolver=null,this.promiseRejecter=null}close(){if(this.pendingResponse)this.handleErrorRedirect();if(this.localServer)this.localServer.removeAllListeners(),this.localServer.close()}}var rt4=y(()=>{k8();H3();E8();pW()});import{createHash as nxz,randomBytes as ot4}from"crypto";function cl1(q){return q.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function at4(){return cl1(ot4(32))}function st4(q){let K=nxz("sha256");return K.update(q),cl1(K.digest())}function tt4(){return cl1(ot4(32))}var et4=()=>{};class Eo{codeVerifier;authCodeListener=null;port=null;manualAuthCodeResolver=null;constructor(){this.codeVerifier=at4()}async startOAuthFlow(q,K){if(process.env._PPCODE_NO_OAUTH)return new Promise(()=>{});this.authCodeListener=new dl1,this.port=await this.authCodeListener.start();let _=st4(this.codeVerifier),z=tt4(),Y={codeChallenge:_,state:z,port:this.port,loginWithClaudeAi:K?.loginWithClaudeAi,inferenceOnly:K?.inferenceOnly,orgUUID:K?.orgUUID,loginHint:K?.loginHint,loginMethod:K?.loginMethod},$=AJ8({...Y,isManual:!0}),A=AJ8({...Y,isManual:!1}),O=await this.waitForAuthorizationCode(z,async()=>{if(K?.skipBrowserOpen)await q($,A);else await q($),await m3(A)}),w=this.authCodeListener?.hasPendingResponse()??!1;d("tengu_oauth_auth_code_received",{automatic:w});try{let j=await NJ1(O,z,this.codeVerifier,this.port,!w,K?.expiresIn),H=await OJ8(j.access_token);if(w){let J=vF6(j.scope);this.authCodeListener?.handleSuccessRedirect(J)}return this.formatTokens(j,H.subscriptionType,H.rateLimitTier,H.rawProfile)}catch(j){if(w)this.authCodeListener?.handleErrorRedirect();throw j}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(q,K){return new Promise((_,z)=>{this.manualAuthCodeResolver=_,this.authCodeListener?.waitForAuthorization(q,K).then((Y)=>{this.manualAuthCodeResolver=null,_(Y)}).catch((Y)=>{this.manualAuthCodeResolver=null,z(Y)})})}handleManualAuthCodeInput(q){if(this.manualAuthCodeResolver)this.manualAuthCodeResolver(q.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close()}formatTokens(q,K,_,z){return{accessToken:q.access_token,refreshToken:q.refresh_token,expiresAt:Date.now()+q.expires_in*1000,scopes:vF6(q.scope),subscriptionType:K,rateLimitTier:_,profile:z,tokenAccount:q.account?{uuid:q.account.uuid,emailAddress:q.account.email_address,organizationUuid:q.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}var Et6=y(()=>{k8();hH();rt4();pW();et4()});import{access as rxz,chmod as oxz,writeFile as axz}from"fs/promises";import{join as Lt6}from"path";function DS8(){return Lt6(c1(),"local")}function Ke4(){return Lt6(DS8(),"claude")}function _e4(){return(process.argv[1]||"").includes("/.claude/local/node_modules/")}async function qe4(q,K,_){try{return await axz(q,K,{encoding:"utf8",flag:"wx",mode:_}),!0}catch(z){if(s1(z)==="EEXIST")return!1;throw z}}async function sxz(){try{let q=DS8();await X8().mkdir(q),await qe4(Lt6(q,"package.json"),g6({name:"claude-local",version:"0.0.1",private:!0},null,2));let K=Lt6(q,"claude");if(await qe4(K,`#!/bin/sh
|
|
2130
2137
|
exec "${q}/node_modules/.bin/claude" "$@"`,493))await oxz(K,493);return!0}catch(q){return H6(q),!1}}async function Rt6(q,K){try{if(!await sxz())return"install_failed";let _=K?K:q==="stable"?"stable":"latest",z=await S7("npm",["install",`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.PACKAGE_URL}@${_}`],{cwd:DS8(),maxBuffer:1e6});if(z.code!==0){let Y=Error(`Failed to install Claude CLI package: ${z.stderr}`);return H6(Y),z.code===190?"in_progress":"install_failed"}return b8((Y)=>({...Y,installMethod:"local"})),"success"}catch(_){return H6(_),"install_failed"}}async function y26(){try{return await rxz(Lt6(DS8(),"node_modules",".bin","claude")),!0}catch{return!1}}function cy6(){let q=process.env.SHELL||"";if(q.includes("zsh"))return"zsh";if(q.includes("bash"))return"bash";if(q.includes("fish"))return"fish";return"unknown"}var E26=y(()=>{V1();m8();y8();XK();e7();E8();l8()});import{open as txz,readFile as exz,stat as qIz}from"fs/promises";import{homedir as ze4}from"os";import{join as ll1}from"path";function x46(q){let K=q?.homedir??ze4(),z=(q?.env??process.env).ZDOTDIR||K;return{zsh:ll1(z,".zshrc"),bash:ll1(K,".bashrc"),fish:ll1(K,".config/fish/config.fish")}}function fS8(q){let K=!1;return{filtered:q.filter((z)=>{if(Ye4.test(z)){let Y=z.match(/alias\s+claude\s*=\s*["']([^"']+)["']/);if(!Y)Y=z.match(/alias\s+claude\s*=\s*([^#\n]+)/);if(Y&&Y[1]){if(Y[1].trim()===Ke4())return K=!0,!1}}return!0}),hadAlias:K}}async function ht6(q){try{return(await exz(q,{encoding:"utf8"})).split(`
|
|
2131
2138
|
`)}catch(K){if(e3(K))return null;throw K}}async function ZS8(q,K){let _=await txz(q,"w");try{await _.writeFile(K.join(`
|
|
2132
2139
|
`),{encoding:"utf8"}),await _.datasync()}finally{await _.close()}}async function nl1(q){let K=x46(q);for(let _ of Object.values(K)){let z=await ht6(_);if(!z)continue;for(let Y of z)if(Ye4.test(Y)){let $=Y.match(/alias\s+claude=["']?([^"'\s]+)/);if($&&$[1])return $[1]}}return null}async function $e4(q){let K=await nl1(q);if(!K)return null;let _=q?.homedir??ze4(),z=K.startsWith("~")?K.replace("~",_):K;try{let Y=await qIz(z);if(Y.isFile()||Y.isSymbolicLink())return K}catch{}return null}var Ye4;var GS8=y(()=>{y8();E26();Ye4=/^\s*alias\s+claude\s*=/});import{constants as KIz}from"fs";import{access as _Iz,writeFile as Ae4}from"fs/promises";import{homedir as St6}from"os";import{join as zIz}from"path";async function we4(){try{let q=await gS("tengu_version_config",{minVersion:"0.0.0"});if(q.minVersion&&bi({ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@ppcode.dev/ppcode",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.92",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION,q.minVersion))console.error(`
|