@chatcode/chatcode-cli 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +3 -3
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -485,7 +485,7 @@ Please log in with the correct organization: chatcode-cli auth login`}}var t55=3
|
|
|
485
485
|
`)+`
|
|
486
486
|
`;await Yv5(q,_,"utf8")}}catch(_){O6(_)}}async appendEventsToFile(q,K){if(K.length===0)return;try{await XFK(Vh6(),{recursive:!0});let _=K.map(($)=>B6($)).join(`
|
|
487
487
|
`)+`
|
|
488
|
-
`;await $v5(q,_,"utf8")}catch(_){O6(_)}}async deleteFile(q){try{await fFK(q)}catch{}}async retryPreviousBatches(){try{let q=`${ZFK}${yq()}.`,K;try{K=(await zv5(Vh6())).filter((_)=>_.startsWith(q)&&_.endsWith(".json")).filter((_)=>!_.includes(WFK))}catch(_){if(E5(_))return;throw _}for(let _ of K){let $=h7q.join(Vh6(),_);this.retryFileInBackground($)}}catch(q){O6(q)}}async retryFileInBackground(q){if(this.attempts>=this.maxAttempts){await this.deleteFile(q);return}let K=await this.loadEventsFromFile(q);if(K.length===0){await this.deleteFile(q);return}if(process.env.USER_TYPE==="ant")R(`1P event logging: retrying ${K.length} events from previous batch`);let _=await this.sendEventsInBatches(K);if(_.length===0){if(await this.deleteFile(q),process.env.USER_TYPE==="ant")R("1P event logging: previous batch retry succeeded")}else if(await this.saveEventsToFile(q,_),process.env.USER_TYPE==="ant")R(`1P event logging: previous batch retry failed, ${_.length} events remain`)}async export(q,K){if(this.isShutdown){if(process.env.USER_TYPE==="ant")R("1P event logging export failed: Exporter has been shutdown");K({code:Ji.ExportResultCode.FAILED,error:Error("Exporter has been shutdown")});return}let _=this.doExport(q,K);this.pendingExports.push(_),_.finally(()=>{let $=this.pendingExports.indexOf(_);if($>-1)this.pendingExports.splice($,1)})}async doExport(q,K){try{let _=q.filter((Y)=>Y.instrumentationScope?.name==="com.anthropic.claudecode.events");if(_.length===0){K({code:Ji.ExportResultCode.SUCCESS});return}let $=this.transformLogsToEvents(_).events;if($.length===0){K({code:Ji.ExportResultCode.SUCCESS});return}if(this.attempts>=this.maxAttempts){K({code:Ji.ExportResultCode.FAILED,error:Error(`Dropped ${$.length} events: max attempts (${this.maxAttempts}) reached`)});return}let z=await this.sendEventsInBatches($);if(this.attempts++,z.length>0){await this.queueFailedEvents(z),this.scheduleBackoffRetry();let Y=this.lastExportErrorContext?` (${this.lastExportErrorContext})`:"";K({code:Ji.ExportResultCode.FAILED,error:Error(`Failed to export ${z.length} events${Y}`)});return}if(this.resetBackoff(),await this.getQueuedEventCount()>0&&!this.isRetrying)this.retryFailedEvents();K({code:Ji.ExportResultCode.SUCCESS})}catch(_){if(process.env.USER_TYPE==="ant")R(`1P event logging export failed: ${l6(_)}`);O6(_),K({code:Ji.ExportResultCode.FAILED,error:R8(_)})}}async sendEventsInBatches(q){let K=[];for(let z=0;z<q.length;z+=this.maxBatchSize)K.push(q.slice(z,z+this.maxBatchSize));if(process.env.USER_TYPE==="ant")R(`1P event logging: exporting ${q.length} events in ${K.length} batch(es)`);let _=[],$;for(let z=0;z<K.length;z++){let Y=K[z];try{await this.sendBatchWithRetry({events:Y})}catch(A){$=Av5(A);for(let O=z;O<K.length;O++)_.push(...K[O]);if(process.env.USER_TYPE==="ant"){let O=K.length-1-z;R(`1P event logging: batch ${z+1}/${K.length} failed (${$}); short-circuiting ${O} remaining batch(es)`)}break}if(z<K.length-1&&this.batchDelayMs>0)await Z7(this.batchDelayMs)}if(_.length>0&&$)this.lastExportErrorContext=$;return _}async queueFailedEvents(q){let K=this.getCurrentBatchFilePath();await this.appendEventsToFile(K,q);let _=this.lastExportErrorContext?` (${this.lastExportErrorContext})`:"",$=`1P event logging: ${q.length} events failed to export${_}`;O6(Error($))}scheduleBackoffRetry(){if(this.cancelBackoff||this.isRetrying||this.isShutdown)return;let q=Math.min(this.baseBackoffDelayMs*this.attempts*this.attempts,this.maxBackoffDelayMs);if(process.env.USER_TYPE==="ant")R(`1P event logging: scheduling backoff retry in ${q}ms (attempt ${this.attempts})`);this.cancelBackoff=this.schedule(async()=>{this.cancelBackoff=null,await this.retryFailedEvents()},q)}async retryFailedEvents(){let q=this.getCurrentBatchFilePath();while(!this.isShutdown){let K=await this.loadEventsFromFile(q);if(K.length===0)break;if(this.attempts>=this.maxAttempts){if(process.env.USER_TYPE==="ant")R(`1P event logging: max attempts (${this.maxAttempts}) reached, dropping ${K.length} events`);await this.deleteFile(q),this.resetBackoff();return}if(this.isRetrying=!0,await this.deleteFile(q),process.env.USER_TYPE==="ant")R(`1P event logging: retrying ${K.length} failed events (attempt ${this.attempts+1})`);let _=await this.sendEventsInBatches(K);if(this.attempts++,this.isRetrying=!1,_.length>0){await this.saveEventsToFile(q,_),this.scheduleBackoffRetry();return}if(this.resetBackoff(),process.env.USER_TYPE==="ant")R("1P event logging: backoff retry succeeded")}}resetBackoff(){if(this.attempts=0,this.cancelBackoff)this.cancelBackoff(),this.cancelBackoff=null}async sendBatchWithRetry(q){if(this.isKilled())throw Error("firstParty sink killswitch active");let K={"Content-Type":"application/json","User-Agent":wO(),"x-service-name":"chatcode-cli"},_=A3()||xK();if(process.env.USER_TYPE==="ant"&&!_)R("1P event logging: Trust not accepted");let $=this.skipAuth||!_;if(!$&&CK()){let O=oK();if(!aX())$=!0;else if(O&&vI(O.expiresAt)){if($=!0,process.env.USER_TYPE==="ant")R("1P event logging: OAuth token expired, skipping auth to avoid 401")}}let z=$?{headers:{},error:"trust not established or Oauth token expired"}:yH(),Y=!z.error;if(!Y&&process.env.USER_TYPE==="ant")R("1P event logging: auth not available, sending without auth");let A=Y?{...K,...z.headers}:K;try{let O=await Y8.post(this.endpoint,q,{timeout:this.timeout,headers:A});this.logSuccess(q.events.length,Y,O.data);return}catch(O){if(Y&&Y8.isAxiosError(O)&&O.response?.status===401){if(process.env.USER_TYPE==="ant")R("1P event logging: 401 auth error, retrying without auth");let w=await Y8.post(this.endpoint,q,{timeout:this.timeout,headers:K});this.logSuccess(q.events.length,!1,w.data);return}throw O}}logSuccess(q,K,_){if(process.env.USER_TYPE==="ant")R(`1P event logging: ${q} events exported successfully${K?" (with auth)":" (without auth)"}`),R(`API Response: ${B6(_,null,2)}`)}hrTimeToDate(q){let[K,_]=q;return new Date(K*1000+_/1e6)}transformLogsToEvents(q){let K=[];for(let _ of q){let $=_.attributes||{};if($.event_type==="GrowthbookExperimentEvent"){let X=this.hrTimeToDate(_.hrTime),f=$.account_uuid,W=$.organization_uuid;K.push({event_type:"GrowthbookExperimentEvent",event_data:Gtq.toJSON({event_id:$.event_id,timestamp:X,experiment_id:$.experiment_id,variation_id:$.variation_id,environment:$.environment,user_attributes:$.user_attributes,experiment_metadata:$.experiment_metadata,device_id:$.device_id,session_id:$.session_id,auth:f||W?{account_uuid:f,organization_uuid:W}:void 0})});continue}let z=$.event_name||_.body||"unknown",Y=$.core_metadata,A=$.user_metadata,O=$.event_metadata||{};if(!Y){if(process.env.USER_TYPE==="ant")R(`1P event logging: core_metadata missing for event ${z}`);K.push({event_type:"ChatCodeInternalEvent",event_data:D7q.toJSON({event_id:$.event_id,event_name:z,client_timestamp:this.hrTimeToDate(_.hrTime),session_id:yq(),additional_metadata:Buffer.from(B6({transform_error:"core_metadata attribute is missing"})).toString("base64")})});continue}let w=PFK(Y,A,O),{_PROTO_skill_name:H,_PROTO_plugin_name:j,_PROTO_marketplace_name:M,...J}=w.additional,P=kn6(J);K.push({event_type:"ChatCodeInternalEvent",event_data:D7q.toJSON({event_id:$.event_id,event_name:z,client_timestamp:this.hrTimeToDate(_.hrTime),device_id:$.user_id,email:A?.email,auth:w.auth,...w.core,env:w.env,process:w.process,skill_name:typeof H==="string"?H:void 0,plugin_name:typeof j==="string"?j:void 0,marketplace_name:typeof M==="string"?M:void 0,additional_metadata:Object.keys(P).length>0?Buffer.from(B6(P)).toString("base64"):void 0})})}return{events:K}}async shutdown(){if(this.isShutdown=!0,this.resetBackoff(),await this.forceFlush(),process.env.USER_TYPE==="ant")R("1P event logging exporter shutdown complete")}async forceFlush(){if(await Promise.all(this.pendingExports),process.env.USER_TYPE==="ant")R("1P event logging exporter flush complete")}}function Av5(q){if(!Y8.isAxiosError(q))return l6(q);let K=[],_=q.response?.headers?.["request-id"];if(_)K.push(`request-id=${_}`);if(q.response?.status)K.push(`status=${q.response.status}`);if(q.code)K.push(`code=${q.code}`);if(q.message)K.push(q.message);return K.join(", ")}var Ji,WFK,ZFK="1p_failed_events.";var vFK=h(()=>{o_();Nq();tdK();edK();MK();D8();zq();Iq();hq();QZ();zO();Lq();iq();_M();Rq();lw();Ji=u(jO(),1),WFK=_v5()});function YH6(q){return xI(Ov5,{})?.[q]===!0}var Ov5="tengu_frond_boric";var Itq=h(()=>{Q8()});var VFK={};Eq(VFK,{shutdown1PEventLogging:()=>Lh6,shouldSampleEvent:()=>xtq,reinitialize1PEventLoggingIfConfigChanged:()=>Xv5,logGrowthBookExperimentTo1P:()=>utq,logEventTo1P:()=>Sh6,is1PEventLoggingEnabled:()=>hh6,initialize1PEventLogging:()=>RFK,getEventSamplingConfig:()=>kFK});import{randomUUID as DFK}from"crypto";function kFK(){return xI(wv5,{})}function xtq(q){let _=kFK()[q];if(!_)return null;let $=_.sample_rate;if(typeof $!=="number"||$<0||$>1)return null;if($>=1)return null;if($<=0)return 0;return Math.random()<$?$:0}function NFK(){return xI(TFK,{})}async function Lh6(){if(!Pi)return;try{if(await Pi.shutdown(),process.env.USER_TYPE==="ant")R("1P event logging: final shutdown complete")}catch{}}function hh6(){return!1}async function Hv5(q,K,_={}){try{let $=await L7q({model:_.model,betas:_.betas}),z={event_name:K,event_id:DFK(),core_metadata:$,user_metadata:i16(!0),event_metadata:_},Y=wR();if(Y)z.user_id=Y;if(process.env.USER_TYPE==="ant")R(`[ANT-ONLY] 1P event: ${K} ${B6(_,null,0)}`);q.emit({body:K,attributes:z})}catch($){throw $}}function Sh6(q,K={}){if(!hh6())return;if(!Xi||YH6("firstParty"))return;Hv5(Xi,q,K)}function jv5(){return"production"}function utq(q){if(!hh6())return;if(!Xi||YH6("firstParty"))return;let K=wR(),{accountUuid:_,organizationUuid:$}=i16(!0),z={event_type:"GrowthbookExperimentEvent",event_id:DFK(),experiment_id:q.experimentId,variation_id:q.variationId,...K&&{device_id:K},..._&&{account_uuid:_},...$&&{organization_uuid:$},...q.userAttributes&&{session_id:q.userAttributes.sessionId,user_attributes:B6(q.userAttributes)},...q.experimentMetadata&&{experiment_metadata:B6(q.experimentMetadata)},environment:jv5()};if(process.env.USER_TYPE==="ant")R(`[ANT-ONLY] 1P GrowthBook experiment: ${q.experimentId} variation=${q.variationId}`);Xi.emit({body:"growthbook_experiment",attributes:z})}function RFK(){if(w_("1p_event_logging_start"),!hh6()){if(process.env.USER_TYPE==="ant")R("1P event logging not enabled");return}let K=NFK();yFK=K,w_("1p_event_after_growthbook_config");let _=K.scheduledDelayMillis||parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||Mv5.toString()),$=K.maxExportBatchSize||Jv5,z=K.maxQueueSize||Pv5,Y=X8(),A={[E7q.ATTR_SERVICE_NAME]:"chatcode-cli",[E7q.ATTR_SERVICE_VERSION]:MACRO.VERSION};if(Y==="wsl"){let H=Oq6();if(H)A["wsl.version"]=H}let O=GFK.resourceFromAttributes(A),w=new btq({maxBatchSize:$,skipAuth:K.skipAuth,maxAttempts:K.maxAttempts,path:K.path,baseUrl:K.baseUrl,isKilled:()=>YH6("firstParty")});Pi=new S7q.LoggerProvider({resource:O,processors:[new S7q.BatchLogRecordProcessor(w,{scheduledDelayMillis:_,maxExportBatchSize:$,maxQueueSize:z})]}),Xi=Pi.getLogger("com.anthropic.claudecode.events",MACRO.VERSION)}async function Xv5(){if(!hh6()||!Pi)return;let q=NFK();if(Oj(q,yFK))return;if(process.env.USER_TYPE==="ant")R(`1P event logging: ${TFK} changed, reinitializing`);let K=Pi,_=Xi;Xi=null;try{await K.forceFlush()}catch{}Pi=null;try{RFK()}catch($){Pi=K,Xi=_,O6($);return}K.shutdown().catch(()=>{})}var GFK,S7q,E7q,wv5="tengu_event_sampling_config",TFK="tengu_1p_event_batch_config",Xi=null,Pi=null,yFK=null,Mv5=1e4,Jv5=200,Pv5=8192;var ZK6=h(()=>{NO6();D8();zq();Lq();U_();iq();Jb();$K6();vFK();Q8();lw();Itq();GFK=u(KH6(),1),S7q=u(ftq(),1),E7q=u(zi(),1)});var uFK={};Eq(uFK,{stopPeriodicGrowthBookRefresh:()=>dtq,setupPeriodicGrowthBookRefresh:()=>xFK,setGrowthBookConfigOverride:()=>vv5,resetGrowthBook:()=>ph6,refreshGrowthBookFeatures:()=>IFK,refreshGrowthBookAfterAuthChange:()=>kK6,onGrowthBookRefresh:()=>xh6,initializeGrowthBook:()=>uB,hasGrowthBookEnvOverride:()=>fv5,getGrowthBookConfigOverrides:()=>Zv5,getFeatureValue_DEPRECATED:()=>C7q,getFeatureValue_CACHED_WITH_REFRESH:()=>uI,getFeatureValue_CACHED_MAY_BE_STALE:()=>J8,getDynamicConfig_CACHED_MAY_BE_STALE:()=>xI,getDynamicConfig_BLOCKS_ON_INIT:()=>rh,getApiBaseUrlHost:()=>EFK,getAllGrowthBookFeatures:()=>Wv5,clearGrowthBookConfigOverrides:()=>Gv5,checkStatsigFeatureGate_CACHED_MAY_BE_STALE:()=>LA,checkSecurityRestrictionGate:()=>ctq,checkGate_CACHED_OR_BLOCKING:()=>DK6});function LFK(q){try{Promise.resolve(q()).catch((K)=>{O6(K)})}catch(K){O6(K)}}function xh6(q){let K=!0,_=wH6.subscribe(()=>LFK(q));if(XR.size>0)queueMicrotask(()=>{if(K&&XR.size>0)LFK(q)});return()=>{K=!1,_()}}function HH6(){if(!mtq){if(mtq=!0,process.env.USER_TYPE==="ant"){let q=process.env.CLAUDE_INTERNAL_FC_OVERRIDES;if(q)try{Eh6=JSON.parse(q),R(`GrowthBook: Using env var overrides for ${Object.keys(Eh6).length} features: ${Object.keys(Eh6).join(", ")}`)}catch{O6(Error(`GrowthBook: Failed to parse CLAUDE_INTERNAL_FC_OVERRIDES: ${q}`))}}}return Eh6}function fv5(q){let K=HH6();return K!==null&&q in K}function jH6(){if(process.env.USER_TYPE!=="ant")return;try{return Hq().growthBookOverrides}catch{return}}function Wv5(){if(XR.size>0)return Object.fromEntries(XR);return Hq().cachedGrowthBookFeatures??{}}function Zv5(){return jH6()??{}}function vv5(q,K){if(process.env.USER_TYPE!=="ant")return;try{xq((_)=>{let $=_.growthBookOverrides??{};if(K===void 0){if(!(q in $))return _;let{[q]:z,...Y}=$;if(Object.keys(Y).length===0){let{growthBookOverrides:A,...O}=_;return O}return{..._,growthBookOverrides:Y}}if(Oj($[q],K))return _;return{..._,growthBookOverrides:{...$,[q]:K}}}),wH6.emit()}catch(_){O6(_)}}function Gv5(){if(process.env.USER_TYPE!=="ant")return;try{xq((q)=>{if(!q.growthBookOverrides||Object.keys(q.growthBookOverrides).length===0)return q;let{growthBookOverrides:K,..._}=q;return _}),wH6.emit()}catch(q){O6(q)}}function uh6(q){if(ptq.has(q))return;let K=GK6.get(q);if(K)ptq.add(q),utq({experimentId:K.experimentId,variationId:K.variationId,userAttributes:CFK(),experimentMetadata:{feature_id:q}})}async function hFK(q){let K=q.getPayload();if(!K?.features||Object.keys(K.features).length===0)return!1;GK6.clear();let _={};for(let[$,z]of Object.entries(K.features)){let Y=z;if("value"in Y&&!("defaultValue"in Y))_[$]={...Y,defaultValue:Y.value};else _[$]=Y;if(Y.source==="experiment"&&Y.experimentResult){let{experimentResult:A,experiment:O}=Y;if(O?.key&&A.variationId!==void 0)GK6.set($,{experimentId:O.key,variationId:A.variationId})}}await q.setPayload({...K,features:_}),XR.clear();for(let[$,z]of Object.entries(_)){let Y="value"in z?z.value:z.defaultValue;if(Y!==void 0)XR.set($,Y)}return!0}function SFK(){let q=Object.fromEntries(XR),K=Hq();if(Oj(K.cachedGrowthBookFeatures,q))return;xq((_)=>({..._,cachedGrowthBookFeatures:q}))}function xB(){return!1}function EFK(){let q=process.env.ANTHROPIC_BASE_URL;if(!q)return;try{let K=new URL(q).host;if(K==="api.anthropic.com")return;return K}catch{return}}function CFK(){let q=HVK(),K=q.email;if(!K&&process.env.USER_TYPE==="ant")K=Hq().oauthAccount?.emailAddress;let _=EFK();return{id:q.deviceId,sessionId:q.sessionId,deviceID:q.deviceId,platform:q.platform,..._&&{apiBaseUrlHost:_},...q.organizationUuid&&{organizationUUID:q.organizationUuid},...q.accountUuid&&{accountUUID:q.accountUuid},...q.userType&&{userType:q.userType},...q.subscriptionType&&{subscriptionType:q.subscriptionType},...q.rateLimitTier&&{rateLimitTier:q.rateLimitTier},...q.firstTokenTime&&{firstTokenTime:q.firstTokenTime},...K&&{email:K},...q.appVersion&&{appVersion:q.appVersion},...q.githubActionsMetadata&&{githubActionsMetadata:q.githubActionsMetadata}}}async function bFK(q,K,_){let $=HH6();if($&&q in $)return $[q];let z=jH6();if(z&&q in z)return z[q];if(!xB())return K;let Y=await uB();if(!Y)return K;let A;if(XR.has(q))A=XR.get(q);else A=Y.getFeatureValue(q,K);if(_)uh6(q);if(process.env.USER_TYPE==="ant")R(`GrowthBook: getFeatureValue("${q}") = ${B6(A)}`);return A}async function C7q(q,K){return bFK(q,K,!0)}function J8(q,K){let _=HH6();if(_&&q in _)return _[q];let $=jH6();if($&&q in $)return $[q];if(!xB())return K;if(GK6.has(q))uh6(q);else OH6.add(q);if(XR.has(q))return XR.get(q);try{let z=Hq().cachedGrowthBookFeatures?.[q];return z!==void 0?z:K}catch{return K}}function uI(q,K,_){return J8(q,K)}function LA(q){let K=HH6();if(K&&q in K)return Boolean(K[q]);let _=jH6();if(_&&q in _)return Boolean(_[q]);if(!xB())return!1;if(GK6.has(q))uh6(q);else OH6.add(q);let $=Hq(),z=$.cachedGrowthBookFeatures?.[q];if(z!==void 0)return Boolean(z);return $.cachedStatsigGates?.[q]??!1}async function ctq(q){let K=HH6();if(K&&q in K)return Boolean(K[q]);let _=jH6();if(_&&q in _)return Boolean(_[q]);if(!xB())return!1;if(Ih6)await Ih6;let $=Hq(),z=$.cachedStatsigGates?.[q];if(z!==void 0)return Boolean(z);let Y=$.cachedGrowthBookFeatures?.[q];if(Y!==void 0)return Boolean(Y);return!1}async function DK6(q){let K=HH6();if(K&&q in K)return Boolean(K[q]);let _=jH6();if(_&&q in _)return Boolean(_[q]);if(!xB())return!1;if(Hq().cachedGrowthBookFeatures?.[q]===!0){if(GK6.has(q))uh6(q);else OH6.add(q);return!0}return bFK(q,!1,!0)}function kK6(){if(!xB())return;try{ph6(),wH6.emit(),Ih6=uB().catch((q)=>{return O6(R8(q)),null}).finally(()=>{Ih6=null})}catch(q){throw q}}function ph6(){if(dtq(),Ch6)process.off("beforeExit",Ch6),Ch6=null;if(bh6)process.off("exit",bh6),bh6=null;IB?.destroy(),IB=null,Btq=!1,Ih6=null,GK6.clear(),OH6.clear(),ptq.clear(),XR.clear(),gtq.cache?.clear?.(),uB.cache?.clear?.(),Eh6=null,mtq=!1}async function IFK(){if(!xB())return;try{let q=await uB();if(!q)return;if(await q.refreshFeatures(),q!==IB){if(process.env.USER_TYPE==="ant")R("GrowthBook: Skipping refresh processing for replaced client");return}let K=await hFK(q);if(q!==IB)return;if(process.env.USER_TYPE==="ant")R("GrowthBook: Light refresh completed");if(K)SFK(),wH6.emit()}catch(q){throw q}}function xFK(){if(!xB())return;if(vK6)clearInterval(vK6);if(vK6=setInterval(()=>{IFK()},Dv5),vK6.unref?.(),!AH6)AH6=()=>{dtq()},process.once("beforeExit",AH6)}function dtq(){if(vK6)clearInterval(vK6),vK6=null;if(AH6)process.removeListener("beforeExit",AH6),AH6=null}async function rh(q,K){return C7q(q,K)}function xI(q,K){return J8(q,K)}var IB=null,Ch6=null,bh6=null,Btq=!1,GK6,XR,OH6,ptq,Ih6=null,wH6,Eh6=null,mtq=!1,gtq,uB,Dv5,vK6=null,AH6=null;var Q8=h(()=>{Un8();NO6();Nq();ln8();D8();zq();hq();QZ();Lq();iq();$K6();ZK6();GK6=new Map,XR=new Map,OH6=new Set,ptq=new Set,wH6=HY();gtq=q8(()=>{if(!xB())return null;let q=CFK(),K=Qn8();if(process.env.USER_TYPE==="ant")R(`GrowthBook: Creating client with clientKey=${K}, attributes: ${B6(q)}`);let _=process.env.USER_TYPE==="ant"?process.env.CHATCODE_CLI_GB_BASE_URL||"https://api.anthropic.com/":"https://api.anthropic.com/",z=A3()||aA6()||xK()?yH():{headers:{},error:"trust not established"},Y=!z.error;Btq=Y;let A=new Ro6({apiHost:_,clientKey:K,attributes:q,remoteEval:!0,cacheKeyAttributes:["id","organizationUUID"],...z.error?{}:{apiHostRequestHeaders:z.headers},...process.env.USER_TYPE==="ant"?{log:(w,H)=>{R(`GrowthBook: ${w} ${B6(H)}`)}}:{}});if(IB=A,!Y)return{client:A,initialized:Promise.resolve()};let O=A.init({timeout:5000}).then(async(w)=>{if(IB!==A){if(process.env.USER_TYPE==="ant")R("GrowthBook: Skipping init callback for replaced client");return}if(process.env.USER_TYPE==="ant")R(`GrowthBook initialized successfully, source: ${w.source}, success: ${w.success}`);let H=await hFK(A);if(IB!==A)return;if(H){for(let j of OH6)uh6(j);OH6.clear(),SFK(),wH6.emit()}if(process.env.USER_TYPE==="ant"){let j=A.getFeatures();if(j){let M=Object.keys(j);R(`GrowthBook loaded ${M.length} features: ${M.slice(0,10).join(", ")}${M.length>10?"...":""}`)}}}).catch((w)=>{if(process.env.USER_TYPE==="ant")O6(R8(w))});return Ch6=()=>IB?.destroy(),bh6=()=>IB?.destroy(),process.on("beforeExit",Ch6),process.on("exit",bh6),{client:A,initialized:O}}),uB=q8(async()=>{let q=gtq();if(!q)return null;if(!Btq){if(A3()||aA6()||xK()){if(!yH().error){if(process.env.USER_TYPE==="ant")R("GrowthBook: Auth became available after client creation, reinitializing");if(ph6(),q=gtq(),!q)return null}}}return await q.initialized,xFK(),q.client});Dv5=process.env.USER_TYPE!=="ant"?21600000:1200000});import{homedir as kv5}from"os";import{isAbsolute as Tv5,join as b7q,normalize as Ftq,sep as pFK}from"path";function k$(){let q=process.env.CHATCODE_CLI_DISABLE_AUTO_MEMORY;if(F6(q))return!1;if(D$(q))return!0;if(F6(process.env.CHATCODE_CLI_SIMPLE))return!1;if(F6(process.env.CHATCODE_CLI_REMOTE)&&!process.env.CHATCODE_CLI_REMOTE_MEMORY_DIR)return!1;let K=GK();if(K.chatcodeMemory?.enabled!==void 0)return K.chatcodeMemory.enabled;if(K.wanmaMemory?.enabled!==void 0)return K.wanmaMemory.enabled;if(K.autoMemoryEnabled!==void 0)return K.autoMemoryEnabled;return!0}function fi(){if(process.env.CHATCODE_CLI_REMOTE_MEMORY_DIR)return process.env.CHATCODE_CLI_REMOTE_MEMORY_DIR;return S8()}function mFK(q,K){if(!q)return;let _=q;if(K&&(_.startsWith("~/")||_.startsWith("~\\"))){let z=_.slice(2),Y=Ftq(z||".");if(Y==="."||Y==="..")return;_=b7q(kv5(),z)}let $=Ftq(_).replace(/[/\\]+$/,"");if(!Tv5($)||$.length<3||/^[A-Za-z]:$/.test($)||$.startsWith("\\\\")||$.startsWith("//")||$.includes("\x00"))return;return($+pFK).normalize("NFC")}function gFK(){return mFK(process.env.CLAUDE_COWORK_MEMORY_PATH_OVERRIDE,!1)}function Rv5(){let q=k8("policySettings")?.autoMemoryDirectory??k8("flagSettings")?.autoMemoryDirectory??k8("localSettings")?.autoMemoryDirectory??k8("userSettings")?.autoMemoryDirectory;return mFK(q,!0)}function I7q(){return gFK()!==void 0}function Vv5(){return b1(BY())??BY()}function x7q(){return b7q(O2(),yv5)}function TK6(q){return Ftq(q).startsWith(O2())}var Nv5="memory",yv5="MEMORY.md",O2;var nw=h(()=>{Z_();Nq();Q8();Iq();C5();SY();b8();O2=q8(()=>{let q=gFK()??Rv5();if(q)return q;let K=b7q(fi(),"projects");return(b7q(K,JJ(Vv5()),Nv5)+pFK).normalize("NFC")},()=>BY())});function cFK(q){return oh.includes(q)}function dFK(q){return mh6.includes(q)}var AA="AGENTS.md",oh,u7q,p7q,BFK,uG="CHATCODE-CLI.local.md",mh6;var NK6=h(()=>{oh=["AGENTS.md","WANMA.md","WANMA_CLI.md","CLAUDE.md"],u7q=["AGENTS.md","WANMA.md","CLAUDE.md"],p7q=["AGENTS.md","WANMA.md","CLAUDE.md"],BFK=p7q,mh6=["CHATCODE-CLI.local.md","WANMA.local.md","CLAUDE.local.md"]});var m7q,g7q,FFK;var Utq=h(()=>{m7q=["auto","iterm2","iterm2_with_bell","terminal_bell","kitty","ghostty","notifications_disabled"],g7q=["normal","vim"],FFK=["auto","tmux","in-process"]});var qUK={};Eq(qUK,{shouldSkipPluginAutoupdate:()=>PH6,saveGlobalConfig:()=>xq,saveCurrentProjectConfig:()=>h9,resetTrustDialogAcceptedCacheForTesting:()=>bv5,recordFirstStartTime:()=>etq,isProjectConfigKey:()=>uv5,isPathTrusted:()=>xv5,isGlobalConfigKey:()=>Cv5,isAutoUpdaterDisabled:()=>mI,getUserClaudeRulesDir:()=>i7q,getRemoteControlAtStartup:()=>JH6,getProjectPathForConfig:()=>l7q,getOrCreateUserID:()=>wR,getMemoryPath:()=>nh6,getManagedClaudeRulesDir:()=>n7q,getGlobalConfigWriteCount:()=>gv5,getGlobalConfig:()=>Hq,getCustomApiKeyStatus:()=>Uh6,getCurrentProjectConfig:()=>eO,getAutoUpdaterDisabledReason:()=>yK6,formatAutoUpdaterDisabledReason:()=>lh6,enableConfigs:()=>Qh6,checkHasTrustDialogAccepted:()=>A3,_wouldLoseAuthStateForTesting:()=>iv5,_setGlobalConfigCacheForTesting:()=>rv5,_setConfigWatcherImplementationForTesting:()=>pv5,_setConfigLockImplementationForTesting:()=>mv5,_resetConfigInternalsForTesting:()=>ov5,_getConfigForTesting:()=>nv5,PROJECT_CONFIG_KEYS:()=>iFK,NOTIFICATION_CHANNELS:()=>m7q,GLOBAL_CONFIG_KEYS:()=>nFK,EDITOR_MODES:()=>g7q,DEFAULT_GLOBAL_CONFIG:()=>F7q,CONFIG_WRITE_DISPLAY_THRESHOLD:()=>Bv5});import{randomBytes as hv5}from"crypto";import{unwatchFile as Sv5,watchFile as Ev5}from"fs";import{basename as ntq,dirname as itq,join as FT,resolve as c7q}from"path";function gB(){return{numStartups:0,installMethod:void 0,autoUpdates:void 0,theme:"dark",preferredNotifChannel:"auto",verbose:!1,editorMode:"normal",autoCompactEnabled:!0,showTurnDuration:!0,hasSeenTasksHint:!1,hasUsedStash:!1,hasUsedBackgroundTask:!1,queuedCommandUpHintCount:0,diffTool:"auto",customApiKeyResponses:{approved:[],rejected:[]},env:{},tipsHistory:{},memoryUsageCount:0,promptQueueUseCount:0,btwUseCount:0,todoFeatureEnabled:!0,showExpandedTodos:!1,messageIdleNotifThresholdMs:60000,autoConnectIde:!1,autoInstallIdeExtension:!0,fileCheckpointingEnabled:!0,terminalProgressBarEnabled:!0,cachedStatsigGates:{},cachedDynamicConfigs:{},cachedGrowthBookFeatures:{},respectGitignore:!0,copyFullResponse:!1}}function Cv5(q){return nFK.includes(q)}function bv5(){rFK=!1}function A3(){return rFK||=Iv5()}function Iv5(){if(aA6())return!0;let q=Hq(),K=l7q();if(q.projects?.[K]?.hasTrustDialogAccepted)return!0;let $=jq6(Zq());while(!0){if(q.projects?.[$]?.hasTrustDialogAccepted)return!0;let Y=jq6(c7q($,".."));if(Y===$)break;$=Y}return!1}function xv5(q){let K=Hq(),_=jq6(c7q(q));while(!0){if(K.projects?.[_]?.hasTrustDialogAccepted)return!0;let $=jq6(c7q(_,".."));if($===_)return!1;_=$}}function uv5(q){return iFK.includes(q)}function U7q(q){let K=pI.config;if(!K)return!1;let _=K.oauthAccount!==void 0&&q.oauthAccount===void 0,$=K.hasCompletedOnboarding===!0&&q.hasCompletedOnboarding!==!0;return _||$}function rtq(){Q7q=!0}function BB(){let q=cf();if(Q7q)return q;return eqK()??q}function aFK(q){return otq(q,{lockfilePath:`${q}.lock`,onCompromised:(K)=>{R(`Config lock compromised: ${K}`,{level:"error"})}})}function pv5(q){Fh6=q}function mv5(q){otq=q.lockSync}function xq(q){let K=null,_=cf();try{if(eFK(_,gB,(z)=>{let Y=q(z);if(Y===z)return z;return K={...Y,projects:UFK(z.projects)},K})&&K)d7q(K)}catch($){R(`Failed to save config with lock: ${$}`,{level:"error"});let z=mB(BB(),gB);if(U7q(z)){R("saveGlobalConfig fallback: re-read config is missing auth that cache has; refusing to write. See GH #3117.",{level:"error"}),n("tengu_config_auth_loss_prevented",{});return}let Y=q(z);if(Y===z)return;K={...Y,projects:UFK(z.projects)},tFK(_,K,F7q),d7q(K)}}function gv5(){return atq}function cv5(){let q=gh6+B7q;if(q>0)n("tengu_config_cache_stats",{cache_hits:gh6,cache_misses:B7q,hit_rate:gh6/q});gh6=0,B7q=0}function stq(q){if(q.installMethod!==void 0)return q;let K=q,_="unknown",$=q.autoUpdates??!0;switch(K.autoUpdaterStatus){case"migrated":_="local";break;case"installed":_="native";break;case"disabled":$=!1;break;case"enabled":case"no_permissions":case"not_configured":_="global";break;case void 0:break}return{...q,installMethod:_,autoUpdates:$}}function UFK(q){if(!q)return q;let K={},_=!1;for(let[$,z]of Object.entries(q)){let Y=z;if(Y.history!==void 0){_=!0;let{history:A,...O}=Y;K[$]=O}else K[$]=z}return _?K:q}function Fv5(){let q=BB(),K=cf();return q===K?[K]:[q,K]}function sFK(){for(let q of Array.from(MH6))Fh6.unwatchFile(q);MH6.clear()}function ch6(){let q=new Set(Fv5());for(let K of Array.from(MH6)){if(q.has(K))continue;Fh6.unwatchFile(K),MH6.delete(K)}for(let K of q){if(MH6.has(K))continue;Fh6.watchFile(K,{interval:dv5,persistent:!1},(_)=>{Uv5(K,_)}),MH6.add(K)}if(!Bh6)Bh6=O7(async()=>{sFK(),Bh6=null})}function Uv5(q,K){let _=BB();if(ch6(),_!==q||K.mtimeMs<=pI.mtime)return;Jq().readFile(_,{encoding:"utf-8"}).then(($)=>{let z=BB();if(ch6(),z!==_||K.mtimeMs<=pI.mtime)return;let Y=C4(bb($));if(Y===null||typeof Y!=="object")return;if(_===cf())rtq();pI={config:stq({...gB(),...Y}),mtime:K.mtimeMs},pB={file:_,mtime:K.mtimeMs,size:K.size}}).catch(()=>{ch6()})}function Qv5(){ch6()}function d7q(q){rtq(),pI={config:q,mtime:Date.now()},pB=null}function QFK(q){let K=Jq(),_=null;try{_=K.statSync(q)}catch{}if(q===cf()&&(_!==null||Q7q||K.existsSync(q)))rtq();let $=stq(mB(q,gB));return pI={config:$,mtime:_?.mtimeMs??Date.now()},pB=_?{file:q,mtime:_.mtimeMs,size:_.size}:null,$}function Hq(){if(pI.config)return gh6++,pI.config;B7q++;let q=BB();try{let K=QFK(q);Qv5();let _=BB();if(_!==q){let $=QFK(_);return ch6(),$}return K}catch{return stq(mB(q,gB))}}function JH6(){if(!x7("remoteControl"))return!1;let q=Hq().remoteControlAtStartup;if(q!==void 0)return q;return!1}function Uh6(q){let K=Hq();if(K.customApiKeyResponses?.approved?.includes(q))return"approved";if(K.customApiKeyResponses?.rejected?.includes(q))return"rejected";return"new"}function tFK(q,K,_){let $=itq(q);Jq().mkdirSync($);let Y=BN6(K,(A,O)=>B6(A)!==B6(_[O]));if(Y96(q,B6(Y,null,2),{encoding:"utf-8",mode:384}),q===cf())atq++}function lv5(q,K){if(q!==cf())return mB(q,K);let _=null,$=null;try{while(!0){let z=BB();if(z===q)return _?.(),_=null,$=null,mB(z,K);if($!==z){_?.(),_=aFK(z),$=z;continue}return mB(z,K)}}finally{_?.()}}function eFK(q,K,_){let $=K(),z=itq(q),Y=Jq();Y.mkdirSync(z);let A;try{let O=Date.now();A=aFK(q);let w=Date.now()-O;if(w>100)R("Lock acquisition took longer than expected - another ChatCode CLI instance may be running"),n("tengu_config_lock_contention",{lock_time_ms:w});if(pB&&q===cf()&&pB.file===q)try{let J=Y.statSync(q);if(J.mtimeMs!==pB.mtime||J.size!==pB.size)n("tengu_config_stale_write",{read_mtime:pB.mtime,write_mtime:J.mtimeMs,read_size:pB.size,write_size:J.size})}catch(J){if(c8(J)!=="ENOENT")throw J}let H=lv5(q,K);if(q===cf()&&U7q(H))return R("saveConfigWithLock: re-read config is missing auth that cache has; refusing to write to avoid wiping ~/.chatcode-cli.json. See GH #3117.",{level:"error"}),n("tengu_config_auth_loss_prevented",{}),!1;let j=_(H);if(j===H)return!1;let M=BN6(j,(J,P)=>B6(J)!==B6($[P]));try{let J=ntq(q),P=ttq();try{Y.mkdirSync(P)}catch(y){if(c8(y)!=="EEXIST")throw y}let X=60000,f=Y.readdirStringSync(P).filter((y)=>y.startsWith(`${J}.backup.`)).sort().reverse(),W=f[0],Z=W?Number(W.split(".backup.").pop()):0,G=Number.isNaN(Z)||Date.now()-Z>=X;if(G){let y=FT(P,`${J}.backup.${Date.now()}`);Y.copyFileSync(q,y)}let D=5,N=G?Y.readdirStringSync(P).filter((y)=>y.startsWith(`${J}.backup.`)).sort().reverse():f;for(let y of N.slice(D))try{Y.unlinkSync(FT(P,y))}catch{}}catch(J){if(c8(J)!=="ENOENT")R(`Failed to backup config: ${J}`,{level:"error"})}if(Y96(q,B6(M,null,2),{encoding:"utf-8",mode:384}),q===cf())atq++;return!0}finally{if(A)A()}}function Qh6(){if(ltq)return;let q=Date.now();oq("info","enable_configs_started"),ltq=!0,mB(BB(),gB,!0),oq("info","enable_configs_completed",{duration_ms:Date.now()-q})}function ttq(){return FT(S8(),"backups")}function lFK(q){let K=Jq(),_=ntq(q),$=ttq();try{let A=K.readdirStringSync($).filter((O)=>O.startsWith(`${_}.backup.`)).sort().at(-1);if(A)return FT($,A)}catch{}let z=itq(q);try{let A=K.readdirStringSync(z).filter((w)=>w.startsWith(`${_}.backup.`)).sort().at(-1);if(A)return FT(z,A);let O=`${q}.backup`;try{return K.statSync(O),O}catch{}}catch{}return null}function mB(q,K,_){if(!ltq)throw Error("Config accessed before allowed.");let $=Jq();try{let z=$.readFileSync(q,{encoding:"utf-8"});try{let Y=lq(bb(z));return{...K(),...Y}}catch(Y){let A=Y instanceof Error?Y.message:String(Y);throw new ZZ(A,q,K())}}catch(z){if(c8(z)==="ENOENT"){let A=lFK(q);if(A)process.stderr.write(`
|
|
488
|
+
`;await $v5(q,_,"utf8")}catch(_){O6(_)}}async deleteFile(q){try{await fFK(q)}catch{}}async retryPreviousBatches(){try{let q=`${ZFK}${yq()}.`,K;try{K=(await zv5(Vh6())).filter((_)=>_.startsWith(q)&&_.endsWith(".json")).filter((_)=>!_.includes(WFK))}catch(_){if(E5(_))return;throw _}for(let _ of K){let $=h7q.join(Vh6(),_);this.retryFileInBackground($)}}catch(q){O6(q)}}async retryFileInBackground(q){if(this.attempts>=this.maxAttempts){await this.deleteFile(q);return}let K=await this.loadEventsFromFile(q);if(K.length===0){await this.deleteFile(q);return}if(process.env.USER_TYPE==="ant")R(`1P event logging: retrying ${K.length} events from previous batch`);let _=await this.sendEventsInBatches(K);if(_.length===0){if(await this.deleteFile(q),process.env.USER_TYPE==="ant")R("1P event logging: previous batch retry succeeded")}else if(await this.saveEventsToFile(q,_),process.env.USER_TYPE==="ant")R(`1P event logging: previous batch retry failed, ${_.length} events remain`)}async export(q,K){if(this.isShutdown){if(process.env.USER_TYPE==="ant")R("1P event logging export failed: Exporter has been shutdown");K({code:Ji.ExportResultCode.FAILED,error:Error("Exporter has been shutdown")});return}let _=this.doExport(q,K);this.pendingExports.push(_),_.finally(()=>{let $=this.pendingExports.indexOf(_);if($>-1)this.pendingExports.splice($,1)})}async doExport(q,K){try{let _=q.filter((Y)=>Y.instrumentationScope?.name==="com.anthropic.claudecode.events");if(_.length===0){K({code:Ji.ExportResultCode.SUCCESS});return}let $=this.transformLogsToEvents(_).events;if($.length===0){K({code:Ji.ExportResultCode.SUCCESS});return}if(this.attempts>=this.maxAttempts){K({code:Ji.ExportResultCode.FAILED,error:Error(`Dropped ${$.length} events: max attempts (${this.maxAttempts}) reached`)});return}let z=await this.sendEventsInBatches($);if(this.attempts++,z.length>0){await this.queueFailedEvents(z),this.scheduleBackoffRetry();let Y=this.lastExportErrorContext?` (${this.lastExportErrorContext})`:"";K({code:Ji.ExportResultCode.FAILED,error:Error(`Failed to export ${z.length} events${Y}`)});return}if(this.resetBackoff(),await this.getQueuedEventCount()>0&&!this.isRetrying)this.retryFailedEvents();K({code:Ji.ExportResultCode.SUCCESS})}catch(_){if(process.env.USER_TYPE==="ant")R(`1P event logging export failed: ${l6(_)}`);O6(_),K({code:Ji.ExportResultCode.FAILED,error:R8(_)})}}async sendEventsInBatches(q){let K=[];for(let z=0;z<q.length;z+=this.maxBatchSize)K.push(q.slice(z,z+this.maxBatchSize));if(process.env.USER_TYPE==="ant")R(`1P event logging: exporting ${q.length} events in ${K.length} batch(es)`);let _=[],$;for(let z=0;z<K.length;z++){let Y=K[z];try{await this.sendBatchWithRetry({events:Y})}catch(A){$=Av5(A);for(let O=z;O<K.length;O++)_.push(...K[O]);if(process.env.USER_TYPE==="ant"){let O=K.length-1-z;R(`1P event logging: batch ${z+1}/${K.length} failed (${$}); short-circuiting ${O} remaining batch(es)`)}break}if(z<K.length-1&&this.batchDelayMs>0)await Z7(this.batchDelayMs)}if(_.length>0&&$)this.lastExportErrorContext=$;return _}async queueFailedEvents(q){let K=this.getCurrentBatchFilePath();await this.appendEventsToFile(K,q);let _=this.lastExportErrorContext?` (${this.lastExportErrorContext})`:"",$=`1P event logging: ${q.length} events failed to export${_}`;O6(Error($))}scheduleBackoffRetry(){if(this.cancelBackoff||this.isRetrying||this.isShutdown)return;let q=Math.min(this.baseBackoffDelayMs*this.attempts*this.attempts,this.maxBackoffDelayMs);if(process.env.USER_TYPE==="ant")R(`1P event logging: scheduling backoff retry in ${q}ms (attempt ${this.attempts})`);this.cancelBackoff=this.schedule(async()=>{this.cancelBackoff=null,await this.retryFailedEvents()},q)}async retryFailedEvents(){let q=this.getCurrentBatchFilePath();while(!this.isShutdown){let K=await this.loadEventsFromFile(q);if(K.length===0)break;if(this.attempts>=this.maxAttempts){if(process.env.USER_TYPE==="ant")R(`1P event logging: max attempts (${this.maxAttempts}) reached, dropping ${K.length} events`);await this.deleteFile(q),this.resetBackoff();return}if(this.isRetrying=!0,await this.deleteFile(q),process.env.USER_TYPE==="ant")R(`1P event logging: retrying ${K.length} failed events (attempt ${this.attempts+1})`);let _=await this.sendEventsInBatches(K);if(this.attempts++,this.isRetrying=!1,_.length>0){await this.saveEventsToFile(q,_),this.scheduleBackoffRetry();return}if(this.resetBackoff(),process.env.USER_TYPE==="ant")R("1P event logging: backoff retry succeeded")}}resetBackoff(){if(this.attempts=0,this.cancelBackoff)this.cancelBackoff(),this.cancelBackoff=null}async sendBatchWithRetry(q){if(this.isKilled())throw Error("firstParty sink killswitch active");let K={"Content-Type":"application/json","User-Agent":wO(),"x-service-name":"chatcode-cli"},_=A3()||xK();if(process.env.USER_TYPE==="ant"&&!_)R("1P event logging: Trust not accepted");let $=this.skipAuth||!_;if(!$&&CK()){let O=oK();if(!aX())$=!0;else if(O&&vI(O.expiresAt)){if($=!0,process.env.USER_TYPE==="ant")R("1P event logging: OAuth token expired, skipping auth to avoid 401")}}let z=$?{headers:{},error:"trust not established or Oauth token expired"}:yH(),Y=!z.error;if(!Y&&process.env.USER_TYPE==="ant")R("1P event logging: auth not available, sending without auth");let A=Y?{...K,...z.headers}:K;try{let O=await Y8.post(this.endpoint,q,{timeout:this.timeout,headers:A});this.logSuccess(q.events.length,Y,O.data);return}catch(O){if(Y&&Y8.isAxiosError(O)&&O.response?.status===401){if(process.env.USER_TYPE==="ant")R("1P event logging: 401 auth error, retrying without auth");let w=await Y8.post(this.endpoint,q,{timeout:this.timeout,headers:K});this.logSuccess(q.events.length,!1,w.data);return}throw O}}logSuccess(q,K,_){if(process.env.USER_TYPE==="ant")R(`1P event logging: ${q} events exported successfully${K?" (with auth)":" (without auth)"}`),R(`API Response: ${B6(_,null,2)}`)}hrTimeToDate(q){let[K,_]=q;return new Date(K*1000+_/1e6)}transformLogsToEvents(q){let K=[];for(let _ of q){let $=_.attributes||{};if($.event_type==="GrowthbookExperimentEvent"){let X=this.hrTimeToDate(_.hrTime),f=$.account_uuid,W=$.organization_uuid;K.push({event_type:"GrowthbookExperimentEvent",event_data:Gtq.toJSON({event_id:$.event_id,timestamp:X,experiment_id:$.experiment_id,variation_id:$.variation_id,environment:$.environment,user_attributes:$.user_attributes,experiment_metadata:$.experiment_metadata,device_id:$.device_id,session_id:$.session_id,auth:f||W?{account_uuid:f,organization_uuid:W}:void 0})});continue}let z=$.event_name||_.body||"unknown",Y=$.core_metadata,A=$.user_metadata,O=$.event_metadata||{};if(!Y){if(process.env.USER_TYPE==="ant")R(`1P event logging: core_metadata missing for event ${z}`);K.push({event_type:"ChatCodeInternalEvent",event_data:D7q.toJSON({event_id:$.event_id,event_name:z,client_timestamp:this.hrTimeToDate(_.hrTime),session_id:yq(),additional_metadata:Buffer.from(B6({transform_error:"core_metadata attribute is missing"})).toString("base64")})});continue}let w=PFK(Y,A,O),{_PROTO_skill_name:H,_PROTO_plugin_name:j,_PROTO_marketplace_name:M,...J}=w.additional,P=kn6(J);K.push({event_type:"ChatCodeInternalEvent",event_data:D7q.toJSON({event_id:$.event_id,event_name:z,client_timestamp:this.hrTimeToDate(_.hrTime),device_id:$.user_id,email:A?.email,auth:w.auth,...w.core,env:w.env,process:w.process,skill_name:typeof H==="string"?H:void 0,plugin_name:typeof j==="string"?j:void 0,marketplace_name:typeof M==="string"?M:void 0,additional_metadata:Object.keys(P).length>0?Buffer.from(B6(P)).toString("base64"):void 0})})}return{events:K}}async shutdown(){if(this.isShutdown=!0,this.resetBackoff(),await this.forceFlush(),process.env.USER_TYPE==="ant")R("1P event logging exporter shutdown complete")}async forceFlush(){if(await Promise.all(this.pendingExports),process.env.USER_TYPE==="ant")R("1P event logging exporter flush complete")}}function Av5(q){if(!Y8.isAxiosError(q))return l6(q);let K=[],_=q.response?.headers?.["request-id"];if(_)K.push(`request-id=${_}`);if(q.response?.status)K.push(`status=${q.response.status}`);if(q.code)K.push(`code=${q.code}`);if(q.message)K.push(q.message);return K.join(", ")}var Ji,WFK,ZFK="1p_failed_events.";var vFK=h(()=>{o_();Nq();tdK();edK();MK();D8();zq();Iq();hq();QZ();zO();Lq();iq();_M();Rq();lw();Ji=u(jO(),1),WFK=_v5()});function YH6(q){return xI(Ov5,{})?.[q]===!0}var Ov5="tengu_frond_boric";var Itq=h(()=>{Q8()});var VFK={};Eq(VFK,{shutdown1PEventLogging:()=>Lh6,shouldSampleEvent:()=>xtq,reinitialize1PEventLoggingIfConfigChanged:()=>Xv5,logGrowthBookExperimentTo1P:()=>utq,logEventTo1P:()=>Sh6,is1PEventLoggingEnabled:()=>hh6,initialize1PEventLogging:()=>RFK,getEventSamplingConfig:()=>kFK});import{randomUUID as DFK}from"crypto";function kFK(){return xI(wv5,{})}function xtq(q){let _=kFK()[q];if(!_)return null;let $=_.sample_rate;if(typeof $!=="number"||$<0||$>1)return null;if($>=1)return null;if($<=0)return 0;return Math.random()<$?$:0}function NFK(){return xI(TFK,{})}async function Lh6(){if(!Pi)return;try{if(await Pi.shutdown(),process.env.USER_TYPE==="ant")R("1P event logging: final shutdown complete")}catch{}}function hh6(){return!1}async function Hv5(q,K,_={}){try{let $=await L7q({model:_.model,betas:_.betas}),z={event_name:K,event_id:DFK(),core_metadata:$,user_metadata:i16(!0),event_metadata:_},Y=wR();if(Y)z.user_id=Y;if(process.env.USER_TYPE==="ant")R(`[ANT-ONLY] 1P event: ${K} ${B6(_,null,0)}`);q.emit({body:K,attributes:z})}catch($){throw $}}function Sh6(q,K={}){if(!hh6())return;if(!Xi||YH6("firstParty"))return;Hv5(Xi,q,K)}function jv5(){return"production"}function utq(q){if(!hh6())return;if(!Xi||YH6("firstParty"))return;let K=wR(),{accountUuid:_,organizationUuid:$}=i16(!0),z={event_type:"GrowthbookExperimentEvent",event_id:DFK(),experiment_id:q.experimentId,variation_id:q.variationId,...K&&{device_id:K},..._&&{account_uuid:_},...$&&{organization_uuid:$},...q.userAttributes&&{session_id:q.userAttributes.sessionId,user_attributes:B6(q.userAttributes)},...q.experimentMetadata&&{experiment_metadata:B6(q.experimentMetadata)},environment:jv5()};if(process.env.USER_TYPE==="ant")R(`[ANT-ONLY] 1P GrowthBook experiment: ${q.experimentId} variation=${q.variationId}`);Xi.emit({body:"growthbook_experiment",attributes:z})}function RFK(){if(w_("1p_event_logging_start"),!hh6()){if(process.env.USER_TYPE==="ant")R("1P event logging not enabled");return}let K=NFK();yFK=K,w_("1p_event_after_growthbook_config");let _=K.scheduledDelayMillis||parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||Mv5.toString()),$=K.maxExportBatchSize||Jv5,z=K.maxQueueSize||Pv5,Y=X8(),A={[E7q.ATTR_SERVICE_NAME]:"chatcode-cli",[E7q.ATTR_SERVICE_VERSION]:MACRO.VERSION};if(Y==="wsl"){let H=Oq6();if(H)A["wsl.version"]=H}let O=GFK.resourceFromAttributes(A),w=new btq({maxBatchSize:$,skipAuth:K.skipAuth,maxAttempts:K.maxAttempts,path:K.path,baseUrl:K.baseUrl,isKilled:()=>YH6("firstParty")});Pi=new S7q.LoggerProvider({resource:O,processors:[new S7q.BatchLogRecordProcessor(w,{scheduledDelayMillis:_,maxExportBatchSize:$,maxQueueSize:z})]}),Xi=Pi.getLogger("com.anthropic.claudecode.events",MACRO.VERSION)}async function Xv5(){if(!hh6()||!Pi)return;let q=NFK();if(Oj(q,yFK))return;if(process.env.USER_TYPE==="ant")R(`1P event logging: ${TFK} changed, reinitializing`);let K=Pi,_=Xi;Xi=null;try{await K.forceFlush()}catch{}Pi=null;try{RFK()}catch($){Pi=K,Xi=_,O6($);return}K.shutdown().catch(()=>{})}var GFK,S7q,E7q,wv5="tengu_event_sampling_config",TFK="tengu_1p_event_batch_config",Xi=null,Pi=null,yFK=null,Mv5=1e4,Jv5=200,Pv5=8192;var ZK6=h(()=>{NO6();D8();zq();Lq();U_();iq();Jb();$K6();vFK();Q8();lw();Itq();GFK=u(KH6(),1),S7q=u(ftq(),1),E7q=u(zi(),1)});var uFK={};Eq(uFK,{stopPeriodicGrowthBookRefresh:()=>dtq,setupPeriodicGrowthBookRefresh:()=>xFK,setGrowthBookConfigOverride:()=>vv5,resetGrowthBook:()=>ph6,refreshGrowthBookFeatures:()=>IFK,refreshGrowthBookAfterAuthChange:()=>kK6,onGrowthBookRefresh:()=>xh6,initializeGrowthBook:()=>uB,hasGrowthBookEnvOverride:()=>fv5,getGrowthBookConfigOverrides:()=>Zv5,getFeatureValue_DEPRECATED:()=>C7q,getFeatureValue_CACHED_WITH_REFRESH:()=>uI,getFeatureValue_CACHED_MAY_BE_STALE:()=>J8,getDynamicConfig_CACHED_MAY_BE_STALE:()=>xI,getDynamicConfig_BLOCKS_ON_INIT:()=>rh,getApiBaseUrlHost:()=>EFK,getAllGrowthBookFeatures:()=>Wv5,clearGrowthBookConfigOverrides:()=>Gv5,checkStatsigFeatureGate_CACHED_MAY_BE_STALE:()=>LA,checkSecurityRestrictionGate:()=>ctq,checkGate_CACHED_OR_BLOCKING:()=>DK6});function LFK(q){try{Promise.resolve(q()).catch((K)=>{O6(K)})}catch(K){O6(K)}}function xh6(q){let K=!0,_=wH6.subscribe(()=>LFK(q));if(XR.size>0)queueMicrotask(()=>{if(K&&XR.size>0)LFK(q)});return()=>{K=!1,_()}}function HH6(){if(!mtq){if(mtq=!0,process.env.USER_TYPE==="ant"){let q=process.env.CLAUDE_INTERNAL_FC_OVERRIDES;if(q)try{Eh6=JSON.parse(q),R(`GrowthBook: Using env var overrides for ${Object.keys(Eh6).length} features: ${Object.keys(Eh6).join(", ")}`)}catch{O6(Error(`GrowthBook: Failed to parse CLAUDE_INTERNAL_FC_OVERRIDES: ${q}`))}}}return Eh6}function fv5(q){let K=HH6();return K!==null&&q in K}function jH6(){if(process.env.USER_TYPE!=="ant")return;try{return Hq().growthBookOverrides}catch{return}}function Wv5(){if(XR.size>0)return Object.fromEntries(XR);return Hq().cachedGrowthBookFeatures??{}}function Zv5(){return jH6()??{}}function vv5(q,K){if(process.env.USER_TYPE!=="ant")return;try{xq((_)=>{let $=_.growthBookOverrides??{};if(K===void 0){if(!(q in $))return _;let{[q]:z,...Y}=$;if(Object.keys(Y).length===0){let{growthBookOverrides:A,...O}=_;return O}return{..._,growthBookOverrides:Y}}if(Oj($[q],K))return _;return{..._,growthBookOverrides:{...$,[q]:K}}}),wH6.emit()}catch(_){O6(_)}}function Gv5(){if(process.env.USER_TYPE!=="ant")return;try{xq((q)=>{if(!q.growthBookOverrides||Object.keys(q.growthBookOverrides).length===0)return q;let{growthBookOverrides:K,..._}=q;return _}),wH6.emit()}catch(q){O6(q)}}function uh6(q){if(ptq.has(q))return;let K=GK6.get(q);if(K)ptq.add(q),utq({experimentId:K.experimentId,variationId:K.variationId,userAttributes:CFK(),experimentMetadata:{feature_id:q}})}async function hFK(q){let K=q.getPayload();if(!K?.features||Object.keys(K.features).length===0)return!1;GK6.clear();let _={};for(let[$,z]of Object.entries(K.features)){let Y=z;if("value"in Y&&!("defaultValue"in Y))_[$]={...Y,defaultValue:Y.value};else _[$]=Y;if(Y.source==="experiment"&&Y.experimentResult){let{experimentResult:A,experiment:O}=Y;if(O?.key&&A.variationId!==void 0)GK6.set($,{experimentId:O.key,variationId:A.variationId})}}await q.setPayload({...K,features:_}),XR.clear();for(let[$,z]of Object.entries(_)){let Y="value"in z?z.value:z.defaultValue;if(Y!==void 0)XR.set($,Y)}return!0}function SFK(){let q=Object.fromEntries(XR),K=Hq();if(Oj(K.cachedGrowthBookFeatures,q))return;xq((_)=>({..._,cachedGrowthBookFeatures:q}))}function xB(){return!1}function EFK(){let q=process.env.ANTHROPIC_BASE_URL;if(!q)return;try{let K=new URL(q).host;if(K==="api.anthropic.com")return;return K}catch{return}}function CFK(){let q=HVK(),K=q.email;if(!K&&process.env.USER_TYPE==="ant")K=Hq().oauthAccount?.emailAddress;let _=EFK();return{id:q.deviceId,sessionId:q.sessionId,deviceID:q.deviceId,platform:q.platform,..._&&{apiBaseUrlHost:_},...q.organizationUuid&&{organizationUUID:q.organizationUuid},...q.accountUuid&&{accountUUID:q.accountUuid},...q.userType&&{userType:q.userType},...q.subscriptionType&&{subscriptionType:q.subscriptionType},...q.rateLimitTier&&{rateLimitTier:q.rateLimitTier},...q.firstTokenTime&&{firstTokenTime:q.firstTokenTime},...K&&{email:K},...q.appVersion&&{appVersion:q.appVersion},...q.githubActionsMetadata&&{githubActionsMetadata:q.githubActionsMetadata}}}async function bFK(q,K,_){let $=HH6();if($&&q in $)return $[q];let z=jH6();if(z&&q in z)return z[q];if(!xB())return K;let Y=await uB();if(!Y)return K;let A;if(XR.has(q))A=XR.get(q);else A=Y.getFeatureValue(q,K);if(_)uh6(q);if(process.env.USER_TYPE==="ant")R(`GrowthBook: getFeatureValue("${q}") = ${B6(A)}`);return A}async function C7q(q,K){return bFK(q,K,!0)}function J8(q,K){let _=HH6();if(_&&q in _)return _[q];let $=jH6();if($&&q in $)return $[q];if(!xB())return K;if(GK6.has(q))uh6(q);else OH6.add(q);if(XR.has(q))return XR.get(q);try{let z=Hq().cachedGrowthBookFeatures?.[q];return z!==void 0?z:K}catch{return K}}function uI(q,K,_){return J8(q,K)}function LA(q){let K=HH6();if(K&&q in K)return Boolean(K[q]);let _=jH6();if(_&&q in _)return Boolean(_[q]);if(!xB())return!1;if(GK6.has(q))uh6(q);else OH6.add(q);let $=Hq(),z=$.cachedGrowthBookFeatures?.[q];if(z!==void 0)return Boolean(z);return $.cachedStatsigGates?.[q]??!1}async function ctq(q){let K=HH6();if(K&&q in K)return Boolean(K[q]);let _=jH6();if(_&&q in _)return Boolean(_[q]);if(!xB())return!1;if(Ih6)await Ih6;let $=Hq(),z=$.cachedStatsigGates?.[q];if(z!==void 0)return Boolean(z);let Y=$.cachedGrowthBookFeatures?.[q];if(Y!==void 0)return Boolean(Y);return!1}async function DK6(q){let K=HH6();if(K&&q in K)return Boolean(K[q]);let _=jH6();if(_&&q in _)return Boolean(_[q]);if(!xB())return!1;if(Hq().cachedGrowthBookFeatures?.[q]===!0){if(GK6.has(q))uh6(q);else OH6.add(q);return!0}return bFK(q,!1,!0)}function kK6(){if(!xB())return;try{ph6(),wH6.emit(),Ih6=uB().catch((q)=>{return O6(R8(q)),null}).finally(()=>{Ih6=null})}catch(q){throw q}}function ph6(){if(dtq(),Ch6)process.off("beforeExit",Ch6),Ch6=null;if(bh6)process.off("exit",bh6),bh6=null;IB?.destroy(),IB=null,Btq=!1,Ih6=null,GK6.clear(),OH6.clear(),ptq.clear(),XR.clear(),gtq.cache?.clear?.(),uB.cache?.clear?.(),Eh6=null,mtq=!1}async function IFK(){if(!xB())return;try{let q=await uB();if(!q)return;if(await q.refreshFeatures(),q!==IB){if(process.env.USER_TYPE==="ant")R("GrowthBook: Skipping refresh processing for replaced client");return}let K=await hFK(q);if(q!==IB)return;if(process.env.USER_TYPE==="ant")R("GrowthBook: Light refresh completed");if(K)SFK(),wH6.emit()}catch(q){throw q}}function xFK(){if(!xB())return;if(vK6)clearInterval(vK6);if(vK6=setInterval(()=>{IFK()},Dv5),vK6.unref?.(),!AH6)AH6=()=>{dtq()},process.once("beforeExit",AH6)}function dtq(){if(vK6)clearInterval(vK6),vK6=null;if(AH6)process.removeListener("beforeExit",AH6),AH6=null}async function rh(q,K){return C7q(q,K)}function xI(q,K){return J8(q,K)}var IB=null,Ch6=null,bh6=null,Btq=!1,GK6,XR,OH6,ptq,Ih6=null,wH6,Eh6=null,mtq=!1,gtq,uB,Dv5,vK6=null,AH6=null;var Q8=h(()=>{Un8();NO6();Nq();ln8();D8();zq();hq();QZ();Lq();iq();$K6();ZK6();GK6=new Map,XR=new Map,OH6=new Set,ptq=new Set,wH6=HY();gtq=q8(()=>{if(!xB())return null;let q=CFK(),K=Qn8();if(process.env.USER_TYPE==="ant")R(`GrowthBook: Creating client with clientKey=${K}, attributes: ${B6(q)}`);let _=process.env.USER_TYPE==="ant"?process.env.CHATCODE_CLI_GB_BASE_URL||"https://api.anthropic.com/":"https://api.anthropic.com/",z=A3()||aA6()||xK()?yH():{headers:{},error:"trust not established"},Y=!z.error;Btq=Y;let A=new Ro6({apiHost:_,clientKey:K,attributes:q,remoteEval:!0,cacheKeyAttributes:["id","organizationUUID"],...z.error?{}:{apiHostRequestHeaders:z.headers},...process.env.USER_TYPE==="ant"?{log:(w,H)=>{R(`GrowthBook: ${w} ${B6(H)}`)}}:{}});if(IB=A,!Y)return{client:A,initialized:Promise.resolve()};let O=A.init({timeout:5000}).then(async(w)=>{if(IB!==A){if(process.env.USER_TYPE==="ant")R("GrowthBook: Skipping init callback for replaced client");return}if(process.env.USER_TYPE==="ant")R(`GrowthBook initialized successfully, source: ${w.source}, success: ${w.success}`);let H=await hFK(A);if(IB!==A)return;if(H){for(let j of OH6)uh6(j);OH6.clear(),SFK(),wH6.emit()}if(process.env.USER_TYPE==="ant"){let j=A.getFeatures();if(j){let M=Object.keys(j);R(`GrowthBook loaded ${M.length} features: ${M.slice(0,10).join(", ")}${M.length>10?"...":""}`)}}}).catch((w)=>{if(process.env.USER_TYPE==="ant")O6(R8(w))});return Ch6=()=>IB?.destroy(),bh6=()=>IB?.destroy(),process.on("beforeExit",Ch6),process.on("exit",bh6),{client:A,initialized:O}}),uB=q8(async()=>{let q=gtq();if(!q)return null;if(!Btq){if(A3()||aA6()||xK()){if(!yH().error){if(process.env.USER_TYPE==="ant")R("GrowthBook: Auth became available after client creation, reinitializing");if(ph6(),q=gtq(),!q)return null}}}return await q.initialized,xFK(),q.client});Dv5=process.env.USER_TYPE!=="ant"?21600000:1200000});import{homedir as kv5}from"os";import{isAbsolute as Tv5,join as b7q,normalize as Ftq,sep as pFK}from"path";function k$(){let q=process.env.CHATCODE_CLI_DISABLE_AUTO_MEMORY;if(F6(q))return!1;if(D$(q))return!0;if(F6(process.env.CHATCODE_CLI_SIMPLE))return!1;if(F6(process.env.CHATCODE_CLI_REMOTE)&&!process.env.CHATCODE_CLI_REMOTE_MEMORY_DIR)return!1;let K=GK();if(K.chatcodeMemory?.enabled!==void 0)return K.chatcodeMemory.enabled;if(K.wanmaMemory?.enabled!==void 0)return K.wanmaMemory.enabled;if(K.autoMemoryEnabled!==void 0)return K.autoMemoryEnabled;return!0}function fi(){if(process.env.CHATCODE_CLI_REMOTE_MEMORY_DIR)return process.env.CHATCODE_CLI_REMOTE_MEMORY_DIR;return S8()}function mFK(q,K){if(!q)return;let _=q;if(K&&(_.startsWith("~/")||_.startsWith("~\\"))){let z=_.slice(2),Y=Ftq(z||".");if(Y==="."||Y==="..")return;_=b7q(kv5(),z)}let $=Ftq(_).replace(/[/\\]+$/,"");if(!Tv5($)||$.length<3||/^[A-Za-z]:$/.test($)||$.startsWith("\\\\")||$.startsWith("//")||$.includes("\x00"))return;return($+pFK).normalize("NFC")}function gFK(){return mFK(process.env.CLAUDE_COWORK_MEMORY_PATH_OVERRIDE,!1)}function Rv5(){let q=k8("policySettings")?.autoMemoryDirectory??k8("flagSettings")?.autoMemoryDirectory??k8("localSettings")?.autoMemoryDirectory??k8("userSettings")?.autoMemoryDirectory;return mFK(q,!0)}function I7q(){return gFK()!==void 0}function Vv5(){return b1(BY())??BY()}function x7q(){return b7q(O2(),yv5)}function TK6(q){return Ftq(q).startsWith(O2())}var Nv5="memory",yv5="MEMORY.md",O2;var nw=h(()=>{Z_();Nq();Q8();Iq();C5();SY();b8();O2=q8(()=>{let q=gFK()??Rv5();if(q)return q;let K=b7q(fi(),"projects");return(b7q(K,JJ(Vv5()),Nv5)+pFK).normalize("NFC")},()=>BY())});function cFK(q){return oh.includes(q)}function dFK(q){return mh6.includes(q)}var AA="AGENTS.md",oh,u7q,p7q,BFK,uG="CHATCODE-CLI.local.md",mh6;var NK6=h(()=>{oh=["AGENTS.md","WANMA.md","WANMA_CLI.md","CLAUDE.md"],u7q=["AGENTS.md","WANMA.md","CLAUDE.md"],p7q=["AGENTS.md","WANMA.md","CLAUDE.md"],BFK=p7q,mh6=["CHATCODE-CLI.local.md","WANMA.local.md","CLAUDE.local.md"]});var m7q,g7q,FFK;var Utq=h(()=>{m7q=["auto","iterm2","iterm2_with_bell","terminal_bell","kitty","ghostty","notifications_disabled"],g7q=["normal","vim"],FFK=["auto","tmux","in-process"]});var qUK={};Eq(qUK,{shouldSkipPluginAutoupdate:()=>PH6,saveGlobalConfig:()=>xq,saveCurrentProjectConfig:()=>h9,resetTrustDialogAcceptedCacheForTesting:()=>bv5,recordFirstStartTime:()=>etq,isProjectConfigKey:()=>uv5,isPathTrusted:()=>xv5,isGlobalConfigKey:()=>Cv5,isAutoUpdaterDisabled:()=>mI,getUserClaudeRulesDir:()=>i7q,getRemoteControlAtStartup:()=>JH6,getProjectPathForConfig:()=>l7q,getOrCreateUserID:()=>wR,getMemoryPath:()=>nh6,getManagedClaudeRulesDir:()=>n7q,getGlobalConfigWriteCount:()=>gv5,getGlobalConfig:()=>Hq,getCustomApiKeyStatus:()=>Uh6,getCurrentProjectConfig:()=>eO,getAutoUpdaterDisabledReason:()=>yK6,formatAutoUpdaterDisabledReason:()=>lh6,enableConfigs:()=>Qh6,checkHasTrustDialogAccepted:()=>A3,_wouldLoseAuthStateForTesting:()=>iv5,_setGlobalConfigCacheForTesting:()=>rv5,_setConfigWatcherImplementationForTesting:()=>pv5,_setConfigLockImplementationForTesting:()=>mv5,_resetConfigInternalsForTesting:()=>ov5,_getConfigForTesting:()=>nv5,PROJECT_CONFIG_KEYS:()=>iFK,NOTIFICATION_CHANNELS:()=>m7q,GLOBAL_CONFIG_KEYS:()=>nFK,EDITOR_MODES:()=>g7q,DEFAULT_GLOBAL_CONFIG:()=>F7q,CONFIG_WRITE_DISPLAY_THRESHOLD:()=>Bv5});import{randomBytes as hv5}from"crypto";import{unwatchFile as Sv5,watchFile as Ev5}from"fs";import{basename as ntq,dirname as itq,join as FT,resolve as c7q}from"path";function gB(){return{numStartups:0,installMethod:void 0,autoUpdates:void 0,theme:"dark",preferredNotifChannel:"auto",verbose:!0,editorMode:"normal",autoCompactEnabled:!0,showTurnDuration:!0,hasSeenTasksHint:!1,hasUsedStash:!1,hasUsedBackgroundTask:!1,queuedCommandUpHintCount:0,diffTool:"auto",customApiKeyResponses:{approved:[],rejected:[]},env:{},tipsHistory:{},memoryUsageCount:0,promptQueueUseCount:0,btwUseCount:0,todoFeatureEnabled:!0,showExpandedTodos:!1,messageIdleNotifThresholdMs:60000,autoConnectIde:!1,autoInstallIdeExtension:!0,fileCheckpointingEnabled:!0,terminalProgressBarEnabled:!0,cachedStatsigGates:{},cachedDynamicConfigs:{},cachedGrowthBookFeatures:{},respectGitignore:!0,copyFullResponse:!1}}function Cv5(q){return nFK.includes(q)}function bv5(){rFK=!1}function A3(){return rFK||=Iv5()}function Iv5(){if(aA6())return!0;let q=Hq(),K=l7q();if(q.projects?.[K]?.hasTrustDialogAccepted)return!0;let $=jq6(Zq());while(!0){if(q.projects?.[$]?.hasTrustDialogAccepted)return!0;let Y=jq6(c7q($,".."));if(Y===$)break;$=Y}return!1}function xv5(q){let K=Hq(),_=jq6(c7q(q));while(!0){if(K.projects?.[_]?.hasTrustDialogAccepted)return!0;let $=jq6(c7q(_,".."));if($===_)return!1;_=$}}function uv5(q){return iFK.includes(q)}function U7q(q){let K=pI.config;if(!K)return!1;let _=K.oauthAccount!==void 0&&q.oauthAccount===void 0,$=K.hasCompletedOnboarding===!0&&q.hasCompletedOnboarding!==!0;return _||$}function rtq(){Q7q=!0}function BB(){let q=cf();if(Q7q)return q;return eqK()??q}function aFK(q){return otq(q,{lockfilePath:`${q}.lock`,onCompromised:(K)=>{R(`Config lock compromised: ${K}`,{level:"error"})}})}function pv5(q){Fh6=q}function mv5(q){otq=q.lockSync}function xq(q){let K=null,_=cf();try{if(eFK(_,gB,(z)=>{let Y=q(z);if(Y===z)return z;return K={...Y,projects:UFK(z.projects)},K})&&K)d7q(K)}catch($){R(`Failed to save config with lock: ${$}`,{level:"error"});let z=mB(BB(),gB);if(U7q(z)){R("saveGlobalConfig fallback: re-read config is missing auth that cache has; refusing to write. See GH #3117.",{level:"error"}),n("tengu_config_auth_loss_prevented",{});return}let Y=q(z);if(Y===z)return;K={...Y,projects:UFK(z.projects)},tFK(_,K,F7q),d7q(K)}}function gv5(){return atq}function cv5(){let q=gh6+B7q;if(q>0)n("tengu_config_cache_stats",{cache_hits:gh6,cache_misses:B7q,hit_rate:gh6/q});gh6=0,B7q=0}function stq(q){if(q.installMethod!==void 0)return q;let K=q,_="unknown",$=q.autoUpdates??!0;switch(K.autoUpdaterStatus){case"migrated":_="local";break;case"installed":_="native";break;case"disabled":$=!1;break;case"enabled":case"no_permissions":case"not_configured":_="global";break;case void 0:break}return{...q,installMethod:_,autoUpdates:$}}function UFK(q){if(!q)return q;let K={},_=!1;for(let[$,z]of Object.entries(q)){let Y=z;if(Y.history!==void 0){_=!0;let{history:A,...O}=Y;K[$]=O}else K[$]=z}return _?K:q}function Fv5(){let q=BB(),K=cf();return q===K?[K]:[q,K]}function sFK(){for(let q of Array.from(MH6))Fh6.unwatchFile(q);MH6.clear()}function ch6(){let q=new Set(Fv5());for(let K of Array.from(MH6)){if(q.has(K))continue;Fh6.unwatchFile(K),MH6.delete(K)}for(let K of q){if(MH6.has(K))continue;Fh6.watchFile(K,{interval:dv5,persistent:!1},(_)=>{Uv5(K,_)}),MH6.add(K)}if(!Bh6)Bh6=O7(async()=>{sFK(),Bh6=null})}function Uv5(q,K){let _=BB();if(ch6(),_!==q||K.mtimeMs<=pI.mtime)return;Jq().readFile(_,{encoding:"utf-8"}).then(($)=>{let z=BB();if(ch6(),z!==_||K.mtimeMs<=pI.mtime)return;let Y=C4(bb($));if(Y===null||typeof Y!=="object")return;if(_===cf())rtq();pI={config:stq({...gB(),...Y}),mtime:K.mtimeMs},pB={file:_,mtime:K.mtimeMs,size:K.size}}).catch(()=>{ch6()})}function Qv5(){ch6()}function d7q(q){rtq(),pI={config:q,mtime:Date.now()},pB=null}function QFK(q){let K=Jq(),_=null;try{_=K.statSync(q)}catch{}if(q===cf()&&(_!==null||Q7q||K.existsSync(q)))rtq();let $=stq(mB(q,gB));return pI={config:$,mtime:_?.mtimeMs??Date.now()},pB=_?{file:q,mtime:_.mtimeMs,size:_.size}:null,$}function Hq(){if(pI.config)return gh6++,pI.config;B7q++;let q=BB();try{let K=QFK(q);Qv5();let _=BB();if(_!==q){let $=QFK(_);return ch6(),$}return K}catch{return stq(mB(q,gB))}}function JH6(){if(!x7("remoteControl"))return!1;let q=Hq().remoteControlAtStartup;if(q!==void 0)return q;return!1}function Uh6(q){let K=Hq();if(K.customApiKeyResponses?.approved?.includes(q))return"approved";if(K.customApiKeyResponses?.rejected?.includes(q))return"rejected";return"new"}function tFK(q,K,_){let $=itq(q);Jq().mkdirSync($);let Y=BN6(K,(A,O)=>B6(A)!==B6(_[O]));if(Y96(q,B6(Y,null,2),{encoding:"utf-8",mode:384}),q===cf())atq++}function lv5(q,K){if(q!==cf())return mB(q,K);let _=null,$=null;try{while(!0){let z=BB();if(z===q)return _?.(),_=null,$=null,mB(z,K);if($!==z){_?.(),_=aFK(z),$=z;continue}return mB(z,K)}}finally{_?.()}}function eFK(q,K,_){let $=K(),z=itq(q),Y=Jq();Y.mkdirSync(z);let A;try{let O=Date.now();A=aFK(q);let w=Date.now()-O;if(w>100)R("Lock acquisition took longer than expected - another ChatCode CLI instance may be running"),n("tengu_config_lock_contention",{lock_time_ms:w});if(pB&&q===cf()&&pB.file===q)try{let J=Y.statSync(q);if(J.mtimeMs!==pB.mtime||J.size!==pB.size)n("tengu_config_stale_write",{read_mtime:pB.mtime,write_mtime:J.mtimeMs,read_size:pB.size,write_size:J.size})}catch(J){if(c8(J)!=="ENOENT")throw J}let H=lv5(q,K);if(q===cf()&&U7q(H))return R("saveConfigWithLock: re-read config is missing auth that cache has; refusing to write to avoid wiping ~/.chatcode-cli.json. See GH #3117.",{level:"error"}),n("tengu_config_auth_loss_prevented",{}),!1;let j=_(H);if(j===H)return!1;let M=BN6(j,(J,P)=>B6(J)!==B6($[P]));try{let J=ntq(q),P=ttq();try{Y.mkdirSync(P)}catch(y){if(c8(y)!=="EEXIST")throw y}let X=60000,f=Y.readdirStringSync(P).filter((y)=>y.startsWith(`${J}.backup.`)).sort().reverse(),W=f[0],Z=W?Number(W.split(".backup.").pop()):0,G=Number.isNaN(Z)||Date.now()-Z>=X;if(G){let y=FT(P,`${J}.backup.${Date.now()}`);Y.copyFileSync(q,y)}let D=5,N=G?Y.readdirStringSync(P).filter((y)=>y.startsWith(`${J}.backup.`)).sort().reverse():f;for(let y of N.slice(D))try{Y.unlinkSync(FT(P,y))}catch{}}catch(J){if(c8(J)!=="ENOENT")R(`Failed to backup config: ${J}`,{level:"error"})}if(Y96(q,B6(M,null,2),{encoding:"utf-8",mode:384}),q===cf())atq++;return!0}finally{if(A)A()}}function Qh6(){if(ltq)return;let q=Date.now();oq("info","enable_configs_started"),ltq=!0,mB(BB(),gB,!0),oq("info","enable_configs_completed",{duration_ms:Date.now()-q})}function ttq(){return FT(S8(),"backups")}function lFK(q){let K=Jq(),_=ntq(q),$=ttq();try{let A=K.readdirStringSync($).filter((O)=>O.startsWith(`${_}.backup.`)).sort().at(-1);if(A)return FT($,A)}catch{}let z=itq(q);try{let A=K.readdirStringSync(z).filter((w)=>w.startsWith(`${_}.backup.`)).sort().at(-1);if(A)return FT(z,A);let O=`${q}.backup`;try{return K.statSync(O),O}catch{}}catch{}return null}function mB(q,K,_){if(!ltq)throw Error("Config accessed before allowed.");let $=Jq();try{let z=$.readFileSync(q,{encoding:"utf-8"});try{let Y=lq(bb(z));return{...K(),...Y}}catch(Y){let A=Y instanceof Error?Y.message:String(Y);throw new ZZ(A,q,K())}}catch(z){if(c8(z)==="ENOENT"){let A=lFK(q);if(A)process.stderr.write(`
|
|
489
489
|
ChatCode CLI configuration file not found at: ${q}
|
|
490
490
|
A backup file exists at: ${A}
|
|
491
491
|
You can manually restore it by running: cp "${A}" "${q}"
|
|
@@ -1765,7 +1765,7 @@ Format: 2-12 words, match the user's style. Or nothing.
|
|
|
1765
1765
|
|
|
1766
1766
|
Reply with ONLY the suggestion, no quotes or explanation.`,e5$;var n_6=h(()=>{Nq();O3();Iq();hq();Hv();Lq();I8();b8();FY();Q8();Rq();cx();i_6();e5$={user_intent:Yf7,stated_intent:Yf7}});import{basename as q$$,extname as K$$,posix as Hf7,sep as _$$}from"path";function Mf7(q){let K=Hf7.sep+q.split(_$$).join(Hf7.sep).replace(/^\/+/,""),_=q$$(q).toLowerCase(),$=K$$(q).toLowerCase();if($$$.has(_))return!0;if(jf7.has($))return!0;let z=_.split(".");if(z.length>2){let Y="."+z.slice(-2).join(".");if(jf7.has(Y))return!0}for(let Y of z$$)if(K.includes(Y))return!0;for(let Y of Y$$)if(Y.test(_))return!0;return!1}var $$$,jf7,z$$,Y$$;var Jf7=h(()=>{$$$=new Set(["package-lock.json","yarn.lock","pnpm-lock.yaml","bun.lockb","bun.lock","composer.lock","gemfile.lock","cargo.lock","poetry.lock","pipfile.lock","shrinkwrap.json","npm-shrinkwrap.json"]),jf7=new Set([".lock",".min.js",".min.css",".min.html",".bundle.js",".bundle.css",".generated.ts",".generated.js",".d.ts"]),z$$=["/dist/","/build/","/out/","/output/","/node_modules/","/vendor/","/vendored/","/third_party/","/third-party/","/external/","/.next/","/.nuxt/","/.svelte-kit/","/coverage/","/__pycache__/","/.tox/","/venv/","/.venv/","/target/release/","/target/debug/"],Y$$=[/^.*\.min\.[a-z]+$/i,/^.*-min\.[a-z]+$/i,/^.*\.bundle\.[a-z]+$/i,/^.*\.generated\.[a-z]+$/i,/^.*\.gen\.[a-z]+$/i,/^.*\.auto\.[a-z]+$/i,/^.*_generated\.[a-z]+$/i,/^.*_gen\.[a-z]+$/i,/^.*\.pb\.(go|js|ts|py|rb)$/i,/^.*_pb2?\.py$/i,/^.*\.pb\.h$/i,/^.*\.grpc\.[a-z]+$/i,/^.*\.swagger\.[a-z]+$/i,/^.*\.openapi\.[a-z]+$/i]});var Nf7={};Eq(Nf7,{trackFileModification:()=>Gf7,trackFileDeletion:()=>P$$,trackFileCreation:()=>J$$,trackBulkFileChanges:()=>X$$,stateToSnapshotMessage:()=>kf7,sanitizeSurfaceKey:()=>H$$,sanitizeModelName:()=>p3q,restoreAttributionStateFromSnapshots:()=>Tf7,normalizeFilePath:()=>r_6,isInternalModelRepoCached:()=>oz8,isInternalModelRepo:()=>az8,isGitTransientState:()=>W$$,isFileDeleted:()=>Df7,incrementPromptCount:()=>v$$,getStagedFiles:()=>f$$,getRepoClassCached:()=>rz8,getGitDiffSize:()=>lz8,getFileMtime:()=>M$$,getClientSurface:()=>ff7,getAttributionRepoRoot:()=>tc,expandFilePath:()=>Zf7,createEmptyAttributionState:()=>Ho,computeContentHash:()=>Wf7,calculateCommitAttribution:()=>sz8,buildSurfaceKey:()=>j$$,attributionRestoreStateFromLog:()=>Z$$});import{createHash as A$$,randomUUID as O$$}from"crypto";import{stat as nz8}from"fs/promises";import{isAbsolute as Xf7,join as iz8,relative as Pf7,sep as u3q}from"path";function tc(){let q=Zq();return _A(q)??x8()}function rz8(){return QJ6}function oz8(){return QJ6==="internal"}function H$$(q){let K=q.lastIndexOf("/");if(K===-1)return q;let _=q.slice(0,K),$=q.slice(K+1),z=p3q($);return`${_}/${z}`}function p3q(q){if(q.includes("opus-4-6"))return"claude-opus-4-6";if(q.includes("opus-4-5"))return"claude-opus-4-5";if(q.includes("opus-4-1"))return"claude-opus-4-1";if(q.includes("opus-4"))return"claude-opus-4";if(q.includes("sonnet-4-6"))return"claude-sonnet-4-6";if(q.includes("sonnet-4-5"))return"claude-sonnet-4-5";if(q.includes("sonnet-4"))return"claude-sonnet-4";if(q.includes("sonnet-3-7"))return"claude-sonnet-3-7";if(q.includes("haiku-4-5"))return"claude-haiku-4-5";if(q.includes("haiku-3-5"))return"claude-haiku-3-5";return"claude"}function ff7(){return process.env.CHATCODE_CLI_ENTRYPOINT??"cli"}function j$$(q,K){return`${q}/${YA(K)}`}function Wf7(q){return A$$("sha256").update(q).digest("hex")}function r_6(q){let K=Jq(),_=tc();if(!Xf7(q))return q;let $=q,z=_;try{$=K.realpathSync(q)}catch{}try{z=K.realpathSync(_)}catch{}if($.startsWith(z+u3q)||$===z)return Pf7(z,$).replaceAll(u3q,"/");if(q.startsWith(_+u3q)||q===_)return Pf7(_,q).replaceAll(u3q,"/");return q}function Zf7(q){if(Xf7(q))return q;return iz8(tc(),q)}function Ho(){return{fileStates:new Map,sessionBaselines:new Map,surface:ff7(),startingHeadSha:null,promptCount:0,promptCountAtLastCommit:0,permissionPromptCount:0,permissionPromptCountAtLastCommit:0,escapeCount:0,escapeCountAtLastCommit:0}}function vf7(q,K,_,$,z){let Y=r_6(K);try{let A;if(_===""||$==="")A=_===""?$.length:_.length;else{let H=Math.min(_.length,$.length),j=0;while(j<H&&_[j]===$[j])j++;let M=0;while(M<H-j&&_[_.length-1-M]===$[$.length-1-M])M++;let J=_.length-j-M,P=$.length-j-M;A=Math.max(J,P)}let w=q.get(Y)?.claudeontribution??0;return{contentHash:Wf7($),claudeContribution:w+A,mtime:z}}catch(A){return O6(A),null}}async function M$$(q){let K=r_6(q),_=Zf7(K);try{return(await nz8(_)).mtimeMs}catch{return Date.now()}}function Gf7(q,K,_,$,z,Y=Date.now()){let A=r_6(K),O=vf7(q.fileStates,K,_,$,Y);if(!O)return q;let w=new Map(q.fileStates);return w.set(A,O),R(`Attribution: Tracked ${O.claudeontribution} chars for ${A}`),{...q,fileStates:w}}function J$$(q,K,_,$=Date.now()){return Gf7(q,K,"",_,!1,$)}function P$$(q,K,_){let $=r_6(K),Y=q.fileStates.get($)?.claudeontribution??0,A=_.length,O={contentHash:"",claudeContribution:Y+A,mtime:Date.now()},w=new Map(q.fileStates);return w.set($,O),R(`Attribution: Tracked deletion of ${$} (${A} chars removed, total contribution: ${O.claudeontribution})`),{...q,fileStates:w}}function X$$(q,K){let _=new Map(q.fileStates);for(let $ of K){let z=$.mtime??Date.now();if($.type==="deleted"){let Y=r_6($.path),O=_.get(Y)?.claudeontribution??0,w=$.oldContent.length;_.set(Y,{contentHash:"",claudeContribution:O+w,mtime:z}),R(`Attribution: Tracked deletion of ${Y} (${w} chars removed, total contribution: ${O+w})`)}else{let Y=vf7(_,$.path,$.oldContent,$.newContent,z);if(Y){let A=r_6($.path);_.set(A,Y),R(`Attribution: Tracked ${Y.claudeontribution} chars for ${A}`)}}}return{...q,fileStates:_}}async function sz8(q,K){let _=tc(),$=yq(),z={},Y=[],A=new Set,O={},w=0,H=0,j=new Map,M=new Map;for(let W of q){A.add(W.surface);let Z=W.sessionBaselines instanceof Map?W.sessionBaselines:new Map(Object.entries(W.sessionBaselines??{}));for(let[D,N]of Z)if(!M.has(D))M.set(D,N);let G=W.fileStates instanceof Map?W.fileStates:new Map(Object.entries(W.fileStates??{}));for(let[D,N]of G){let y=j.get(D);if(y)j.set(D,{...N,claudeContribution:y.claudeontribution+N.claudeontribution});else j.set(D,N)}}let J=await Promise.all(K.map(async(W)=>{if(Mf7(W))return{type:"generated",file:W};let Z=iz8(_,W),G=j.get(W),D=M.get(W),N=q[0].surface,y=0,L=0;if(await Df7(W))if(G)y=G.claudeontribution,L=0;else{let I=await lz8(W);L=I>0?I:100}else try{let I=await nz8(Z);if(G)y=G.claudeontribution,L=0;else if(D){let p=await lz8(W);L=p>0?p:I.size}else L=I.size}catch{return null}y=Math.max(0,y),L=Math.max(0,L);let E=y+L,C=E>0?Math.round(y/E*100):0;return{type:"file",file:W,claudeChars:y,humanChars:L,percent:C,surface:N}}));for(let W of J){if(!W)continue;if(W.type==="generated"){Y.push(W.file);continue}z[W.file]={claudeChars:W.claudehars,humanChars:W.humanChars,percent:W.percent,surface:W.surface},w+=W.claudehars,H+=W.humanChars,O[W.surface]=(O[W.surface]??0)+W.claudehars}let P=w+H,X=P>0?Math.round(w/P*100):0,f={};for(let[W,Z]of Object.entries(O)){let G=P>0?Math.round(Z/P*100):0;f[W]={claudeChars:Z,percent:G}}return{version:1,summary:{claudePercent:X,claudeChars:w,humanChars:H,surfaces:Array.from(A)},files:z,surfaceBreakdown:f,excludedGenerated:Y,sessions:[$]}}async function lz8(q){let K=tc();try{let _=await a8(OK(),["diff","--cached","--stat","--",q],{cwd:K,timeout:5000});if(_.code!==0||!_.stdout)return 0;let $=_.stdout.split(`
|
|
1767
1767
|
`).filter(Boolean),z=0;for(let Y of $)if(Y.includes("file changed")||Y.includes("files changed")){let A=Y.match(/(\d+) insertions?/),O=Y.match(/(\d+) deletions?/),w=A?parseInt(A[1],10):0,H=O?parseInt(O[1],10):0;z+=(w+H)*40}return z}catch{return 0}}async function Df7(q){let K=tc();try{let _=await a8(OK(),["diff","--cached","--name-status","--",q],{cwd:K,timeout:5000});if(_.code===0&&_.stdout)return _.stdout.trim().startsWith("D\t")}catch{}return!1}async function f$$(){let q=tc();try{let K=await a8(OK(),["diff","--cached","--name-only"],{cwd:q,timeout:5000});if(K.code===0&&K.stdout)return K.stdout.split(`
|
|
1768
|
-
`).filter(Boolean)}catch(K){O6(K)}return[]}async function W$$(){let q=await Bf(tc());if(!q)return!1;return(await Promise.all(["rebase-merge","rebase-apply","MERGE_HEAD","CHERRY_PICK_HEAD","BISECT_LOG"].map(async($)=>{try{return await nz8(iz8(q,$)),!0}catch{return!1}}))).some(($)=>$)}function kf7(q,K){let _={};for(let[$,z]of q.fileStates)_[$]=z;return{type:"attribution-snapshot",messageId:K,surface:q.surface,fileStates:_,promptCount:q.promptCount,promptCountAtLastCommit:q.promptCountAtLastCommit,permissionPromptCount:q.permissionPromptCount,permissionPromptCountAtLastCommit:q.permissionPromptCountAtLastCommit,escapeCount:q.escapeCount,escapeCountAtLastCommit:q.escapeCountAtLastCommit}}function Tf7(q){let K=Ho(),_=q[q.length-1];if(!_)return K;K.surface=_.surface;for(let[$,z]of Object.entries(_.fileStates))K.fileStates.set($,z);return K.promptCount=_.promptCount??0,K.promptCountAtLastCommit=_.promptCountAtLastCommit??0,K.permissionPromptCount=_.permissionPromptCount??0,K.permissionPromptCountAtLastCommit=_.permissionPromptCountAtLastCommit??0,K.escapeCount=_.escapeCount??0,K.escapeCountAtLastCommit=_.escapeCountAtLastCommit??0,K}function Z$$(q,K){let _=Tf7(q);K(_)}function v$$(q,K){let _={...q,promptCount:q.promptCount+1},$=kf7(_,O$$());return K($),_}var w$$,QJ6=null,az8;var dx=h(()=>{Nq();fK();zq();a_();uK();Jf7();Zg();C5();Lq();k7();w$$=["github.com:anthropics/claude-cli-internal","github.com/anthropics/claude-cli-internal","github.com:anthropics/anthropic","github.com/anthropics/anthropic","github.com:anthropics/apps","github.com/anthropics/apps","github.com:anthropics/casino","github.com/anthropics/casino","github.com:anthropics/dbt","github.com/anthropics/dbt","github.com:anthropics/dotfiles","github.com/anthropics/dotfiles","github.com:anthropics/terraform-config","github.com/anthropics/terraform-config","github.com:anthropics/hex-export","github.com/anthropics/hex-export","github.com:anthropics/feedback-v2","github.com/anthropics/feedback-v2","github.com:anthropics/labs","github.com/anthropics/labs","github.com:anthropics/argo-rollouts","github.com/anthropics/argo-rollouts","github.com:anthropics/starling-configs","github.com/anthropics/starling-configs","github.com:anthropics/ts-tools","github.com/anthropics/ts-tools","github.com:anthropics/ts-capsules","github.com/anthropics/ts-capsules","github.com:anthropics/feldspar-testing","github.com/anthropics/feldspar-testing","github.com:anthropics/trellis","github.com/anthropics/trellis","github.com:anthropics/claude-for-hiring","github.com/anthropics/claude-for-hiring","github.com:anthropics/forge-web","github.com/anthropics/forge-web","github.com:anthropics/infra-manifests","github.com/anthropics/infra-manifests","github.com:anthropics/mycro_manifests","github.com/anthropics/mycro_manifests","github.com:anthropics/mycro_configs","github.com/anthropics/mycro_configs","github.com:anthropics/mobile-apps","github.com/anthropics/mobile-apps"];az8=Eb(async()=>{if(QJ6!==null)return QJ6==="internal";let q=tc(),K=await gs6(q);if(!K)return QJ6="none",!1;let _=w$$.some(($)=>K.includes($));return QJ6=_?"internal":"external",_})});function o_6(){let q=(FY(),wY(Ltq)),K=q.isTeammate()&&q.isPlanModeRequired()?"plan":"default";return{settings:GK(),tasks:{},agentNameRegistry:new Map,verbose:!
|
|
1768
|
+
`).filter(Boolean)}catch(K){O6(K)}return[]}async function W$$(){let q=await Bf(tc());if(!q)return!1;return(await Promise.all(["rebase-merge","rebase-apply","MERGE_HEAD","CHERRY_PICK_HEAD","BISECT_LOG"].map(async($)=>{try{return await nz8(iz8(q,$)),!0}catch{return!1}}))).some(($)=>$)}function kf7(q,K){let _={};for(let[$,z]of q.fileStates)_[$]=z;return{type:"attribution-snapshot",messageId:K,surface:q.surface,fileStates:_,promptCount:q.promptCount,promptCountAtLastCommit:q.promptCountAtLastCommit,permissionPromptCount:q.permissionPromptCount,permissionPromptCountAtLastCommit:q.permissionPromptCountAtLastCommit,escapeCount:q.escapeCount,escapeCountAtLastCommit:q.escapeCountAtLastCommit}}function Tf7(q){let K=Ho(),_=q[q.length-1];if(!_)return K;K.surface=_.surface;for(let[$,z]of Object.entries(_.fileStates))K.fileStates.set($,z);return K.promptCount=_.promptCount??0,K.promptCountAtLastCommit=_.promptCountAtLastCommit??0,K.permissionPromptCount=_.permissionPromptCount??0,K.permissionPromptCountAtLastCommit=_.permissionPromptCountAtLastCommit??0,K.escapeCount=_.escapeCount??0,K.escapeCountAtLastCommit=_.escapeCountAtLastCommit??0,K}function Z$$(q,K){let _=Tf7(q);K(_)}function v$$(q,K){let _={...q,promptCount:q.promptCount+1},$=kf7(_,O$$());return K($),_}var w$$,QJ6=null,az8;var dx=h(()=>{Nq();fK();zq();a_();uK();Jf7();Zg();C5();Lq();k7();w$$=["github.com:anthropics/claude-cli-internal","github.com/anthropics/claude-cli-internal","github.com:anthropics/anthropic","github.com/anthropics/anthropic","github.com:anthropics/apps","github.com/anthropics/apps","github.com:anthropics/casino","github.com/anthropics/casino","github.com:anthropics/dbt","github.com/anthropics/dbt","github.com:anthropics/dotfiles","github.com/anthropics/dotfiles","github.com:anthropics/terraform-config","github.com/anthropics/terraform-config","github.com:anthropics/hex-export","github.com/anthropics/hex-export","github.com:anthropics/feedback-v2","github.com/anthropics/feedback-v2","github.com:anthropics/labs","github.com/anthropics/labs","github.com:anthropics/argo-rollouts","github.com/anthropics/argo-rollouts","github.com:anthropics/starling-configs","github.com/anthropics/starling-configs","github.com:anthropics/ts-tools","github.com/anthropics/ts-tools","github.com:anthropics/ts-capsules","github.com/anthropics/ts-capsules","github.com:anthropics/feldspar-testing","github.com/anthropics/feldspar-testing","github.com:anthropics/trellis","github.com/anthropics/trellis","github.com:anthropics/claude-for-hiring","github.com/anthropics/claude-for-hiring","github.com:anthropics/forge-web","github.com/anthropics/forge-web","github.com:anthropics/infra-manifests","github.com/anthropics/infra-manifests","github.com:anthropics/mycro_manifests","github.com/anthropics/mycro_manifests","github.com:anthropics/mycro_configs","github.com/anthropics/mycro_configs","github.com:anthropics/mobile-apps","github.com/anthropics/mobile-apps"];az8=Eb(async()=>{if(QJ6!==null)return QJ6==="internal";let q=tc(),K=await gs6(q);if(!K)return QJ6="none",!1;let _=w$$.some(($)=>K.includes($));return QJ6=_?"internal":"external",_})});function o_6(){let q=(FY(),wY(Ltq)),K=q.isTeammate()&&q.isPlanModeRequired()?"plan":"default";return{settings:GK(),tasks:{},agentNameRegistry:new Map,verbose:!0,mainLoopModel:null,mainLoopModelForSession:null,statusLineText:void 0,expandedView:"none",isBriefOnly:!1,showTeammateMessagePreview:!1,selectedIPAgentIndex:-1,coordinatorTaskIndex:-1,viewSelectionMode:"none",footerSelection:null,kairosEnabled:!1,remoteSessionUrl:void 0,remoteConnectionStatus:"connecting",remoteBackgroundTaskCount:0,replBridgeEnabled:!1,replBridgeExplicit:!1,replBridgeOutboundOnly:!1,replBridgeConnected:!1,replBridgeSessionActive:!1,replBridgeReconnecting:!1,replBridgeConnectUrl:void 0,replBridgeSessionUrl:void 0,replBridgeEnvironmentId:void 0,replBridgeSessionId:void 0,replBridgeError:void 0,replBridgeInitialName:void 0,showRemoteCallout:!1,toolPermissionContext:{...YM(),mode:K},agent:void 0,agentDefinitions:{activeAgents:[],allAgents:[]},fileHistory:{snapshots:[],trackedFiles:new Set,snapshotSequence:0},attribution:Ho(),mcp:{clients:[],tools:[],commands:[],resources:{},pluginReconnectKey:0},plugins:{enabled:[],disabled:[],commands:[],errors:[],installationStatus:{marketplaces:[],plugins:[]},needsRefresh:!1},todos:{},remoteAgentTaskSuggestions:[],notifications:{current:null,queue:[]},elicitation:{queue:[]},thinkingEnabled:Pr(),promptSuggestionEnabled:x3q(),sessionHooks:new Map,inbox:{messages:[]},workerSandboxPermissions:{queue:[],selectedIndex:0},pendingWorkerRequest:null,pendingSandboxRequest:null,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null},speculation:jo,speculationSessionTimeSavedMs:0,skillImprovement:{suggestion:null},authVersion:0,initialMessage:null,effortValue:void 0,activeOverlays:new Set,fastMode:!1}}var jo;var lJ6=h(()=>{n_6();K7();dx();b8();sT();jo={status:"idle"}});import{randomBytes as G$$}from"crypto";function T$$(){return G$$(8).toString("hex")}function Mo(q,K){let _=new Map;if(!q.includes("<<"))return{processedCommand:q,heredocs:_};if(/\$['"]/.test(q))return{processedCommand:q,heredocs:_};let $=q.indexOf("<<");if($>0&&q.slice(0,$).includes("`"))return{processedCommand:q,heredocs:_};if($>0){let D=q.slice(0,$),N=(D.match(/\(\(/g)||[]).length,y=(D.match(/\)\)/g)||[]).length;if(N>y)return{processedCommand:q,heredocs:_}}let z=new RegExp(N$$.source,"g"),Y=[],A=[],O,w=0,H=!1,j=!1,M=!1,J=!1,P=0,X=(D)=>{for(let N=w;N<D;N++){let y=q[N];if(y===`
|
|
1769
1769
|
`)M=!1;if(H){if(y==="'")H=!1;continue}if(j){if(J){J=!1;continue}if(y==="\\"){J=!0;continue}if(y==='"')j=!1;continue}if(y==="\\"){P++;continue}let L=P%2===1;if(P=0,L)continue;if(y==="'")H=!0;else if(y==='"')j=!0;else if(!M&&y==="#")M=!0}w=D};while((O=z.exec(q))!==null){let D=O.index;if(X(D),H||j)continue;if(M)continue;if(P%2===1)continue;let N=!1;for(let j6 of A)if(D>j6.contentStartIndex&&D<j6.contentEndIndex){N=!0;break}if(N)continue;let y=O[0],L=O[1]==="-",S=O[3]||O[4],E=D+y.length,C=O[2];if(C&&q[E-1]!==C)continue;let I=y.includes("\\"),p=!!C||I;if(E<q.length){let j6=q[E];if(!/^[ \t\n|&;()<>]$/.test(j6))continue}let B=-1;{let j6=!1,k6=!1;for(let H6=E;H6<q.length;H6++){let t=q[H6];if(j6){if(t==="'")j6=!1;continue}if(k6){if(t==="\\"){H6++;continue}if(t==='"')k6=!1;continue}if(t===`
|
|
1770
1770
|
`){B=H6-E;break}let a=0;for(let $6=H6-1;$6>=E&&q[$6]==="\\";$6--)a++;if(a%2===1)continue;if(t==="'")j6=!0;else if(t==='"')k6=!0}}if(B===-1)continue;let g=q.slice(E,E+B),m=0;for(let j6=g.length-1;j6>=0;j6--)if(g[j6]==="\\")m++;else break;if(m%2===1)continue;let c=E+B,U=q.slice(c+1).split(`
|
|
1771
1771
|
`),i=-1;for(let j6=0;j6<U.length;j6++){let k6=U[j6];if(L){if(k6.replace(/^\t*/,"")===S){i=j6;break}}else if(k6===S){i=j6;break}let H6=L?k6.replace(/^\t*/,""):k6;if(H6.length>S.length&&H6.startsWith(S)){let t=H6[S.length];if(/^[)}`|&;(<>]$/.test(t)){i=-1;break}}}if(K?.quotedOnly&&!p){let j6;if(i===-1)j6=q.length;else{let H6=U.slice(0,i+1).join(`
|
|
@@ -9312,4 +9312,4 @@ Usage: chatcode-cli --remote "your task description"`,()=>q4(1));n("tengu_remote
|
|
|
9312
9312
|
`));await $J8();let{teleportWithProgress:a5}=await Promise.resolve().then(() => (Uc_(),Fc_)),j4=await a5(yK,W6);rk6({sessionId:W6}),YK=j4.messages}catch(q7){if(q7 instanceof AJ)process.stderr.write(q7.formattedMessage+`
|
|
9313
9313
|
`);else O6(q7),process.stderr.write(fq.red(`Error: ${l6(q7)}
|
|
9314
9314
|
`));await q4(1)}}}if(V_){let q7=V_;try{let u_=performance.now(),a5=await Fa(T_??q7,void 0);if(!a5)return n("tengu_session_resumed",{entrypoint:"cli_flag",success:!1}),await SL(yK,`No conversation found with session ID: ${q7}`);let j4=T_?.fullPath??a5.fullPath;if(M7=await dL8(a5,{forkSession:!!M.forkSession,sessionIdOverride:q7,transcriptPath:j4},DA),M7.restoredAgentDef)r7=M7.restoredAgentDef;n("tengu_session_resumed",{entrypoint:"cli_flag",success:!0,resume_duration_ms:Math.round(performance.now()-u_)})}catch(u_){n("tengu_session_resumed",{entrypoint:"cli_flag",success:!1}),O6(u_),await SL(yK,`Failed to resume session ${q7}`)}}if(m)try{let q7=await m,u_=t8(q7,(a5)=>!a5.success);if(u_>0)process.stderr.write(fq.yellow(`Warning: ${u_}/${q7.length} file(s) failed to download.
|
|
9315
|
-
`))}catch(q7){return await SL(yK,`Error downloading files: ${l6(q7)}`)}let y4=M7??(Array.isArray(YK)?{messages:YK,fileHistorySnapshots:void 0,agentName:void 0,agentColor:void 0,restoredAgentDef:r7,initialState:jz,contentReplacements:void 0}:void 0);if(y4)F0q(M),U0q(M),await tF6(yK,{getFpsMetrics:D3,stats:wz,initialState:y4.initialState},{...zY,mainThreadAgentDefinition:y4.restoredAgentDef??r7,initialMessages:y4.messages,initialFileHistorySnapshots:y4.fileHistorySnapshots,initialContentReplacements:y4.contentReplacements,initialAgentName:y4.agentName,initialAgentColor:y4.agentColor},TY6);else await $m_(yK,{getFpsMetrics:D3,stats:wz,initialState:jz},hp(x8()),{...zY,initialSearchQuery:a7,forkSession:M.forkSession,filterByPr:B4})}else{let nq=s3&&U$.length===0?s3:void 0;w_("action_after_hooks"),F0q(M),U0q(M);let YK=null,M7=YK?[YK,...U$]:U$.length>0?U$:void 0;await K3q(),await tF6(yK,{getFpsMetrics:D3,stats:wz,initialState:jz},{...zY,initialMessages:M7,pendingHookMessages:nq},TY6)}}).version(`${MACRO.VERSION} (ChatCode CLI)`,"-v, --version","Output the version number"),x7("chromeIntegration"))K.option("--chrome","Enable browser integration"),K.option("--no-chrome","Disable browser integration");if(K.option("-w, --worktree [name]","Create a new git worktree for this session (optionally specify a name)"),K.option("--tmux","Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."),qa())K.addOption(new V$("--advisor <model>","Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());if(K.addOption(new V$("--agent-id <id>","Teammate agent ID").hideHelp()),K.addOption(new V$("--agent-name <name>","Teammate display name").hideHelp()),K.addOption(new V$("--team-name <name>","Team name for swarm coordination").hideHelp()),K.addOption(new V$("--agent-color <color>","Teammate UI color").hideHelp()),K.addOption(new V$("--plan-mode-required","Require plan mode before implementation").hideHelp()),K.addOption(new V$("--parent-session-id <id>","Parent session ID for analytics correlation").hideHelp()),K.addOption(new V$("--teammate-mode <mode>",'How to spawn teammates: "tmux", "in-process", or "auto"').choices(["auto","tmux","in-process"]).hideHelp()),K.addOption(new V$("--agent-type <type>","Custom agent type for this teammate").hideHelp()),K.addOption(new V$("--sdk-url <url>","Use remote WebSocket endpoint for SDK I/O streaming (only with -p and stream-json format)").hideHelp()),x7("remoteControl"))K.addOption(new V$("--teleport [session]","Resume a teleport session, optionally specify session ID").hideHelp()),K.addOption(new V$("--remote [description]","Create a remote session with the given description").hideHelp());x7("remoteControl"),w_("run_main_options_built");let _=process.argv.includes("-p")||process.argv.includes("--print"),$=process.argv.some((j)=>j.startsWith("cc://")||j.startsWith("cc+unix://"));if(_&&!$)return w_("run_before_parse"),await K.parseAsync(process.argv),w_("run_after_parse"),K;let z=K.command("mcp").description("Configure and manage MCP servers").configureHelp(q()).enablePositionalOptions();if(z.command("serve").description("Start the ChatCode CLI MCP server").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:j,verbose:M})=>{let{mcpServeHandler:J}=await Promise.resolve().then(() => (Ke(),qe));await J({debug:j,verbose:M})}),Og_(z),Gd())Hg_(z);if(z.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").action(async(j,M)=>{let{mcpRemoveHandler:J}=await Promise.resolve().then(() => (Ke(),qe));await J(j,M)}),z.command("list").description("List configured MCP servers. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let{mcpListHandler:j}=await Promise.resolve().then(() => (Ke(),qe));await j()}),z.command("get <name>").description("Get details about an MCP server. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async(j)=>{let{mcpGetHandler:M}=await Promise.resolve().then(() => (Ke(),qe));await M(j)}),z.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("--client-secret","Prompt for OAuth client secret (or set MCP_CLIENT_SECRET env var)").action(async(j,M,J)=>{let{mcpAddJsonHandler:P}=await Promise.resolve().then(() => (Ke(),qe));await P(j,M,J)}),x7("desktopHandoff"))z.command("add-from-claude-desktop").description("Import MCP servers from desktop configuration (Mac and WSL only)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(j)=>{let{mcpAddFromDesktopHandler:M}=await Promise.resolve().then(() => (Ke(),qe));await M(j)});z.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async()=>{let{mcpResetChoicesHandler:j}=await Promise.resolve().then(() => (Ke(),qe));await j()});let Y=K.command("auth").description("Manage authentication").configureHelp(q()),A=Y.command("login").description("Sign in to your ChatCode account").option("--email <email>","Pre-populate email address on the login page").option("--sso","Force SSO login flow").option("--console","Use ChatCode Console (API usage billing)");if(x7("consumerSubscription"))A.option("--claudeai","Use hosted subscription plan (default)");A.action(async({email:j,sso:M,console:J,claudeai:P})=>{let{authLogin:X}=await Promise.resolve().then(() => (K26(),pHq));await X({email:j,sso:M,console:J,claudeai:P})}),Y.command("status").description("Show authentication status").option("--json","Output as JSON (default)").option("--text","Output as human-readable text").action(async(j)=>{let{authStatus:M}=await Promise.resolve().then(() => (K26(),pHq));await M(j)}),Y.command("logout").description("Log out from your ChatCode account").action(async()=>{let{authLogout:j}=await Promise.resolve().then(() => (K26(),pHq));await j()});let O=()=>new V$("--cowork","Use cowork_plugins directory").hideHelp(),w=K.command("plugin").alias("plugins").description("Manage ChatCode CLI plugins").configureHelp(q());w.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(O()).action(async(j,M)=>{let{pluginValidateHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("list").description("List installed plugins").option("--json","Output as JSON").option("--available","Include available plugins from marketplaces (requires --json)").addOption(O()).action(async(j)=>{let{pluginListHandler:M}=await Promise.resolve().then(() => (CL(),EL));await M(j)});let H=w.command("marketplace").description("Manage ChatCode CLI marketplaces").configureHelp(q());if(H.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(O()).option("--sparse <paths...>","Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .chatcode-cli-plugin plugins").option("--scope <scope>","Where to declare the marketplace: user (default), project, or local").action(async(j,M)=>{let{marketplaceAddHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),H.command("list").description("List all configured marketplaces").option("--json","Output as JSON").addOption(O()).action(async(j)=>{let{marketplaceListHandler:M}=await Promise.resolve().then(() => (CL(),EL));await M(j)}),H.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(O()).action(async(j,M)=>{let{marketplaceRemoveHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),H.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(O()).action(async(j,M)=>{let{marketplaceUpdateHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("install <plugin>").alias("i").description("Install a plugin from available marketplaces (use plugin@marketplace for specific marketplace)").option("-s, --scope <scope>","Installation scope: user, project, or local","user").addOption(O()).action(async(j,M)=>{let{pluginInstallHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>","Uninstall from scope: user, project, or local","user").option("--keep-data","Preserve the plugin's persistent data directory (~/.chatcode-cli/plugins/data/{id}/)").addOption(O()).action(async(j,M)=>{let{pluginUninstallHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>",`Installation scope: ${Of.join(", ")} (default: auto-detect)`).addOption(O()).action(async(j,M)=>{let{pluginEnableHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all","Disable all enabled plugins").option("-s, --scope <scope>",`Installation scope: ${Of.join(", ")} (default: auto-detect)`).addOption(O()).action(async(j,M)=>{let{pluginDisableHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>",`Installation scope: ${Xz6.join(", ")} (default: user)`).addOption(O()).action(async(j,M)=>{let{pluginUpdateHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),x7("consumerSubscription"))K.command("setup-token").description("Set up a long-lived authentication token (requires hosted subscription)").action(async()=>{let[{setupTokenHandler:j},{createRoot:M}]=await Promise.all([Promise.resolve().then(() => (d0q(),c0q)),Promise.resolve().then(() => (a6(),iS6))]),J=await M(Fz6(!1));await j(J)});return K.command("agents").description("List configured agents").option("--setting-sources <sources>","Comma-separated list of setting sources to load (user, project, local).").action(async()=>{let{agentsHandler:j}=await Promise.resolve().then(() => (Jd_(),Md_));await j(),process.exit(0)}),x7("remoteControl"),K.command("doctor").description("Check the health of your ChatCode CLI auto-updater. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let[{doctorHandler:j},{createRoot:M}]=await Promise.all([Promise.resolve().then(() => (d0q(),c0q)),Promise.resolve().then(() => (a6(),iS6))]),J=await M(Fz6(!1));await j(J)}),K.command("update").alias("upgrade").description("Check for updates and install if available").action(async()=>{let{update:j}=await Promise.resolve().then(() => (Xd_(),Pd_));await j()}),K.command("install [target]").description("Install ChatCode CLI native build. Use [target] to specify version (stable, latest, or specific version)").option("--force","Force installation even if already installed").action(async(j,M)=>{let{installHandler:J}=await Promise.resolve().then(() => (d0q(),c0q));await J(j,M)}),w_("run_before_parse"),await K.parseAsync(process.argv),w_("run_after_parse"),w_("main_after_run"),tT6(),K}async function zgz({hasInitialPrompt:q,hasStdin:K,verbose:_,debug:$,debugToStderr:z,print:Y,outputFormat:A,inputFormat:O,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktreeEnabled:M,skipWebFetchPreflight:J,githubActionInputs:P,dangerouslySkipPermissionsPassed:X,permissionMode:f,modeIsBypass:W,allowDangerouslySkipPermissionsPassed:Z,systemPromptFlag:G,appendSystemPromptFlag:D,thinkingConfig:N,assistantActivationPath:y}){try{n("tengu_init",{entrypoint:"claude",hasInitialPrompt:q,hasStdin:K,verbose:_,debug:$,debugToStderr:z,print:Y,outputFormat:A,inputFormat:O,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktree:M,skipWebFetchPreflight:J,...P&&{githubActionInputs:P},dangerouslySkipPermissionsPassed:X,permissionMode:f,modeIsBypass:W,inProtectedNamespace:$36(),allowDangerouslySkipPermissionsPassed:Z,thinkingType:N.type,...G&&{systemPromptFlag:G},...D&&{appendSystemPromptFlag:D},is_simple:A$()||void 0,is_coordinator:void 0,...y&&{assistantActivationPath:y},autoUpdatesChannel:GK().autoUpdatesChannel??"latest",...{}})}catch(L){O6(L)}}function F0q(q){}function U0q(q){return}function Ygz(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(wS)}function Agz(q){if(typeof q!=="object"||q===null)return{};let K=q,_=K.teammateMode;return{agentId:typeof K.agentId==="string"?K.agentId:void 0,agentName:typeof K.agentName==="string"?K.agentName:void 0,teamName:typeof K.teamName==="string"?K.teamName:void 0,agentColor:typeof K.agentColor==="string"?K.agentColor:void 0,planModeRequired:typeof K.planModeRequired==="boolean"?K.planModeRequired:void 0,parentSessionId:typeof K.parentSessionId==="string"?K.parentSessionId:void 0,teammateMode:_==="auto"||_==="tmux"||_==="in-process"?_:void 0,agentType:typeof K.agentType==="string"?K.agentType:void 0}}var fd_=()=>(FY(),wY(Ltq)),dmz=()=>wY(bm7),Fmz=()=>(L56(),wY(FH8)),Umz=null,IS8=11;var gh8=h(()=>{Jb();WBq();Vaq();$R8();c5();Px6();Wuq();US();a4();AD();HR8();tV();Nu_();Q8();Ru_();RJq();Gz6();Ttq();y0();mX6();Qx();YX();Ka();O3();CF6();MK();D8();$S6();sZ();sX();cd6();I8();U_();BDq();WV();sI();ZTq();iq();SL8();Lu_();RK6();Q8();Rq();t7q();Nq();H3();zm_();bi();mh8();cx();lP();ch8();Kg_();LJ();Xu();Cz6();vJ();Pf6();_g_();Iq();H0();VO();PL8();rc6();C5();zg_();zO();Lq();jh8();k7();MB();GP();yJ();aD();FJ();mB6();fg6();rG();hR();da();G_();Nt6();b8();Bm();w1();Yf6();Ag_();VJq();fE();wg_();jg_();SW8();QP6();lP();kW();IH();ux6();sL8();U$6();_3q();fV();S$();dx();tu();fK();zq();hq();uK();BO();DB6();eoq();cD();uF6();CO();Nq();Jg_();Xg_();Wg_();Zg_();Gg_();kg_();Ng_();Rg_();Lg_();rg_();og_();sg_();ZL8();eg_();Bu();n_6();lJ6();ZG6();E2();_W();lA();Y0q();$1();Uc6();sA();hM();gE();sT();$K6();BW();w_("main_tsx_entry");t8K();dRK();w_("main_tsx_imports_loaded");if(lmz())process.exit(1)});var Hgz={};function Ogz(){if(process.title="chatcode-cli",process.stdout.isTTY)process.stdout.write("\x1B]0;ChatCode CLI\x07")}async function wgz(){let q=process.argv.slice(2);if(q.length===1&&(q[0]==="--version"||q[0]==="-v"||q[0]==="-V")){console.log(`${MACRO.VERSION} (ChatCode CLI)`);return}let{profileCheckpoint:K}=await Promise.resolve().then(() => (Jb(),Cg8));if(K("cli_entry"),!Hg8(q)){console.error("This ChatCode capability is not enabled in this build."),process.exitCode=1;return}if(process.argv[2]==="--claude-in-chrome-mcp"){K("cli_claude_in_chrome_mcp_path");let{runClaudeInChromeMcpServer:Y}=await Promise.resolve().then(() => (D98(),G98));await Y();return}else if(process.argv[2]==="--chrome-native-host"){K("cli_chrome_native_host_path");let{runChromeNativeHost:Y}=await Promise.resolve().then(() => (Y0_(),z0_));await Y();return}if(!1)switch(q[0]){case"ps":case"logs":case"attach":case"kill":default:}if((q.includes("--tmux")||q.includes("--tmux=classic"))&&(q.includes("-w")||q.includes("--worktree")||q.some((Y)=>Y.startsWith("--worktree=")))){K("cli_tmux_worktree_fast_path");let{enableConfigs:Y}=await Promise.resolve().then(() => (D8(),qUK));Y();let{isWorktreeModeEnabled:A}=await Promise.resolve().then(() => me7);if(A()){let{execIntoTmuxWorktree:O}=await Promise.resolve().then(() => (BW(),ST_)),w=await O(q);if(w.handled)return;if(w.error){let{exitWithError:H}=await Promise.resolve().then(() => rm8);H(w.error)}}}if(q.length===1&&(q[0]==="--update"||q[0]==="--upgrade"))process.argv=[process.argv[0],process.argv[1],"update"];if(q.includes("--bare"))process.env.CHATCODE_CLI_SIMPLE="1";let{startCapturingEarlyInput:$}=await Promise.resolve().then(() => ($S6(),XQK));$(),K("cli_before_main_import");let{main:z}=await Promise.resolve().then(() => (gh8(),Zd_));K("cli_after_main_import"),await z(),K("cli_after_main_complete")}var vd_=h(()=>{Og8();jg8();Ag8();Ogz();process.env.COREPACK_ENABLE_AUTO_PIN="0";if(process.env.CHATCODE_CLI_REMOTE==="true"){let q=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=q?`${q} --max-old-space-size=8192`:"--max-old-space-size=8192"}wgz()});var jk6={name:"@chatcode/chatcode-cli",version:"1.0.2",description:"ChatCode CLI command-line coding assistant.",license:"SEE LICENSE IN LICENSE.md",type:"module",packageManager:"bun@1.3.5",repository:{type:"git",url:"http://gitlab.tianti.tg.unicom.local/kubernetesAMP/visualDesignPlatform/chatcode-cli.git"},engines:{node:">=18.0.0"},scripts:{dev:"bun run --feature BUDDY --feature AGENT_TRIGGERS ./src/dev-entry.ts",start:"bun run --feature BUDDY --feature AGENT_TRIGGERS ./src/dev-entry.ts",version:"bun run --feature BUDDY --feature AGENT_TRIGGERS ./src/dev-entry.ts --version",test:"bun test scripts/tests","scan:public-surface":"bun run scripts/public-surface-scan.mjs --fail-on-match","verify:public-surface":"bun run scripts/verify-public-surface-release.mjs",build:"bun run scripts/build.mjs",prepublishOnly:"bun run build"},files:["dist/","README.md"],publishConfig:{access:"public"},devDependencies:{"@alcalzone/ansi-tokenize":"0.3.0","adm-zip":"0.5.16","@ant/claude-for-chrome-mcp":"file:./shims/ant-claude-for-chrome-mcp","@ant/computer-use-input":"file:./shims/ant-computer-use-input","@ant/computer-use-mcp":"file:./shims/ant-computer-use-mcp","@ant/computer-use-swift":"file:./shims/ant-computer-use-swift","@anthropic-ai/claude-agent-sdk":"0.2.90","@anthropic-ai/mcpb":"2.1.2","@anthropic-ai/sandbox-runtime":"0.0.44","@anthropic-ai/sdk":"0.80.0","@aws-sdk/client-bedrock-runtime":"3.1020.0","@commander-js/extra-typings":"14.0.0","@growthbook/growthbook":"1.6.5","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"1.9.1","@opentelemetry/api-logs":"0.214.0","@opentelemetry/core":"2.6.1","@opentelemetry/resources":"2.6.1","@opentelemetry/sdk-logs":"0.214.0","@opentelemetry/sdk-metrics":"2.6.1","@opentelemetry/sdk-trace-base":"2.6.1","@opentelemetry/semantic-conventions":"1.40.0",ajv:"8.18.0",asciichart:"1.5.25","auto-bind":"5.0.1",axios:"1.14.0","bidi-js":"1.0.3",chalk:"5.6.2",chokidar:"5.0.0","cli-boxes":"4.0.1","code-excerpt":"4.0.0",diff:"8.0.4","emoji-regex":"10.6.0","env-paths":"4.0.0",execa:"9.6.1",figures:"6.1.0","fuse.js":"7.1.0","get-east-asian-width":"1.5.0","google-auth-library":"10.6.2","highlight.js":"11.11.1","https-proxy-agent":"8.0.0",ignore:"7.0.5","indent-string":"5.0.0",ink:"6.8.0","jsonc-parser":"3.3.1","lodash-es":"4.17.23","lru-cache":"11.2.7",marked:"17.0.5","p-map":"7.0.4",picomatch:"4.0.4","proper-lockfile":"4.1.2",qrcode:"1.5.4",react:"19.2.4","react-reconciler":"0.33.0",semver:"7.7.4","shell-quote":"1.8.3","signal-exit":"4.1.0","stack-utils":"2.0.6","strip-ansi":"7.2.0","supports-hyperlinks":"4.4.0","tree-kill":"1.2.2","type-fest":"5.5.0",undici:"7.24.6","usehooks-ts":"3.1.1",uuid:"^11.1.0","vscode-jsonrpc":"8.2.1","vscode-languageserver-protocol":"3.17.5","vscode-languageserver-types":"3.17.5","wrap-ansi":"10.0.0",ws:"8.20.0",xss:"1.0.15",yaml:"2.8.3",zod:"4.3.6","color-diff-napi":"file:./shims/color-diff-napi","modifiers-napi":"file:./shims/modifiers-napi","url-handler-napi":"file:./shims/url-handler-napi"},bin:{"chatcode-cli":"./dist/cli.js",cco:"./dist/cli.js"}};zq();import{existsSync as mS8,readdirSync as jgz,readFileSync as Mgz}from"fs";import{dirname as kd_,extname as Jgz,join as SY6,resolve as Gd_}from"path";import{fileURLToPath as Pgz}from"url";if(process.platform!=="win32"&&process.platform!=="darwin")process.env.CHATCODE_CLI_NO_FLICKER??="1";process.env.CLAUDE_CODE_DISABLE_MOUSE??="0";var Dd_=kd_(Pgz(import.meta.url)),Xgz={VERSION:jk6.version,BUILD_TIME:"",PACKAGE_URL:jk6.name,NATIVE_PACKAGE_URL:jk6.name,VERSION_CHANGELOG:"",ISSUES_EXPLAINER:"contact support at https://yuanjing.chinaunicom.com",FEEDBACK_CHANNEL:"github"};if(!("MACRO"in globalThis))globalThis.MACRO=Xgz;function pS8(q,K){if(!mS8(q))return;for(let _ of jgz(q,{withFileTypes:!0})){let $=SY6(q,_.name);if(_.isDirectory()){pS8($,K);continue}if([".ts",".tsx",".js",".jsx",".mjs",".cjs"].includes(Jgz(_.name)))K.push($)}}function fgz(q){let K=q.replace(/\.js$/u,"");return[K,`${K}.ts`,`${K}.tsx`,`${K}.js`,`${K}.jsx`,`${K}.mjs`,`${K}.cjs`,SY6(K,"index.ts"),SY6(K,"index.tsx"),SY6(K,"index.js")].some(($)=>mS8($))}function Wgz(){let q=[],K=Gd_(Dd_,"..");if(R(`cliRoot: ${K}`,{level:"warn"}),R(`_runtimeDir: ${Dd_}`),!mS8(SY6(K,"src")))return[];pS8(SY6(K,"src"),q),pS8(SY6(K,"vendor"),q);let _=[],$=new Set,z=/(?:import|export)\s+[\s\S]*?from\s+['"](\.\.?\/[^'"]+)['"]|require\(\s*['"](\.\.?\/[^'"]+)['"]\s*\)/g;for(let Y of q){let A=Mgz(Y,"utf8");for(let O of A.matchAll(z)){let w=O[1]??O[2];if(!w)continue;let H=Gd_(kd_(Y),w);if(fgz(H))continue;let j=`${Y} -> ${w}`;if($.has(j))continue;$.add(j),_.push({importer:Y,specifier:w})}}return _.sort((Y,A)=>`${Y.importer}:${Y.specifier}`.localeCompare(`${A.importer}:${A.specifier}`))}var vWw=process.argv.slice(2),uS8=Wgz();if(uS8.length>0){console.log("Wanma-CLI restored development workspace"),console.log(`version: ${jk6.version}`),console.log(`missing relative imports: ${uS8.length}`),console.log(""),console.log("Top missing modules:");for(let q of uS8.slice(0,20))console.log(`- ${q.importer.replace(`${process.cwd()}/`,"")} -> ${q.specifier}`);console.log(""),console.log("The original app entry is still blocked by missing restored sources."),console.log("Use this workspace to continue restoration; once missing imports reach 0, this launcher will forward to src/main.tsx automatically."),process.exit(0)}await Promise.resolve().then(() => (vd_(),Hgz));
|
|
9315
|
+
`))}catch(q7){return await SL(yK,`Error downloading files: ${l6(q7)}`)}let y4=M7??(Array.isArray(YK)?{messages:YK,fileHistorySnapshots:void 0,agentName:void 0,agentColor:void 0,restoredAgentDef:r7,initialState:jz,contentReplacements:void 0}:void 0);if(y4)F0q(M),U0q(M),await tF6(yK,{getFpsMetrics:D3,stats:wz,initialState:y4.initialState},{...zY,mainThreadAgentDefinition:y4.restoredAgentDef??r7,initialMessages:y4.messages,initialFileHistorySnapshots:y4.fileHistorySnapshots,initialContentReplacements:y4.contentReplacements,initialAgentName:y4.agentName,initialAgentColor:y4.agentColor},TY6);else await $m_(yK,{getFpsMetrics:D3,stats:wz,initialState:jz},hp(x8()),{...zY,initialSearchQuery:a7,forkSession:M.forkSession,filterByPr:B4})}else{let nq=s3&&U$.length===0?s3:void 0;w_("action_after_hooks"),F0q(M),U0q(M);let YK=null,M7=YK?[YK,...U$]:U$.length>0?U$:void 0;await K3q(),await tF6(yK,{getFpsMetrics:D3,stats:wz,initialState:jz},{...zY,initialMessages:M7,pendingHookMessages:nq},TY6)}}).version(`${MACRO.VERSION} (ChatCode CLI)`,"-v, --version","Output the version number"),x7("chromeIntegration"))K.option("--chrome","Enable browser integration"),K.option("--no-chrome","Disable browser integration");if(K.option("-w, --worktree [name]","Create a new git worktree for this session (optionally specify a name)"),K.option("--tmux","Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."),qa())K.addOption(new V$("--advisor <model>","Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());if(K.addOption(new V$("--agent-id <id>","Teammate agent ID").hideHelp()),K.addOption(new V$("--agent-name <name>","Teammate display name").hideHelp()),K.addOption(new V$("--team-name <name>","Team name for swarm coordination").hideHelp()),K.addOption(new V$("--agent-color <color>","Teammate UI color").hideHelp()),K.addOption(new V$("--plan-mode-required","Require plan mode before implementation").hideHelp()),K.addOption(new V$("--parent-session-id <id>","Parent session ID for analytics correlation").hideHelp()),K.addOption(new V$("--teammate-mode <mode>",'How to spawn teammates: "tmux", "in-process", or "auto"').choices(["auto","tmux","in-process"]).hideHelp()),K.addOption(new V$("--agent-type <type>","Custom agent type for this teammate").hideHelp()),K.addOption(new V$("--sdk-url <url>","Use remote WebSocket endpoint for SDK I/O streaming (only with -p and stream-json format)").hideHelp()),x7("remoteControl"))K.addOption(new V$("--teleport [session]","Resume a teleport session, optionally specify session ID").hideHelp()),K.addOption(new V$("--remote [description]","Create a remote session with the given description").hideHelp());x7("remoteControl"),w_("run_main_options_built");let _=process.argv.includes("-p")||process.argv.includes("--print"),$=process.argv.some((j)=>j.startsWith("cc://")||j.startsWith("cc+unix://"));if(_&&!$)return w_("run_before_parse"),await K.parseAsync(process.argv),w_("run_after_parse"),K;let z=K.command("mcp").description("Configure and manage MCP servers").configureHelp(q()).enablePositionalOptions();if(z.command("serve").description("Start the ChatCode CLI MCP server").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:j,verbose:M})=>{let{mcpServeHandler:J}=await Promise.resolve().then(() => (Ke(),qe));await J({debug:j,verbose:M})}),Og_(z),Gd())Hg_(z);if(z.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").action(async(j,M)=>{let{mcpRemoveHandler:J}=await Promise.resolve().then(() => (Ke(),qe));await J(j,M)}),z.command("list").description("List configured MCP servers. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let{mcpListHandler:j}=await Promise.resolve().then(() => (Ke(),qe));await j()}),z.command("get <name>").description("Get details about an MCP server. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async(j)=>{let{mcpGetHandler:M}=await Promise.resolve().then(() => (Ke(),qe));await M(j)}),z.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("--client-secret","Prompt for OAuth client secret (or set MCP_CLIENT_SECRET env var)").action(async(j,M,J)=>{let{mcpAddJsonHandler:P}=await Promise.resolve().then(() => (Ke(),qe));await P(j,M,J)}),x7("desktopHandoff"))z.command("add-from-claude-desktop").description("Import MCP servers from desktop configuration (Mac and WSL only)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(j)=>{let{mcpAddFromDesktopHandler:M}=await Promise.resolve().then(() => (Ke(),qe));await M(j)});z.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async()=>{let{mcpResetChoicesHandler:j}=await Promise.resolve().then(() => (Ke(),qe));await j()});let Y=K.command("auth").description("Manage authentication").configureHelp(q()),A=Y.command("login").description("Sign in to your ChatCode account").option("--email <email>","Pre-populate email address on the login page").option("--sso","Force SSO login flow").option("--console","Use ChatCode Console (API usage billing)");if(x7("consumerSubscription"))A.option("--claudeai","Use hosted subscription plan (default)");A.action(async({email:j,sso:M,console:J,claudeai:P})=>{let{authLogin:X}=await Promise.resolve().then(() => (K26(),pHq));await X({email:j,sso:M,console:J,claudeai:P})}),Y.command("status").description("Show authentication status").option("--json","Output as JSON (default)").option("--text","Output as human-readable text").action(async(j)=>{let{authStatus:M}=await Promise.resolve().then(() => (K26(),pHq));await M(j)}),Y.command("logout").description("Log out from your ChatCode account").action(async()=>{let{authLogout:j}=await Promise.resolve().then(() => (K26(),pHq));await j()});let O=()=>new V$("--cowork","Use cowork_plugins directory").hideHelp(),w=K.command("plugin").alias("plugins").description("Manage ChatCode CLI plugins").configureHelp(q());w.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(O()).action(async(j,M)=>{let{pluginValidateHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("list").description("List installed plugins").option("--json","Output as JSON").option("--available","Include available plugins from marketplaces (requires --json)").addOption(O()).action(async(j)=>{let{pluginListHandler:M}=await Promise.resolve().then(() => (CL(),EL));await M(j)});let H=w.command("marketplace").description("Manage ChatCode CLI marketplaces").configureHelp(q());if(H.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(O()).option("--sparse <paths...>","Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .chatcode-cli-plugin plugins").option("--scope <scope>","Where to declare the marketplace: user (default), project, or local").action(async(j,M)=>{let{marketplaceAddHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),H.command("list").description("List all configured marketplaces").option("--json","Output as JSON").addOption(O()).action(async(j)=>{let{marketplaceListHandler:M}=await Promise.resolve().then(() => (CL(),EL));await M(j)}),H.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(O()).action(async(j,M)=>{let{marketplaceRemoveHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),H.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(O()).action(async(j,M)=>{let{marketplaceUpdateHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("install <plugin>").alias("i").description("Install a plugin from available marketplaces (use plugin@marketplace for specific marketplace)").option("-s, --scope <scope>","Installation scope: user, project, or local","user").addOption(O()).action(async(j,M)=>{let{pluginInstallHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>","Uninstall from scope: user, project, or local","user").option("--keep-data","Preserve the plugin's persistent data directory (~/.chatcode-cli/plugins/data/{id}/)").addOption(O()).action(async(j,M)=>{let{pluginUninstallHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>",`Installation scope: ${Of.join(", ")} (default: auto-detect)`).addOption(O()).action(async(j,M)=>{let{pluginEnableHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all","Disable all enabled plugins").option("-s, --scope <scope>",`Installation scope: ${Of.join(", ")} (default: auto-detect)`).addOption(O()).action(async(j,M)=>{let{pluginDisableHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),w.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>",`Installation scope: ${Xz6.join(", ")} (default: user)`).addOption(O()).action(async(j,M)=>{let{pluginUpdateHandler:J}=await Promise.resolve().then(() => (CL(),EL));await J(j,M)}),x7("consumerSubscription"))K.command("setup-token").description("Set up a long-lived authentication token (requires hosted subscription)").action(async()=>{let[{setupTokenHandler:j},{createRoot:M}]=await Promise.all([Promise.resolve().then(() => (d0q(),c0q)),Promise.resolve().then(() => (a6(),iS6))]),J=await M(Fz6(!1));await j(J)});return K.command("agents").description("List configured agents").option("--setting-sources <sources>","Comma-separated list of setting sources to load (user, project, local).").action(async()=>{let{agentsHandler:j}=await Promise.resolve().then(() => (Jd_(),Md_));await j(),process.exit(0)}),x7("remoteControl"),K.command("doctor").description("Check the health of your ChatCode CLI auto-updater. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let[{doctorHandler:j},{createRoot:M}]=await Promise.all([Promise.resolve().then(() => (d0q(),c0q)),Promise.resolve().then(() => (a6(),iS6))]),J=await M(Fz6(!1));await j(J)}),K.command("update").alias("upgrade").description("Check for updates and install if available").action(async()=>{let{update:j}=await Promise.resolve().then(() => (Xd_(),Pd_));await j()}),K.command("install [target]").description("Install ChatCode CLI native build. Use [target] to specify version (stable, latest, or specific version)").option("--force","Force installation even if already installed").action(async(j,M)=>{let{installHandler:J}=await Promise.resolve().then(() => (d0q(),c0q));await J(j,M)}),w_("run_before_parse"),await K.parseAsync(process.argv),w_("run_after_parse"),w_("main_after_run"),tT6(),K}async function zgz({hasInitialPrompt:q,hasStdin:K,verbose:_,debug:$,debugToStderr:z,print:Y,outputFormat:A,inputFormat:O,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktreeEnabled:M,skipWebFetchPreflight:J,githubActionInputs:P,dangerouslySkipPermissionsPassed:X,permissionMode:f,modeIsBypass:W,allowDangerouslySkipPermissionsPassed:Z,systemPromptFlag:G,appendSystemPromptFlag:D,thinkingConfig:N,assistantActivationPath:y}){try{n("tengu_init",{entrypoint:"claude",hasInitialPrompt:q,hasStdin:K,verbose:_,debug:$,debugToStderr:z,print:Y,outputFormat:A,inputFormat:O,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktree:M,skipWebFetchPreflight:J,...P&&{githubActionInputs:P},dangerouslySkipPermissionsPassed:X,permissionMode:f,modeIsBypass:W,inProtectedNamespace:$36(),allowDangerouslySkipPermissionsPassed:Z,thinkingType:N.type,...G&&{systemPromptFlag:G},...D&&{appendSystemPromptFlag:D},is_simple:A$()||void 0,is_coordinator:void 0,...y&&{assistantActivationPath:y},autoUpdatesChannel:GK().autoUpdatesChannel??"latest",...{}})}catch(L){O6(L)}}function F0q(q){}function U0q(q){return}function Ygz(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(wS)}function Agz(q){if(typeof q!=="object"||q===null)return{};let K=q,_=K.teammateMode;return{agentId:typeof K.agentId==="string"?K.agentId:void 0,agentName:typeof K.agentName==="string"?K.agentName:void 0,teamName:typeof K.teamName==="string"?K.teamName:void 0,agentColor:typeof K.agentColor==="string"?K.agentColor:void 0,planModeRequired:typeof K.planModeRequired==="boolean"?K.planModeRequired:void 0,parentSessionId:typeof K.parentSessionId==="string"?K.parentSessionId:void 0,teammateMode:_==="auto"||_==="tmux"||_==="in-process"?_:void 0,agentType:typeof K.agentType==="string"?K.agentType:void 0}}var fd_=()=>(FY(),wY(Ltq)),dmz=()=>wY(bm7),Fmz=()=>(L56(),wY(FH8)),Umz=null,IS8=11;var gh8=h(()=>{Jb();WBq();Vaq();$R8();c5();Px6();Wuq();US();a4();AD();HR8();tV();Nu_();Q8();Ru_();RJq();Gz6();Ttq();y0();mX6();Qx();YX();Ka();O3();CF6();MK();D8();$S6();sZ();sX();cd6();I8();U_();BDq();WV();sI();ZTq();iq();SL8();Lu_();RK6();Q8();Rq();t7q();Nq();H3();zm_();bi();mh8();cx();lP();ch8();Kg_();LJ();Xu();Cz6();vJ();Pf6();_g_();Iq();H0();VO();PL8();rc6();C5();zg_();zO();Lq();jh8();k7();MB();GP();yJ();aD();FJ();mB6();fg6();rG();hR();da();G_();Nt6();b8();Bm();w1();Yf6();Ag_();VJq();fE();wg_();jg_();SW8();QP6();lP();kW();IH();ux6();sL8();U$6();_3q();fV();S$();dx();tu();fK();zq();hq();uK();BO();DB6();eoq();cD();uF6();CO();Nq();Jg_();Xg_();Wg_();Zg_();Gg_();kg_();Ng_();Rg_();Lg_();rg_();og_();sg_();ZL8();eg_();Bu();n_6();lJ6();ZG6();E2();_W();lA();Y0q();$1();Uc6();sA();hM();gE();sT();$K6();BW();w_("main_tsx_entry");t8K();dRK();w_("main_tsx_imports_loaded");if(lmz())process.exit(1)});var Hgz={};function Ogz(){if(process.title="chatcode-cli",process.stdout.isTTY)process.stdout.write("\x1B]0;ChatCode CLI\x07")}async function wgz(){let q=process.argv.slice(2);if(q.length===1&&(q[0]==="--version"||q[0]==="-v"||q[0]==="-V")){console.log(`${MACRO.VERSION} (ChatCode CLI)`);return}let{profileCheckpoint:K}=await Promise.resolve().then(() => (Jb(),Cg8));if(K("cli_entry"),!Hg8(q)){console.error("This ChatCode capability is not enabled in this build."),process.exitCode=1;return}if(process.argv[2]==="--claude-in-chrome-mcp"){K("cli_claude_in_chrome_mcp_path");let{runClaudeInChromeMcpServer:Y}=await Promise.resolve().then(() => (D98(),G98));await Y();return}else if(process.argv[2]==="--chrome-native-host"){K("cli_chrome_native_host_path");let{runChromeNativeHost:Y}=await Promise.resolve().then(() => (Y0_(),z0_));await Y();return}if(!1)switch(q[0]){case"ps":case"logs":case"attach":case"kill":default:}if((q.includes("--tmux")||q.includes("--tmux=classic"))&&(q.includes("-w")||q.includes("--worktree")||q.some((Y)=>Y.startsWith("--worktree=")))){K("cli_tmux_worktree_fast_path");let{enableConfigs:Y}=await Promise.resolve().then(() => (D8(),qUK));Y();let{isWorktreeModeEnabled:A}=await Promise.resolve().then(() => me7);if(A()){let{execIntoTmuxWorktree:O}=await Promise.resolve().then(() => (BW(),ST_)),w=await O(q);if(w.handled)return;if(w.error){let{exitWithError:H}=await Promise.resolve().then(() => rm8);H(w.error)}}}if(q.length===1&&(q[0]==="--update"||q[0]==="--upgrade"))process.argv=[process.argv[0],process.argv[1],"update"];if(q.includes("--bare"))process.env.CHATCODE_CLI_SIMPLE="1";let{startCapturingEarlyInput:$}=await Promise.resolve().then(() => ($S6(),XQK));$(),K("cli_before_main_import");let{main:z}=await Promise.resolve().then(() => (gh8(),Zd_));K("cli_after_main_import"),await z(),K("cli_after_main_complete")}var vd_=h(()=>{Og8();jg8();Ag8();Ogz();process.env.COREPACK_ENABLE_AUTO_PIN="0";if(process.env.CHATCODE_CLI_REMOTE==="true"){let q=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=q?`${q} --max-old-space-size=8192`:"--max-old-space-size=8192"}wgz()});var jk6={name:"@chatcode/chatcode-cli",version:"1.0.3",description:"ChatCode CLI command-line coding assistant.",license:"SEE LICENSE IN LICENSE.md",type:"module",packageManager:"bun@1.3.5",repository:{type:"git",url:"http://gitlab.tianti.tg.unicom.local/kubernetesAMP/visualDesignPlatform/chatcode-cli.git"},engines:{node:">=18.0.0"},scripts:{dev:"bun run --feature BUDDY --feature AGENT_TRIGGERS ./src/dev-entry.ts",start:"bun run --feature BUDDY --feature AGENT_TRIGGERS ./src/dev-entry.ts",version:"bun run --feature BUDDY --feature AGENT_TRIGGERS ./src/dev-entry.ts --version",test:"bun test scripts/tests","scan:public-surface":"bun run scripts/public-surface-scan.mjs --fail-on-match","verify:public-surface":"bun run scripts/verify-public-surface-release.mjs",build:"bun run scripts/build.mjs",prepublishOnly:"bun run build"},files:["dist/","README.md"],publishConfig:{access:"public"},devDependencies:{"@alcalzone/ansi-tokenize":"0.3.0","adm-zip":"0.5.16","@ant/claude-for-chrome-mcp":"file:./shims/ant-claude-for-chrome-mcp","@ant/computer-use-input":"file:./shims/ant-computer-use-input","@ant/computer-use-mcp":"file:./shims/ant-computer-use-mcp","@ant/computer-use-swift":"file:./shims/ant-computer-use-swift","@anthropic-ai/claude-agent-sdk":"0.2.90","@anthropic-ai/mcpb":"2.1.2","@anthropic-ai/sandbox-runtime":"0.0.44","@anthropic-ai/sdk":"0.80.0","@aws-sdk/client-bedrock-runtime":"3.1020.0","@commander-js/extra-typings":"14.0.0","@growthbook/growthbook":"1.6.5","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"1.9.1","@opentelemetry/api-logs":"0.214.0","@opentelemetry/core":"2.6.1","@opentelemetry/resources":"2.6.1","@opentelemetry/sdk-logs":"0.214.0","@opentelemetry/sdk-metrics":"2.6.1","@opentelemetry/sdk-trace-base":"2.6.1","@opentelemetry/semantic-conventions":"1.40.0",ajv:"8.18.0",asciichart:"1.5.25","auto-bind":"5.0.1",axios:"1.14.0","bidi-js":"1.0.3",chalk:"5.6.2",chokidar:"5.0.0","cli-boxes":"4.0.1","code-excerpt":"4.0.0",diff:"8.0.4","emoji-regex":"10.6.0","env-paths":"4.0.0",execa:"9.6.1",figures:"6.1.0","fuse.js":"7.1.0","get-east-asian-width":"1.5.0","google-auth-library":"10.6.2","highlight.js":"11.11.1","https-proxy-agent":"8.0.0",ignore:"7.0.5","indent-string":"5.0.0",ink:"6.8.0","jsonc-parser":"3.3.1","lodash-es":"4.17.23","lru-cache":"11.2.7",marked:"17.0.5","p-map":"7.0.4",picomatch:"4.0.4","proper-lockfile":"4.1.2",qrcode:"1.5.4",react:"19.2.4","react-reconciler":"0.33.0",semver:"7.7.4","shell-quote":"1.8.3","signal-exit":"4.1.0","stack-utils":"2.0.6","strip-ansi":"7.2.0","supports-hyperlinks":"4.4.0","tree-kill":"1.2.2","type-fest":"5.5.0",undici:"7.24.6","usehooks-ts":"3.1.1",uuid:"^11.1.0","vscode-jsonrpc":"8.2.1","vscode-languageserver-protocol":"3.17.5","vscode-languageserver-types":"3.17.5","wrap-ansi":"10.0.0",ws:"8.20.0",xss:"1.0.15",yaml:"2.8.3",zod:"4.3.6","color-diff-napi":"file:./shims/color-diff-napi","modifiers-napi":"file:./shims/modifiers-napi","url-handler-napi":"file:./shims/url-handler-napi"},bin:{"chatcode-cli":"./dist/cli.js",cco:"./dist/cli.js"}};zq();import{existsSync as mS8,readdirSync as jgz,readFileSync as Mgz}from"fs";import{dirname as kd_,extname as Jgz,join as SY6,resolve as Gd_}from"path";import{fileURLToPath as Pgz}from"url";if(process.platform!=="win32"&&process.platform!=="darwin")process.env.CHATCODE_CLI_NO_FLICKER??="1";process.env.CLAUDE_CODE_DISABLE_MOUSE??="0";var Dd_=kd_(Pgz(import.meta.url)),Xgz={VERSION:jk6.version,BUILD_TIME:"",PACKAGE_URL:jk6.name,NATIVE_PACKAGE_URL:jk6.name,VERSION_CHANGELOG:"",ISSUES_EXPLAINER:"contact support at https://yuanjing.chinaunicom.com",FEEDBACK_CHANNEL:"github"};if(!("MACRO"in globalThis))globalThis.MACRO=Xgz;function pS8(q,K){if(!mS8(q))return;for(let _ of jgz(q,{withFileTypes:!0})){let $=SY6(q,_.name);if(_.isDirectory()){pS8($,K);continue}if([".ts",".tsx",".js",".jsx",".mjs",".cjs"].includes(Jgz(_.name)))K.push($)}}function fgz(q){let K=q.replace(/\.js$/u,"");return[K,`${K}.ts`,`${K}.tsx`,`${K}.js`,`${K}.jsx`,`${K}.mjs`,`${K}.cjs`,SY6(K,"index.ts"),SY6(K,"index.tsx"),SY6(K,"index.js")].some(($)=>mS8($))}function Wgz(){let q=[],K=Gd_(Dd_,"..");if(R(`cliRoot: ${K}`,{level:"warn"}),R(`_runtimeDir: ${Dd_}`),!mS8(SY6(K,"src")))return[];pS8(SY6(K,"src"),q),pS8(SY6(K,"vendor"),q);let _=[],$=new Set,z=/(?:import|export)\s+[\s\S]*?from\s+['"](\.\.?\/[^'"]+)['"]|require\(\s*['"](\.\.?\/[^'"]+)['"]\s*\)/g;for(let Y of q){let A=Mgz(Y,"utf8");for(let O of A.matchAll(z)){let w=O[1]??O[2];if(!w)continue;let H=Gd_(kd_(Y),w);if(fgz(H))continue;let j=`${Y} -> ${w}`;if($.has(j))continue;$.add(j),_.push({importer:Y,specifier:w})}}return _.sort((Y,A)=>`${Y.importer}:${Y.specifier}`.localeCompare(`${A.importer}:${A.specifier}`))}var vWw=process.argv.slice(2),uS8=Wgz();if(uS8.length>0){console.log("Wanma-CLI restored development workspace"),console.log(`version: ${jk6.version}`),console.log(`missing relative imports: ${uS8.length}`),console.log(""),console.log("Top missing modules:");for(let q of uS8.slice(0,20))console.log(`- ${q.importer.replace(`${process.cwd()}/`,"")} -> ${q.specifier}`);console.log(""),console.log("The original app entry is still blocked by missing restored sources."),console.log("Use this workspace to continue restoration; once missing imports reach 0, this launcher will forward to src/main.tsx automatically."),process.exit(0)}await Promise.resolve().then(() => (vd_(),Hgz));
|