@gaburieuru/claudio 0.25.0 → 0.25.1
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.mjs +20 -20
- package/dist/sdk.mjs +16 -16
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -39,7 +39,7 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
|
39
39
|
new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
40
40
|
`);this.baseURL=options.baseURL,this._baseURLIsExplicit=opts.__baseURLIsExplicit??!!baseURL,this.timeout=options.timeout??_a.DEFAULT_TIMEOUT,this.logger=options.logger??console;let defaultLogLevel="warn";this.logLevel=defaultLogLevel,this.logLevel=parseLogLevel(options.logLevel,"ClientOptions.logLevel",this)??parseLogLevel(readEnv("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??defaultLogLevel,this.fetchOptions=options.fetchOptions,this.maxRetries=options.maxRetries??2,this.fetch=options.fetch??getDefaultFetch(),__classPrivateFieldSet(this,_BaseAnthropic_encoder,FallbackEncoder,"f");let customHeadersEnv=readEnv("ANTHROPIC_CUSTOM_HEADERS");if(customHeadersEnv){let parsed={};for(let line of customHeadersEnv.split(`
|
|
41
41
|
`)){let colon=line.indexOf(":");if(colon>=0)parsed[line.substring(0,colon).trim()]=line.substring(colon+1).trim()}options.defaultHeaders={...parsed,...options.defaultHeaders}}let inherited=opts.__auth;if(delete options.__auth,delete options.__baseURLIsExplicit,this._options=options,this.apiKey=typeof apiKey==="string"?apiKey:null,this.authToken=authToken,inherited){if(this._authState=inherited,!this._baseURLIsExplicit&&inherited.baseURL)this.baseURL=inherited.baseURL}else if(this._authState={provider:null,tokenCache:null,resolution:null,error:null,extraHeaders:{}},this.apiKey==null&&this.authToken==null){let credentials=options.credentials??null;if(credentials)this._authState.provider=credentials,this._authState.tokenCache=this._makeTokenCache(credentials);else if(options.config!=null){let result=resolveCredentialsFromConfig(options.config,this._credentialResolverOptions());this._authState.provider=result.provider,this._authState.tokenCache=this._makeTokenCache(result.provider),this._authState.extraHeaders=result.extraHeaders,this._applyCredentialBaseURL(result.baseURL)}else if(options.profile!=null)this._authState.resolution=this._resolveDefaultCredentials(options.profile);else this._authState.resolution=this._resolveDefaultCredentials()}}_applyCredentialBaseURL(baseURL){if(!baseURL)return;let normalized=baseURL.replace(/\/+$/,"");if(this._authState.baseURL=normalized,!this._baseURLIsExplicit)this.baseURL=normalized}_credentialResolverOptions(){return{baseURL:this.baseURL,fetch:this.fetch,userAgent:this.getUserAgent(),onCacheWriteError:(err)=>{loggerFor(this).debug("credential cache write failed (best-effort)",err)},onSafetyWarning:(msg)=>{loggerFor(this).warn(msg)}}}_makeTokenCache(provider){return new TokenCache(provider,(err)=>{loggerFor(this).debug("advisory token refresh failed; serving cached token",err)})}withOptions(options){let overridesStructuredAuth="credentials"in options||"config"in options||"profile"in options,overridesAuth="apiKey"in options||"authToken"in options||overridesStructuredAuth,internal={...this._options,...this._baseURLIsExplicit?{baseURL:this.baseURL}:{},maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,credentials:this.credentials,...overridesStructuredAuth?{credentials:void 0,config:void 0,profile:void 0}:{},...options,__auth:overridesAuth?void 0:this._authState,__baseURLIsExplicit:"baseURL"in options?!0:this._baseURLIsExplicit};return new this.constructor(internal)}async _resolveDefaultCredentials(profile){try{let result=await defaultCredentials(this._credentialResolverOptions(),profile);if(result)this._authState.provider=result.provider,this._authState.tokenCache=this._makeTokenCache(result.provider),this._authState.extraHeaders=result.extraHeaders,this._applyCredentialBaseURL(result.baseURL);else if(profile!=null)throw new AnthropicError(`Profile "${profile}" could not be resolved (no <config_dir>/configs/${profile}.json found).`)}catch(err){this._authState.error=err}finally{this._authState.resolution=null}}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:values2,nulls}){if(values2.get("x-api-key")||values2.get("authorization"))return;if(this._authState.error)throw this._authState.error;if(this._authState.tokenCache||this._authState.resolution)return;if(this.apiKey&&values2.get("x-api-key"))return;if(nulls.has("x-api-key"))return;if(this.authToken&&values2.get("authorization"))return;if(nulls.has("authorization"))return;throw Error('Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}_authFlags(opts){let flags=this._requestAuthFlags.get(opts);if(!flags)flags={usedTokenCache:!1,didRefreshFor401:!1},this._requestAuthFlags.set(opts,flags);return flags}async authHeaders(opts){if(this._authState.resolution)await this._authState.resolution;if(this._authState.error)return;if(this._authState.tokenCache&&this.apiKey==null){let token=await this._authState.tokenCache.getToken();return this._authFlags(opts).usedTokenCache=!0,buildHeaders([{Authorization:`Bearer ${token}`}])}return buildHeaders([await this.apiKeyAuth(opts),await this.bearerAuth(opts)])}async apiKeyAuth(opts){if(this.apiKey==null)return;return buildHeaders([{"X-Api-Key":this.apiKey}])}async bearerAuth(opts){if(this.authToken==null)return;return buildHeaders([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(query2){return stringifyQuery(query2)}getUserAgent(){return`${this.constructor.name}/JS ${VERSION}`}defaultIdempotencyKey(){return`stainless-node-retry-${uuid4()}`}makeStatusError(status,error2,message,headers){return APIError.generate(status,error2,message,headers)}buildURL(path2,query2,defaultBaseURL){let baseURL=!__classPrivateFieldGet(this,_BaseAnthropic_instances,"m",_BaseAnthropic_baseURLOverridden).call(this)&&defaultBaseURL||this.baseURL,url=isAbsoluteURL(path2)?new URL(path2):new URL(baseURL+(baseURL.endsWith("/")&&path2.startsWith("/")?path2.slice(1):path2)),defaultQuery=this.defaultQuery(),pathQuery=Object.fromEntries(url.searchParams);if(!isEmptyObj(defaultQuery)||!isEmptyObj(pathQuery))query2={...pathQuery,...defaultQuery,...query2};if(typeof query2==="object"&&query2&&!Array.isArray(query2))url.search=this.stringifyQuery(query2);return url.toString()}_calculateNonstreamingTimeout(maxTokens){if(3600*maxTokens/128000>600)throw new AnthropicError("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions(options){}async prepareRequest(request,{url,options}){if(this._authState.tokenCache&&this.apiKey==null){let headers=request.headers instanceof Headers?request.headers:new Headers(request.headers);for(let[k,v]of Object.entries(this._authState.extraHeaders))if(!headers.has(k))headers.set(k,v);if(!headers.get("anthropic-beta")?.split(",").map((s)=>s.trim())?.includes(OAUTH_API_BETA_HEADER))headers.append("anthropic-beta",OAUTH_API_BETA_HEADER);request.headers=headers}}get(path2,opts){return this.methodRequest("get",path2,opts)}post(path2,opts){return this.methodRequest("post",path2,opts)}patch(path2,opts){return this.methodRequest("patch",path2,opts)}put(path2,opts){return this.methodRequest("put",path2,opts)}delete(path2,opts){return this.methodRequest("delete",path2,opts)}methodRequest(method,path2,opts){return this.request(Promise.resolve(opts).then((opts2)=>{return{method,path:path2,...opts2}}))}request(options,remainingRetries=null){return new APIPromise(this,this.makeRequest(options,remainingRetries,void 0))}async makeRequest(optionsInput,retriesRemaining,retryOfRequestLogID){let options=await optionsInput,maxRetries=options.maxRetries??this.maxRetries;if(retriesRemaining==null)retriesRemaining=maxRetries,this._requestAuthFlags.delete(options);await this.prepareOptions(options);let{req,url,timeout}=await this.buildRequest(options,{retryCount:maxRetries-retriesRemaining});await this.prepareRequest(req,{url,options});let requestLogID="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),retryLogStr=retryOfRequestLogID===void 0?"":`, retryOf: ${retryOfRequestLogID}`,startTime=Date.now();if(loggerFor(this).debug(`[${requestLogID}] sending request`,formatRequestDetails({retryOfRequestLogID,method:options.method,url,options,headers:req.headers})),options.signal?.aborted)throw new APIUserAbortError;let controller=new AbortController,response=await this.fetchWithTimeout(url,req,timeout,controller).catch(castToError),headersTime=Date.now();if(response instanceof globalThis.Error){let retryMessage=`retrying, ${retriesRemaining} attempts remaining`;if(options.signal?.aborted)throw new APIUserAbortError;let isTimeout=isAbortError(response)||/timed? ?out/i.test(String(response)+("cause"in response?String(response.cause):""));if(retriesRemaining)return loggerFor(this).info(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} - ${retryMessage}`),loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} (${retryMessage})`,formatRequestDetails({retryOfRequestLogID,url,durationMs:headersTime-startTime,message:response.message})),this.retryRequest(options,retriesRemaining,retryOfRequestLogID??requestLogID);if(loggerFor(this).info(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} - error; no more retries left`),loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} (error; no more retries left)`,formatRequestDetails({retryOfRequestLogID,url,durationMs:headersTime-startTime,message:response.message})),isTimeout)throw new APIConnectionTimeoutError;throw new APIConnectionError({cause:response})}let specialHeaders=[...response.headers.entries()].filter(([name])=>name==="request-id").map(([name,value])=>", "+name+": "+JSON.stringify(value)).join(""),responseInfo=`[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok?"succeeded":"failed"} with status ${response.status} in ${headersTime-startTime}ms`;if(!response.ok){let shouldRetry=await this.shouldRetry(response,options);if(retriesRemaining&&shouldRetry){let retryMessage2=`retrying, ${retriesRemaining} attempts remaining`;return await CancelReadableStream(response.body),loggerFor(this).info(`${responseInfo} - ${retryMessage2}`),loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage2})`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,durationMs:headersTime-startTime})),this.retryRequest(options,retriesRemaining,retryOfRequestLogID??requestLogID,response.headers)}let retryMessage=shouldRetry?"error; no more retries left":"error; not retryable";loggerFor(this).info(`${responseInfo} - ${retryMessage}`);let errText=await response.text().catch((err2)=>castToError(err2).message),errJSON=safeJSON(errText),errMessage=errJSON?void 0:errText;throw loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,message:errMessage,durationMs:Date.now()-startTime})),this.makeStatusError(response.status,errJSON,errMessage,response.headers)}return loggerFor(this).info(responseInfo),loggerFor(this).debug(`[${requestLogID}] response start`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,durationMs:headersTime-startTime})),{response,options,controller,requestLogID,retryOfRequestLogID,startTime}}getAPIList(path2,Page2,opts){return this.requestAPIList(Page2,opts&&"then"in opts?opts.then((opts2)=>({method:"get",path:path2,...opts2})):{method:"get",path:path2,...opts})}requestAPIList(Page2,options){let request=this.makeRequest(options,null,void 0);return new PagePromise(this,request,Page2)}async fetchWithTimeout(url,init,ms,controller){let{signal,method,...options}=init||{},abort=this._makeAbort(controller);if(signal)signal.addEventListener("abort",abort,{once:!0});let timeout=setTimeout(abort,ms),isReadableBody=globalThis.ReadableStream&&options.body instanceof globalThis.ReadableStream||typeof options.body==="object"&&options.body!==null&&Symbol.asyncIterator in options.body,fetchOptions={signal:controller.signal,...isReadableBody?{duplex:"half"}:{},method:"GET",...options};if(method)fetchOptions.method=method.toUpperCase();try{return await this.fetch.call(void 0,url,fetchOptions)}finally{clearTimeout(timeout)}}async shouldRetry(response,options){let flags=this._authFlags(options);if(response.status===401&&this._authState.tokenCache&&flags.usedTokenCache&&!flags.didRefreshFor401)return flags.didRefreshFor401=!0,this._authState.tokenCache.invalidate(),!0;let shouldRetryHeader=response.headers.get("x-should-retry");if(shouldRetryHeader==="true")return!0;if(shouldRetryHeader==="false")return!1;if(response.status===408)return!0;if(response.status===409)return!0;if(response.status===429)return!0;if(response.status>=500)return!0;return!1}async retryRequest(options,retriesRemaining,requestLogID,responseHeaders){let timeoutMillis,retryAfterMillisHeader=responseHeaders?.get("retry-after-ms");if(retryAfterMillisHeader){let timeoutMs=parseFloat(retryAfterMillisHeader);if(!Number.isNaN(timeoutMs))timeoutMillis=timeoutMs}let retryAfterHeader=responseHeaders?.get("retry-after");if(retryAfterHeader&&!timeoutMillis){let timeoutSeconds=parseFloat(retryAfterHeader);if(!Number.isNaN(timeoutSeconds))timeoutMillis=timeoutSeconds*1000;else timeoutMillis=Date.parse(retryAfterHeader)-Date.now()}if(timeoutMillis===void 0){let maxRetries=options.maxRetries??this.maxRetries;timeoutMillis=this.calculateDefaultRetryTimeoutMillis(retriesRemaining,maxRetries)}return await sleep(timeoutMillis),this.makeRequest(options,retriesRemaining-1,requestLogID)}calculateDefaultRetryTimeoutMillis(retriesRemaining,maxRetries){let numRetries=maxRetries-retriesRemaining,sleepSeconds=Math.min(0.5*Math.pow(2,numRetries),8),jitter=1-Math.random()*0.25;return sleepSeconds*jitter*1000}calculateNonstreamingTimeout(maxTokens,maxNonstreamingTokens){if(3600000*maxTokens/128000>600000||maxNonstreamingTokens!=null&&maxTokens>maxNonstreamingTokens)throw new AnthropicError("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest(inputOptions,{retryCount=0}={}){let options={...inputOptions},{method,path:path2,query:query2,defaultBaseURL}=options;if(this._authState.resolution)await this._authState.resolution;if(!this._baseURLIsExplicit&&this._authState.baseURL&&this.baseURL!==this._authState.baseURL)this.baseURL=this._authState.baseURL;let url=this.buildURL(path2,query2,defaultBaseURL);if("timeout"in options)validatePositiveInteger("timeout",options.timeout);options.timeout=options.timeout??this.timeout;let{bodyHeaders,body}=this.buildBody({options}),reqHeaders=await this.buildHeaders({options:inputOptions,method,bodyHeaders,retryCount});return{req:{method,headers:reqHeaders,...options.signal&&{signal:options.signal},...globalThis.ReadableStream&&body instanceof globalThis.ReadableStream&&{duplex:"half"},...body&&{body},...this.fetchOptions??{},...options.fetchOptions??{}},url,timeout:options.timeout}}async buildHeaders({options,method,bodyHeaders,retryCount}){let idempotencyHeaders={};if(this.idempotencyHeader&&method!=="get"){if(!options.idempotencyKey)options.idempotencyKey=this.defaultIdempotencyKey();idempotencyHeaders[this.idempotencyHeader]=options.idempotencyKey}let headers=buildHeaders([idempotencyHeaders,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(retryCount),...options.timeout?{"X-Stainless-Timeout":String(Math.trunc(options.timeout/1000))}:{},...getPlatformHeaders(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(options),this._options.defaultHeaders,bodyHeaders,options.headers]);return this.validateHeaders(headers),headers.values}_makeAbort(controller){return()=>controller.abort()}buildBody({options:{body,headers:rawHeaders}}){if(!body)return{bodyHeaders:void 0,body:void 0};let headers=buildHeaders([rawHeaders]);if(ArrayBuffer.isView(body)||body instanceof ArrayBuffer||body instanceof DataView||typeof body==="string"&&headers.values.has("content-type")||globalThis.Blob&&body instanceof globalThis.Blob||body instanceof FormData||body instanceof URLSearchParams||globalThis.ReadableStream&&body instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body};else if(typeof body==="object"&&((Symbol.asyncIterator in body)||(Symbol.iterator in body)&&("next"in body)&&typeof body.next==="function"))return{bodyHeaders:void 0,body:ReadableStreamFrom(body)};else if(typeof body==="object"&&headers.values.get("content-type")==="application/x-www-form-urlencoded")return{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(body)};else return __classPrivateFieldGet(this,_BaseAnthropic_encoder,"f").call(this,{body,headers})}}var _BaseAnthropic_instances,_a,_BaseAnthropic_encoder,_BaseAnthropic_baseURLOverridden,HUMAN_PROMPT="\\n\\nHuman:",AI_PROMPT="\\n\\nAssistant:",Anthropic;var init_client=__esm(()=>{init_tslib();init_values();init_detect_platform();init_query();init_error();init_types();init_token_cache();init_credential_chain();init_pagination();init_uploads2();init_resources2();init_api_promise();init_completions();init_models2();init_beta();init_messages2();init_detect_platform();init_headers();init_log();init_values();_a=BaseAnthropic,_BaseAnthropic_encoder=new WeakMap,_BaseAnthropic_instances=new WeakSet,_BaseAnthropic_baseURLOverridden=function(){return this.baseURL!=="https://api.anthropic.com"};BaseAnthropic.Anthropic=_a;BaseAnthropic.HUMAN_PROMPT=HUMAN_PROMPT;BaseAnthropic.AI_PROMPT=AI_PROMPT;BaseAnthropic.DEFAULT_TIMEOUT=600000;BaseAnthropic.AnthropicError=AnthropicError;BaseAnthropic.APIError=APIError;BaseAnthropic.APIConnectionError=APIConnectionError;BaseAnthropic.APIConnectionTimeoutError=APIConnectionTimeoutError;BaseAnthropic.APIUserAbortError=APIUserAbortError;BaseAnthropic.NotFoundError=NotFoundError;BaseAnthropic.ConflictError=ConflictError;BaseAnthropic.RateLimitError=RateLimitError;BaseAnthropic.BadRequestError=BadRequestError;BaseAnthropic.AuthenticationError=AuthenticationError;BaseAnthropic.InternalServerError=InternalServerError;BaseAnthropic.PermissionDeniedError=PermissionDeniedError;BaseAnthropic.UnprocessableEntityError=UnprocessableEntityError;BaseAnthropic.toFile=toFile;Anthropic=class Anthropic extends BaseAnthropic{constructor(){super(...arguments);this.completions=new Completions(this),this.messages=new Messages2(this),this.models=new Models2(this),this.beta=new Beta(this)}};Anthropic.Completions=Completions;Anthropic.Messages=Messages2;Anthropic.Models=Models2;Anthropic.Beta=Beta});var init_sdk=__esm(()=>{init_client();init_uploads2();init_api_promise();init_client();init_pagination();init_error()});function isAbortError2(e){return e instanceof AbortError||e instanceof APIUserAbortError||e instanceof Error&&e.name==="AbortError"}function hasExactErrorMessage(error2,message){return error2 instanceof Error&&error2.message===message}function toError(e){return e instanceof Error?e:Error(String(e))}function errorMessage(e){return e instanceof Error?e.message:String(e)}function getErrnoCode(e){if(e&&typeof e==="object"&&"code"in e&&typeof e.code==="string")return e.code;return}function isENOENT(e){return getErrnoCode(e)==="ENOENT"}function getErrnoPath(e){if(e&&typeof e==="object"&&"path"in e&&typeof e.path==="string")return e.path;return}function isFsInaccessible(e){let code=getErrnoCode(e);return code==="ENOENT"||code==="EACCES"||code==="EPERM"||code==="EROFS"||code==="ENOTDIR"||code==="ELOOP"}function classifyAxiosError(e){let message=errorMessage(e);if(!e||typeof e!=="object"||!("isAxiosError"in e)||!e.isAxiosError)return{kind:"other",message};let err=e,status=err.response?.status;if(status===401||status===403)return{kind:"auth",status,message};if(err.code==="ECONNABORTED")return{kind:"timeout",status,message};if(err.code==="ECONNREFUSED"||err.code==="ENOTFOUND")return{kind:"network",status,message};return{kind:"http",status,message}}var ClaudeError,MalformedCommandError,AbortError,ConfigParseError,ShellError,TeleportOperationError,TelemetrySafeError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS;var init_errors=__esm(()=>{init_sdk();ClaudeError=class ClaudeError extends Error{constructor(message){super(message);this.name=this.constructor.name}};MalformedCommandError=class MalformedCommandError extends Error{};AbortError=class AbortError extends Error{constructor(message){super(message);this.name="AbortError"}};ConfigParseError=class ConfigParseError extends Error{filePath;defaultConfig;constructor(message,filePath,defaultConfig){super(message);this.name="ConfigParseError",this.filePath=filePath,this.defaultConfig=defaultConfig}};ShellError=class ShellError extends Error{stdout;stderr;code;interrupted;abortReason;abortMessage;isAbort;constructor(stdout,stderr,code,interrupted,opts){super("Shell command failed");this.stdout=stdout;this.stderr=stderr;this.code=code;this.interrupted=interrupted;this.name="ShellError",this.abortReason=opts?.abortReason,this.abortMessage=opts?.abortMessage,this.isAbort=opts?.isAbort??(opts?.abortReason!==void 0&&interrupted)}};TeleportOperationError=class TeleportOperationError extends Error{formattedMessage;constructor(message,formattedMessage){super(message);this.formattedMessage=formattedMessage;this.name="TeleportOperationError"}};TelemetrySafeError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS=class TelemetrySafeError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS extends Error{telemetryMessage;constructor(message,telemetryMessage){super(message);this.name="TelemetrySafeError",this.telemetryMessage=telemetryMessage??message}}});function arrayEach(array,iteratee){var index=-1,length=array==null?0:array.length;while(++index<length)if(iteratee(array[index],index,array)===!1)break;return array}var _arrayEach_default;var init__arrayEach=__esm(()=>{_arrayEach_default=arrayEach});var defineProperty,_defineProperty_default;var init__defineProperty=__esm(()=>{init__getNative();defineProperty=function(){try{var func=_getNative_default(Object,"defineProperty");return func({},"",{}),func}catch(e){}}(),_defineProperty_default=defineProperty});function baseAssignValue(object,key,value){if(key=="__proto__"&&_defineProperty_default)_defineProperty_default(object,key,{configurable:!0,enumerable:!0,value,writable:!0});else object[key]=value}var _baseAssignValue_default;var init__baseAssignValue=__esm(()=>{init__defineProperty();_baseAssignValue_default=baseAssignValue});function assignValue(object,key,value){var objValue=object[key];if(!(hasOwnProperty10.call(object,key)&&eq_default(objValue,value))||value===void 0&&!(key in object))_baseAssignValue_default(object,key,value)}var objectProto13,hasOwnProperty10,_assignValue_default;var init__assignValue=__esm(()=>{init__baseAssignValue();init_eq();objectProto13=Object.prototype,hasOwnProperty10=objectProto13.hasOwnProperty;_assignValue_default=assignValue});function copyObject(source,props,object,customizer){var isNew=!object;object||(object={});var index=-1,length=props.length;while(++index<length){var key=props[index],newValue=customizer?customizer(object[key],source[key],key,object,source):void 0;if(newValue===void 0)newValue=source[key];if(isNew)_baseAssignValue_default(object,key,newValue);else _assignValue_default(object,key,newValue)}return object}var _copyObject_default;var init__copyObject=__esm(()=>{init__assignValue();init__baseAssignValue();_copyObject_default=copyObject});function baseAssign(object,source){return object&&_copyObject_default(source,keys_default(source),object)}var _baseAssign_default;var init__baseAssign=__esm(()=>{init__copyObject();init_keys();_baseAssign_default=baseAssign});function nativeKeysIn(object){var result=[];if(object!=null)for(var key in Object(object))result.push(key);return result}var _nativeKeysIn_default;var init__nativeKeysIn=__esm(()=>{_nativeKeysIn_default=nativeKeysIn});function baseKeysIn(object){if(!isObject_default(object))return _nativeKeysIn_default(object);var isProto=_isPrototype_default(object),result=[];for(var key in object)if(!(key=="constructor"&&(isProto||!hasOwnProperty11.call(object,key))))result.push(key);return result}var objectProto14,hasOwnProperty11,_baseKeysIn_default;var init__baseKeysIn=__esm(()=>{init_isObject();init__isPrototype();init__nativeKeysIn();objectProto14=Object.prototype,hasOwnProperty11=objectProto14.hasOwnProperty;_baseKeysIn_default=baseKeysIn});function keysIn(object){return isArrayLike_default(object)?_arrayLikeKeys_default(object,!0):_baseKeysIn_default(object)}var keysIn_default;var init_keysIn=__esm(()=>{init__arrayLikeKeys();init__baseKeysIn();init_isArrayLike();keysIn_default=keysIn});function baseAssignIn(object,source){return object&&_copyObject_default(source,keysIn_default(source),object)}var _baseAssignIn_default;var init__baseAssignIn=__esm(()=>{init__copyObject();init_keysIn();_baseAssignIn_default=baseAssignIn});var exports__cloneBuffer={};__export(exports__cloneBuffer,{default:()=>_cloneBuffer_default});function cloneBuffer(buffer,isDeep){if(isDeep)return buffer.slice();var length=buffer.length,result=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);return buffer.copy(result),result}var freeExports3,freeModule3,moduleExports3,Buffer3,allocUnsafe,_cloneBuffer_default;var init__cloneBuffer=__esm(()=>{init__root();freeExports3=typeof exports__cloneBuffer=="object"&&exports__cloneBuffer&&!exports__cloneBuffer.nodeType&&exports__cloneBuffer,freeModule3=freeExports3&&typeof module__cloneBuffer=="object"&&module__cloneBuffer&&!module__cloneBuffer.nodeType&&module__cloneBuffer,moduleExports3=freeModule3&&freeModule3.exports===freeExports3,Buffer3=moduleExports3?_root_default.Buffer:void 0,allocUnsafe=Buffer3?Buffer3.allocUnsafe:void 0;_cloneBuffer_default=cloneBuffer});function copyArray(source,array){var index=-1,length=source.length;array||(array=Array(length));while(++index<length)array[index]=source[index];return array}var _copyArray_default;var init__copyArray=__esm(()=>{_copyArray_default=copyArray});function copySymbols(source,object){return _copyObject_default(source,_getSymbols_default(source),object)}var _copySymbols_default;var init__copySymbols=__esm(()=>{init__copyObject();init__getSymbols();_copySymbols_default=copySymbols});var getPrototype,_getPrototype_default;var init__getPrototype=__esm(()=>{init__overArg();getPrototype=_overArg_default(Object.getPrototypeOf,Object),_getPrototype_default=getPrototype});var nativeGetSymbols2,getSymbolsIn,_getSymbolsIn_default;var init__getSymbolsIn=__esm(()=>{init__arrayPush();init__getPrototype();init__getSymbols();init_stubArray();nativeGetSymbols2=Object.getOwnPropertySymbols,getSymbolsIn=!nativeGetSymbols2?stubArray_default:function(object){var result=[];while(object)_arrayPush_default(result,_getSymbols_default(object)),object=_getPrototype_default(object);return result},_getSymbolsIn_default=getSymbolsIn});function copySymbolsIn(source,object){return _copyObject_default(source,_getSymbolsIn_default(source),object)}var _copySymbolsIn_default;var init__copySymbolsIn=__esm(()=>{init__copyObject();init__getSymbolsIn();_copySymbolsIn_default=copySymbolsIn});function getAllKeysIn(object){return _baseGetAllKeys_default(object,keysIn_default,_getSymbolsIn_default)}var _getAllKeysIn_default;var init__getAllKeysIn=__esm(()=>{init__baseGetAllKeys();init__getSymbolsIn();init_keysIn();_getAllKeysIn_default=getAllKeysIn});function initCloneArray(array){var length=array.length,result=new array.constructor(length);if(length&&typeof array[0]=="string"&&hasOwnProperty12.call(array,"index"))result.index=array.index,result.input=array.input;return result}var objectProto15,hasOwnProperty12,_initCloneArray_default;var init__initCloneArray=__esm(()=>{objectProto15=Object.prototype,hasOwnProperty12=objectProto15.hasOwnProperty;_initCloneArray_default=initCloneArray});function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);return new _Uint8Array_default(result).set(new _Uint8Array_default(arrayBuffer)),result}var _cloneArrayBuffer_default;var init__cloneArrayBuffer=__esm(()=>{init__Uint8Array();_cloneArrayBuffer_default=cloneArrayBuffer});function cloneDataView(dataView,isDeep){var buffer=isDeep?_cloneArrayBuffer_default(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}var _cloneDataView_default;var init__cloneDataView=__esm(()=>{init__cloneArrayBuffer();_cloneDataView_default=cloneDataView});function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));return result.lastIndex=regexp.lastIndex,result}var reFlags,_cloneRegExp_default;var init__cloneRegExp=__esm(()=>{reFlags=/\w*$/;_cloneRegExp_default=cloneRegExp});function cloneSymbol(symbol){return symbolValueOf2?Object(symbolValueOf2.call(symbol)):{}}var symbolProto3,symbolValueOf2,_cloneSymbol_default;var init__cloneSymbol=__esm(()=>{init__Symbol();symbolProto3=_Symbol_default?_Symbol_default.prototype:void 0,symbolValueOf2=symbolProto3?symbolProto3.valueOf:void 0;_cloneSymbol_default=cloneSymbol});function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?_cloneArrayBuffer_default(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length)}var _cloneTypedArray_default;var init__cloneTypedArray=__esm(()=>{init__cloneArrayBuffer();_cloneTypedArray_default=cloneTypedArray});function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag3:return _cloneArrayBuffer_default(object);case boolTag3:case dateTag3:return new Ctor(+object);case dataViewTag4:return _cloneDataView_default(object,isDeep);case float32Tag2:case float64Tag2:case int8Tag2:case int16Tag2:case int32Tag2:case uint8Tag2:case uint8ClampedTag2:case uint16Tag2:case uint32Tag2:return _cloneTypedArray_default(object,isDeep);case mapTag4:return new Ctor;case numberTag3:case stringTag3:return new Ctor(object);case regexpTag3:return _cloneRegExp_default(object);case setTag4:return new Ctor;case symbolTag3:return _cloneSymbol_default(object)}}var boolTag3="[object Boolean]",dateTag3="[object Date]",mapTag4="[object Map]",numberTag3="[object Number]",regexpTag3="[object RegExp]",setTag4="[object Set]",stringTag3="[object String]",symbolTag3="[object Symbol]",arrayBufferTag3="[object ArrayBuffer]",dataViewTag4="[object DataView]",float32Tag2="[object Float32Array]",float64Tag2="[object Float64Array]",int8Tag2="[object Int8Array]",int16Tag2="[object Int16Array]",int32Tag2="[object Int32Array]",uint8Tag2="[object Uint8Array]",uint8ClampedTag2="[object Uint8ClampedArray]",uint16Tag2="[object Uint16Array]",uint32Tag2="[object Uint32Array]",_initCloneByTag_default;var init__initCloneByTag=__esm(()=>{init__cloneArrayBuffer();init__cloneDataView();init__cloneRegExp();init__cloneSymbol();init__cloneTypedArray();_initCloneByTag_default=initCloneByTag});var objectCreate,baseCreate,_baseCreate_default;var init__baseCreate=__esm(()=>{init_isObject();objectCreate=Object.create,baseCreate=function(){function object(){}return function(proto){if(!isObject_default(proto))return{};if(objectCreate)return objectCreate(proto);object.prototype=proto;var result=new object;return object.prototype=void 0,result}}(),_baseCreate_default=baseCreate});function initCloneObject(object){return typeof object.constructor=="function"&&!_isPrototype_default(object)?_baseCreate_default(_getPrototype_default(object)):{}}var _initCloneObject_default;var init__initCloneObject=__esm(()=>{init__baseCreate();init__getPrototype();init__isPrototype();_initCloneObject_default=initCloneObject});function baseIsMap(value){return isObjectLike_default(value)&&_getTag_default(value)==mapTag5}var mapTag5="[object Map]",_baseIsMap_default;var init__baseIsMap=__esm(()=>{init__getTag();init_isObjectLike();_baseIsMap_default=baseIsMap});var nodeIsMap,isMap,isMap_default;var init_isMap=__esm(()=>{init__baseIsMap();init__baseUnary();init__nodeUtil();nodeIsMap=_nodeUtil_default&&_nodeUtil_default.isMap,isMap=nodeIsMap?_baseUnary_default(nodeIsMap):_baseIsMap_default,isMap_default=isMap});function baseIsSet(value){return isObjectLike_default(value)&&_getTag_default(value)==setTag5}var setTag5="[object Set]",_baseIsSet_default;var init__baseIsSet=__esm(()=>{init__getTag();init_isObjectLike();_baseIsSet_default=baseIsSet});var nodeIsSet,isSet,isSet_default;var init_isSet=__esm(()=>{init__baseIsSet();init__baseUnary();init__nodeUtil();nodeIsSet=_nodeUtil_default&&_nodeUtil_default.isSet,isSet=nodeIsSet?_baseUnary_default(nodeIsSet):_baseIsSet_default,isSet_default=isSet});function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer)result=object?customizer(value,key,object,stack):customizer(value);if(result!==void 0)return result;if(!isObject_default(value))return value;var isArr=isArray_default(value);if(isArr){if(result=_initCloneArray_default(value),!isDeep)return _copyArray_default(value,result)}else{var tag=_getTag_default(value),isFunc=tag==funcTag3||tag==genTag2;if(isBuffer_default(value))return _cloneBuffer_default(value,isDeep);if(tag==objectTag4||tag==argsTag4||isFunc&&!object){if(result=isFlat||isFunc?{}:_initCloneObject_default(value),!isDeep)return isFlat?_copySymbolsIn_default(value,_baseAssignIn_default(result,value)):_copySymbols_default(value,_baseAssign_default(result,value))}else{if(!cloneableTags[tag])return object?value:{};result=_initCloneByTag_default(value,tag,isDeep)}}stack||(stack=new _Stack_default);var stacked=stack.get(value);if(stacked)return stacked;if(stack.set(value,result),isSet_default(value))value.forEach(function(subValue){result.add(baseClone(subValue,bitmask,customizer,subValue,value,stack))});else if(isMap_default(value))value.forEach(function(subValue,key2){result.set(key2,baseClone(subValue,bitmask,customizer,key2,value,stack))});var keysFunc=isFull?isFlat?_getAllKeysIn_default:_getAllKeys_default:isFlat?keysIn_default:keys_default,props=isArr?void 0:keysFunc(value);return _arrayEach_default(props||value,function(subValue,key2){if(props)key2=subValue,subValue=value[key2];_assignValue_default(result,key2,baseClone(subValue,bitmask,customizer,key2,value,stack))}),result}var CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,argsTag4="[object Arguments]",arrayTag3="[object Array]",boolTag4="[object Boolean]",dateTag4="[object Date]",errorTag3="[object Error]",funcTag3="[object Function]",genTag2="[object GeneratorFunction]",mapTag6="[object Map]",numberTag4="[object Number]",objectTag4="[object Object]",regexpTag4="[object RegExp]",setTag6="[object Set]",stringTag4="[object String]",symbolTag4="[object Symbol]",weakMapTag3="[object WeakMap]",arrayBufferTag4="[object ArrayBuffer]",dataViewTag5="[object DataView]",float32Tag3="[object Float32Array]",float64Tag3="[object Float64Array]",int8Tag3="[object Int8Array]",int16Tag3="[object Int16Array]",int32Tag3="[object Int32Array]",uint8Tag3="[object Uint8Array]",uint8ClampedTag3="[object Uint8ClampedArray]",uint16Tag3="[object Uint16Array]",uint32Tag3="[object Uint32Array]",cloneableTags,_baseClone_default;var init__baseClone=__esm(()=>{init__Stack();init__arrayEach();init__assignValue();init__baseAssign();init__baseAssignIn();init__cloneBuffer();init__copyArray();init__copySymbols();init__copySymbolsIn();init__getAllKeys();init__getAllKeysIn();init__getTag();init__initCloneArray();init__initCloneByTag();init__initCloneObject();init_isArray();init_isBuffer();init_isMap();init_isObject();init_isSet();init_keys();init_keysIn();cloneableTags={};cloneableTags[argsTag4]=cloneableTags[arrayTag3]=cloneableTags[arrayBufferTag4]=cloneableTags[dataViewTag5]=cloneableTags[boolTag4]=cloneableTags[dateTag4]=cloneableTags[float32Tag3]=cloneableTags[float64Tag3]=cloneableTags[int8Tag3]=cloneableTags[int16Tag3]=cloneableTags[int32Tag3]=cloneableTags[mapTag6]=cloneableTags[numberTag4]=cloneableTags[objectTag4]=cloneableTags[regexpTag4]=cloneableTags[setTag6]=cloneableTags[stringTag4]=cloneableTags[symbolTag4]=cloneableTags[uint8Tag3]=cloneableTags[uint8ClampedTag3]=cloneableTags[uint16Tag3]=cloneableTags[uint32Tag3]=!0;cloneableTags[errorTag3]=cloneableTags[funcTag3]=cloneableTags[weakMapTag3]=!1;_baseClone_default=baseClone});import{closeSync,writeFileSync as fsWriteFileSync,fsyncSync,openSync}from"fs";function slowLoggingExternal(){return NOOP_LOGGER}function jsonStringify(value,replacer,space){let __stack=[];try{const _=__using(__stack,slowLogging`JSON.stringify(${value})`,0);return JSON.stringify(value,replacer,space)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}function clone(value,options){let __stack=[];try{const _=__using(__stack,slowLogging`structuredClone(${value})`,0);return structuredClone(value,options)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}function writeFileSync_DEPRECATED(filePath,data,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.writeFileSync(${filePath}, ${data})`,0);let needsFlush=options!==null&&typeof options==="object"&&"flush"in options&&options.flush===!0;if(needsFlush){let encoding=typeof options==="object"&&"encoding"in options?options.encoding:void 0,mode=typeof options==="object"&&"mode"in options?options.mode:void 0,fd;try{fd=openSync(filePath,"w",mode),fsWriteFileSync(fd,data,{encoding:encoding??void 0}),fsyncSync(fd)}finally{if(fd!==void 0)closeSync(fd)}}else fsWriteFileSync(filePath,data,options)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}var SLOW_OPERATION_THRESHOLD_MS,NOOP_LOGGER,slowLogging,jsonParse=(text,reviver)=>{let __stack=[];try{const _=__using(__stack,slowLogging`JSON.parse(${text})`,0);return typeof reviver>"u"?JSON.parse(text):JSON.parse(text,reviver)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}};var init_slowOperations=__esm(()=>{init_state();init_debug();SLOW_OPERATION_THRESHOLD_MS=(()=>{let envValue=process.env.CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS;if(envValue!==void 0){let parsed=Number(envValue);if(!Number.isNaN(parsed)&&parsed>=0)return parsed}return 20})(),NOOP_LOGGER={[Symbol.dispose](){}};slowLogging=slowLoggingExternal});import*as fs from"fs";import{cp as cpPromise,lstat as lstatPromise,mkdir as mkdirPromise,mkdtemp as mkdtempPromise,open,readdir as readdirPromise,readFile as readFilePromise,rename as renamePromise,rmdir as rmdirPromise,rm as rmPromise,stat as statPromise,unlink as unlinkPromise,writeFile as writeFilePromise}from"fs/promises";import{homedir as homedir2}from"os";import*as nodePath from"path";function safeResolvePath(fs2,filePath){if(filePath.startsWith("//")||filePath.startsWith("\\\\"))return{resolvedPath:filePath,isSymlink:!1,isCanonical:!1};try{let stats=fs2.lstatSync(filePath);if(stats.isFIFO()||stats.isSocket()||stats.isCharacterDevice()||stats.isBlockDevice())return{resolvedPath:filePath,isSymlink:!1,isCanonical:!1};let resolvedPath=fs2.realpathSync(filePath);return{resolvedPath,isSymlink:resolvedPath!==filePath,isCanonical:!0}}catch(_error){return{resolvedPath:filePath,isSymlink:!1,isCanonical:!1}}}function isDuplicatePath(fs2,filePath,loadedPaths){let{resolvedPath}=safeResolvePath(fs2,filePath);if(loadedPaths.has(resolvedPath))return!0;return loadedPaths.add(resolvedPath),!1}function resolveDeepestExistingAncestorSync(fs2,absolutePath){let dir=absolutePath,segments=[];while(dir!==nodePath.dirname(dir)){let st;try{st=fs2.lstatSync(dir)}catch{segments.unshift(nodePath.basename(dir)),dir=nodePath.dirname(dir);continue}if(st.isSymbolicLink())try{let resolved=fs2.realpathSync(dir);return segments.length===0?resolved:nodePath.join(resolved,...segments)}catch{let target=fs2.readlinkSync(dir),absTarget=nodePath.isAbsolute(target)?target:nodePath.resolve(nodePath.dirname(dir),target);return segments.length===0?absTarget:nodePath.join(absTarget,...segments)}try{let resolved=fs2.realpathSync(dir);if(resolved!==dir)return segments.length===0?resolved:nodePath.join(resolved,...segments)}catch{}return}return}function getPathsForPermissionCheck(inputPath){let path2=inputPath;if(path2==="~")path2=homedir2().normalize("NFC");else if(path2.startsWith("~/"))path2=nodePath.join(homedir2().normalize("NFC"),path2.slice(2));let pathSet=new Set,fsImpl=getFsImplementation();if(pathSet.add(path2),path2.startsWith("//")||path2.startsWith("\\\\"))return Array.from(pathSet);try{let currentPath=path2,visited=new Set,maxDepth=40;for(let depth=0;depth<maxDepth;depth++){if(visited.has(currentPath))break;if(visited.add(currentPath),!fsImpl.existsSync(currentPath)){if(currentPath===path2){let resolved=resolveDeepestExistingAncestorSync(fsImpl,path2);if(resolved!==void 0)pathSet.add(resolved)}break}let stats=fsImpl.lstatSync(currentPath);if(stats.isFIFO()||stats.isSocket()||stats.isCharacterDevice()||stats.isBlockDevice())break;if(!stats.isSymbolicLink())break;let target=fsImpl.readlinkSync(currentPath),absoluteTarget=nodePath.isAbsolute(target)?target:nodePath.resolve(nodePath.dirname(currentPath),target);pathSet.add(absoluteTarget),currentPath=absoluteTarget}}catch{}let{resolvedPath,isSymlink}=safeResolvePath(fsImpl,path2);if(isSymlink&&resolvedPath!==path2)pathSet.add(resolvedPath);return Array.from(pathSet)}function getFsImplementation(){return activeFs}async function readFileRange(path2,offset,maxBytes){let __stack=[];try{const fh=__using(__stack,await open(path2,"r"),1);let size=(await fh.stat()).size;if(size<=offset)return null;let bytesToRead=Math.min(size-offset,maxBytes);let buffer=Buffer.allocUnsafe(bytesToRead);let totalRead=0;while(totalRead<bytesToRead){let{bytesRead}=await fh.read(buffer,totalRead,bytesToRead-totalRead,offset+totalRead);if(bytesRead===0)break;totalRead+=bytesRead}return{content:buffer.toString("utf8",0,totalRead),bytesRead:totalRead,bytesTotal:size}}catch(_catch){var _err=_catch,_hasErr=1}finally{var _promise=__callDispose(__stack,_err,_hasErr);_promise&&await _promise}}async function tailFile(path2,maxBytes){let __stack=[];try{const fh=__using(__stack,await open(path2,"r"),1);let size=(await fh.stat()).size;if(size===0)return{content:"",bytesRead:0,bytesTotal:0};let offset=Math.max(0,size-maxBytes);let bytesToRead=size-offset;let buffer=Buffer.allocUnsafe(bytesToRead);let totalRead=0;while(totalRead<bytesToRead){let{bytesRead}=await fh.read(buffer,totalRead,bytesToRead-totalRead,offset+totalRead);if(bytesRead===0)break;totalRead+=bytesRead}return{content:buffer.toString("utf8",0,totalRead),bytesRead:totalRead,bytesTotal:size}}catch(_catch){var _err=_catch,_hasErr=1}finally{var _promise=__callDispose(__stack,_err,_hasErr);_promise&&await _promise}}async function*readLinesReverse(path2){let fileHandle=await open(path2,"r");try{let position=(await fileHandle.stat()).size,remainder=Buffer.alloc(0),buffer=Buffer.alloc(4096);while(position>0){let currentChunkSize=Math.min(4096,position);position-=currentChunkSize,await fileHandle.read(buffer,0,currentChunkSize,position);let combined=Buffer.concat([buffer.subarray(0,currentChunkSize),remainder]),firstNewline=combined.indexOf(10);if(firstNewline===-1){remainder=combined;continue}remainder=Buffer.from(combined.subarray(0,firstNewline));let lines=combined.toString("utf8",firstNewline+1).split(`
|
|
42
|
-
`);for(let i=lines.length-1;i>=0;i--){let line=lines[i];if(line)yield line}}if(remainder.length>0)yield remainder.toString("utf8")}finally{await fileHandle.close()}}var NodeFsOperations,activeFs;var init_fsOperations=__esm(()=>{init_errors();init_slowOperations();NodeFsOperations={cwd(){return process.cwd()},existsSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.existsSync(${fsPath})`,0);return fs.existsSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},async stat(fsPath){return statPromise(fsPath)},async lstat(fsPath){return lstatPromise(fsPath)},async readdir(fsPath){return readdirPromise(fsPath,{withFileTypes:!0})},async unlink(fsPath){return unlinkPromise(fsPath)},async rmdir(fsPath){return rmdirPromise(fsPath)},async rm(fsPath,options){return rmPromise(fsPath,options)},async mkdir(dirPath,options){try{await mkdirPromise(dirPath,{recursive:!0,...options})}catch(e){let code=getErrnoCode(e);if(code==="EEXIST")return;if(code==="EACCES"&&fs.existsSync(dirPath))return;throw e}},async mkdtemp(prefix){return mkdtempPromise(prefix)},async readFile(fsPath,options){return readFilePromise(fsPath,{encoding:options.encoding})},async writeFile(fsPath,data,options){await writeFilePromise(fsPath,data,options)},async rename(oldPath,newPath){return renamePromise(oldPath,newPath)},async cp(source,destination,options){return cpPromise(source,destination,options)},statSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.statSync(${fsPath})`,0);return fs.statSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},lstatSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.lstatSync(${fsPath})`,0);return fs.lstatSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readFileSync(fsPath,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readFileSync(${fsPath})`,0);return fs.readFileSync(fsPath,{encoding:options.encoding})}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readFileBytesSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readFileBytesSync(${fsPath})`,0);return fs.readFileSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readSync(fsPath,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readSync(${fsPath}, ${options.length} bytes)`,0);let fd=void 0;try{fd=fs.openSync(fsPath,"r");let buffer=Buffer.alloc(options.length),bytesRead=fs.readSync(fd,buffer,0,options.length,0);return{buffer,bytesRead}}finally{if(fd)fs.closeSync(fd)}}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},appendFileSync(path2,data,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.appendFileSync(${path2}, ${data.length} chars)`,0);if(options?.mode!==void 0)try{let fd=fs.openSync(path2,"ax",options.mode);try{fs.appendFileSync(fd,data)}finally{fs.closeSync(fd)}return}catch(e){if(getErrnoCode(e)!=="EEXIST")throw e}fs.appendFileSync(path2,data)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},copyFileSync(src,dest){let __stack=[];try{const _=__using(__stack,slowLogging`fs.copyFileSync(${src} → ${dest})`,0);fs.copyFileSync(src,dest)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},unlinkSync(path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.unlinkSync(${path2})`,0);fs.unlinkSync(path2)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},renameSync(oldPath,newPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.renameSync(${oldPath} → ${newPath})`,0);fs.renameSync(oldPath,newPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},linkSync(target,path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.linkSync(${target} → ${path2})`,0);fs.linkSync(target,path2)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},symlinkSync(target,path2,type){let __stack=[];try{const _=__using(__stack,slowLogging`fs.symlinkSync(${target} → ${path2})`,0);fs.symlinkSync(target,path2,type)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readlinkSync(path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readlinkSync(${path2})`,0);return fs.readlinkSync(path2)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},realpathSync(path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.realpathSync(${path2})`,0);return fs.realpathSync(path2).normalize("NFC")}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},mkdirSync(dirPath,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.mkdirSync(${dirPath})`,0);let mkdirOptions={recursive:!0};if(options?.mode!==void 0)mkdirOptions.mode=options.mode;try{fs.mkdirSync(dirPath,mkdirOptions)}catch(e){let code=getErrnoCode(e);if(code==="EEXIST")return;if(code==="EACCES"&&fs.existsSync(dirPath))return;throw e}}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readdirSync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readdirSync(${dirPath})`,0);return fs.readdirSync(dirPath,{withFileTypes:!0})}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readdirStringSync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readdirStringSync(${dirPath})`,0);return fs.readdirSync(dirPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},isDirEmptySync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.isDirEmptySync(${dirPath})`,0);let files=this.readdirSync(dirPath);return files.length===0}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},rmdirSync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.rmdirSync(${dirPath})`,0);fs.rmdirSync(dirPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},rmSync(path2,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.rmSync(${path2})`,0);fs.rmSync(path2,options)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},createWriteStream(path2){return fs.createWriteStream(path2)},async readFileBytes(fsPath,maxBytes){if(maxBytes===void 0)return readFilePromise(fsPath);let handle=await open(fsPath,"r");try{let{size}=await handle.stat(),readSize=Math.min(size,maxBytes),buffer=Buffer.allocUnsafe(readSize),offset=0;while(offset<readSize){let{bytesRead}=await handle.read(buffer,offset,readSize-offset,offset);if(bytesRead===0)break;offset+=bytesRead}return offset<readSize?buffer.subarray(0,offset):buffer}finally{await handle.close()}}},activeFs=NodeFsOperations});var exports_process={};__export(exports_process,{writeToStdout:()=>writeToStdout,writeToStderr:()=>writeToStderr,registerProcessOutputErrorHandlers:()=>registerProcessOutputErrorHandlers,peekForStdinData:()=>peekForStdinData,exitWithError:()=>exitWithError});function handleEPIPE(stream){return(err)=>{if(err.code==="EPIPE")stream.destroy()}}function registerProcessOutputErrorHandlers(){process.stdout.on("error",handleEPIPE(process.stdout)),process.stderr.on("error",handleEPIPE(process.stderr))}function writeOut(stream,data){if(stream.destroyed)return;stream.write(data)}function writeToStdout(data){writeOut(process.stdout,data)}function writeToStderr(data){writeOut(process.stderr,data)}function exitWithError(message){console.error(message),process.exit(1)}function peekForStdinData(stream,ms){return new Promise((resolve2)=>{let done=(timedOut)=>{clearTimeout(peek),stream.off("end",onEnd),stream.off("data",onFirstData),resolve2(timedOut)},onEnd=()=>done(!1),onFirstData=()=>clearTimeout(peek),peek=setTimeout(done,ms,!0);stream.once("end",onEnd),stream.once("data",onFirstData)})}var PROVIDER_PRESET_MANIFEST,ORDERED_PROVIDER_PRESETS;var init_integrationManifest_generated=__esm(()=>{PROVIDER_PRESET_MANIFEST=[{preset:"gitlawb-opengateway",routeKind:"gateway",routeId:"gitlawb-opengateway",vendorId:"openai",gatewayId:"gitlawb-opengateway",description:"Gitlawb Opengateway - (API key required, signup at https://gitlawb.com/opengateway/keys)",label:"Gitlawb Opengateway",name:"Gitlawb Opengateway",apiKeyEnvVars:["OPENGATEWAY_API_KEY"],baseUrlEnvVars:["OPENGATEWAY_BASE_URL","OPENAI_BASE_URL"],modelEnvVars:["OPENAI_MODEL"],fallbackBaseUrl:"https://opengateway.gitlawb.com/v1",fallbackModel:"mimo-v2.5-pro",badge:{text:"Recommended",color:"success"}},{preset:"anthropic",routeKind:"vendor",routeId:"anthropic",vendorId:"anthropic",description:"Native Claude API (x-api-key auth)",apiKeyEnvVars:["ANTHROPIC_API_KEY"],baseUrlEnvVars:["ANTHROPIC_BASE_URL"],modelEnvVars:["ANTHROPIC_MODEL"]},{preset:"aimlapi",routeKind:"gateway",routeId:"aimlapi",vendorId:"openai",gatewayId:"aimlapi",description:"1,000+ models OpenAI compatible endpoint",apiKeyEnvVars:["AIMLAPI_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Recommended",color:"success"}},{preset:"dashscope-cn",routeKind:"gateway",routeId:"dashscope-cn",vendorId:"openai",gatewayId:"dashscope-cn",description:"Alibaba DashScope China endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"]},{preset:"dashscope-intl",routeKind:"gateway",routeId:"dashscope-intl",vendorId:"openai",gatewayId:"dashscope-intl",description:"Alibaba DashScope International endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"]},{preset:"atlas-cloud",routeKind:"gateway",routeId:"atlas-cloud",vendorId:"openai",gatewayId:"atlas-cloud",description:"Atlas Cloud AI (OpenAI-compatible)",apiKeyEnvVars:["ATLAS_CLOUD_API_KEY"],modelEnvVars:["ATLAS_CLOUD_MODEL","OPENAI_MODEL"]},{preset:"azure-openai",routeKind:"gateway",routeId:"azure-openai",vendorId:"openai",gatewayId:"azure-openai",description:"Azure OpenAI endpoint (model=deployment name)",apiKeyEnvVars:["AZURE_OPENAI_API_KEY"]},{preset:"bankr",routeKind:"vendor",routeId:"bankr",vendorId:"bankr",description:"Bankr LLM Gateway (OpenAI-compatible)",apiKeyEnvVars:["BNKR_API_KEY"],modelEnvVars:["BANKR_MODEL","OPENAI_MODEL"]},{preset:"clinepass",routeKind:"gateway",routeId:"clinepass",vendorId:"openai",gatewayId:"clinepass",description:"ClinePass - AI model gateway with usage limits",apiKeyEnvVars:["CLINE_API_KEY"],modelEnvVars:["CLINE_API_MODEL","OPENAI_MODEL"]},{preset:"cloudflare",routeKind:"gateway",routeId:"cloudflare",vendorId:"openai",gatewayId:"cloudflare",description:"Cloudflare Workers AI OpenAI-compatible endpoint. Replace <ACCOUNT_ID> in the base URL with your Cloudflare account id.",label:"Cloudflare Workers AI",name:"Cloudflare Workers AI",apiKeyEnvVars:["CLOUDFLARE_API_TOKEN"],modelEnvVars:["OPENAI_MODEL"]},{preset:"deepseek",routeKind:"vendor",routeId:"deepseek",vendorId:"deepseek",description:"DeepSeek OpenAI-compatible endpoint",apiKeyEnvVars:["DEEPSEEK_API_KEY"]},{preset:"fireworks",routeKind:"vendor",routeId:"fireworks",vendorId:"fireworks",description:"Fireworks AI OpenAI-compatible endpoint",apiKeyEnvVars:["FIREWORKS_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"gemini",routeKind:"vendor",routeId:"gemini",vendorId:"gemini",description:"Google AI / Gemini OpenAI-compatible endpoint",apiKeyEnvVars:["GEMINI_API_KEY"]},{preset:"groq",routeKind:"gateway",routeId:"groq",vendorId:"openai",gatewayId:"groq",description:"Groq OpenAI-compatible endpoint",apiKeyEnvVars:["GROQ_API_KEY"]},{preset:"hicap",routeKind:"gateway",routeId:"hicap",vendorId:"openai",gatewayId:"hicap",description:"Hicap OpenAI-compatible gateway",apiKeyEnvVars:["HICAP_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"lmstudio",routeKind:"gateway",routeId:"lmstudio",vendorId:"openai",gatewayId:"lmstudio",description:"Local LM Studio endpoint",modelEnvVars:["OPENAI_MODEL"]},{preset:"atomic-chat",routeKind:"gateway",routeId:"atomic-chat",vendorId:"openai",gatewayId:"atomic-chat",description:"Local Model Provider",modelEnvVars:["OPENAI_MODEL"]},{preset:"ollama",routeKind:"gateway",routeId:"ollama",vendorId:"openai",gatewayId:"ollama",description:"Local or remote Ollama endpoint",modelEnvVars:["OPENAI_MODEL"]},{preset:"minimax",routeKind:"vendor",routeId:"minimax",vendorId:"minimax",description:"MiniMax API endpoint",apiKeyEnvVars:["MINIMAX_API_KEY"]},{preset:"mistral",routeKind:"gateway",routeId:"mistral",vendorId:"openai",gatewayId:"mistral",description:"Mistral OpenAI-compatible endpoint",apiKeyEnvVars:["MISTRAL_API_KEY"]},{preset:"moonshotai",routeKind:"vendor",routeId:"moonshot",vendorId:"moonshot",description:"Moonshot AI - API endpoint",label:"Moonshot AI - API",name:"Moonshot AI - API",apiKeyEnvVars:["MOONSHOT_API_KEY"]},{preset:"kimi-code",routeKind:"gateway",routeId:"kimi-code",vendorId:"openai",gatewayId:"kimi-code",description:"Moonshot AI - Kimi Code Subscription endpoint",apiKeyEnvVars:["KIMI_API_KEY"]},{preset:"nearai",routeKind:"vendor",routeId:"nearai",vendorId:"nearai",description:"NEAR AI unified gateway (Claude, GPT, Gemini + TEE models)",apiKeyEnvVars:["NEARAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"nvidia-nim",routeKind:"gateway",routeId:"nvidia-nim",vendorId:"openai",gatewayId:"nvidia-nim",description:"NVIDIA NIM endpoint",apiKeyEnvVars:["NVIDIA_API_KEY"]},{preset:"openai",routeKind:"vendor",routeId:"openai",vendorId:"openai",description:"OpenAI API with API key",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"]},{preset:"opencode-go",routeKind:"gateway",routeId:"opencode-go",vendorId:"openai",gatewayId:"opencode-go",description:"OpenCode Go - $10/mo subscription for open models (13 models)",apiKeyEnvVars:["OPENCODE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"opencode",routeKind:"gateway",routeId:"opencode",vendorId:"openai",gatewayId:"opencode",description:"OpenCode Zen - pay-as-you-go AI gateway (48 models)",apiKeyEnvVars:["OPENCODE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"openrouter",routeKind:"gateway",routeId:"openrouter",vendorId:"openai",gatewayId:"openrouter",description:"OpenRouter OpenAI-compatible endpoint",apiKeyEnvVars:["OPENROUTER_API_KEY"]},{preset:"together",routeKind:"gateway",routeId:"together",vendorId:"openai",gatewayId:"together",description:"Together chat/completions endpoint",apiKeyEnvVars:["TOGETHER_API_KEY"]},{preset:"venice",routeKind:"vendor",routeId:"venice",vendorId:"venice",description:"Venice OpenAI-compatible endpoint",apiKeyEnvVars:["VENICE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"xai",routeKind:"vendor",routeId:"xai",vendorId:"xai",description:"xAI Grok OpenAI-compatible endpoint",apiKeyEnvVars:["XAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"xiaomi-mimo",routeKind:"vendor",routeId:"xiaomi-mimo",vendorId:"xiaomi-mimo",description:"Xiaomi MiMo OpenAI-compatible endpoint",label:"Xiaomi MiMo",name:"Xiaomi MiMo",apiKeyEnvVars:["MIMO_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Sponsor",color:"success"}},{preset:"xiaomi-mimo-token",routeKind:"gateway",routeId:"xiaomi-mimo-token",vendorId:"xiaomi-mimo",gatewayId:"xiaomi-mimo-token",description:"Xiaomi MiMo Token Plan subscription endpoint",label:"Xiaomi MiMo (Token Plan)",name:"Xiaomi MiMo (Token Plan)",apiKeyEnvVars:["MIMO_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Sponsor",color:"success"}},{preset:"zai",routeKind:"vendor",routeId:"zai",vendorId:"zai",description:"Z.AI GLM coding subscription endpoint",label:"Z.AI - GLM Coding Plan",name:"Z.AI - GLM Coding Plan",apiKeyEnvVars:["OPENAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"custom",routeKind:"gateway",routeId:"custom",vendorId:"openai",gatewayId:"custom",description:"Any OpenAI-compatible provider",label:"Custom (OpenAI-compatible)",name:"Custom (OpenAI-compatible)",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],baseUrlEnvVars:["OPENAI_BASE_URL","OPENAI_API_BASE"],modelEnvVars:["OPENAI_MODEL"],fallbackBaseUrl:"http://localhost:11434/v1"},{preset:"custom-anthropic",routeKind:"anthropic-proxy",routeId:"custom-anthropic",vendorId:"anthropic",description:"Any Anthropic Messages API-compatible provider",label:"Custom (Anthropic-compatible)",name:"Custom (Anthropic-compatible)",apiKeyEnvVars:["ANTHROPIC_AUTH_TOKEN","ANTHROPIC_API_KEY"],baseUrlEnvVars:["ANTHROPIC_BASE_URL"],modelEnvVars:["ANTHROPIC_MODEL"],fallbackBaseUrl:"https://anthropic-proxy.example",fallbackModel:"claude-sonnet-4-6"}],ORDERED_PROVIDER_PRESETS=["gitlawb-opengateway","anthropic","aimlapi","dashscope-cn","dashscope-intl","atlas-cloud","azure-openai","bankr","clinepass","cloudflare","deepseek","fireworks","gemini","groq","hicap","lmstudio","atomic-chat","ollama","minimax","mistral","moonshotai","kimi-code","nearai","nvidia-nim","openai","opencode-go","opencode","openrouter","together","venice","xai","xiaomi-mimo","xiaomi-mimo-token","zai","custom","custom-anthropic"]});function defineVendor(d){return d}function defineGateway(d){return d}function defineAnthropicProxy(d){return d}function defineBrand(d){return d}function defineModel(d){return d}var anthropic_default;var init_anthropic=__esm(()=>{anthropic_default=defineVendor({id:"anthropic",label:"Anthropic",classification:"anthropic",defaultBaseUrl:"https://api.anthropic.com",defaultModel:"claude-sonnet-4-6",requiredEnvVars:["ANTHROPIC_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["ANTHROPIC_API_KEY"]},transportConfig:{kind:"anthropic-native"},preset:{id:"anthropic",description:"Native Claude API (x-api-key auth)",apiKeyEnvVars:["ANTHROPIC_API_KEY"],baseUrlEnvVars:["ANTHROPIC_BASE_URL"],modelEnvVars:["ANTHROPIC_MODEL"]},isFirstParty:!0,usage:{supported:!0}})});var bankr_default;var init_bankr=__esm(()=>{bankr_default=defineVendor({id:"bankr",label:"Bankr",classification:"openai-compatible",defaultBaseUrl:"https://llm.bankr.bot/v1",defaultModel:"claude-opus-4.6",requiredEnvVars:["BNKR_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["BNKR_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"bankr",description:"Bankr LLM Gateway (OpenAI-compatible)",apiKeyEnvVars:["BNKR_API_KEY"],modelEnvVars:["BANKR_MODEL","OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0},credentialEnvVars:["BNKR_API_KEY","OPENAI_API_KEY"],missingCredentialMessage:"Bankr auth is required. Set BNKR_API_KEY or OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"claude-opus-4.6",apiName:"claude-opus-4.6",label:"Claude Opus 4.6"}]},usage:{supported:!1}})});var deepseek_default;var init_deepseek=__esm(()=>{deepseek_default=defineVendor({id:"deepseek",label:"DeepSeek",classification:"openai-compatible",defaultBaseUrl:"https://api.deepseek.com/v1",defaultModel:"deepseek-v4-pro",requiredEnvVars:["DEEPSEEK_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["DEEPSEEK_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",thinkingRequestFormat:"deepseek-compatible",maxTokensField:"max_tokens",removeBodyFields:["store"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"deepseek",description:"DeepSeek OpenAI-compatible endpoint",apiKeyEnvVars:["DEEPSEEK_API_KEY"]},catalog:{source:"static",models:[{id:"deepseek-chat",apiName:"deepseek-chat",label:"DeepSeek Chat",modelDescriptorId:"deepseek-chat"},{id:"deepseek-reasoner",apiName:"deepseek-reasoner",label:"DeepSeek Reasoner",modelDescriptorId:"deepseek-reasoner"},{id:"deepseek-v4-flash",apiName:"deepseek-v4-flash",label:"DeepSeek V4 Flash",modelDescriptorId:"deepseek-v4-flash",maxOutputTokens:393216},{id:"deepseek-v4-pro",apiName:"deepseek-v4-pro",label:"DeepSeek V4 Pro",modelDescriptorId:"deepseek-v4-pro",maxOutputTokens:393216}]},usage:{supported:!1}})});var fireworks_default;var init_fireworks=__esm(()=>{fireworks_default=defineVendor({id:"fireworks",label:"Fireworks AI",classification:"openai-compatible",defaultBaseUrl:"https://api.fireworks.ai/inference/v1",defaultModel:"accounts/fireworks/models/llama-v3p1-70b-instruct",requiredEnvVars:["FIREWORKS_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["FIREWORKS_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"fireworks",description:"Fireworks AI OpenAI-compatible endpoint",apiKeyEnvVars:["FIREWORKS_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.fireworks.ai"]},credentialEnvVars:["FIREWORKS_API_KEY"],missingCredentialMessage:"FIREWORKS_API_KEY is required."},catalog:{source:"static",models:[{id:"accounts/fireworks/models/chronos-hermes-13b-v2",apiName:"accounts/fireworks/models/chronos-hermes-13b-v2",label:"Chronos Hermes 13B V2",modelDescriptorId:"accounts/fireworks/models/chronos-hermes-13b-v2"},{id:"accounts/fireworks/models/codegemma-2b",apiName:"accounts/fireworks/models/codegemma-2b",label:"CodeGemma 2B",modelDescriptorId:"accounts/fireworks/models/codegemma-2b"},{id:"accounts/fireworks/models/codegemma-7b",apiName:"accounts/fireworks/models/codegemma-7b",label:"CodeGemma 7B",modelDescriptorId:"accounts/fireworks/models/codegemma-7b"},{id:"accounts/fireworks/models/code-llama-13b",apiName:"accounts/fireworks/models/code-llama-13b",label:"Code Llama 13B",modelDescriptorId:"accounts/fireworks/models/code-llama-13b"},{id:"accounts/fireworks/models/code-llama-13b-instruct",apiName:"accounts/fireworks/models/code-llama-13b-instruct",label:"Code Llama 13B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-13b-instruct"},{id:"accounts/fireworks/models/code-llama-13b-python",apiName:"accounts/fireworks/models/code-llama-13b-python",label:"Code Llama 13B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-13b-python"},{id:"accounts/fireworks/models/code-llama-34b",apiName:"accounts/fireworks/models/code-llama-34b",label:"Code Llama 34B",modelDescriptorId:"accounts/fireworks/models/code-llama-34b"},{id:"accounts/fireworks/models/code-llama-34b-instruct",apiName:"accounts/fireworks/models/code-llama-34b-instruct",label:"Code Llama 34B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-34b-instruct"},{id:"accounts/fireworks/models/code-llama-34b-python",apiName:"accounts/fireworks/models/code-llama-34b-python",label:"Code Llama 34B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-34b-python"},{id:"accounts/fireworks/models/code-llama-70b",apiName:"accounts/fireworks/models/code-llama-70b",label:"Code Llama 70B",modelDescriptorId:"accounts/fireworks/models/code-llama-70b"},{id:"accounts/fireworks/models/code-llama-70b-instruct",apiName:"accounts/fireworks/models/code-llama-70b-instruct",label:"Code Llama 70B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-70b-instruct"},{id:"accounts/fireworks/models/code-llama-70b-python",apiName:"accounts/fireworks/models/code-llama-70b-python",label:"Code Llama 70B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-70b-python"},{id:"accounts/fireworks/models/code-llama-7b",apiName:"accounts/fireworks/models/code-llama-7b",label:"Code Llama 7B",modelDescriptorId:"accounts/fireworks/models/code-llama-7b"},{id:"accounts/fireworks/models/code-llama-7b-instruct",apiName:"accounts/fireworks/models/code-llama-7b-instruct",label:"Code Llama 7B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-7b-instruct"},{id:"accounts/fireworks/models/code-llama-7b-python",apiName:"accounts/fireworks/models/code-llama-7b-python",label:"Code Llama 7B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-7b-python"},{id:"accounts/fireworks/models/code-qwen-1p5-7b",apiName:"accounts/fireworks/models/code-qwen-1p5-7b",label:"CodeQwen 1.5 7B",modelDescriptorId:"accounts/fireworks/models/code-qwen-1p5-7b"},{id:"accounts/fireworks/models/cogito-v1-preview-llama-3b",apiName:"accounts/fireworks/models/cogito-v1-preview-llama-3b",label:"Cogito V1 Preview Llama 3B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-llama-3b"},{id:"accounts/fireworks/models/cogito-v1-preview-llama-70b",apiName:"accounts/fireworks/models/cogito-v1-preview-llama-70b",label:"Cogito V1 Preview Llama 70B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-llama-70b"},{id:"accounts/fireworks/models/cogito-v1-preview-llama-8b",apiName:"accounts/fireworks/models/cogito-v1-preview-llama-8b",label:"Cogito V1 Preview Llama 8B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-llama-8b"},{id:"accounts/fireworks/models/cogito-v1-preview-qwen-14b",apiName:"accounts/fireworks/models/cogito-v1-preview-qwen-14b",label:"Cogito V1 Preview Qwen 14B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-qwen-14b"},{id:"accounts/fireworks/models/cogito-v1-preview-qwen-32b",apiName:"accounts/fireworks/models/cogito-v1-preview-qwen-32b",label:"Cogito V1 Preview Qwen 32B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-qwen-32b"},{id:"accounts/fireworks/models/dbrx-instruct",apiName:"accounts/fireworks/models/dbrx-instruct",label:"DBRX Instruct",modelDescriptorId:"accounts/fireworks/models/dbrx-instruct"},{id:"accounts/fireworks/models/deepseek-coder-1b-base",apiName:"accounts/fireworks/models/deepseek-coder-1b-base",label:"DeepSeek Coder 1B Base",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-1b-base"},{id:"accounts/fireworks/models/deepseek-coder-33b-instruct",apiName:"accounts/fireworks/models/deepseek-coder-33b-instruct",label:"DeepSeek Coder 33B Instruct",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-33b-instruct"},{id:"accounts/fireworks/models/deepseek-coder-7b-base",apiName:"accounts/fireworks/models/deepseek-coder-7b-base",label:"DeepSeek Coder 7B Base",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-7b-base"},{id:"accounts/fireworks/models/deepseek-coder-7b-base-v1p5",apiName:"accounts/fireworks/models/deepseek-coder-7b-base-v1p5",label:"DeepSeek Coder 7B Base V1.5",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-7b-base-v1p5"},{id:"accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5",apiName:"accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5",label:"DeepSeek Coder 7B Instruct V1.5",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5"},{id:"accounts/fireworks/models/deepseek-coder-v2-instruct",apiName:"accounts/fireworks/models/deepseek-coder-v2-instruct",label:"DeepSeek Coder V2 Instruct",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-v2-instruct"},{id:"accounts/fireworks/models/deepseek-coder-v2-lite-base",apiName:"accounts/fireworks/models/deepseek-coder-v2-lite-base",label:"DeepSeek Coder V2 Lite Base",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-v2-lite-base"},{id:"accounts/fireworks/models/deepseek-coder-v2-lite-instruct",apiName:"accounts/fireworks/models/deepseek-coder-v2-lite-instruct",label:"DeepSeek Coder V2 Lite Instruct",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-v2-lite-instruct"},{id:"accounts/fireworks/models/deepseek-prover-v2",apiName:"accounts/fireworks/models/deepseek-prover-v2",label:"DeepSeek Prover V2",modelDescriptorId:"accounts/fireworks/models/deepseek-prover-v2"},{id:"accounts/fireworks/models/deepseek-r1",apiName:"accounts/fireworks/models/deepseek-r1",label:"DeepSeek R1",modelDescriptorId:"accounts/fireworks/models/deepseek-r1"},{id:"accounts/fireworks/models/deepseek-r1-0528",apiName:"accounts/fireworks/models/deepseek-r1-0528",label:"DeepSeek R1 05/28",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-0528"},{id:"accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b",apiName:"accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b",label:"DeepSeek R1 05/28 Distill Qwen3 8B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b"},{id:"accounts/fireworks/models/deepseek-r1-basic",apiName:"accounts/fireworks/models/deepseek-r1-basic",label:"DeepSeek R1 Basic",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-basic"},{id:"accounts/fireworks/models/deepseek-r1-distill-llama-70b",apiName:"accounts/fireworks/models/deepseek-r1-distill-llama-70b",label:"DeepSeek R1 Distill Llama 70B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-llama-70b"},{id:"accounts/fireworks/models/deepseek-r1-distill-llama-8b",apiName:"accounts/fireworks/models/deepseek-r1-distill-llama-8b",label:"DeepSeek R1 Distill Llama 8B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-llama-8b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-14b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-14b",label:"DeepSeek R1 Distill Qwen 14B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-14b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b",label:"DeepSeek R1 Distill Qwen 1.5B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-32b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-32b",label:"DeepSeek R1 Distill Qwen 32B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-32b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-7b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-7b",label:"DeepSeek R1 Distill Qwen 7B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-7b"},{id:"accounts/fireworks/models/deepseek-v2-lite-chat",apiName:"accounts/fireworks/models/deepseek-v2-lite-chat",label:"DeepSeek V2 Lite Chat",modelDescriptorId:"accounts/fireworks/models/deepseek-v2-lite-chat"},{id:"accounts/fireworks/models/deepseek-v2p5",apiName:"accounts/fireworks/models/deepseek-v2p5",label:"DeepSeek V2.5",modelDescriptorId:"accounts/fireworks/models/deepseek-v2p5"},{id:"accounts/fireworks/models/deepseek-v3",apiName:"accounts/fireworks/models/deepseek-v3",label:"DeepSeek V3",modelDescriptorId:"accounts/fireworks/models/deepseek-v3"},{id:"accounts/fireworks/models/deepseek-v3-0324",apiName:"accounts/fireworks/models/deepseek-v3-0324",label:"DeepSeek V3 03/24",modelDescriptorId:"accounts/fireworks/models/deepseek-v3-0324"},{id:"accounts/fireworks/models/deepseek-v3p1",apiName:"accounts/fireworks/models/deepseek-v3p1",label:"DeepSeek V3.1",modelDescriptorId:"accounts/fireworks/models/deepseek-v3p1"},{id:"accounts/fireworks/models/deepseek-v3p2",apiName:"accounts/fireworks/models/deepseek-v3p2",label:"DeepSeek V3.2",modelDescriptorId:"accounts/fireworks/models/deepseek-v3p2"},{id:"accounts/fireworks/models/deepseek-v4-flash",apiName:"accounts/fireworks/models/deepseek-v4-flash",label:"DeepSeek V4 Flash",modelDescriptorId:"accounts/fireworks/models/deepseek-v4-flash"},{id:"accounts/fireworks/models/deepseek-v4-pro",apiName:"accounts/fireworks/models/deepseek-v4-pro",label:"DeepSeek V4 Pro",modelDescriptorId:"accounts/fireworks/models/deepseek-v4-pro"},{id:"accounts/fireworks/models/devstral-small-2-24b-instruct-2512",apiName:"accounts/fireworks/models/devstral-small-2-24b-instruct-2512",label:"Devstral Small 2 24B Instruct 2512",modelDescriptorId:"accounts/fireworks/models/devstral-small-2-24b-instruct-2512"},{id:"accounts/fireworks/models/devstral-small-2505",apiName:"accounts/fireworks/models/devstral-small-2505",label:"Devstral Small 2505",modelDescriptorId:"accounts/fireworks/models/devstral-small-2505"},{id:"accounts/fireworks/models/dolphin-2-9-2-qwen2-72b",apiName:"accounts/fireworks/models/dolphin-2-9-2-qwen2-72b",label:"Dolphin 2.9.2 Qwen2 72B",modelDescriptorId:"accounts/fireworks/models/dolphin-2-9-2-qwen2-72b"},{id:"accounts/fireworks/models/dolphin-2p6-mixtral-8x7b",apiName:"accounts/fireworks/models/dolphin-2p6-mixtral-8x7b",label:"Dolphin 2.6 Mixtral 8x7B",modelDescriptorId:"accounts/fireworks/models/dolphin-2p6-mixtral-8x7b"},{id:"accounts/fireworks/models/ernie-4p5-21b-a3b-pt",apiName:"accounts/fireworks/models/ernie-4p5-21b-a3b-pt",label:"ERNIE 4.5 21B A3B PT",modelDescriptorId:"accounts/fireworks/models/ernie-4p5-21b-a3b-pt"},{id:"accounts/fireworks/models/ernie-4p5-300b-a47b-pt",apiName:"accounts/fireworks/models/ernie-4p5-300b-a47b-pt",label:"ERNIE 4.5 300B A47B PT",modelDescriptorId:"accounts/fireworks/models/ernie-4p5-300b-a47b-pt"},{id:"accounts/fireworks/models/fare-20b",apiName:"accounts/fireworks/models/fare-20b",label:"Fare 20B",modelDescriptorId:"accounts/fireworks/models/fare-20b"},{id:"accounts/fireworks/models/firefunction-v1",apiName:"accounts/fireworks/models/firefunction-v1",label:"FireFunction V1",modelDescriptorId:"accounts/fireworks/models/firefunction-v1"},{id:"accounts/fireworks/models/firefunction-v2",apiName:"accounts/fireworks/models/firefunction-v2",label:"FireFunction V2",modelDescriptorId:"accounts/fireworks/models/firefunction-v2"},{id:"accounts/fireworks/models/firellava-13b",apiName:"accounts/fireworks/models/firellava-13b",label:"FireLLaVA 13B",modelDescriptorId:"accounts/fireworks/models/firellava-13b"},{id:"accounts/fireworks/models/firesearch-ocr-v6",apiName:"accounts/fireworks/models/firesearch-ocr-v6",label:"Firesearch OCR V6",modelDescriptorId:"accounts/fireworks/models/firesearch-ocr-v6"},{id:"accounts/fireworks/models/gemma-2b-it",apiName:"accounts/fireworks/models/gemma-2b-it",label:"Gemma 2B IT",modelDescriptorId:"accounts/fireworks/models/gemma-2b-it"},{id:"accounts/fireworks/models/gemma-3-12b-it",apiName:"accounts/fireworks/models/gemma-3-12b-it",label:"Gemma 3 12B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-12b-it"},{id:"accounts/fireworks/models/gemma-3-1b-it",apiName:"accounts/fireworks/models/gemma-3-1b-it",label:"Gemma 3 1B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-1b-it"},{id:"accounts/fireworks/models/gemma-3-27b-it",apiName:"accounts/fireworks/models/gemma-3-27b-it",label:"Gemma 3 27B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-27b-it"},{id:"accounts/fireworks/models/gemma-3-4b-it",apiName:"accounts/fireworks/models/gemma-3-4b-it",label:"Gemma 3 4B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-4b-it"},{id:"accounts/fireworks/models/gemma-4-26b-a4b-it",apiName:"accounts/fireworks/models/gemma-4-26b-a4b-it",label:"Gemma 4 26B A4B IT",modelDescriptorId:"accounts/fireworks/models/gemma-4-26b-a4b-it"},{id:"accounts/fireworks/models/gemma-4-31b-it",apiName:"accounts/fireworks/models/gemma-4-31b-it",label:"Gemma 4 31B IT",modelDescriptorId:"accounts/fireworks/models/gemma-4-31b-it"},{id:"accounts/fireworks/models/gemma-4-31b-it-nvfp4",apiName:"accounts/fireworks/models/gemma-4-31b-it-nvfp4",label:"Gemma 4 31B IT NVFP4",modelDescriptorId:"accounts/fireworks/models/gemma-4-31b-it-nvfp4"},{id:"accounts/fireworks/models/gemma-4-e4b",apiName:"accounts/fireworks/models/gemma-4-e4b",label:"Gemma 4 E4B",modelDescriptorId:"accounts/fireworks/models/gemma-4-e4b"},{id:"accounts/fireworks/models/gemma-7b",apiName:"accounts/fireworks/models/gemma-7b",label:"Gemma 7B",modelDescriptorId:"accounts/fireworks/models/gemma-7b"},{id:"accounts/fireworks/models/gemma-7b-it",apiName:"accounts/fireworks/models/gemma-7b-it",label:"Gemma 7B IT",modelDescriptorId:"accounts/fireworks/models/gemma-7b-it"},{id:"accounts/fireworks/models/gemma2-9b-it",apiName:"accounts/fireworks/models/gemma2-9b-it",label:"Gemma 2 9B IT",modelDescriptorId:"accounts/fireworks/models/gemma2-9b-it"},{id:"accounts/fireworks/models/glm-4p5",apiName:"accounts/fireworks/models/glm-4p5",label:"GLM 4.5",modelDescriptorId:"accounts/fireworks/models/glm-4p5"},{id:"accounts/fireworks/models/glm-4p5-air",apiName:"accounts/fireworks/models/glm-4p5-air",label:"GLM 4.5 Air",modelDescriptorId:"accounts/fireworks/models/glm-4p5-air"},{id:"accounts/fireworks/models/glm-4p5v",apiName:"accounts/fireworks/models/glm-4p5v",label:"GLM 4.5V",modelDescriptorId:"accounts/fireworks/models/glm-4p5v"},{id:"accounts/fireworks/models/glm-4p6",apiName:"accounts/fireworks/models/glm-4p6",label:"GLM 4.6",modelDescriptorId:"accounts/fireworks/models/glm-4p6"},{id:"accounts/fireworks/models/glm-4p7",apiName:"accounts/fireworks/models/glm-4p7",label:"GLM 4.7",modelDescriptorId:"accounts/fireworks/models/glm-4p7"},{id:"accounts/fireworks/models/glm-4p7-flash",apiName:"accounts/fireworks/models/glm-4p7-flash",label:"GLM 4.7 Flash",modelDescriptorId:"accounts/fireworks/models/glm-4p7-flash"},{id:"accounts/fireworks/models/glm-5",apiName:"accounts/fireworks/models/glm-5",label:"GLM 5",modelDescriptorId:"accounts/fireworks/models/glm-5"},{id:"accounts/fireworks/models/glm-5p2",apiName:"accounts/fireworks/models/glm-5p2",label:"GLM 5.2",modelDescriptorId:"accounts/fireworks/models/glm-5p2"},{id:"accounts/fireworks/models/glm-5p1",apiName:"accounts/fireworks/models/glm-5p1",label:"GLM 5.1",modelDescriptorId:"accounts/fireworks/models/glm-5p1"},{id:"accounts/fireworks/models/gpt-oss-120b",apiName:"accounts/fireworks/models/gpt-oss-120b",label:"GPT-OSS 120B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-120b"},{id:"accounts/fireworks/models/gpt-oss-20b",apiName:"accounts/fireworks/models/gpt-oss-20b",label:"GPT-OSS 20B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-20b"},{id:"accounts/fireworks/models/gpt-oss-safeguard-120b",apiName:"accounts/fireworks/models/gpt-oss-safeguard-120b",label:"GPT-OSS Safeguard 120B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-safeguard-120b"},{id:"accounts/fireworks/models/gpt-oss-safeguard-20b",apiName:"accounts/fireworks/models/gpt-oss-safeguard-20b",label:"GPT-OSS Safeguard 20B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-safeguard-20b"},{id:"accounts/fireworks/models/hermes-2-pro-mistral-7b",apiName:"accounts/fireworks/models/hermes-2-pro-mistral-7b",label:"Hermes 2 Pro Mistral 7B",modelDescriptorId:"accounts/fireworks/models/hermes-2-pro-mistral-7b"},{id:"accounts/fireworks/models/internvl3-38b",apiName:"accounts/fireworks/models/internvl3-38b",label:"InternVL3 38B",modelDescriptorId:"accounts/fireworks/models/internvl3-38b"},{id:"accounts/fireworks/models/internvl3-78b",apiName:"accounts/fireworks/models/internvl3-78b",label:"InternVL3 78B",modelDescriptorId:"accounts/fireworks/models/internvl3-78b"},{id:"accounts/fireworks/models/internvl3-8b",apiName:"accounts/fireworks/models/internvl3-8b",label:"InternVL3 8B",modelDescriptorId:"accounts/fireworks/models/internvl3-8b"},{id:"accounts/fireworks/models/kat-coder",apiName:"accounts/fireworks/models/kat-coder",label:"Kat Coder",modelDescriptorId:"accounts/fireworks/models/kat-coder"},{id:"accounts/fireworks/models/kat-dev-32b",apiName:"accounts/fireworks/models/kat-dev-32b",label:"Kat Dev 32B",modelDescriptorId:"accounts/fireworks/models/kat-dev-32b"},{id:"accounts/fireworks/models/kat-dev-72b-exp",apiName:"accounts/fireworks/models/kat-dev-72b-exp",label:"Kat Dev 72B Exp",modelDescriptorId:"accounts/fireworks/models/kat-dev-72b-exp"},{id:"accounts/fireworks/models/kimi-k2-instruct",apiName:"accounts/fireworks/models/kimi-k2-instruct",label:"Kimi K2 Instruct",modelDescriptorId:"accounts/fireworks/models/kimi-k2-instruct"},{id:"accounts/fireworks/models/kimi-k2-instruct-0905",apiName:"accounts/fireworks/models/kimi-k2-instruct-0905",label:"Kimi K2 Instruct 0905",modelDescriptorId:"accounts/fireworks/models/kimi-k2-instruct-0905"},{id:"accounts/fireworks/models/kimi-k2-thinking",apiName:"accounts/fireworks/models/kimi-k2-thinking",label:"Kimi K2 Thinking",modelDescriptorId:"accounts/fireworks/models/kimi-k2-thinking"},{id:"accounts/fireworks/models/kimi-k2p5",apiName:"accounts/fireworks/models/kimi-k2p5",label:"Kimi K2.5",modelDescriptorId:"accounts/fireworks/models/kimi-k2p5"},{id:"accounts/fireworks/models/kimi-k2p6",apiName:"accounts/fireworks/models/kimi-k2p6",label:"Kimi K2.6",modelDescriptorId:"accounts/fireworks/models/kimi-k2p6"},{id:"accounts/fireworks/models/llama4-maverick-instruct-basic",apiName:"accounts/fireworks/models/llama4-maverick-instruct-basic",label:"Llama 4 Maverick Instruct Basic",modelDescriptorId:"accounts/fireworks/models/llama4-maverick-instruct-basic"},{id:"accounts/fireworks/models/llama4-scout-instruct-basic",apiName:"accounts/fireworks/models/llama4-scout-instruct-basic",label:"Llama 4 Scout Instruct Basic",modelDescriptorId:"accounts/fireworks/models/llama4-scout-instruct-basic"},{id:"accounts/fireworks/models/llama-guard-2-8b",apiName:"accounts/fireworks/models/llama-guard-2-8b",label:"Llama Guard 2 8B",modelDescriptorId:"accounts/fireworks/models/llama-guard-2-8b"},{id:"accounts/fireworks/models/llama-guard-3-1b",apiName:"accounts/fireworks/models/llama-guard-3-1b",label:"Llama Guard 3 1B",modelDescriptorId:"accounts/fireworks/models/llama-guard-3-1b"},{id:"accounts/fireworks/models/llama-guard-3-8b",apiName:"accounts/fireworks/models/llama-guard-3-8b",label:"Llama Guard 3 8B",modelDescriptorId:"accounts/fireworks/models/llama-guard-3-8b"},{id:"accounts/fireworks/models/llamaguard-7b",apiName:"accounts/fireworks/models/llamaguard-7b",label:"LlamaGuard 7B",modelDescriptorId:"accounts/fireworks/models/llamaguard-7b"},{id:"accounts/fireworks/models/llama-v2-13b",apiName:"accounts/fireworks/models/llama-v2-13b",label:"Llama V2 13B",modelDescriptorId:"accounts/fireworks/models/llama-v2-13b"},{id:"accounts/fireworks/models/llama-v2-13b-chat",apiName:"accounts/fireworks/models/llama-v2-13b-chat",label:"Llama V2 13B Chat",modelDescriptorId:"accounts/fireworks/models/llama-v2-13b-chat"},{id:"accounts/fireworks/models/llama-v2-70b",apiName:"accounts/fireworks/models/llama-v2-70b",label:"Llama V2 70B",modelDescriptorId:"accounts/fireworks/models/llama-v2-70b"},{id:"accounts/fireworks/models/llama-v2-70b-chat",apiName:"accounts/fireworks/models/llama-v2-70b-chat",label:"Llama V2 70B Chat",modelDescriptorId:"accounts/fireworks/models/llama-v2-70b-chat"},{id:"accounts/fireworks/models/llama-v2-7b",apiName:"accounts/fireworks/models/llama-v2-7b",label:"Llama V2 7B",modelDescriptorId:"accounts/fireworks/models/llama-v2-7b"},{id:"accounts/fireworks/models/llama-v2-7b-chat",apiName:"accounts/fireworks/models/llama-v2-7b-chat",label:"Llama V2 7B Chat",modelDescriptorId:"accounts/fireworks/models/llama-v2-7b-chat"},{id:"accounts/fireworks/models/llama-v3-70b-instruct",apiName:"accounts/fireworks/models/llama-v3-70b-instruct",label:"Llama 3 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3-70b-instruct"},{id:"accounts/fireworks/models/llama-v3-70b-instruct-hf",apiName:"accounts/fireworks/models/llama-v3-70b-instruct-hf",label:"Llama 3 70B Instruct HF",modelDescriptorId:"accounts/fireworks/models/llama-v3-70b-instruct-hf"},{id:"accounts/fireworks/models/llama-v3-8b",apiName:"accounts/fireworks/models/llama-v3-8b",label:"Llama 3 8B",modelDescriptorId:"accounts/fireworks/models/llama-v3-8b"},{id:"accounts/fireworks/models/llama-v3-8b-instruct",apiName:"accounts/fireworks/models/llama-v3-8b-instruct",label:"Llama 3 8B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3-8b-instruct"},{id:"accounts/fireworks/models/llama-v3-8b-instruct-hf",apiName:"accounts/fireworks/models/llama-v3-8b-instruct-hf",label:"Llama 3 8B Instruct HF",modelDescriptorId:"accounts/fireworks/models/llama-v3-8b-instruct-hf"},{id:"accounts/fireworks/models/llama-v3p1-405b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-405b-instruct",label:"Llama 3.1 405B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-405b-instruct"},{id:"accounts/fireworks/models/llama-v3p1-405b-instruct-long",apiName:"accounts/fireworks/models/llama-v3p1-405b-instruct-long",label:"Llama 3.1 405B Instruct Long",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-405b-instruct-long"},{id:"accounts/fireworks/models/llama-v3p1-70b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-70b-instruct",label:"Llama 3.1 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-70b-instruct"},{id:"accounts/fireworks/models/llama-v3p1-70b-instruct-1b",apiName:"accounts/fireworks/models/llama-v3p1-70b-instruct-1b",label:"Llama 3.1 70B Instruct 1B",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-70b-instruct-1b"},{id:"accounts/fireworks/models/llama-v3p1-8b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-8b-instruct",label:"Llama 3.1 8B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-8b-instruct"},{id:"accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct",label:"Llama 3.1 Nemotron 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct"},{id:"accounts/fireworks/models/llama-v3p2-11b-vision-instruct",apiName:"accounts/fireworks/models/llama-v3p2-11b-vision-instruct",label:"Llama 3.2 11B Vision Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-11b-vision-instruct"},{id:"accounts/fireworks/models/llama-v3p2-1b",apiName:"accounts/fireworks/models/llama-v3p2-1b",label:"Llama 3.2 1B",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-1b"},{id:"accounts/fireworks/models/llama-v3p2-1b-instruct",apiName:"accounts/fireworks/models/llama-v3p2-1b-instruct",label:"Llama 3.2 1B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-1b-instruct"},{id:"accounts/fireworks/models/llama-v3p2-3b",apiName:"accounts/fireworks/models/llama-v3p2-3b",label:"Llama 3.2 3B",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-3b"},{id:"accounts/fireworks/models/llama-v3p2-3b-instruct",apiName:"accounts/fireworks/models/llama-v3p2-3b-instruct",label:"Llama 3.2 3B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-3b-instruct"},{id:"accounts/fireworks/models/llama-v3p2-90b-vision-instruct",apiName:"accounts/fireworks/models/llama-v3p2-90b-vision-instruct",label:"Llama 3.2 90B Vision Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-90b-vision-instruct"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",apiName:"accounts/fireworks/models/llama-v3p3-70b-instruct",label:"Llama 3.3 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p3-70b-instruct"},{id:"accounts/fireworks/models/llava-yi-34b",apiName:"accounts/fireworks/models/llava-yi-34b",label:"LLaVA Yi 34B",modelDescriptorId:"accounts/fireworks/models/llava-yi-34b"},{id:"accounts/fireworks/models/minimax-m1-80k",apiName:"accounts/fireworks/models/minimax-m1-80k",label:"MiniMax M1 80K",modelDescriptorId:"accounts/fireworks/models/minimax-m1-80k"},{id:"accounts/fireworks/models/minimax-m2",apiName:"accounts/fireworks/models/minimax-m2",label:"MiniMax M2",modelDescriptorId:"accounts/fireworks/models/minimax-m2"},{id:"accounts/fireworks/models/minimax-m2p1",apiName:"accounts/fireworks/models/minimax-m2p1",label:"MiniMax M2.1",modelDescriptorId:"accounts/fireworks/models/minimax-m2p1"},{id:"accounts/fireworks/models/minimax-m2p5",apiName:"accounts/fireworks/models/minimax-m2p5",label:"MiniMax M2.5",modelDescriptorId:"accounts/fireworks/models/minimax-m2p5"},{id:"accounts/fireworks/models/minimax-m2p7",apiName:"accounts/fireworks/models/minimax-m2p7",label:"MiniMax M2.7",modelDescriptorId:"accounts/fireworks/models/minimax-m2p7"},{id:"accounts/fireworks/models/ministral-3-14b-instruct-2512",apiName:"accounts/fireworks/models/ministral-3-14b-instruct-2512",label:"Ministral 3 14B Instruct",modelDescriptorId:"accounts/fireworks/models/ministral-3-14b-instruct-2512"},{id:"accounts/fireworks/models/ministral-3-3b-instruct-2512",apiName:"accounts/fireworks/models/ministral-3-3b-instruct-2512",label:"Ministral 3 3B Instruct",modelDescriptorId:"accounts/fireworks/models/ministral-3-3b-instruct-2512"},{id:"accounts/fireworks/models/ministral-3-8b-instruct-2512",apiName:"accounts/fireworks/models/ministral-3-8b-instruct-2512",label:"Ministral 3 8B Instruct",modelDescriptorId:"accounts/fireworks/models/ministral-3-8b-instruct-2512"},{id:"accounts/fireworks/models/mirothinker-1p7",apiName:"accounts/fireworks/models/mirothinker-1p7",label:"Mirothinker 1.7",modelDescriptorId:"accounts/fireworks/models/mirothinker-1p7"},{id:"accounts/fireworks/models/mistral-7b",apiName:"accounts/fireworks/models/mistral-7b",label:"Mistral 7B",modelDescriptorId:"accounts/fireworks/models/mistral-7b"},{id:"accounts/fireworks/models/mistral-7b-instruct-4k",apiName:"accounts/fireworks/models/mistral-7b-instruct-4k",label:"Mistral 7B Instruct 4K",modelDescriptorId:"accounts/fireworks/models/mistral-7b-instruct-4k"},{id:"accounts/fireworks/models/mistral-7b-instruct-v0p2",apiName:"accounts/fireworks/models/mistral-7b-instruct-v0p2",label:"Mistral 7B Instruct V0.2",modelDescriptorId:"accounts/fireworks/models/mistral-7b-instruct-v0p2"},{id:"accounts/fireworks/models/mistral-7b-instruct-v3",apiName:"accounts/fireworks/models/mistral-7b-instruct-v3",label:"Mistral 7B Instruct V3",modelDescriptorId:"accounts/fireworks/models/mistral-7b-instruct-v3"},{id:"accounts/fireworks/models/mistral-7b-v0p2",apiName:"accounts/fireworks/models/mistral-7b-v0p2",label:"Mistral 7B V0.2",modelDescriptorId:"accounts/fireworks/models/mistral-7b-v0p2"},{id:"accounts/fireworks/models/mistral-large-3-fp8",apiName:"accounts/fireworks/models/mistral-large-3-fp8",label:"Mistral Large 3 675B Instruct",modelDescriptorId:"accounts/fireworks/models/mistral-large-3-fp8"},{id:"accounts/fireworks/models/mistral-nemo-base-2407",apiName:"accounts/fireworks/models/mistral-nemo-base-2407",label:"Mistral Nemo Base 2407",modelDescriptorId:"accounts/fireworks/models/mistral-nemo-base-2407"},{id:"accounts/fireworks/models/mistral-nemo-instruct-2407",apiName:"accounts/fireworks/models/mistral-nemo-instruct-2407",label:"Mistral Nemo Instruct 2407",modelDescriptorId:"accounts/fireworks/models/mistral-nemo-instruct-2407"},{id:"accounts/fireworks/models/mistral-small-24b-instruct-2501",apiName:"accounts/fireworks/models/mistral-small-24b-instruct-2501",label:"Mistral Small 24B Instruct 2501",modelDescriptorId:"accounts/fireworks/models/mistral-small-24b-instruct-2501"},{id:"accounts/fireworks/models/mixtral-8x22b",apiName:"accounts/fireworks/models/mixtral-8x22b",label:"Mixtral 8x22B",modelDescriptorId:"accounts/fireworks/models/mixtral-8x22b"},{id:"accounts/fireworks/models/mixtral-8x22b-instruct",apiName:"accounts/fireworks/models/mixtral-8x22b-instruct",label:"Mixtral 8x22B Instruct",modelDescriptorId:"accounts/fireworks/models/mixtral-8x22b-instruct"},{id:"accounts/fireworks/models/mixtral-8x7b",apiName:"accounts/fireworks/models/mixtral-8x7b",label:"Mixtral 8x7B",modelDescriptorId:"accounts/fireworks/models/mixtral-8x7b"},{id:"accounts/fireworks/models/mixtral-8x7b-instruct",apiName:"accounts/fireworks/models/mixtral-8x7b-instruct",label:"Mixtral 8x7B Instruct",modelDescriptorId:"accounts/fireworks/models/mixtral-8x7b-instruct"},{id:"accounts/fireworks/models/mixtral-8x7b-instruct-hf",apiName:"accounts/fireworks/models/mixtral-8x7b-instruct-hf",label:"Mixtral 8x7B Instruct HF",modelDescriptorId:"accounts/fireworks/models/mixtral-8x7b-instruct-hf"},{id:"accounts/fireworks/models/molmo2-4b",apiName:"accounts/fireworks/models/molmo2-4b",label:"Molmo 2 4B",modelDescriptorId:"accounts/fireworks/models/molmo2-4b"},{id:"accounts/fireworks/models/molmo2-8b",apiName:"accounts/fireworks/models/molmo2-8b",label:"Molmo 2 8B",modelDescriptorId:"accounts/fireworks/models/molmo2-8b"},{id:"accounts/fireworks/models/mythomax-l2-13b",apiName:"accounts/fireworks/models/mythomax-l2-13b",label:"MythoMax L2 13B",modelDescriptorId:"accounts/fireworks/models/mythomax-l2-13b"},{id:"accounts/fireworks/models/nemotron-3-super-120b-a12b-bf16",apiName:"accounts/fireworks/models/nemotron-3-super-120b-a12b-bf16",label:"NVIDIA Nemotron 3 Super 120B A12B BF16",modelDescriptorId:"accounts/fireworks/models/nemotron-3-super-120b-a12b-bf16"},{id:"accounts/fireworks/models/nemotron-3-ultra-bf16",apiName:"accounts/fireworks/models/nemotron-3-ultra-bf16",label:"NVIDIA Nemotron 3 Ultra BF16",modelDescriptorId:"accounts/fireworks/models/nemotron-3-ultra-bf16"},{id:"accounts/fireworks/models/nemotron-3-ultra-nvfp4",apiName:"accounts/fireworks/models/nemotron-3-ultra-nvfp4",label:"NVIDIA Nemotron 3 Ultra NVFP4",modelDescriptorId:"accounts/fireworks/models/nemotron-3-ultra-nvfp4"},{id:"accounts/fireworks/models/nemotron-nano-3-30b-a3b",apiName:"accounts/fireworks/models/nemotron-nano-3-30b-a3b",label:"Nemotron Nano 3 30B A3B",modelDescriptorId:"accounts/fireworks/models/nemotron-nano-3-30b-a3b"},{id:"accounts/fireworks/models/nemotron-nano-v2-12b-vl",apiName:"accounts/fireworks/models/nemotron-nano-v2-12b-vl",label:"Nemotron Nano V2 12B VL",modelDescriptorId:"accounts/fireworks/models/nemotron-nano-v2-12b-vl"},{id:"accounts/fireworks/models/nvidia-nemotron-3-nano-omni-30b-a3b",apiName:"accounts/fireworks/models/nvidia-nemotron-3-nano-omni-30b-a3b",label:"NVIDIA Nemotron 3 Nano Omni 30B A3B",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-nano-omni-30b-a3b"},{id:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-bf16",apiName:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-bf16",label:"NVIDIA Nemotron 3 Super 120B A12B BF16",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-bf16"},{id:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-fp8",apiName:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-fp8",label:"NVIDIA Nemotron 3 Super 120B A12B FP8",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-fp8"},{id:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-nvfp4",apiName:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-nvfp4",label:"NVIDIA Nemotron 3 Super 120B A12B NVFP4",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-nvfp4"},{id:"accounts/fireworks/models/nvidia-nemotron-nano-12b-v2",apiName:"accounts/fireworks/models/nvidia-nemotron-nano-12b-v2",label:"NVIDIA Nemotron Nano 12B V2",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-nano-12b-v2"},{id:"accounts/fireworks/models/nvidia-nemotron-nano-9b-v2",apiName:"accounts/fireworks/models/nvidia-nemotron-nano-9b-v2",label:"NVIDIA Nemotron Nano 9B V2",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-nano-9b-v2"},{id:"accounts/fireworks/models/nous-capybara-7b-v1p9",apiName:"accounts/fireworks/models/nous-capybara-7b-v1p9",label:"Nous Capybara 7B V1.9",modelDescriptorId:"accounts/fireworks/models/nous-capybara-7b-v1p9"},{id:"accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo",apiName:"accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo",label:"Nous Hermes 2 Mixtral 8x7B DPO",modelDescriptorId:"accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo"},{id:"accounts/fireworks/models/nous-hermes-2-yi-34b",apiName:"accounts/fireworks/models/nous-hermes-2-yi-34b",label:"Nous Hermes 2 Yi 34B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-2-yi-34b"},{id:"accounts/fireworks/models/nous-hermes-llama2-13b",apiName:"accounts/fireworks/models/nous-hermes-llama2-13b",label:"Nous Hermes Llama 2 13B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-llama2-13b"},{id:"accounts/fireworks/models/nous-hermes-llama2-70b",apiName:"accounts/fireworks/models/nous-hermes-llama2-70b",label:"Nous Hermes Llama 2 70B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-llama2-70b"},{id:"accounts/fireworks/models/nous-hermes-llama2-7b",apiName:"accounts/fireworks/models/nous-hermes-llama2-7b",label:"Nous Hermes Llama 2 7B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-llama2-7b"},{id:"accounts/fireworks/models/openchat-3p5-0106-7b",apiName:"accounts/fireworks/models/openchat-3p5-0106-7b",label:"OpenChat 3.5 0106 7B",modelDescriptorId:"accounts/fireworks/models/openchat-3p5-0106-7b"},{id:"accounts/fireworks/models/openhermes-2-mistral-7b",apiName:"accounts/fireworks/models/openhermes-2-mistral-7b",label:"OpenHermes 2 Mistral 7B",modelDescriptorId:"accounts/fireworks/models/openhermes-2-mistral-7b"},{id:"accounts/fireworks/models/openhermes-2p5-mistral-7b",apiName:"accounts/fireworks/models/openhermes-2p5-mistral-7b",label:"OpenHermes 2.5 Mistral 7B",modelDescriptorId:"accounts/fireworks/models/openhermes-2p5-mistral-7b"},{id:"accounts/fireworks/models/openorca-7b",apiName:"accounts/fireworks/models/openorca-7b",label:"OpenOrca 7B",modelDescriptorId:"accounts/fireworks/models/openorca-7b"},{id:"accounts/fireworks/models/phi-2-3b",apiName:"accounts/fireworks/models/phi-2-3b",label:"Phi-2 3B",modelDescriptorId:"accounts/fireworks/models/phi-2-3b"},{id:"accounts/fireworks/models/phi-3-mini-128k-instruct",apiName:"accounts/fireworks/models/phi-3-mini-128k-instruct",label:"Phi-3 Mini 128K Instruct",modelDescriptorId:"accounts/fireworks/models/phi-3-mini-128k-instruct"},{id:"accounts/fireworks/models/phi-3-vision-128k-instruct",apiName:"accounts/fireworks/models/phi-3-vision-128k-instruct",label:"Phi-3 Vision 128K Instruct",modelDescriptorId:"accounts/fireworks/models/phi-3-vision-128k-instruct"},{id:"accounts/fireworks/models/phind-code-llama-34b-python-v1",apiName:"accounts/fireworks/models/phind-code-llama-34b-python-v1",label:"Phind Code Llama 34B Python V1",modelDescriptorId:"accounts/fireworks/models/phind-code-llama-34b-python-v1"},{id:"accounts/fireworks/models/phind-code-llama-34b-v1",apiName:"accounts/fireworks/models/phind-code-llama-34b-v1",label:"Phind Code Llama 34B V1",modelDescriptorId:"accounts/fireworks/models/phind-code-llama-34b-v1"},{id:"accounts/fireworks/models/phind-code-llama-34b-v2",apiName:"accounts/fireworks/models/phind-code-llama-34b-v2",label:"Phind Code Llama 34B V2",modelDescriptorId:"accounts/fireworks/models/phind-code-llama-34b-v2"},{id:"accounts/fireworks/models/pythia-12b",apiName:"accounts/fireworks/models/pythia-12b",label:"Pythia 12B",modelDescriptorId:"accounts/fireworks/models/pythia-12b"},{id:"accounts/fireworks/models/qwen-qwq-32b-preview",apiName:"accounts/fireworks/models/qwen-qwq-32b-preview",label:"Qwen QWQ 32B Preview",modelDescriptorId:"accounts/fireworks/models/qwen-qwq-32b-preview"},{id:"accounts/fireworks/models/qwen-v2p5-14b-instruct",apiName:"accounts/fireworks/models/qwen-v2p5-14b-instruct",label:"Qwen V2.5 14B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen-v2p5-14b-instruct"},{id:"accounts/fireworks/models/qwen-v2p5-7b",apiName:"accounts/fireworks/models/qwen-v2p5-7b",label:"Qwen V2.5 7B",modelDescriptorId:"accounts/fireworks/models/qwen-v2p5-7b"},{id:"accounts/fireworks/models/qwen1p5-72b-chat",apiName:"accounts/fireworks/models/qwen1p5-72b-chat",label:"Qwen 1.5 72B Chat",modelDescriptorId:"accounts/fireworks/models/qwen1p5-72b-chat"},{id:"accounts/fireworks/models/qwen2-72b-instruct",apiName:"accounts/fireworks/models/qwen2-72b-instruct",label:"Qwen 2 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-72b-instruct"},{id:"accounts/fireworks/models/qwen2-7b-instruct",apiName:"accounts/fireworks/models/qwen2-7b-instruct",label:"Qwen 2 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-7b-instruct"},{id:"accounts/fireworks/models/qwen2-vl-2b-instruct",apiName:"accounts/fireworks/models/qwen2-vl-2b-instruct",label:"Qwen 2 VL 2B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-vl-2b-instruct"},{id:"accounts/fireworks/models/qwen2-vl-72b-instruct",apiName:"accounts/fireworks/models/qwen2-vl-72b-instruct",label:"Qwen 2 VL 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-vl-72b-instruct"},{id:"accounts/fireworks/models/qwen2-vl-7b-instruct",apiName:"accounts/fireworks/models/qwen2-vl-7b-instruct",label:"Qwen 2 VL 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-vl-7b-instruct"},{id:"accounts/fireworks/models/qwen2p5-0p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-0p5b-instruct",label:"Qwen 2.5 0.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-0p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-14b",apiName:"accounts/fireworks/models/qwen2p5-14b",label:"Qwen 2.5 14B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-14b"},{id:"accounts/fireworks/models/qwen2p5-14b-instruct",apiName:"accounts/fireworks/models/qwen2p5-14b-instruct",label:"Qwen 2.5 14B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-14b-instruct"},{id:"accounts/fireworks/models/qwen2p5-1p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-1p5b-instruct",label:"Qwen 2.5 1.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-1p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-32b",apiName:"accounts/fireworks/models/qwen2p5-32b",label:"Qwen 2.5 32B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-32b"},{id:"accounts/fireworks/models/qwen2p5-32b-instruct",apiName:"accounts/fireworks/models/qwen2p5-32b-instruct",label:"Qwen 2.5 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-32b-instruct"},{id:"accounts/fireworks/models/qwen2p5-72b",apiName:"accounts/fireworks/models/qwen2p5-72b",label:"Qwen 2.5 72B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-72b"},{id:"accounts/fireworks/models/qwen2p5-72b-instruct",apiName:"accounts/fireworks/models/qwen2p5-72b-instruct",label:"Qwen 2.5 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-72b-instruct"},{id:"accounts/fireworks/models/qwen2p5-7b-instruct",apiName:"accounts/fireworks/models/qwen2p5-7b-instruct",label:"Qwen 2.5 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-7b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-0p5b",apiName:"accounts/fireworks/models/qwen2p5-coder-0p5b",label:"Qwen 2.5 Coder 0.5B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-0p5b"},{id:"accounts/fireworks/models/qwen2p5-coder-0p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-0p5b-instruct",label:"Qwen 2.5 Coder 0.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-0p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-14b",apiName:"accounts/fireworks/models/qwen2p5-coder-14b",label:"Qwen 2.5 Coder 14B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-14b"},{id:"accounts/fireworks/models/qwen2p5-coder-14b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-14b-instruct",label:"Qwen 2.5 Coder 14B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-14b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-1p5b",apiName:"accounts/fireworks/models/qwen2p5-coder-1p5b",label:"Qwen 2.5 Coder 1.5B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-1p5b"},{id:"accounts/fireworks/models/qwen2p5-coder-1p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-1p5b-instruct",label:"Qwen 2.5 Coder 1.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-1p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-32b",apiName:"accounts/fireworks/models/qwen2p5-coder-32b",label:"Qwen 2.5 Coder 32B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct",label:"Qwen 2.5 Coder 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k",label:"Qwen 2.5 Coder 32B Instruct 128K",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope",label:"Qwen 2.5 Coder 32B Instruct 32K RoPE",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k",label:"Qwen 2.5 Coder 32B Instruct 64K",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k"},{id:"accounts/fireworks/models/qwen2p5-coder-3b",apiName:"accounts/fireworks/models/qwen2p5-coder-3b",label:"Qwen 2.5 Coder 3B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-3b"},{id:"accounts/fireworks/models/qwen2p5-coder-3b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-3b-instruct",label:"Qwen 2.5 Coder 3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-3b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-7b",apiName:"accounts/fireworks/models/qwen2p5-coder-7b",label:"Qwen 2.5 Coder 7B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-7b"},{id:"accounts/fireworks/models/qwen2p5-coder-7b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-7b-instruct",label:"Qwen 2.5 Coder 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-7b-instruct"},{id:"accounts/fireworks/models/qwen2p5-math-72b-instruct",apiName:"accounts/fireworks/models/qwen2p5-math-72b-instruct",label:"Qwen 2.5 Math 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-math-72b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-32b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-32b-instruct",label:"Qwen 2.5 VL 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-32b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-3b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-3b-instruct",label:"Qwen 2.5 VL 3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-3b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-72b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-72b-instruct",label:"Qwen 2.5 VL 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-72b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-7b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-7b-instruct",label:"Qwen 2.5 VL 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-7b-instruct"},{id:"accounts/fireworks/models/qwen3-0p6b",apiName:"accounts/fireworks/models/qwen3-0p6b",label:"Qwen3 0.6B",modelDescriptorId:"accounts/fireworks/models/qwen3-0p6b"},{id:"accounts/fireworks/models/qwen3-14b",apiName:"accounts/fireworks/models/qwen3-14b",label:"Qwen3 14B",modelDescriptorId:"accounts/fireworks/models/qwen3-14b"},{id:"accounts/fireworks/models/qwen3-1p7b",apiName:"accounts/fireworks/models/qwen3-1p7b",label:"Qwen3 1.7B",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b"},{id:"accounts/fireworks/models/qwen3-1p7b-fp8-draft",apiName:"accounts/fireworks/models/qwen3-1p7b-fp8-draft",label:"Qwen3 1.7B FP8 Draft",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b-fp8-draft"},{id:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072",apiName:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072",label:"Qwen3 1.7B FP8 Draft 131K",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072"},{id:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960",apiName:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960",label:"Qwen3 1.7B FP8 Draft 40K",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960"},{id:"accounts/fireworks/models/qwen3-235b-a22b",apiName:"accounts/fireworks/models/qwen3-235b-a22b",label:"Qwen3 235B A22B",modelDescriptorId:"accounts/fireworks/models/qwen3-235b-a22b"},{id:"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507",apiName:"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507",label:"Qwen3 235B A22B Instruct 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507"},{id:"accounts/fireworks/models/qwen3-30b-a3b",apiName:"accounts/fireworks/models/qwen3-30b-a3b",label:"Qwen3 30B A3B",modelDescriptorId:"accounts/fireworks/models/qwen3-30b-a3b"},{id:"accounts/fireworks/models/qwen3-30b-a3b-instruct-2507",apiName:"accounts/fireworks/models/qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-30b-a3b-instruct-2507"},{id:"accounts/fireworks/models/qwen3-30b-a3b-thinking-2507",apiName:"accounts/fireworks/models/qwen3-30b-a3b-thinking-2507",label:"Qwen3 30B A3B Thinking 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-30b-a3b-thinking-2507"},{id:"accounts/fireworks/models/qwen3-32b",apiName:"accounts/fireworks/models/qwen3-32b",label:"Qwen3 32B",modelDescriptorId:"accounts/fireworks/models/qwen3-32b"},{id:"accounts/fireworks/models/qwen3-4b",apiName:"accounts/fireworks/models/qwen3-4b",label:"Qwen3 4B",modelDescriptorId:"accounts/fireworks/models/qwen3-4b"},{id:"accounts/fireworks/models/qwen3-4b-instruct-2507",apiName:"accounts/fireworks/models/qwen3-4b-instruct-2507",label:"Qwen3 4B Instruct 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-4b-instruct-2507"},{id:"accounts/fireworks/models/qwen3-8b",apiName:"accounts/fireworks/models/qwen3-8b",label:"Qwen3 8B",modelDescriptorId:"accounts/fireworks/models/qwen3-8b"},{id:"accounts/fireworks/models/qwen3-coder-30b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-coder-30b-a3b-instruct",label:"Qwen3 Coder 30B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-coder-30b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",apiName:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",label:"Qwen3 Coder 480B A35B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct"},{id:"accounts/fireworks/models/qwen3-coder-480b-instruct-bf16",apiName:"accounts/fireworks/models/qwen3-coder-480b-instruct-bf16",label:"Qwen3 Coder 480B Instruct BF16",modelDescriptorId:"accounts/fireworks/models/qwen3-coder-480b-instruct-bf16"},{id:"accounts/fireworks/models/qwen3-embedding-0p6b",apiName:"accounts/fireworks/models/qwen3-embedding-0p6b",label:"Qwen3 Embedding 0.6B",modelDescriptorId:"accounts/fireworks/models/qwen3-embedding-0p6b"},{id:"accounts/fireworks/models/qwen3-embedding-4b",apiName:"accounts/fireworks/models/qwen3-embedding-4b",label:"Qwen3 Embedding 4B",modelDescriptorId:"accounts/fireworks/models/qwen3-embedding-4b"},{id:"accounts/fireworks/models/qwen3-embedding-8b",apiName:"accounts/fireworks/models/qwen3-embedding-8b",label:"Qwen3 Embedding 8B",modelDescriptorId:"accounts/fireworks/models/qwen3-embedding-8b"},{id:"accounts/fireworks/models/qwen3-next-80b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-next-80b-a3b-instruct",label:"Qwen3 Next 80B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-next-80b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-next-80b-a3b-thinking",apiName:"accounts/fireworks/models/qwen3-next-80b-a3b-thinking",label:"Qwen3 Next 80B A3B Thinking",modelDescriptorId:"accounts/fireworks/models/qwen3-next-80b-a3b-thinking"},{id:"accounts/fireworks/models/qwen3-omni-30b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-omni-30b-a3b-instruct",label:"Qwen3 Omni 30B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-omni-30b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-reranker-0p6b",apiName:"accounts/fireworks/models/qwen3-reranker-0p6b",label:"Qwen3 Reranker 0.6B",modelDescriptorId:"accounts/fireworks/models/qwen3-reranker-0p6b"},{id:"accounts/fireworks/models/qwen3-reranker-4b",apiName:"accounts/fireworks/models/qwen3-reranker-4b",label:"Qwen3 Reranker 4B",modelDescriptorId:"accounts/fireworks/models/qwen3-reranker-4b"},{id:"accounts/fireworks/models/qwen3-reranker-8b",apiName:"accounts/fireworks/models/qwen3-reranker-8b",label:"Qwen3 Reranker 8B",modelDescriptorId:"accounts/fireworks/models/qwen3-reranker-8b"},{id:"accounts/fireworks/models/qwen3-vl-235b-a22b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-235b-a22b-instruct",label:"Qwen3 VL 235B A22B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-235b-a22b-instruct"},{id:"accounts/fireworks/models/qwen3-vl-235b-a22b-thinking",apiName:"accounts/fireworks/models/qwen3-vl-235b-a22b-thinking",label:"Qwen3 VL 235B A22B Thinking",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-235b-a22b-thinking"},{id:"accounts/fireworks/models/qwen3-vl-30b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-30b-a3b-instruct",label:"Qwen3 VL 30B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-30b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-vl-30b-a3b-thinking",apiName:"accounts/fireworks/models/qwen3-vl-30b-a3b-thinking",label:"Qwen3 VL 30B A3B Thinking",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-30b-a3b-thinking"},{id:"accounts/fireworks/models/qwen3-vl-32b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-32b-instruct",label:"Qwen3 VL 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-32b-instruct"},{id:"accounts/fireworks/models/qwen3-vl-8b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-8b-instruct",label:"Qwen3 VL 8B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-8b-instruct"},{id:"accounts/fireworks/models/qwen3p5-122b-a10b",apiName:"accounts/fireworks/models/qwen3p5-122b-a10b",label:"Qwen3.5 122B A10B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-122b-a10b"},{id:"accounts/fireworks/models/qwen3p5-27b",apiName:"accounts/fireworks/models/qwen3p5-27b",label:"Qwen3.5 27B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-27b"},{id:"accounts/fireworks/models/qwen3p5-35b-a3b",apiName:"accounts/fireworks/models/qwen3p5-35b-a3b",label:"Qwen3.5 35B A3B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-35b-a3b"},{id:"accounts/fireworks/models/qwen3p5-397b-a17b",apiName:"accounts/fireworks/models/qwen3p5-397b-a17b",label:"Qwen3.5 397B A17B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-397b-a17b"},{id:"accounts/fireworks/models/qwen3p5-9b",apiName:"accounts/fireworks/models/qwen3p5-9b",label:"Qwen3.5 9B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-9b"},{id:"accounts/fireworks/models/qwen3p6-27b",apiName:"accounts/fireworks/models/qwen3p6-27b",label:"Qwen3.6 27B",modelDescriptorId:"accounts/fireworks/models/qwen3p6-27b"},{id:"accounts/fireworks/models/qwen3p6-35b-a3b",apiName:"accounts/fireworks/models/qwen3p6-35b-a3b",label:"Qwen3.6 35B A3B",modelDescriptorId:"accounts/fireworks/models/qwen3p6-35b-a3b"},{id:"accounts/fireworks/models/qwen3p6-plus",apiName:"accounts/fireworks/models/qwen3p6-plus",label:"Qwen3.6 Plus",modelDescriptorId:"accounts/fireworks/models/qwen3p6-plus"},{id:"accounts/fireworks/models/qwen3p7-plus-vl-instruct",apiName:"accounts/fireworks/models/qwen3p7-plus-vl-instruct",label:"Qwen3.7 Plus VL Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3p7-plus-vl-instruct"},{id:"accounts/fireworks/models/qwq-32b",apiName:"accounts/fireworks/models/qwq-32b",label:"QWQ 32B",modelDescriptorId:"accounts/fireworks/models/qwq-32b"},{id:"accounts/fireworks/models/rolm-ocr",apiName:"accounts/fireworks/models/rolm-ocr",label:"Rolm OCR",modelDescriptorId:"accounts/fireworks/models/rolm-ocr"},{id:"accounts/fireworks/models/seed-oss-36b-instruct",apiName:"accounts/fireworks/models/seed-oss-36b-instruct",label:"Seed OSS 36B Instruct",modelDescriptorId:"accounts/fireworks/models/seed-oss-36b-instruct"},{id:"accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo",apiName:"accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo",label:"Snorkel Mistral 7B Paired DPO",modelDescriptorId:"accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo"},{id:"accounts/fireworks/models/stablecode-3b",apiName:"accounts/fireworks/models/stablecode-3b",label:"StableCode 3B",modelDescriptorId:"accounts/fireworks/models/stablecode-3b"},{id:"accounts/fireworks/models/starcoder-16b",apiName:"accounts/fireworks/models/starcoder-16b",label:"StarCoder 16B",modelDescriptorId:"accounts/fireworks/models/starcoder-16b"},{id:"accounts/fireworks/models/starcoder-7b",apiName:"accounts/fireworks/models/starcoder-7b",label:"StarCoder 7B",modelDescriptorId:"accounts/fireworks/models/starcoder-7b"},{id:"accounts/fireworks/models/starcoder2-15b",apiName:"accounts/fireworks/models/starcoder2-15b",label:"StarCoder 2 15B",modelDescriptorId:"accounts/fireworks/models/starcoder2-15b"},{id:"accounts/fireworks/models/starcoder2-3b",apiName:"accounts/fireworks/models/starcoder2-3b",label:"StarCoder 2 3B",modelDescriptorId:"accounts/fireworks/models/starcoder2-3b"},{id:"accounts/fireworks/models/starcoder2-7b",apiName:"accounts/fireworks/models/starcoder2-7b",label:"StarCoder 2 7B",modelDescriptorId:"accounts/fireworks/models/starcoder2-7b"},{id:"accounts/fireworks/models/step-3p7-flash-nvfp4",apiName:"accounts/fireworks/models/step-3p7-flash-nvfp4",label:"Step 3.7 Flash NVFP4",modelDescriptorId:"accounts/fireworks/models/step-3p7-flash-nvfp4"},{id:"accounts/fireworks/models/toppy-m-7b",apiName:"accounts/fireworks/models/toppy-m-7b",label:"Toppy M 7B",modelDescriptorId:"accounts/fireworks/models/toppy-m-7b"},{id:"accounts/fireworks/models/voyage-4-nano",apiName:"accounts/fireworks/models/voyage-4-nano",label:"Voyage 4 Nano",modelDescriptorId:"accounts/fireworks/models/voyage-4-nano"},{id:"accounts/fireworks/models/yi-34b-200k-capybara",apiName:"accounts/fireworks/models/yi-34b-200k-capybara",label:"Yi 34B 200K Capybara",modelDescriptorId:"accounts/fireworks/models/yi-34b-200k-capybara"},{id:"accounts/fireworks/models/zephyr-7b-beta",apiName:"accounts/fireworks/models/zephyr-7b-beta",label:"Zephyr 7B Beta",modelDescriptorId:"accounts/fireworks/models/zephyr-7b-beta"}]},usage:{supported:!1}})});var gemini_default;var init_gemini=__esm(()=>{gemini_default=defineVendor({id:"gemini",label:"Google AI / Gemini",classification:"native",defaultBaseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",defaultModel:"gemini-3-flash-preview",requiredEnvVars:["GEMINI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["GEMINI_API_KEY"]},transportConfig:{kind:"gemini-native",openaiShim:{removeBodyFields:["store"]}},preset:{id:"gemini",description:"Google AI / Gemini OpenAI-compatible endpoint",apiKeyEnvVars:["GEMINI_API_KEY"]},validation:{kind:"gemini-credential",routing:{enablementEnvVar:"CLAUDE_CODE_USE_GEMINI"},missingCredentialMessage:"GEMINI_API_KEY, GOOGLE_API_KEY, GEMINI_ACCESS_TOKEN, or Google ADC credentials are required when CLAUDE_CODE_USE_GEMINI=1."},catalog:{source:"static",models:[{id:"gemini-3-flash-preview",apiName:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",apiName:"gemini-2.5-pro",label:"Gemini 2.5 Pro"},{id:"gemma-4-26b-a4b-it",apiName:"gemma-4-26b-a4b-it",label:"Gemma 4 26B A4B"},{id:"gemma-4-31b-it",apiName:"gemma-4-31b-it",label:"Gemma 4 31B"}]},usage:{supported:!1}})});var minimax_default;var init_minimax=__esm(()=>{minimax_default=defineVendor({id:"minimax",label:"MiniMax",classification:"native",defaultBaseUrl:"https://api.minimax.io/anthropic",defaultModel:"MiniMax-M3",requiredEnvVars:["MINIMAX_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["MINIMAX_API_KEY"]},transportConfig:{kind:"anthropic-proxy"},preset:{id:"minimax",description:"MiniMax API endpoint",apiKeyEnvVars:["MINIMAX_API_KEY"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.minimax.io","api.minimax.chat"]},credentialEnvVars:["MINIMAX_API_KEY"],missingCredentialMessage:"MiniMax auth is required. Set MINIMAX_API_KEY."},catalog:{source:"static",models:[{id:"minimax-m2",apiName:"MiniMax-M2",label:"MiniMax M2",modelDescriptorId:"minimax-m2",contextWindow:204800},{id:"minimax-m2.1",apiName:"MiniMax-M2.1",label:"MiniMax M2.1",modelDescriptorId:"minimax-m2.1",contextWindow:204800},{id:"minimax-m2.1-highspeed",apiName:"MiniMax-M2.1-highspeed",label:"MiniMax M2.1 Highspeed",modelDescriptorId:"minimax-m2.1-highspeed",contextWindow:204800},{id:"minimax-m2.5",apiName:"MiniMax-M2.5",label:"MiniMax M2.5",modelDescriptorId:"minimax-m2.5",contextWindow:204800},{id:"minimax-m2.5-highspeed",apiName:"MiniMax-M2.5-highspeed",label:"MiniMax M2.5 Highspeed",modelDescriptorId:"minimax-m2.5-highspeed",contextWindow:204800},{id:"minimax-m2.7",apiName:"MiniMax-M2.7",label:"MiniMax M2.7",modelDescriptorId:"minimax-m2.7",contextWindow:204800},{id:"minimax-m2.7-highspeed",apiName:"MiniMax-M2.7-highspeed",label:"MiniMax M2.7 Highspeed",modelDescriptorId:"minimax-m2.7-highspeed",contextWindow:204800},{id:"minimax-m3",apiName:"MiniMax-M3",label:"MiniMax M3",modelDescriptorId:"minimax-m3",contextWindow:1048576},{id:"minimax-text-01",apiName:"MiniMax-Text-01",label:"MiniMax Text 01",modelDescriptorId:"minimax-text-01"},{id:"minimax-text-01-preview",apiName:"MiniMax-Text-01-Preview",label:"MiniMax Text 01 Preview",modelDescriptorId:"minimax-text-01-preview"},{id:"minimax-vision-01",apiName:"MiniMax-Vision-01",label:"MiniMax Vision 01",modelDescriptorId:"minimax-vision-01"},{id:"minimax-vision-01-fast",apiName:"MiniMax-Vision-01-Fast",label:"MiniMax Vision 01 Fast",modelDescriptorId:"minimax-vision-01-fast"}]},usage:{supported:!0}})});var moonshot_default;var init_moonshot=__esm(()=>{moonshot_default=defineVendor({id:"moonshot",label:"Moonshot AI",classification:"openai-compatible",defaultBaseUrl:"https://api.moonshot.ai/v1",defaultModel:"kimi-k2.7-code",requiredEnvVars:["MOONSHOT_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["MOONSHOT_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",maxTokensField:"max_tokens",removeBodyFields:["store"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"moonshotai",description:"Moonshot AI - API endpoint",label:"Moonshot AI - API",name:"Moonshot AI - API",apiKeyEnvVars:["MOONSHOT_API_KEY"]},catalog:{source:"static",models:[{id:"kimi-k2.7-code",apiName:"kimi-k2.7-code",aliases:["moonshotai/kimi-k2.7-code"],label:"Kimi K2.7 Code",modelDescriptorId:"kimi-k2.7-code",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"kimi-k2.6",apiName:"kimi-k2.6",aliases:["moonshotai/kimi-k2.6"],label:"Kimi K2.6",modelDescriptorId:"kimi-k2.6",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"kimi-k2.5",apiName:"kimi-k2.5",aliases:["moonshotai/kimi-k2.5"],label:"Kimi K2.5",modelDescriptorId:"kimi-k2.5",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}}]},usage:{supported:!1}})});var nearai_default;var init_nearai=__esm(()=>{nearai_default=defineVendor({id:"nearai",label:"NEAR AI",classification:"openai-compatible",defaultBaseUrl:"https://cloud-api.near.ai/v1",defaultModel:"anthropic/claude-sonnet-4-6",requiredEnvVars:["NEARAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["NEARAI_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"nearai",description:"NEAR AI unified gateway (Claude, GPT, Gemini + TEE models)",apiKeyEnvVars:["NEARAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["cloud-api.near.ai","completions.near.ai","*.completions.near.ai"]},credentialEnvVars:["NEARAI_API_KEY"],missingCredentialMessage:"NEARAI_API_KEY is required."},catalog:{source:"static",models:[{id:"anthropic/claude-opus-4-8",apiName:"anthropic/claude-opus-4-8",label:"Claude Opus 4.8",modelDescriptorId:"anthropic/claude-opus-4-8"},{id:"anthropic/claude-opus-4-7",apiName:"anthropic/claude-opus-4-7",label:"Claude Opus 4.7",modelDescriptorId:"anthropic/claude-opus-4-7"},{id:"anthropic/claude-opus-4-6",apiName:"anthropic/claude-opus-4-6",label:"Claude Opus 4.6",modelDescriptorId:"anthropic/claude-opus-4-6"},{id:"anthropic/claude-sonnet-4-6",apiName:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet 4.6",modelDescriptorId:"anthropic/claude-sonnet-4-6"},{id:"anthropic/claude-sonnet-4-5",apiName:"anthropic/claude-sonnet-4-5",label:"Claude Sonnet 4.5",modelDescriptorId:"anthropic/claude-sonnet-4-5"},{id:"anthropic/claude-haiku-4-5",apiName:"anthropic/claude-haiku-4-5",label:"Claude Haiku 4.5",modelDescriptorId:"anthropic/claude-haiku-4-5"},{id:"openai/gpt-5.5",apiName:"openai/gpt-5.5",label:"GPT-5.5",modelDescriptorId:"openai/gpt-5.5"},{id:"openai/gpt-5.4",apiName:"openai/gpt-5.4",label:"GPT-5.4",modelDescriptorId:"openai/gpt-5.4"},{id:"openai/gpt-5",apiName:"openai/gpt-5",label:"GPT-5",modelDescriptorId:"openai/gpt-5"},{id:"openai/gpt-4.1",apiName:"openai/gpt-4.1",label:"GPT-4.1",modelDescriptorId:"openai/gpt-4.1"},{id:"openai/gpt-4.1-mini",apiName:"openai/gpt-4.1-mini",label:"GPT-4.1 Mini",modelDescriptorId:"openai/gpt-4.1-mini"},{id:"openai/o3",apiName:"openai/o3",label:"o3",modelDescriptorId:"openai/o3"},{id:"openai/o4-mini",apiName:"openai/o4-mini",label:"o4-mini",modelDescriptorId:"openai/o4-mini"},{id:"openai/gpt-oss-120b",apiName:"openai/gpt-oss-120b",label:"GPT-OSS 120B (TEE)",modelDescriptorId:"openai/gpt-oss-120b"},{id:"google/gemini-3.5-flash",apiName:"google/gemini-3.5-flash",label:"Gemini 3.5 Flash",modelDescriptorId:"google/gemini-3.5-flash"},{id:"google/gemini-2.5-pro",apiName:"google/gemini-2.5-pro",label:"Gemini 2.5 Pro",modelDescriptorId:"google/gemini-2.5-pro"},{id:"google/gemini-2.5-flash",apiName:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash",modelDescriptorId:"google/gemini-2.5-flash"},{id:"google/gemma-4-31B-it",apiName:"google/gemma-4-31B-it",label:"Gemma 4 31B (TEE)",modelDescriptorId:"google/gemma-4-31B-it"},{id:"zai-org/GLM-5.1-FP8",apiName:"zai-org/GLM-5.1-FP8",label:"GLM 5.1 (TEE)",modelDescriptorId:"zai-org/GLM-5.1-FP8"},{id:"Qwen/Qwen3.5-122B-A10B",apiName:"Qwen/Qwen3.5-122B-A10B",label:"Qwen3.5 122B (TEE)",modelDescriptorId:"Qwen/Qwen3.5-122B-A10B"},{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",apiName:"Qwen/Qwen3-30B-A3B-Instruct-2507",label:"Qwen3 30B Instruct (TEE)",modelDescriptorId:"Qwen/Qwen3-30B-A3B-Instruct-2507"},{id:"moonshotai/kimi-k2.6",apiName:"moonshotai/kimi-k2.6",label:"Kimi K2.6",modelDescriptorId:"moonshotai/kimi-k2.6"},{id:"qwen/qwen3.7-max",apiName:"qwen/qwen3.7-max",label:"Qwen3.7 Max",modelDescriptorId:"qwen/qwen3.7-max"}]}})});var openai_default;var init_openai=__esm(()=>{openai_default=defineVendor({id:"openai",label:"OpenAI",classification:"openai-compatible",defaultBaseUrl:"https://api.openai.com/v1",defaultModel:"gpt-5.4",requiredEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsApiFormatSelection:!0,supportsAuthHeaders:!0}},preset:{id:"openai",description:"OpenAI API with API key",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,fallbackWhenUseOpenAI:!0},credentialEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],allowLocalBaseUrlWithoutCredential:!0,missingCredentialMessage:"OPENAI_API_KEYS or OPENAI_API_KEY is required when CLAUDE_CODE_USE_OPENAI=1 and OPENAI_BASE_URL is not local.",invalidCredentialValues:[{envVar:"OPENAI_API_KEYS",value:"SUA_CHAVE",message:"Invalid OPENAI_API_KEYS: placeholder value SUA_CHAVE detected. Set real key(s) or unset for local providers."},{envVar:"OPENAI_API_KEY",value:"SUA_CHAVE",message:"Invalid OPENAI_API_KEY: placeholder value SUA_CHAVE detected. Set a real key or unset for local providers."}]},isFirstParty:!0,catalog:{source:"static",models:[{id:"gpt-5.6-sol",apiName:"gpt-5.6-sol",label:"GPT-5.6 Sol",modelDescriptorId:"gpt-5.6-sol",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.6-terra",apiName:"gpt-5.6-terra",label:"GPT-5.6 Terra",modelDescriptorId:"gpt-5.6-terra",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.6-luna",apiName:"gpt-5.6-luna",label:"GPT-5.6 Luna",modelDescriptorId:"gpt-5.6-luna",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.5",apiName:"gpt-5.5",label:"GPT-5.5",modelDescriptorId:"gpt-5.5",contextWindow:272000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.4",apiName:"gpt-5.4",label:"GPT-5.4",modelDescriptorId:"gpt-5.4",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5-mini",apiName:"gpt-5-mini",label:"GPT-5 Mini"},{id:"gpt-4o",apiName:"gpt-4o",label:"GPT-4o"},{id:"gpt-4o-mini",apiName:"gpt-4o-mini",label:"GPT-4o Mini"}]},usage:{supported:!1}})});var venice_default;var init_venice=__esm(()=>{venice_default=defineVendor({id:"venice",label:"Venice",classification:"openai-compatible",defaultBaseUrl:"https://api.venice.ai/api/v1",defaultModel:"venice-uncensored",requiredEnvVars:["VENICE_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["VENICE_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"venice",description:"Venice OpenAI-compatible endpoint",apiKeyEnvVars:["VENICE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.venice.ai"]},credentialEnvVars:["VENICE_API_KEY","OPENAI_API_KEYS","OPENAI_API_KEY"],missingCredentialMessage:"Venice auth is required. Set VENICE_API_KEY or OPENAI_API_KEYS / OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"venice-uncensored",apiName:"venice-uncensored",label:"Venice Uncensored"}]},usage:{supported:!0}})});var xai_default;var init_xai=__esm(()=>{xai_default=defineVendor({id:"xai",label:"xAI",classification:"openai-compatible",defaultBaseUrl:"https://api.x.ai/v1",defaultModel:"grok-4.3",requiredEnvVars:["XAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["XAI_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"xai",description:"xAI Grok OpenAI-compatible endpoint",apiKeyEnvVars:["XAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"xai-credential",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.x.ai"]},credentialEnvVars:["XAI_API_KEY"],credentialSourceEnvMarkers:{XAI_CREDENTIAL_SOURCE:["oauth"]},missingCredentialMessage:"XAI_API_KEY is required, or sign in with `openclaude auth xai login` (browser OAuth) or `openclaude auth xai device` (remote hosts)."},catalog:{source:"static",models:[{id:"grok-4.3",apiName:"grok-4.3",aliases:["grok-4.3-latest","grok-latest","grok-4","grok-3"],label:"Grok 4.3",modelDescriptorId:"grok-4.3",contextWindow:1e6,maxOutputTokens:32768,reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"grok-build-0.1",apiName:"grok-build-0.1",aliases:["grok-code-fast-1","grok-code-fast","grok-code-fast-1-0825"],label:"Grok Build 0.1",modelDescriptorId:"xai/grok-build-0.1",contextWindow:256000,maxOutputTokens:64000,capabilities:{supportsReasoning:!1},transportOverrides:{openaiShim:{endpointPath:"/responses",removeBodyFields:["reasoning_effort"]}}},{id:"grok-4.20-0309-reasoning",apiName:"grok-4.20-0309-reasoning",aliases:["grok-4.20-reasoning-latest","grok-4.20","grok-4.20-reasoning","grok-4.20-0309","grok-4.20-beta-0309-reasoning","grok-4.20-beta","grok-4.20-beta-0309","grok-4.20-beta-latest","grok-4.20-beta-latest-reasoning","grok-4.20-beta-reasoning","grok-4.20-experimental-beta-0304-reasoning","grok-4.20-experimental-beta-0304","grok-4.20-experimental-beta-reasoning-latest","grok-4.20-experimental-beta-latest","grok-4.20-reasoning-gv2"],label:"Grok 4.20 Reasoning",modelDescriptorId:"grok-4.20-0309-reasoning",contextWindow:1e6,maxOutputTokens:32768,reasoning:{mode:"always-on",wireFormat:"none"},transportOverrides:{openaiShim:{endpointPath:"/responses",removeBodyFields:["reasoning_effort"]}}},{id:"grok-4.20-0309-non-reasoning",apiName:"grok-4.20-0309-non-reasoning",aliases:["grok-4.20-non-reasoning","grok-4.20-non-reasoning-latest","grok-4.20-beta-non-reasoning","grok-4.20-beta-latest-non-reasoning","grok-4.20-experimental-beta-0304-non-reasoning","grok-4.20-experimental-beta-non-reasoning-latest","grok-4.20-beta-0309-non-reasoning","grok-4.20-non-reasoning-gv2"],label:"Grok 4.20 Non-Reasoning",modelDescriptorId:"grok-4.20-0309-non-reasoning",contextWindow:1e6,maxOutputTokens:32768,capabilities:{supportsReasoning:!1}}]},usage:{supported:!1}})});var xiaomi_mimo_default;var init_xiaomi_mimo=__esm(()=>{xiaomi_mimo_default=defineVendor({id:"xiaomi-mimo",label:"Xiaomi MiMo",classification:"openai-compatible",defaultBaseUrl:"https://api.xiaomimimo.com/v1",defaultModel:"mimo-v2.5-pro",requiredEnvVars:["MIMO_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["MIMO_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{defaultAuthHeader:{name:"api-key",scheme:"raw"},preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,maxTokensField:"max_completion_tokens",removeBodyFields:["store","stream_options"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"xiaomi-mimo",description:"Xiaomi MiMo OpenAI-compatible endpoint",label:"Xiaomi MiMo",name:"Xiaomi MiMo",apiKeyEnvVars:["MIMO_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Sponsor",color:"success"}},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.xiaomimimo.com","api.mimo-v2.com"]},credentialEnvVars:["MIMO_API_KEY","OPENAI_API_KEYS","OPENAI_API_KEY"],missingCredentialMessage:"Xiaomi MiMo auth is required. Set MIMO_API_KEY or OPENAI_API_KEYS / OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"mimo-v2.5-pro",apiName:"mimo-v2.5-pro",label:"MiMo V2.5 Pro",modelDescriptorId:"mimo-v2.5-pro",reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"mimo-v2.5",apiName:"mimo-v2.5",label:"MiMo V2.5",modelDescriptorId:"mimo-v2.5",reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}}]},usage:{supported:!1}})});var zai_default;var init_zai=__esm(()=>{zai_default=defineVendor({id:"zai",label:"Z.AI",classification:"openai-compatible",defaultBaseUrl:"https://api.z.ai/api/coding/paas/v4",defaultModel:"glm-5.2",requiredEnvVars:["OPENAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["OPENAI_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",thinkingRequestFormat:"zai-compatible",maxTokensField:"max_tokens",removeBodyFields:["store"]}},preset:{id:"zai",description:"Z.AI GLM coding subscription endpoint",label:"Z.AI - GLM Coding Plan",name:"Z.AI - GLM Coding Plan",apiKeyEnvVars:["OPENAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.z.ai"]},credentialEnvVars:["OPENAI_API_KEY"],missingCredentialMessage:"OPENAI_API_KEY is required for Z.AI GLM Coding Plan."},catalog:{source:"static",models:[{id:"glm-5.2",apiName:"glm-5.2",label:"GLM-5.2",modelDescriptorId:"glm-5.2",transportOverrides:{openaiShim:{enableToolStreaming:!0}}},{id:"GLM-5.1",apiName:"GLM-5.1",label:"GLM-5.1",modelDescriptorId:"GLM-5.1"},{id:"GLM-5-Turbo",apiName:"GLM-5-Turbo",label:"GLM-5-Turbo",modelDescriptorId:"GLM-5-Turbo"},{id:"GLM-4.7",apiName:"GLM-4.7",label:"GLM-4.7",modelDescriptorId:"GLM-4.7"},{id:"GLM-4.5-Air",apiName:"GLM-4.5-Air",label:"GLM-4.5-Air",modelDescriptorId:"GLM-4.5-Air"}]},usage:{supported:!1}})});var require_constants=__commonJS((exports,module)=>{var MAX_SAFE_INTEGER3=Number.MAX_SAFE_INTEGER||9007199254740991,RELEASE_TYPES=["major","premajor","minor","preminor","patch","prepatch","prerelease"];module.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER3,RELEASE_TYPES,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var require_debug=__commonJS((exports,module)=>{var debug=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...args)=>console.error("SEMVER",...args):()=>{};module.exports=debug});var require_re=__commonJS((exports,module)=>{var{MAX_SAFE_COMPONENT_LENGTH,MAX_SAFE_BUILD_LENGTH,MAX_LENGTH}=require_constants(),debug=require_debug();exports=module.exports={};var re=exports.re=[],safeRe=exports.safeRe=[],src=exports.src=[],safeSrc=exports.safeSrc=[],t=exports.t={},R=0,LETTERDASHNUMBER="[a-zA-Z0-9-]",safeRegexReplacements=[["\\s",1],["\\d",MAX_LENGTH],[LETTERDASHNUMBER,MAX_SAFE_BUILD_LENGTH]],makeSafeRegex=(value)=>{for(let[token,max]of safeRegexReplacements)value=value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);return value},createToken=(name,value,isGlobal)=>{let safe=makeSafeRegex(value),index=R++;debug(name,index,value),t[name]=index,src[index]=value,safeSrc[index]=safe,re[index]=new RegExp(value,isGlobal?"g":void 0),safeRe[index]=new RegExp(safe,isGlobal?"g":void 0)};createToken("NUMERICIDENTIFIER","0|[1-9]\\d*");createToken("NUMERICIDENTIFIERLOOSE","\\d+");createToken("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);createToken("MAINVERSION",`(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`);createToken("MAINVERSIONLOOSE",`(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASEIDENTIFIER",`(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);createToken("PRERELEASEIDENTIFIERLOOSE",`(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASE",`(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`);createToken("PRERELEASELOOSE",`(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);createToken("BUILDIDENTIFIER",`${LETTERDASHNUMBER}+`);createToken("BUILD",`(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`);createToken("FULLPLAIN",`v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);createToken("FULL",`^${src[t.FULLPLAIN]}$`);createToken("LOOSEPLAIN",`[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);createToken("LOOSE",`^${src[t.LOOSEPLAIN]}$`);createToken("GTLT","((?:<|>)?=?)");createToken("XRANGEIDENTIFIERLOOSE",`${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);createToken("XRANGEIDENTIFIER",`${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);createToken("XRANGEPLAIN",`[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);createToken("XRANGEPLAINLOOSE",`[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);createToken("XRANGE",`^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);createToken("XRANGELOOSE",`^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);createToken("COERCEPLAIN",`(^|[^\\d])(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);createToken("COERCE",`${src[t.COERCEPLAIN]}(?:$|[^\\d])`);createToken("COERCEFULL",src[t.COERCEPLAIN]+`(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`);createToken("COERCERTL",src[t.COERCE],!0);createToken("COERCERTLFULL",src[t.COERCEFULL],!0);createToken("LONETILDE","(?:~>?)");createToken("TILDETRIM",`(\\s*)${src[t.LONETILDE]}\\s+`,!0);exports.tildeTrimReplace="$1~";createToken("TILDE",`^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);createToken("TILDELOOSE",`^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);createToken("LONECARET","(?:\\^)");createToken("CARETTRIM",`(\\s*)${src[t.LONECARET]}\\s+`,!0);exports.caretTrimReplace="$1^";createToken("CARET",`^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);createToken("CARETLOOSE",`^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);createToken("COMPARATORLOOSE",`^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);createToken("COMPARATOR",`^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);createToken("COMPARATORTRIM",`(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`,!0);exports.comparatorTrimReplace="$1$2$3";createToken("HYPHENRANGE",`^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`);createToken("HYPHENRANGELOOSE",`^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`);createToken("STAR","(<|>)?=?\\s*\\*");createToken("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");createToken("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var require_parse_options=__commonJS((exports,module)=>{var looseOption=Object.freeze({loose:!0}),emptyOpts=Object.freeze({}),parseOptions=(options)=>{if(!options)return emptyOpts;if(typeof options!=="object")return looseOption;return options};module.exports=parseOptions});var require_identifiers=__commonJS((exports,module)=>{var numeric=/^[0-9]+$/,compareIdentifiers=(a,b)=>{if(typeof a==="number"&&typeof b==="number")return a===b?0:a<b?-1:1;let anum=numeric.test(a),bnum=numeric.test(b);if(anum&&bnum)a=+a,b=+b;return a===b?0:anum&&!bnum?-1:bnum&&!anum?1:a<b?-1:1},rcompareIdentifiers=(a,b)=>compareIdentifiers(b,a);module.exports={compareIdentifiers,rcompareIdentifiers}});var require_semver=__commonJS((exports,module)=>{var debug=require_debug(),{MAX_LENGTH,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER3}=require_constants(),{safeRe:re,t}=require_re(),parseOptions=require_parse_options(),{compareIdentifiers}=require_identifiers();class SemVer{constructor(version,options){if(options=parseOptions(options),version instanceof SemVer)if(version.loose===!!options.loose&&version.includePrerelease===!!options.includePrerelease)return version;else version=version.version;else if(typeof version!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`);if(version.length>MAX_LENGTH)throw TypeError(`version is longer than ${MAX_LENGTH} characters`);debug("SemVer",version,options),this.options=options,this.loose=!!options.loose,this.includePrerelease=!!options.includePrerelease;let m=version.trim().match(options.loose?re[t.LOOSE]:re[t.FULL]);if(!m)throw TypeError(`Invalid Version: ${version}`);if(this.raw=version,this.major=+m[1],this.minor=+m[2],this.patch=+m[3],this.major>MAX_SAFE_INTEGER3||this.major<0)throw TypeError("Invalid major version");if(this.minor>MAX_SAFE_INTEGER3||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>MAX_SAFE_INTEGER3||this.patch<0)throw TypeError("Invalid patch version");if(!m[4])this.prerelease=[];else this.prerelease=m[4].split(".").map((id)=>{if(/^[0-9]+$/.test(id)){let num=+id;if(num>=0&&num<MAX_SAFE_INTEGER3)return num}return id});this.build=m[5]?m[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare(other){if(debug("SemVer.compare",this.version,this.options,other),!(other instanceof SemVer)){if(typeof other==="string"&&other===this.version)return 0;other=new SemVer(other,this.options)}if(other.version===this.version)return 0;return this.compareMain(other)||this.comparePre(other)}compareMain(other){if(!(other instanceof SemVer))other=new SemVer(other,this.options);if(this.major<other.major)return-1;if(this.major>other.major)return 1;if(this.minor<other.minor)return-1;if(this.minor>other.minor)return 1;if(this.patch<other.patch)return-1;if(this.patch>other.patch)return 1;return 0}comparePre(other){if(!(other instanceof SemVer))other=new SemVer(other,this.options);if(this.prerelease.length&&!other.prerelease.length)return-1;else if(!this.prerelease.length&&other.prerelease.length)return 1;else if(!this.prerelease.length&&!other.prerelease.length)return 0;let i=0;do{let a=this.prerelease[i],b=other.prerelease[i];if(debug("prerelease compare",i,a,b),a===void 0&&b===void 0)return 0;else if(b===void 0)return 1;else if(a===void 0)return-1;else if(a===b)continue;else return compareIdentifiers(a,b)}while(++i)}compareBuild(other){if(!(other instanceof SemVer))other=new SemVer(other,this.options);let i=0;do{let a=this.build[i],b=other.build[i];if(debug("build compare",i,a,b),a===void 0&&b===void 0)return 0;else if(b===void 0)return 1;else if(a===void 0)return-1;else if(a===b)continue;else return compareIdentifiers(a,b)}while(++i)}inc(release,identifier,identifierBase){if(release.startsWith("pre")){if(!identifier&&identifierBase===!1)throw Error("invalid increment argument: identifier is empty");if(identifier){let match=`-${identifier}`.match(this.options.loose?re[t.PRERELEASELOOSE]:re[t.PRERELEASE]);if(!match||match[1]!==identifier)throw Error(`invalid identifier: ${identifier}`)}}switch(release){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",identifier,identifierBase);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",identifier,identifierBase);break;case"prepatch":this.prerelease.length=0,this.inc("patch",identifier,identifierBase),this.inc("pre",identifier,identifierBase);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",identifier,identifierBase);this.inc("pre",identifier,identifierBase);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let base=Number(identifierBase)?1:0;if(this.prerelease.length===0)this.prerelease=[base];else{let i=this.prerelease.length;while(--i>=0)if(typeof this.prerelease[i]==="number")this.prerelease[i]++,i=-2;if(i===-1){if(identifier===this.prerelease.join(".")&&identifierBase===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(base)}}if(identifier){let prerelease=[identifier,base];if(identifierBase===!1)prerelease=[identifier];if(compareIdentifiers(this.prerelease[0],identifier)===0){if(isNaN(this.prerelease[1]))this.prerelease=prerelease}else this.prerelease=prerelease}break}default:throw Error(`invalid increment argument: ${release}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}module.exports=SemVer});var require_parse=__commonJS((exports,module)=>{var SemVer=require_semver(),parse=(version,options,throwErrors=!1)=>{if(version instanceof SemVer)return version;try{return new SemVer(version,options)}catch(er){if(!throwErrors)return null;throw er}};module.exports=parse});var require_valid=__commonJS((exports,module)=>{var parse=require_parse(),valid=(version,options)=>{let v=parse(version,options);return v?v.version:null};module.exports=valid});var require_clean=__commonJS((exports,module)=>{var parse=require_parse(),clean=(version,options)=>{let s=parse(version.trim().replace(/^[=v]+/,""),options);return s?s.version:null};module.exports=clean});var require_inc=__commonJS((exports,module)=>{var SemVer=require_semver(),inc=(version,release,options,identifier,identifierBase)=>{if(typeof options==="string")identifierBase=identifier,identifier=options,options=void 0;try{return new SemVer(version instanceof SemVer?version.version:version,options).inc(release,identifier,identifierBase).version}catch(er){return null}};module.exports=inc});var require_diff=__commonJS((exports,module)=>{var parse=require_parse(),diff=(version1,version2)=>{let v1=parse(version1,null,!0),v2=parse(version2,null,!0),comparison=v1.compare(v2);if(comparison===0)return null;let v1Higher=comparison>0,highVersion=v1Higher?v1:v2,lowVersion=v1Higher?v2:v1,highHasPre=!!highVersion.prerelease.length;if(!!lowVersion.prerelease.length&&!highHasPre){if(!lowVersion.patch&&!lowVersion.minor)return"major";if(lowVersion.compareMain(highVersion)===0){if(lowVersion.minor&&!lowVersion.patch)return"minor";return"patch"}}let prefix=highHasPre?"pre":"";if(v1.major!==v2.major)return prefix+"major";if(v1.minor!==v2.minor)return prefix+"minor";if(v1.patch!==v2.patch)return prefix+"patch";return"prerelease"};module.exports=diff});var require_major=__commonJS((exports,module)=>{var SemVer=require_semver(),major=(a,loose)=>new SemVer(a,loose).major;module.exports=major});var require_minor=__commonJS((exports,module)=>{var SemVer=require_semver(),minor=(a,loose)=>new SemVer(a,loose).minor;module.exports=minor});var require_patch=__commonJS((exports,module)=>{var SemVer=require_semver(),patch=(a,loose)=>new SemVer(a,loose).patch;module.exports=patch});var require_prerelease=__commonJS((exports,module)=>{var parse=require_parse(),prerelease=(version,options)=>{let parsed=parse(version,options);return parsed&&parsed.prerelease.length?parsed.prerelease:null};module.exports=prerelease});var require_compare=__commonJS((exports,module)=>{var SemVer=require_semver(),compare=(a,b,loose)=>new SemVer(a,loose).compare(new SemVer(b,loose));module.exports=compare});var require_rcompare=__commonJS((exports,module)=>{var compare=require_compare(),rcompare=(a,b,loose)=>compare(b,a,loose);module.exports=rcompare});var require_compare_loose=__commonJS((exports,module)=>{var compare=require_compare(),compareLoose=(a,b)=>compare(a,b,!0);module.exports=compareLoose});var require_compare_build=__commonJS((exports,module)=>{var SemVer=require_semver(),compareBuild=(a,b,loose)=>{let versionA=new SemVer(a,loose),versionB=new SemVer(b,loose);return versionA.compare(versionB)||versionA.compareBuild(versionB)};module.exports=compareBuild});var require_sort=__commonJS((exports,module)=>{var compareBuild=require_compare_build(),sort=(list,loose)=>list.sort((a,b)=>compareBuild(a,b,loose));module.exports=sort});var require_rsort=__commonJS((exports,module)=>{var compareBuild=require_compare_build(),rsort=(list,loose)=>list.sort((a,b)=>compareBuild(b,a,loose));module.exports=rsort});var require_gt=__commonJS((exports,module)=>{var compare=require_compare(),gt=(a,b,loose)=>compare(a,b,loose)>0;module.exports=gt});var require_lt=__commonJS((exports,module)=>{var compare=require_compare(),lt=(a,b,loose)=>compare(a,b,loose)<0;module.exports=lt});var require_eq=__commonJS((exports,module)=>{var compare=require_compare(),eq2=(a,b,loose)=>compare(a,b,loose)===0;module.exports=eq2});var require_neq=__commonJS((exports,module)=>{var compare=require_compare(),neq=(a,b,loose)=>compare(a,b,loose)!==0;module.exports=neq});var require_gte=__commonJS((exports,module)=>{var compare=require_compare(),gte=(a,b,loose)=>compare(a,b,loose)>=0;module.exports=gte});var require_lte=__commonJS((exports,module)=>{var compare=require_compare(),lte=(a,b,loose)=>compare(a,b,loose)<=0;module.exports=lte});var require_cmp=__commonJS((exports,module)=>{var eq2=require_eq(),neq=require_neq(),gt=require_gt(),gte=require_gte(),lt=require_lt(),lte=require_lte(),cmp=(a,op,b,loose)=>{switch(op){case"===":if(typeof a==="object")a=a.version;if(typeof b==="object")b=b.version;return a===b;case"!==":if(typeof a==="object")a=a.version;if(typeof b==="object")b=b.version;return a!==b;case"":case"=":case"==":return eq2(a,b,loose);case"!=":return neq(a,b,loose);case">":return gt(a,b,loose);case">=":return gte(a,b,loose);case"<":return lt(a,b,loose);case"<=":return lte(a,b,loose);default:throw TypeError(`Invalid operator: ${op}`)}};module.exports=cmp});var require_coerce=__commonJS((exports,module)=>{var SemVer=require_semver(),parse=require_parse(),{safeRe:re,t}=require_re(),coerce=(version,options)=>{if(version instanceof SemVer)return version;if(typeof version==="number")version=String(version);if(typeof version!=="string")return null;options=options||{};let match=null;if(!options.rtl)match=version.match(options.includePrerelease?re[t.COERCEFULL]:re[t.COERCE]);else{let coerceRtlRegex=options.includePrerelease?re[t.COERCERTLFULL]:re[t.COERCERTL],next;while((next=coerceRtlRegex.exec(version))&&(!match||match.index+match[0].length!==version.length)){if(!match||next.index+next[0].length!==match.index+match[0].length)match=next;coerceRtlRegex.lastIndex=next.index+next[1].length+next[2].length}coerceRtlRegex.lastIndex=-1}if(match===null)return null;let major=match[2],minor=match[3]||"0",patch=match[4]||"0",prerelease=options.includePrerelease&&match[5]?`-${match[5]}`:"",build=options.includePrerelease&&match[6]?`+${match[6]}`:"";return parse(`${major}.${minor}.${patch}${prerelease}${build}`,options)};module.exports=coerce});var require_lrucache=__commonJS((exports,module)=>{class LRUCache{constructor(){this.max=1000,this.map=new Map}get(key){let value=this.map.get(key);if(value===void 0)return;else return this.map.delete(key),this.map.set(key,value),value}delete(key){return this.map.delete(key)}set(key,value){if(!this.delete(key)&&value!==void 0){if(this.map.size>=this.max){let firstKey=this.map.keys().next().value;this.delete(firstKey)}this.map.set(key,value)}return this}}module.exports=LRUCache});var require_range=__commonJS((exports,module)=>{var SPACE_CHARACTERS=/\s+/g;class Range{constructor(range,options){if(options=parseOptions(options),range instanceof Range)if(range.loose===!!options.loose&&range.includePrerelease===!!options.includePrerelease)return range;else return new Range(range.raw,options);if(range instanceof Comparator)return this.raw=range.value,this.set=[[range]],this.formatted=void 0,this;if(this.options=options,this.loose=!!options.loose,this.includePrerelease=!!options.includePrerelease,this.raw=range.trim().replace(SPACE_CHARACTERS," "),this.set=this.raw.split("||").map((r)=>this.parseRange(r.trim())).filter((c)=>c.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let first=this.set[0];if(this.set=this.set.filter((c)=>!isNullSet(c[0])),this.set.length===0)this.set=[first];else if(this.set.length>1){for(let c of this.set)if(c.length===1&&isAny(c[0])){this.set=[c];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let i=0;i<this.set.length;i++){if(i>0)this.formatted+="||";let comps=this.set[i];for(let k=0;k<comps.length;k++){if(k>0)this.formatted+=" ";this.formatted+=comps[k].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(range){let memoKey=((this.options.includePrerelease&&FLAG_INCLUDE_PRERELEASE)|(this.options.loose&&FLAG_LOOSE))+":"+range,cached=cache.get(memoKey);if(cached)return cached;let loose=this.options.loose,hr=loose?re[t.HYPHENRANGELOOSE]:re[t.HYPHENRANGE];range=range.replace(hr,hyphenReplace(this.options.includePrerelease)),debug("hyphen replace",range),range=range.replace(re[t.COMPARATORTRIM],comparatorTrimReplace),debug("comparator trim",range),range=range.replace(re[t.TILDETRIM],tildeTrimReplace),debug("tilde trim",range),range=range.replace(re[t.CARETTRIM],caretTrimReplace),debug("caret trim",range);let rangeList=range.split(" ").map((comp)=>parseComparator(comp,this.options)).join(" ").split(/\s+/).map((comp)=>replaceGTE0(comp,this.options));if(loose)rangeList=rangeList.filter((comp)=>{return debug("loose invalid filter",comp,this.options),!!comp.match(re[t.COMPARATORLOOSE])});debug("range list",rangeList);let rangeMap=new Map,comparators=rangeList.map((comp)=>new Comparator(comp,this.options));for(let comp of comparators){if(isNullSet(comp))return[comp];rangeMap.set(comp.value,comp)}if(rangeMap.size>1&&rangeMap.has(""))rangeMap.delete("");let result=[...rangeMap.values()];return cache.set(memoKey,result),result}intersects(range,options){if(!(range instanceof Range))throw TypeError("a Range is required");return this.set.some((thisComparators)=>{return isSatisfiable(thisComparators,options)&&range.set.some((rangeComparators)=>{return isSatisfiable(rangeComparators,options)&&thisComparators.every((thisComparator)=>{return rangeComparators.every((rangeComparator)=>{return thisComparator.intersects(rangeComparator,options)})})})})}test(version){if(!version)return!1;if(typeof version==="string")try{version=new SemVer(version,this.options)}catch(er){return!1}for(let i=0;i<this.set.length;i++)if(testSet(this.set[i],version,this.options))return!0;return!1}}module.exports=Range;var LRU=require_lrucache(),cache=new LRU,parseOptions=require_parse_options(),Comparator=require_comparator(),debug=require_debug(),SemVer=require_semver(),{safeRe:re,t,comparatorTrimReplace,tildeTrimReplace,caretTrimReplace}=require_re(),{FLAG_INCLUDE_PRERELEASE,FLAG_LOOSE}=require_constants(),isNullSet=(c)=>c.value==="<0.0.0-0",isAny=(c)=>c.value==="",isSatisfiable=(comparators,options)=>{let result=!0,remainingComparators=comparators.slice(),testComparator=remainingComparators.pop();while(result&&remainingComparators.length)result=remainingComparators.every((otherComparator)=>{return testComparator.intersects(otherComparator,options)}),testComparator=remainingComparators.pop();return result},parseComparator=(comp,options)=>{return comp=comp.replace(re[t.BUILD],""),debug("comp",comp,options),comp=replaceCarets(comp,options),debug("caret",comp),comp=replaceTildes(comp,options),debug("tildes",comp),comp=replaceXRanges(comp,options),debug("xrange",comp),comp=replaceStars(comp,options),debug("stars",comp),comp},isX=(id)=>!id||id.toLowerCase()==="x"||id==="*",replaceTildes=(comp,options)=>{return comp.trim().split(/\s+/).map((c)=>replaceTilde(c,options)).join(" ")},replaceTilde=(comp,options)=>{let r=options.loose?re[t.TILDELOOSE]:re[t.TILDE];return comp.replace(r,(_,M,m,p,pr)=>{debug("tilde",comp,_,M,m,p,pr);let ret;if(isX(M))ret="";else if(isX(m))ret=`>=${M}.0.0 <${+M+1}.0.0-0`;else if(isX(p))ret=`>=${M}.${m}.0 <${M}.${+m+1}.0-0`;else if(pr)debug("replaceTilde pr",pr),ret=`>=${M}.${m}.${p}-${pr} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.${p} <${M}.${+m+1}.0-0`;return debug("tilde return",ret),ret})},replaceCarets=(comp,options)=>{return comp.trim().split(/\s+/).map((c)=>replaceCaret(c,options)).join(" ")},replaceCaret=(comp,options)=>{debug("caret",comp,options);let r=options.loose?re[t.CARETLOOSE]:re[t.CARET],z=options.includePrerelease?"-0":"";return comp.replace(r,(_,M,m,p,pr)=>{debug("caret",comp,_,M,m,p,pr);let ret;if(isX(M))ret="";else if(isX(m))ret=`>=${M}.0.0${z} <${+M+1}.0.0-0`;else if(isX(p))if(M==="0")ret=`>=${M}.${m}.0${z} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.0${z} <${+M+1}.0.0-0`;else if(pr)if(debug("replaceCaret pr",pr),M==="0")if(m==="0")ret=`>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p+1}-0`;else ret=`>=${M}.${m}.${p}-${pr} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.${p}-${pr} <${+M+1}.0.0-0`;else if(debug("no pr"),M==="0")if(m==="0")ret=`>=${M}.${m}.${p}${z} <${M}.${m}.${+p+1}-0`;else ret=`>=${M}.${m}.${p}${z} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.${p} <${+M+1}.0.0-0`;return debug("caret return",ret),ret})},replaceXRanges=(comp,options)=>{return debug("replaceXRanges",comp,options),comp.split(/\s+/).map((c)=>replaceXRange(c,options)).join(" ")},replaceXRange=(comp,options)=>{comp=comp.trim();let r=options.loose?re[t.XRANGELOOSE]:re[t.XRANGE];return comp.replace(r,(ret,gtlt,M,m,p,pr)=>{debug("xRange",comp,ret,gtlt,M,m,p,pr);let xM=isX(M),xm=xM||isX(m),xp=xm||isX(p),anyX=xp;if(gtlt==="="&&anyX)gtlt="";if(pr=options.includePrerelease?"-0":"",xM)if(gtlt===">"||gtlt==="<")ret="<0.0.0-0";else ret="*";else if(gtlt&&anyX){if(xm)m=0;if(p=0,gtlt===">")if(gtlt=">=",xm)M=+M+1,m=0,p=0;else m=+m+1,p=0;else if(gtlt==="<=")if(gtlt="<",xm)M=+M+1;else m=+m+1;if(gtlt==="<")pr="-0";ret=`${gtlt+M}.${m}.${p}${pr}`}else if(xm)ret=`>=${M}.0.0${pr} <${+M+1}.0.0-0`;else if(xp)ret=`>=${M}.${m}.0${pr} <${M}.${+m+1}.0-0`;return debug("xRange return",ret),ret})},replaceStars=(comp,options)=>{return debug("replaceStars",comp,options),comp.trim().replace(re[t.STAR],"")},replaceGTE0=(comp,options)=>{return debug("replaceGTE0",comp,options),comp.trim().replace(re[options.includePrerelease?t.GTE0PRE:t.GTE0],"")},hyphenReplace=(incPr)=>($0,from,fM,fm,fp,fpr,fb,to,tM,tm,tp,tpr)=>{if(isX(fM))from="";else if(isX(fm))from=`>=${fM}.0.0${incPr?"-0":""}`;else if(isX(fp))from=`>=${fM}.${fm}.0${incPr?"-0":""}`;else if(fpr)from=`>=${from}`;else from=`>=${from}${incPr?"-0":""}`;if(isX(tM))to="";else if(isX(tm))to=`<${+tM+1}.0.0-0`;else if(isX(tp))to=`<${tM}.${+tm+1}.0-0`;else if(tpr)to=`<=${tM}.${tm}.${tp}-${tpr}`;else if(incPr)to=`<${tM}.${tm}.${+tp+1}-0`;else to=`<=${to}`;return`${from} ${to}`.trim()},testSet=(set,version,options)=>{for(let i=0;i<set.length;i++)if(!set[i].test(version))return!1;if(version.prerelease.length&&!options.includePrerelease){for(let i=0;i<set.length;i++){if(debug(set[i].semver),set[i].semver===Comparator.ANY)continue;if(set[i].semver.prerelease.length>0){let allowed=set[i].semver;if(allowed.major===version.major&&allowed.minor===version.minor&&allowed.patch===version.patch)return!0}}return!1}return!0}});var require_comparator=__commonJS((exports,module)=>{var ANY=Symbol("SemVer ANY");class Comparator{static get ANY(){return ANY}constructor(comp,options){if(options=parseOptions(options),comp instanceof Comparator)if(comp.loose===!!options.loose)return comp;else comp=comp.value;if(comp=comp.trim().split(/\s+/).join(" "),debug("comparator",comp,options),this.options=options,this.loose=!!options.loose,this.parse(comp),this.semver===ANY)this.value="";else this.value=this.operator+this.semver.version;debug("comp",this)}parse(comp){let r=this.options.loose?re[t.COMPARATORLOOSE]:re[t.COMPARATOR],m=comp.match(r);if(!m)throw TypeError(`Invalid comparator: ${comp}`);if(this.operator=m[1]!==void 0?m[1]:"",this.operator==="=")this.operator="";if(!m[2])this.semver=ANY;else this.semver=new SemVer(m[2],this.options.loose)}toString(){return this.value}test(version){if(debug("Comparator.test",version,this.options.loose),this.semver===ANY||version===ANY)return!0;if(typeof version==="string")try{version=new SemVer(version,this.options)}catch(er){return!1}return cmp(version,this.operator,this.semver,this.options)}intersects(comp,options){if(!(comp instanceof Comparator))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new Range(comp.value,options).test(this.value)}else if(comp.operator===""){if(comp.value==="")return!0;return new Range(this.value,options).test(comp.semver)}if(options=parseOptions(options),options.includePrerelease&&(this.value==="<0.0.0-0"||comp.value==="<0.0.0-0"))return!1;if(!options.includePrerelease&&(this.value.startsWith("<0.0.0")||comp.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&comp.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&comp.operator.startsWith("<"))return!0;if(this.semver.version===comp.semver.version&&this.operator.includes("=")&&comp.operator.includes("="))return!0;if(cmp(this.semver,"<",comp.semver,options)&&this.operator.startsWith(">")&&comp.operator.startsWith("<"))return!0;if(cmp(this.semver,">",comp.semver,options)&&this.operator.startsWith("<")&&comp.operator.startsWith(">"))return!0;return!1}}module.exports=Comparator;var parseOptions=require_parse_options(),{safeRe:re,t}=require_re(),cmp=require_cmp(),debug=require_debug(),SemVer=require_semver(),Range=require_range()});var require_satisfies=__commonJS((exports,module)=>{var Range=require_range(),satisfies=(version,range,options)=>{try{range=new Range(range,options)}catch(er){return!1}return range.test(version)};module.exports=satisfies});var require_to_comparators=__commonJS((exports,module)=>{var Range=require_range(),toComparators=(range,options)=>new Range(range,options).set.map((comp)=>comp.map((c)=>c.value).join(" ").trim().split(" "));module.exports=toComparators});var require_max_satisfying=__commonJS((exports,module)=>{var SemVer=require_semver(),Range=require_range(),maxSatisfying=(versions,range,options)=>{let max=null,maxSV=null,rangeObj=null;try{rangeObj=new Range(range,options)}catch(er){return null}return versions.forEach((v)=>{if(rangeObj.test(v)){if(!max||maxSV.compare(v)===-1)max=v,maxSV=new SemVer(max,options)}}),max};module.exports=maxSatisfying});var require_min_satisfying=__commonJS((exports,module)=>{var SemVer=require_semver(),Range=require_range(),minSatisfying=(versions,range,options)=>{let min=null,minSV=null,rangeObj=null;try{rangeObj=new Range(range,options)}catch(er){return null}return versions.forEach((v)=>{if(rangeObj.test(v)){if(!min||minSV.compare(v)===1)min=v,minSV=new SemVer(min,options)}}),min};module.exports=minSatisfying});var require_min_version=__commonJS((exports,module)=>{var SemVer=require_semver(),Range=require_range(),gt=require_gt(),minVersion=(range,loose)=>{range=new Range(range,loose);let minver=new SemVer("0.0.0");if(range.test(minver))return minver;if(minver=new SemVer("0.0.0-0"),range.test(minver))return minver;minver=null;for(let i=0;i<range.set.length;++i){let comparators=range.set[i],setMin=null;if(comparators.forEach((comparator)=>{let compver=new SemVer(comparator.semver.version);switch(comparator.operator){case">":if(compver.prerelease.length===0)compver.patch++;else compver.prerelease.push(0);compver.raw=compver.format();case"":case">=":if(!setMin||gt(compver,setMin))setMin=compver;break;case"<":case"<=":break;default:throw Error(`Unexpected operation: ${comparator.operator}`)}}),setMin&&(!minver||gt(minver,setMin)))minver=setMin}if(minver&&range.test(minver))return minver;return null};module.exports=minVersion});var require_valid2=__commonJS((exports,module)=>{var Range=require_range(),validRange=(range,options)=>{try{return new Range(range,options).range||"*"}catch(er){return null}};module.exports=validRange});var require_outside=__commonJS((exports,module)=>{var SemVer=require_semver(),Comparator=require_comparator(),{ANY}=Comparator,Range=require_range(),satisfies=require_satisfies(),gt=require_gt(),lt=require_lt(),lte=require_lte(),gte=require_gte(),outside=(version,range,hilo,options)=>{version=new SemVer(version,options),range=new Range(range,options);let gtfn,ltefn,ltfn,comp,ecomp;switch(hilo){case">":gtfn=gt,ltefn=lte,ltfn=lt,comp=">",ecomp=">=";break;case"<":gtfn=lt,ltefn=gte,ltfn=gt,comp="<",ecomp="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"')}if(satisfies(version,range,options))return!1;for(let i=0;i<range.set.length;++i){let comparators=range.set[i],high=null,low=null;if(comparators.forEach((comparator)=>{if(comparator.semver===ANY)comparator=new Comparator(">=0.0.0");if(high=high||comparator,low=low||comparator,gtfn(comparator.semver,high.semver,options))high=comparator;else if(ltfn(comparator.semver,low.semver,options))low=comparator}),high.operator===comp||high.operator===ecomp)return!1;if((!low.operator||low.operator===comp)&<efn(version,low.semver))return!1;else if(low.operator===ecomp&<fn(version,low.semver))return!1}return!0};module.exports=outside});var require_gtr=__commonJS((exports,module)=>{var outside=require_outside(),gtr=(version,range,options)=>outside(version,range,">",options);module.exports=gtr});var require_ltr=__commonJS((exports,module)=>{var outside=require_outside(),ltr=(version,range,options)=>outside(version,range,"<",options);module.exports=ltr});var require_intersects=__commonJS((exports,module)=>{var Range=require_range(),intersects=(r1,r2,options)=>{return r1=new Range(r1,options),r2=new Range(r2,options),r1.intersects(r2,options)};module.exports=intersects});var require_simplify=__commonJS((exports,module)=>{var satisfies=require_satisfies(),compare=require_compare();module.exports=(versions,range,options)=>{let set=[],first=null,prev=null,v=versions.sort((a,b)=>compare(a,b,options));for(let version of v)if(satisfies(version,range,options)){if(prev=version,!first)first=version}else{if(prev)set.push([first,prev]);prev=null,first=null}if(first)set.push([first,null]);let ranges=[];for(let[min,max]of set)if(min===max)ranges.push(min);else if(!max&&min===v[0])ranges.push("*");else if(!max)ranges.push(`>=${min}`);else if(min===v[0])ranges.push(`<=${max}`);else ranges.push(`${min} - ${max}`);let simplified=ranges.join(" || "),original=typeof range.raw==="string"?range.raw:String(range);return simplified.length<original.length?simplified:range}});var require_subset=__commonJS((exports,module)=>{var Range=require_range(),Comparator=require_comparator(),{ANY}=Comparator,satisfies=require_satisfies(),compare=require_compare(),subset=(sub,dom,options={})=>{if(sub===dom)return!0;sub=new Range(sub,options),dom=new Range(dom,options);let sawNonNull=!1;OUTER:for(let simpleSub of sub.set){for(let simpleDom of dom.set){let isSub=simpleSubset(simpleSub,simpleDom,options);if(sawNonNull=sawNonNull||isSub!==null,isSub)continue OUTER}if(sawNonNull)return!1}return!0},minimumVersionWithPreRelease=[new Comparator(">=0.0.0-0")],minimumVersion=[new Comparator(">=0.0.0")],simpleSubset=(sub,dom,options)=>{if(sub===dom)return!0;if(sub.length===1&&sub[0].semver===ANY)if(dom.length===1&&dom[0].semver===ANY)return!0;else if(options.includePrerelease)sub=minimumVersionWithPreRelease;else sub=minimumVersion;if(dom.length===1&&dom[0].semver===ANY)if(options.includePrerelease)return!0;else dom=minimumVersion;let eqSet=new Set,gt,lt;for(let c of sub)if(c.operator===">"||c.operator===">=")gt=higherGT(gt,c,options);else if(c.operator==="<"||c.operator==="<=")lt=lowerLT(lt,c,options);else eqSet.add(c.semver);if(eqSet.size>1)return null;let gtltComp;if(gt&<){if(gtltComp=compare(gt.semver,lt.semver,options),gtltComp>0)return null;else if(gtltComp===0&&(gt.operator!==">="||lt.operator!=="<="))return null}for(let eq2 of eqSet){if(gt&&!satisfies(eq2,String(gt),options))return null;if(lt&&!satisfies(eq2,String(lt),options))return null;for(let c of dom)if(!satisfies(eq2,String(c),options))return!1;return!0}let higher,lower,hasDomLT,hasDomGT,needDomLTPre=lt&&!options.includePrerelease&<.semver.prerelease.length?lt.semver:!1,needDomGTPre=gt&&!options.includePrerelease&>.semver.prerelease.length?gt.semver:!1;if(needDomLTPre&&needDomLTPre.prerelease.length===1&<.operator==="<"&&needDomLTPre.prerelease[0]===0)needDomLTPre=!1;for(let c of dom){if(hasDomGT=hasDomGT||c.operator===">"||c.operator===">=",hasDomLT=hasDomLT||c.operator==="<"||c.operator==="<=",gt){if(needDomGTPre){if(c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===needDomGTPre.major&&c.semver.minor===needDomGTPre.minor&&c.semver.patch===needDomGTPre.patch)needDomGTPre=!1}if(c.operator===">"||c.operator===">="){if(higher=higherGT(gt,c,options),higher===c&&higher!==gt)return!1}else if(gt.operator===">="&&!satisfies(gt.semver,String(c),options))return!1}if(lt){if(needDomLTPre){if(c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===needDomLTPre.major&&c.semver.minor===needDomLTPre.minor&&c.semver.patch===needDomLTPre.patch)needDomLTPre=!1}if(c.operator==="<"||c.operator==="<="){if(lower=lowerLT(lt,c,options),lower===c&&lower!==lt)return!1}else if(lt.operator==="<="&&!satisfies(lt.semver,String(c),options))return!1}if(!c.operator&&(lt||gt)&>ltComp!==0)return!1}if(gt&&hasDomLT&&!lt&>ltComp!==0)return!1;if(lt&&hasDomGT&&!gt&>ltComp!==0)return!1;if(needDomGTPre||needDomLTPre)return!1;return!0},higherGT=(a,b,options)=>{if(!a)return b;let comp=compare(a.semver,b.semver,options);return comp>0?a:comp<0?b:b.operator===">"&&a.operator===">="?b:a},lowerLT=(a,b,options)=>{if(!a)return b;let comp=compare(a.semver,b.semver,options);return comp<0?a:comp>0?b:b.operator==="<"&&a.operator==="<="?b:a};module.exports=subset});var require_semver2=__commonJS((exports,module)=>{var internalRe=require_re(),constants=require_constants(),SemVer=require_semver(),identifiers=require_identifiers(),parse=require_parse(),valid=require_valid(),clean=require_clean(),inc=require_inc(),diff=require_diff(),major=require_major(),minor=require_minor(),patch=require_patch(),prerelease=require_prerelease(),compare=require_compare(),rcompare=require_rcompare(),compareLoose=require_compare_loose(),compareBuild=require_compare_build(),sort=require_sort(),rsort=require_rsort(),gt=require_gt(),lt=require_lt(),eq2=require_eq(),neq=require_neq(),gte=require_gte(),lte=require_lte(),cmp=require_cmp(),coerce=require_coerce(),Comparator=require_comparator(),Range=require_range(),satisfies=require_satisfies(),toComparators=require_to_comparators(),maxSatisfying=require_max_satisfying(),minSatisfying=require_min_satisfying(),minVersion=require_min_version(),validRange=require_valid2(),outside=require_outside(),gtr=require_gtr(),ltr=require_ltr(),intersects=require_intersects(),simplifyRange=require_simplify(),subset=require_subset();module.exports={parse,valid,clean,inc,diff,major,minor,patch,prerelease,compare,rcompare,compareLoose,compareBuild,sort,rsort,gt,lt,eq:eq2,neq,gte,lte,cmp,coerce,Comparator,Range,satisfies,toComparators,maxSatisfying,minSatisfying,minVersion,validRange,outside,gtr,ltr,intersects,simplifyRange,subset,SemVer,re:internalRe.re,src:internalRe.src,tokens:internalRe.t,SEMVER_SPEC_VERSION:constants.SEMVER_SPEC_VERSION,RELEASE_TYPES:constants.RELEASE_TYPES,compareIdentifiers:identifiers.compareIdentifiers,rcompareIdentifiers:identifiers.rcompareIdentifiers}});import{readFileSync as readFileSync2}from"fs";import{dirname as dirname2,join as join3}from"path";import{fileURLToPath}from"url";function normalizePublicVersion(version){let trimmedVersion=version.trim(),coercedVersion=import_semver.coerce(trimmedVersion);if(coercedVersion)return coercedVersion.version;return trimmedVersion.replace(/^v/i,"")}function readPackageVersionFromDisk(){let currentDir=dirname2(fileURLToPath(import.meta.url));while(!0){let packageJsonPath=join3(currentDir,"package.json");try{let pkg=JSON.parse(readFileSync2(packageJsonPath,"utf-8"));if(typeof pkg.version==="string"&&pkg.version.trim())return pkg.version}catch{}let parentDir=dirname2(currentDir);if(parentDir===currentDir)return null;currentDir=parentDir}}function getReleaseTagUrl(version=publicBuildVersion){return`${OPENCLAUDE_RELEASES_URL}/tag/v${normalizePublicVersion(version)}`}function getPublicBuildVersion(){return"0.25.0"}var import_semver,OPENCLAUDE_RELEASES_URL="https://github.com/Gitlawb/openclaude/releases",fallbackBuildVersion,publicBuildVersion;var init_version=__esm(()=>{import_semver=__toESM(require_semver2(),1);fallbackBuildVersion=(()=>{try{return"99.0.0"}catch{return"0.0.0"}})(),publicBuildVersion=normalizePublicVersion(readPackageVersionFromDisk()??fallbackBuildVersion)});function isRecord(value){return typeof value==="object"&&value!==null}function getTrimmedString(record,key){let value=record?.[key];return typeof value==="string"?value.trim():void 0}function mapAimlapiModel(raw){if(!isRecord(raw))return null;let id=getTrimmedString(raw,"id"),type=getTrimmedString(raw,"type");if(!id||!type||!AIMLAPI_CHAT_MODEL_TYPES.has(type))return null;let info=isRecord(raw.info)?raw.info:null,developer=getTrimmedString(info,"developer")||getTrimmedString(raw,"developer"),displayName=getTrimmedString(info,"name"),label=displayName?developer&&!displayName.includes(`(${developer})`)?`${displayName} (${developer})`:displayName:id,contextLength=typeof info?.contextLength==="number"?info.contextLength:typeof raw.contextLength==="number"?raw.contextLength:void 0;return{id,apiName:id,label,...typeof contextLength==="number"&&contextLength>0?{contextWindow:contextLength}:{}}}var AIMLAPI_CHAT_MODEL_TYPES,aimlapi_default;var init_aimlapi=__esm(()=>{init_version();AIMLAPI_CHAT_MODEL_TYPES=new Set(["openai/chat-completions","chat-completion"]);aimlapi_default=defineGateway({id:"aimlapi",label:"AI/ML API",category:"aggregating",defaultBaseUrl:"https://api.aimlapi.com/v1",defaultModel:"gpt-4o",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["AIMLAPI_API_KEY"]},startup:{probeReadiness:"openai-compatible-models"},transportConfig:{kind:"openai-compatible",openaiShim:{headers:{"X-AIMLAPI-Partner-ID":"part_62yQoGYDq4Yqnrj2R1iGrDNJ","X-AIMLAPI-Integration-Repo":"Gitlawb/openclaude","X-AIMLAPI-Integration-Version":publicBuildVersion,"HTTP-Referer":"Claudio","X-Title":"Claudio"},supportsAuthHeaders:!1}},preset:{id:"aimlapi",description:"1,000+ models OpenAI compatible endpoint",badge:{text:"Recommended",color:"success"},apiKeyEnvVars:["AIMLAPI_API_KEY"],modelEnvVars:["OPENAI_MODEL"],vendorId:"openai"},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.aimlapi.com"]},credentialEnvVars:["AIMLAPI_API_KEY","OPENAI_API_KEY"],missingCredentialMessage:"AI/ML API auth is required. Set AIMLAPI_API_KEY or OPENAI_API_KEY."},catalog:{source:"hybrid",discovery:{kind:"openai-compatible",requiresAuth:!1,mapModel:mapAimlapiModel},discoveryCacheTtl:"1d",discoveryRefreshMode:"startup",allowManualRefresh:!0,models:[{id:"aimlapi-gpt-4o",apiName:"gpt-4o",label:"GPT-4o",modelDescriptorId:"gpt-4o"}]},usage:{supported:!1}})});var ZAI_GLM_OPENAI_SHIM;var init_zaiGlmShim=__esm(()=>{ZAI_GLM_OPENAI_SHIM={preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",thinkingRequestFormat:"zai-compatible",maxTokensField:"max_tokens",removeBodyFields:["store"],enableToolStreaming:!0}});var atlas_cloud_default;var init_atlas_cloud=__esm(()=>{init_zaiGlmShim();atlas_cloud_default=defineGateway({id:"atlas-cloud",label:"Atlas Cloud",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.atlascloud.ai/v1",defaultModel:"deepseek-ai/deepseek-v4-pro",setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["ATLAS_CLOUD_API_KEY"],dedicatedCredentialsOnly:!0},transportConfig:{kind:"openai-compatible"},preset:{id:"atlas-cloud",vendorId:"openai",description:"Atlas Cloud AI (OpenAI-compatible)",apiKeyEnvVars:["ATLAS_CLOUD_API_KEY"],modelEnvVars:["ATLAS_CLOUD_MODEL","OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0},credentialEnvVars:["ATLAS_CLOUD_API_KEY"],missingCredentialMessage:"Atlas Cloud auth is required. Set ATLAS_CLOUD_API_KEY."},catalog:{source:"static",models:[{id:"deepseek-ai/deepseek-v4-pro",apiName:"deepseek-ai/deepseek-v4-pro",aliases:["deepseek-v4-pro"],modelDescriptorId:"deepseek-v4-pro",label:"DeepSeek V4 Pro",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"deepseek-ai/deepseek-v4-flash",apiName:"deepseek-ai/deepseek-v4-flash",aliases:["deepseek-v4-flash"],modelDescriptorId:"deepseek-v4-flash",label:"DeepSeek V4 Flash",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"deepseek-ai/deepseek-v3.2",apiName:"deepseek-ai/deepseek-v3.2",modelDescriptorId:"deepseek-ai/deepseek-v3.2",label:"DeepSeek V3.2",contextWindow:163840,maxOutputTokens:163840,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"deepseek-ai/DeepSeek-V3.2-Exp",apiName:"deepseek-ai/DeepSeek-V3.2-Exp",modelDescriptorId:"deepseek-ai/DeepSeek-V3.2-Exp",label:"DeepSeek V3.2 Exp",contextWindow:163840,maxOutputTokens:163840,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-opus-4.8",apiName:"anthropic/claude-opus-4.8",aliases:["claude-opus-4-8"],modelDescriptorId:"claude-opus-4-8",label:"Claude Opus 4.8",contextWindow:1e6,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-sonnet-4.6",apiName:"anthropic/claude-sonnet-4.6",aliases:["claude-sonnet-4-6"],modelDescriptorId:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-sonnet-4.6-coding",apiName:"anthropic/claude-sonnet-4.6-coding",aliases:["claude-sonnet-4-6-coding"],modelDescriptorId:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 Coding",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-haiku-4.5-20251001",apiName:"anthropic/claude-haiku-4.5-20251001",aliases:["claude-haiku-4-5"],modelDescriptorId:"claude-haiku-4-5",label:"Claude Haiku 4.5",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-haiku-4.5-20251001-coding",apiName:"anthropic/claude-haiku-4.5-20251001-coding",aliases:["claude-haiku-4-5-coding"],modelDescriptorId:"claude-haiku-4-5",label:"Claude Haiku 4.5 Coding",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"openai/gpt-5.5",apiName:"openai/gpt-5.5",aliases:["gpt-5.5"],modelDescriptorId:"gpt-5.5",label:"GPT 5.5",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"openai/gpt-5.4",apiName:"openai/gpt-5.4",aliases:["gpt-5.4"],modelDescriptorId:"gpt-5.4",label:"GPT 5.4",contextWindow:400000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"google/gemini-3.5-flash",apiName:"google/gemini-3.5-flash",aliases:["gemini-3.5-flash"],modelDescriptorId:"gemini-3.5-flash",label:"Gemini 3.5 Flash",contextWindow:1048576,maxOutputTokens:65536,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"google/gemini-3.1-pro-preview",apiName:"google/gemini-3.1-pro-preview",modelDescriptorId:"google/gemini-3.1-pro-preview",label:"Gemini 3.1 Pro Preview",contextWindow:1e6,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"google/gemini-3.1-flash-lite",apiName:"google/gemini-3.1-flash-lite",modelDescriptorId:"google/gemini-3.1-flash-lite",label:"Gemini 3.1 Flash Lite",contextWindow:1048576,maxOutputTokens:65536},{id:"xai/grok-4.3",apiName:"xai/grok-4.3",aliases:["grok-4.3","grok-4.3-latest","grok-latest","grok-4","grok-3"],modelDescriptorId:"grok-4.3",label:"Grok 4.3",contextWindow:1e6,maxOutputTokens:32768,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"xai/grok-build-0.1",apiName:"xai/grok-build-0.1",aliases:["grok-build-0.1","grok-code-fast-1","grok-code-fast","grok-code-fast-1-0825"],modelDescriptorId:"xai/grok-build-0.1",label:"Grok Build 0.1",contextWindow:256000,maxOutputTokens:64000,capabilities:{supportsReasoning:!1},transportOverrides:{openaiShim:{removeBodyFields:["reasoning_effort"]}}},{id:"moonshotai/kimi-k2.7-code",apiName:"moonshotai/kimi-k2.7-code",aliases:["kimi-k2.7-code"],modelDescriptorId:"kimi-k2.7-code",label:"Kimi K2.7 Code",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"moonshotai/kimi-k2.6",apiName:"moonshotai/kimi-k2.6",aliases:["kimi-k2.6"],modelDescriptorId:"kimi-k2.6",label:"Kimi K2.6",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"moonshotai/kimi-k2.5",apiName:"moonshotai/kimi-k2.5",aliases:["kimi-k2.5"],modelDescriptorId:"kimi-k2.5",label:"Kimi K2.5",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"zai-org/glm-5.2",apiName:"zai-org/glm-5.2",aliases:["glm-5.2"],modelDescriptorId:"glm-5.2",label:"GLM 5.2",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5.1",apiName:"zai-org/glm-5.1",aliases:["glm-5.1"],modelDescriptorId:"glm-5.1",label:"GLM 5.1",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5",apiName:"zai-org/glm-5",aliases:["glm-5"],modelDescriptorId:"glm-5",label:"GLM 5",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5-turbo",apiName:"zai-org/glm-5-turbo",aliases:["glm-5-turbo"],modelDescriptorId:"glm-5-turbo",label:"GLM 5 Turbo",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5v-turbo",apiName:"zai-org/glm-5v-turbo",aliases:["glm-5v-turbo"],modelDescriptorId:"glm-5v-turbo",label:"GLM 5V Turbo",contextWindow:202752,maxOutputTokens:131072,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-4.7",apiName:"zai-org/glm-4.7",aliases:["glm-4.7"],modelDescriptorId:"glm-4.7",label:"GLM 4.7",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/GLM-4.6",apiName:"zai-org/GLM-4.6",aliases:["glm-4.6"],modelDescriptorId:"glm-4.6",label:"GLM 4.6",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"minimaxai/minimax-m3",apiName:"minimaxai/minimax-m3",aliases:["minimax-m3"],modelDescriptorId:"minimax-m3",label:"MiniMax M3",contextWindow:524288,maxOutputTokens:524288,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"minimaxai/minimax-m2.7",apiName:"minimaxai/minimax-m2.7",aliases:["minimax-m2.7"],modelDescriptorId:"minimax-m2.7",label:"MiniMax M2.7",contextWindow:196608,maxOutputTokens:196608,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"minimaxai/minimax-m2.5",apiName:"minimaxai/minimax-m2.5",aliases:["minimax-m2.5"],modelDescriptorId:"minimax-m2.5",label:"MiniMax M2.5",contextWindow:196608,maxOutputTokens:196608,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.7-max",apiName:"qwen/qwen3.7-max",aliases:["qwen3.7-max"],modelDescriptorId:"qwen3.7-max",label:"Qwen3.7 Max",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.7-plus",apiName:"qwen/qwen3.7-plus",aliases:["qwen3.7-plus"],modelDescriptorId:"qwen3.7-plus",label:"Qwen3.7 Plus",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.6-plus",apiName:"qwen/qwen3.6-plus",aliases:["qwen3.6-plus"],modelDescriptorId:"qwen3.6-plus",label:"Qwen3.6 Plus",contextWindow:1e6,maxOutputTokens:65536,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.6-35b-a3b",apiName:"qwen/qwen3.6-35b-a3b",modelDescriptorId:"qwen/qwen3.6-35b-a3b",label:"Qwen3.6 35B A3B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-397b-a17b",apiName:"qwen/qwen3.5-397b-a17b",modelDescriptorId:"qwen/qwen3.5-397b-a17b",label:"Qwen3.5 397B A17B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-122b-a10b",apiName:"qwen/qwen3.5-122b-a10b",modelDescriptorId:"qwen/qwen3.5-122b-a10b",label:"Qwen3.5 122B A10B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-35b-a3b",apiName:"qwen/qwen3.5-35b-a3b",modelDescriptorId:"qwen/qwen3.5-35b-a3b",label:"Qwen3.5 35B A3B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-27b",apiName:"qwen/qwen3.5-27b",modelDescriptorId:"qwen/qwen3.5-27b",label:"Qwen3.5 27B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3-coder-next",apiName:"qwen/qwen3-coder-next",aliases:["qwen3-coder-next"],modelDescriptorId:"qwen3-coder-next",label:"Qwen3 Coder Next",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"qwen/qwen3-max-2026-01-23",apiName:"qwen/qwen3-max-2026-01-23",aliases:["qwen3-max-2026-01-23"],modelDescriptorId:"qwen3-max-2026-01-23",label:"Qwen3 Max 2026-01-23",contextWindow:252000,maxOutputTokens:32000,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"qwen/qwen3-vl-30b-a3b-thinking",apiName:"qwen/qwen3-vl-30b-a3b-thinking",modelDescriptorId:"qwen/qwen3-vl-30b-a3b-thinking",label:"Qwen3 VL 30B A3B Thinking",contextWindow:128000,maxOutputTokens:32000,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3-vl-30b-a3b-instruct",apiName:"qwen/qwen3-vl-30b-a3b-instruct",modelDescriptorId:"qwen/qwen3-vl-30b-a3b-instruct",label:"Qwen3 VL 30B A3B Instruct",contextWindow:128000,maxOutputTokens:32000,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"qwen/qwen3-vl-8b-instruct",apiName:"qwen/qwen3-vl-8b-instruct",modelDescriptorId:"qwen/qwen3-vl-8b-instruct",label:"Qwen3 VL 8B Instruct",contextWindow:128000,maxOutputTokens:32000,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"Qwen/Qwen3-VL-235B-A22B-Instruct",apiName:"Qwen/Qwen3-VL-235B-A22B-Instruct",modelDescriptorId:"Qwen/Qwen3-VL-235B-A22B-Instruct",label:"Qwen3 VL 235B A22B Instruct",contextWindow:131072,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"Qwen/Qwen3-Next-80B-A3B-Thinking",apiName:"Qwen/Qwen3-Next-80B-A3B-Thinking",modelDescriptorId:"Qwen/Qwen3-Next-80B-A3B-Thinking",label:"Qwen3 Next 80B A3B Thinking",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"Qwen/Qwen3-Next-80B-A3B-Instruct",apiName:"Qwen/Qwen3-Next-80B-A3B-Instruct",modelDescriptorId:"Qwen/Qwen3-Next-80B-A3B-Instruct",label:"Qwen3 Next 80B A3B Instruct",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",apiName:"Qwen/Qwen3-30B-A3B-Instruct-2507",aliases:["qwen3-30b-a3b-instruct-2507"],modelDescriptorId:"qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",contextWindow:131072,maxOutputTokens:131072,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"bytedance/doubao-seed-2.0-pro-260215",apiName:"bytedance/doubao-seed-2.0-pro-260215",modelDescriptorId:"bytedance/doubao-seed-2.0-pro-260215",label:"Doubao Seed 2.0 Pro",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"bytedance/doubao-seed-2.0-code-preview-260215",apiName:"bytedance/doubao-seed-2.0-code-preview-260215",modelDescriptorId:"bytedance/doubao-seed-2.0-code-preview-260215",label:"Doubao Seed 2.0 Code Preview",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"bytedance/doubao-seed-2.0-lite-260428",apiName:"bytedance/doubao-seed-2.0-lite-260428",modelDescriptorId:"bytedance/doubao-seed-2.0-lite-260428",label:"Doubao Seed 2.0 Lite",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"bytedance/doubao-seed-2.0-mini-260428",apiName:"bytedance/doubao-seed-2.0-mini-260428",modelDescriptorId:"bytedance/doubao-seed-2.0-mini-260428",label:"Doubao Seed 2.0 Mini",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"kwaipilot/kat-coder-pro-v2",apiName:"kwaipilot/kat-coder-pro-v2",modelDescriptorId:"kwaipilot/kat-coder-pro-v2",label:"KAT Coder Pro V2",contextWindow:262144,maxOutputTokens:144000,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"owl",apiName:"owl",modelDescriptorId:"owl",label:"OWL",contextWindow:1048576,maxOutputTokens:262144,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0},notes:"Free"}]},usage:{supported:!1}})});var atomic_chat_default;var init_atomic_chat=__esm(()=>{atomic_chat_default=defineGateway({id:"atomic-chat",label:"Atomic Chat",category:"local",defaultBaseUrl:"http://127.0.0.1:1337/v1",defaultModel:"local-model",supportsModelRouting:!0,setup:{requiresAuth:!1,authMode:"none"},startup:{autoDetectable:!0,probeReadiness:"openai-compatible-models"},transportConfig:{kind:"local",openaiShim:{supportsAuthHeaders:!0,maxTokensField:"max_tokens"}},preset:{id:"atomic-chat",description:"Local Model Provider",modelEnvVars:["OPENAI_MODEL"],vendorId:"openai"},catalog:{source:"dynamic",discovery:{kind:"openai-compatible"},discoveryCacheTtl:"1d",discoveryRefreshMode:"background-if-stale",allowManualRefresh:!0},usage:{supported:!1}})});var azure_openai_default;var init_azure_openai=__esm(()=>{azure_openai_default=defineGateway({id:"azure-openai",label:"Azure OpenAI",category:"hosted",defaultBaseUrl:"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1",defaultModel:"YOUR-DEPLOYMENT-NAME",supportsModelRouting:!1,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["AZURE_OPENAI_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0}},preset:{id:"azure-openai",description:"Azure OpenAI endpoint (model=deployment name)",apiKeyEnvVars:["AZURE_OPENAI_API_KEY"],vendorId:"openai"},catalog:{source:"static",models:[{id:"azure-deployment",apiName:"YOUR-DEPLOYMENT-NAME",label:"Azure Deployment"}]},usage:{supported:!1}})});var bedrock_default;var init_bedrock=__esm(()=>{bedrock_default=defineGateway({id:"bedrock",label:"AWS Bedrock",vendorId:"anthropic",category:"hosted",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"adc"},transportConfig:{kind:"bedrock"},catalog:{source:"static",models:[{id:"bedrock-claude-opus",apiName:"us.anthropic.claude-opus-4-6-v1",label:"Claude Opus (Bedrock)",modelDescriptorId:"claude-opus-4-6"}]},usage:{supported:!1}})});var clinepass_default;var init_clinepass=__esm(()=>{clinepass_default=defineGateway({id:"clinepass",label:"ClinePass",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.cline.bot/api/v1",defaultModel:"cline-pass/deepseek-v4-flash",setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["CLINE_API_KEY"],dedicatedCredentialsOnly:!0},transportConfig:{kind:"openai-compatible"},preset:{id:"clinepass",vendorId:"openai",description:"ClinePass - AI model gateway with usage limits",apiKeyEnvVars:["CLINE_API_KEY"],modelEnvVars:["CLINE_API_MODEL","OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0},credentialEnvVars:["CLINE_API_KEY"],missingCredentialMessage:"ClinePass auth is required. Set CLINE_API_KEY."},catalog:{source:"static",models:[{id:"cline-pass/qwen3.7-max",apiName:"cline-pass/qwen3.7-max",aliases:["qwen3.7-max"],modelDescriptorId:"qwen3.7-max",label:"Qwen3.7 Max",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/qwen3.7-plus",apiName:"cline-pass/qwen3.7-plus",aliases:["qwen3.7-plus"],modelDescriptorId:"qwen3.7-plus",label:"Qwen3.7 Plus",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/minimax-m3",apiName:"cline-pass/minimax-m3",aliases:["minimax-m3"],modelDescriptorId:"minimax-m3",label:"MiniMax M3",contextWindow:524288,maxOutputTokens:524288,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!1}},{id:"cline-pass/glm-5.2",apiName:"cline-pass/glm-5.2",aliases:["glm-5.2"],modelDescriptorId:"glm-5.2",label:"GLM 5.2",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/kimi-k2.7-code",apiName:"cline-pass/kimi-k2.7-code",aliases:["kimi-k2.7-code"],modelDescriptorId:"kimi-k2.7-code",label:"Kimi K2.7 Code",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/kimi-k2.6",apiName:"cline-pass/kimi-k2.6",aliases:["kimi-k2.6"],modelDescriptorId:"kimi-k2.6",label:"Kimi K2.6",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/deepseek-v4-pro",apiName:"cline-pass/deepseek-v4-pro",aliases:["deepseek-v4-pro"],modelDescriptorId:"deepseek-v4-pro",label:"DeepSeek V4 Pro",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/deepseek-v4-flash",apiName:"cline-pass/deepseek-v4-flash",aliases:["deepseek-v4-flash"],modelDescriptorId:"deepseek-v4-flash",label:"DeepSeek V4 Flash",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/mimo-v2.5",apiName:"cline-pass/mimo-v2.5",aliases:["mimo-v2.5"],modelDescriptorId:"mimo-v2.5",label:"MiMo V2.5",contextWindow:1048576,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/mimo-v2.5-pro",apiName:"cline-pass/mimo-v2.5-pro",aliases:["mimo-v2.5-pro"],modelDescriptorId:"mimo-v2.5-pro",label:"MiMo V2.5 Pro",contextWindow:1048576,maxOutputTokens:65536,capabilities:{supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}}]},usage:{supported:!0,ui:{showResetCountdown:!0,compactProgressBar:!1}}})});var cloudflare_default;var init_cloudflare=__esm(()=>{cloudflare_default=defineGateway({id:"cloudflare",label:"Cloudflare Workers AI",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/v1",defaultModel:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["CLOUDFLARE_API_TOKEN"]},transportConfig:{kind:"openai-compatible",openaiShim:{maxTokensField:"max_tokens",removeBodyFields:["store"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"cloudflare",vendorId:"openai",description:"Cloudflare Workers AI OpenAI-compatible endpoint. Replace <ACCOUNT_ID> in the base URL with your Cloudflare account id.",label:"Cloudflare Workers AI",name:"Cloudflare Workers AI",apiKeyEnvVars:["CLOUDFLARE_API_TOKEN"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!1,matchBaseUrlHosts:["api.cloudflare.com"]},credentialEnvVars:["CLOUDFLARE_API_TOKEN","OPENAI_API_KEY"],missingCredentialMessage:"Cloudflare Workers AI auth is required. Set CLOUDFLARE_API_TOKEN or OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",apiName:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",label:"Llama 3.3 70B Instruct (FP8 Fast)"},{id:"@cf/meta/llama-3.1-8b-instruct",apiName:"@cf/meta/llama-3.1-8b-instruct",label:"Llama 3.1 8B Instruct"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",apiName:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",label:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",apiName:"@cf/qwen/qwen2.5-coder-32b-instruct",label:"Qwen 2.5 Coder 32B Instruct"}]},usage:{supported:!1}})});function getContextWindow(value){if(typeof value==="number"&&Number.isFinite(value)&&Number.isInteger(value)&&value>0)return value;return}function getModelInfo(raw){if(!raw||typeof raw!=="object"||Array.isArray(raw))return;let modelInfo=raw.model_info;return modelInfo&&typeof modelInfo==="object"&&!Array.isArray(modelInfo)?modelInfo:void 0}var custom_default;var init_custom=__esm(()=>{custom_default=defineGateway({id:"custom",label:"Custom (OpenAI-compatible)",category:"hosted",defaultModel:"llama3.1:8b",supportsModelRouting:!0,setup:{requiresAuth:!1,authMode:"api-key"},transportConfig:{kind:"openai-compatible",openaiShim:{supportsApiFormatSelection:!0,supportsAuthHeaders:!0}},preset:{id:"custom",description:"Any OpenAI-compatible provider",label:"Custom (OpenAI-compatible)",name:"Custom (OpenAI-compatible)",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],baseUrlEnvVars:["OPENAI_BASE_URL","OPENAI_API_BASE"],modelEnvVars:["OPENAI_MODEL"],fallbackBaseUrl:"http://localhost:11434/v1",vendorId:"openai"},catalog:{source:"hybrid",discovery:{kind:"openai-compatible",mapModel(raw){if(!raw||typeof raw!=="object"||Array.isArray(raw))return null;let model=raw,modelId=typeof model.id==="string"?model.id.trim():"";if(!modelId)return null;let modelInfo=getModelInfo(raw),contextWindow=getContextWindow(model.context_length)??getContextWindow(model.context_window)??getContextWindow(model.max_model_len)??getContextWindow(model.max_input_tokens)??getContextWindow(modelInfo?.context_length)??getContextWindow(modelInfo?.context_window)??getContextWindow(modelInfo?.max_model_len)??getContextWindow(modelInfo?.max_input_tokens);return{id:modelId,apiName:modelId,label:modelId,...contextWindow!==void 0?{contextWindow}:{}}}},discoveryCacheTtl:"1d",discoveryRefreshMode:"startup",allowManualRefresh:!0,models:[]},usage:{supported:!1}})});var dashscope_cn_default;var init_dashscope_cn=__esm(()=>{dashscope_cn_default=defineGateway({id:"dashscope-cn",label:"Alibaba Coding Plan (China)",category:"hosted",defaultBaseUrl:"https://coding.dashscope.aliyuncs.com/v1",defaultModel:"qwen3.6-plus",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["DASHSCOPE_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0}},preset:{id:"dashscope-cn",description:"Alibaba DashScope China endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"],vendorId:"openai"},catalog:{source:"static",models:[{id:"qwen-cn-3.6-plus",apiName:"qwen3.6-plus",label:"Qwen 3.6 Plus",modelDescriptorId:"qwen3.6-plus"}]},usage:{supported:!1}})});var dashscope_intl_default;var init_dashscope_intl=__esm(()=>{dashscope_intl_default=defineGateway({id:"dashscope-intl",label:"Alibaba Coding Plan",category:"hosted",defaultBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1",defaultModel:"qwen3.6-plus",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["DASHSCOPE_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0}},preset:{id:"dashscope-intl",description:"Alibaba DashScope International endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"],vendorId:"openai"},catalog:{source:"static",models:[{id:"qwen-intl-3.6-plus",apiName:"qwen3.6-plus",label:"Qwen 3.6 Plus",modelDescriptorId:"qwen3.6-plus"}]},usage:{supported:!1}})});var github_enterprise_default;var init_github_enterprise=__esm(()=>{github_enterprise_default=defineGateway({id:"github-enterprise",label:"GitHub Copilot Enterprise",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.githubcopilot.com",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"token",credentialEnvVars:["GITHUB_COPILOT_KEY","GITHUB_TOKEN","GH_TOKEN"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0,maxTokensField:"max_tokens"}},validation:{kind:"github-token",routing:{enablementEnvVar:"CLAUDE_CODE_USE_GITHUB",skipWhenUseOpenAI:!0},missingCredentialMessage:`GitHub Copilot Enterprise authentication required.
|
|
42
|
+
`);for(let i=lines.length-1;i>=0;i--){let line=lines[i];if(line)yield line}}if(remainder.length>0)yield remainder.toString("utf8")}finally{await fileHandle.close()}}var NodeFsOperations,activeFs;var init_fsOperations=__esm(()=>{init_errors();init_slowOperations();NodeFsOperations={cwd(){return process.cwd()},existsSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.existsSync(${fsPath})`,0);return fs.existsSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},async stat(fsPath){return statPromise(fsPath)},async lstat(fsPath){return lstatPromise(fsPath)},async readdir(fsPath){return readdirPromise(fsPath,{withFileTypes:!0})},async unlink(fsPath){return unlinkPromise(fsPath)},async rmdir(fsPath){return rmdirPromise(fsPath)},async rm(fsPath,options){return rmPromise(fsPath,options)},async mkdir(dirPath,options){try{await mkdirPromise(dirPath,{recursive:!0,...options})}catch(e){let code=getErrnoCode(e);if(code==="EEXIST")return;if(code==="EACCES"&&fs.existsSync(dirPath))return;throw e}},async mkdtemp(prefix){return mkdtempPromise(prefix)},async readFile(fsPath,options){return readFilePromise(fsPath,{encoding:options.encoding})},async writeFile(fsPath,data,options){await writeFilePromise(fsPath,data,options)},async rename(oldPath,newPath){return renamePromise(oldPath,newPath)},async cp(source,destination,options){return cpPromise(source,destination,options)},statSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.statSync(${fsPath})`,0);return fs.statSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},lstatSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.lstatSync(${fsPath})`,0);return fs.lstatSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readFileSync(fsPath,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readFileSync(${fsPath})`,0);return fs.readFileSync(fsPath,{encoding:options.encoding})}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readFileBytesSync(fsPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readFileBytesSync(${fsPath})`,0);return fs.readFileSync(fsPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readSync(fsPath,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readSync(${fsPath}, ${options.length} bytes)`,0);let fd=void 0;try{fd=fs.openSync(fsPath,"r");let buffer=Buffer.alloc(options.length),bytesRead=fs.readSync(fd,buffer,0,options.length,0);return{buffer,bytesRead}}finally{if(fd)fs.closeSync(fd)}}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},appendFileSync(path2,data,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.appendFileSync(${path2}, ${data.length} chars)`,0);if(options?.mode!==void 0)try{let fd=fs.openSync(path2,"ax",options.mode);try{fs.appendFileSync(fd,data)}finally{fs.closeSync(fd)}return}catch(e){if(getErrnoCode(e)!=="EEXIST")throw e}fs.appendFileSync(path2,data)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},copyFileSync(src,dest){let __stack=[];try{const _=__using(__stack,slowLogging`fs.copyFileSync(${src} → ${dest})`,0);fs.copyFileSync(src,dest)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},unlinkSync(path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.unlinkSync(${path2})`,0);fs.unlinkSync(path2)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},renameSync(oldPath,newPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.renameSync(${oldPath} → ${newPath})`,0);fs.renameSync(oldPath,newPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},linkSync(target,path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.linkSync(${target} → ${path2})`,0);fs.linkSync(target,path2)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},symlinkSync(target,path2,type){let __stack=[];try{const _=__using(__stack,slowLogging`fs.symlinkSync(${target} → ${path2})`,0);fs.symlinkSync(target,path2,type)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readlinkSync(path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readlinkSync(${path2})`,0);return fs.readlinkSync(path2)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},realpathSync(path2){let __stack=[];try{const _=__using(__stack,slowLogging`fs.realpathSync(${path2})`,0);return fs.realpathSync(path2).normalize("NFC")}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},mkdirSync(dirPath,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.mkdirSync(${dirPath})`,0);let mkdirOptions={recursive:!0};if(options?.mode!==void 0)mkdirOptions.mode=options.mode;try{fs.mkdirSync(dirPath,mkdirOptions)}catch(e){let code=getErrnoCode(e);if(code==="EEXIST")return;if(code==="EACCES"&&fs.existsSync(dirPath))return;throw e}}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readdirSync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readdirSync(${dirPath})`,0);return fs.readdirSync(dirPath,{withFileTypes:!0})}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},readdirStringSync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.readdirStringSync(${dirPath})`,0);return fs.readdirSync(dirPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},isDirEmptySync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.isDirEmptySync(${dirPath})`,0);let files=this.readdirSync(dirPath);return files.length===0}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},rmdirSync(dirPath){let __stack=[];try{const _=__using(__stack,slowLogging`fs.rmdirSync(${dirPath})`,0);fs.rmdirSync(dirPath)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},rmSync(path2,options){let __stack=[];try{const _=__using(__stack,slowLogging`fs.rmSync(${path2})`,0);fs.rmSync(path2,options)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}},createWriteStream(path2){return fs.createWriteStream(path2)},async readFileBytes(fsPath,maxBytes){if(maxBytes===void 0)return readFilePromise(fsPath);let handle=await open(fsPath,"r");try{let{size}=await handle.stat(),readSize=Math.min(size,maxBytes),buffer=Buffer.allocUnsafe(readSize),offset=0;while(offset<readSize){let{bytesRead}=await handle.read(buffer,offset,readSize-offset,offset);if(bytesRead===0)break;offset+=bytesRead}return offset<readSize?buffer.subarray(0,offset):buffer}finally{await handle.close()}}},activeFs=NodeFsOperations});var exports_process={};__export(exports_process,{writeToStdout:()=>writeToStdout,writeToStderr:()=>writeToStderr,registerProcessOutputErrorHandlers:()=>registerProcessOutputErrorHandlers,peekForStdinData:()=>peekForStdinData,exitWithError:()=>exitWithError});function handleEPIPE(stream){return(err)=>{if(err.code==="EPIPE")stream.destroy()}}function registerProcessOutputErrorHandlers(){process.stdout.on("error",handleEPIPE(process.stdout)),process.stderr.on("error",handleEPIPE(process.stderr))}function writeOut(stream,data){if(stream.destroyed)return;stream.write(data)}function writeToStdout(data){writeOut(process.stdout,data)}function writeToStderr(data){writeOut(process.stderr,data)}function exitWithError(message){console.error(message),process.exit(1)}function peekForStdinData(stream,ms){return new Promise((resolve2)=>{let done=(timedOut)=>{clearTimeout(peek),stream.off("end",onEnd),stream.off("data",onFirstData),resolve2(timedOut)},onEnd=()=>done(!1),onFirstData=()=>clearTimeout(peek),peek=setTimeout(done,ms,!0);stream.once("end",onEnd),stream.once("data",onFirstData)})}var PROVIDER_PRESET_MANIFEST,ORDERED_PROVIDER_PRESETS;var init_integrationManifest_generated=__esm(()=>{PROVIDER_PRESET_MANIFEST=[{preset:"gitlawb-opengateway",routeKind:"gateway",routeId:"gitlawb-opengateway",vendorId:"openai",gatewayId:"gitlawb-opengateway",description:"Gitlawb Opengateway - (API key required, signup at https://gitlawb.com/opengateway/keys)",label:"Gitlawb Opengateway",name:"Gitlawb Opengateway",apiKeyEnvVars:["OPENGATEWAY_API_KEY"],baseUrlEnvVars:["OPENGATEWAY_BASE_URL","OPENAI_BASE_URL"],modelEnvVars:["OPENAI_MODEL"],fallbackBaseUrl:"https://opengateway.gitlawb.com/v1",fallbackModel:"mimo-v2.5-pro",badge:{text:"Recommended",color:"success"}},{preset:"anthropic",routeKind:"vendor",routeId:"anthropic",vendorId:"anthropic",description:"Native Claude API (x-api-key auth)",apiKeyEnvVars:["ANTHROPIC_API_KEY"],baseUrlEnvVars:["ANTHROPIC_BASE_URL"],modelEnvVars:["ANTHROPIC_MODEL"]},{preset:"aimlapi",routeKind:"gateway",routeId:"aimlapi",vendorId:"openai",gatewayId:"aimlapi",description:"1,000+ models OpenAI compatible endpoint",apiKeyEnvVars:["AIMLAPI_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Recommended",color:"success"}},{preset:"dashscope-cn",routeKind:"gateway",routeId:"dashscope-cn",vendorId:"openai",gatewayId:"dashscope-cn",description:"Alibaba DashScope China endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"]},{preset:"dashscope-intl",routeKind:"gateway",routeId:"dashscope-intl",vendorId:"openai",gatewayId:"dashscope-intl",description:"Alibaba DashScope International endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"]},{preset:"atlas-cloud",routeKind:"gateway",routeId:"atlas-cloud",vendorId:"openai",gatewayId:"atlas-cloud",description:"Atlas Cloud AI (OpenAI-compatible)",apiKeyEnvVars:["ATLAS_CLOUD_API_KEY"],modelEnvVars:["ATLAS_CLOUD_MODEL","OPENAI_MODEL"]},{preset:"azure-openai",routeKind:"gateway",routeId:"azure-openai",vendorId:"openai",gatewayId:"azure-openai",description:"Azure OpenAI endpoint (model=deployment name)",apiKeyEnvVars:["AZURE_OPENAI_API_KEY"]},{preset:"bankr",routeKind:"vendor",routeId:"bankr",vendorId:"bankr",description:"Bankr LLM Gateway (OpenAI-compatible)",apiKeyEnvVars:["BNKR_API_KEY"],modelEnvVars:["BANKR_MODEL","OPENAI_MODEL"]},{preset:"clinepass",routeKind:"gateway",routeId:"clinepass",vendorId:"openai",gatewayId:"clinepass",description:"ClinePass - AI model gateway with usage limits",apiKeyEnvVars:["CLINE_API_KEY"],modelEnvVars:["CLINE_API_MODEL","OPENAI_MODEL"]},{preset:"cloudflare",routeKind:"gateway",routeId:"cloudflare",vendorId:"openai",gatewayId:"cloudflare",description:"Cloudflare Workers AI OpenAI-compatible endpoint. Replace <ACCOUNT_ID> in the base URL with your Cloudflare account id.",label:"Cloudflare Workers AI",name:"Cloudflare Workers AI",apiKeyEnvVars:["CLOUDFLARE_API_TOKEN"],modelEnvVars:["OPENAI_MODEL"]},{preset:"deepseek",routeKind:"vendor",routeId:"deepseek",vendorId:"deepseek",description:"DeepSeek OpenAI-compatible endpoint",apiKeyEnvVars:["DEEPSEEK_API_KEY"]},{preset:"fireworks",routeKind:"vendor",routeId:"fireworks",vendorId:"fireworks",description:"Fireworks AI OpenAI-compatible endpoint",apiKeyEnvVars:["FIREWORKS_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"gemini",routeKind:"vendor",routeId:"gemini",vendorId:"gemini",description:"Google AI / Gemini OpenAI-compatible endpoint",apiKeyEnvVars:["GEMINI_API_KEY"]},{preset:"groq",routeKind:"gateway",routeId:"groq",vendorId:"openai",gatewayId:"groq",description:"Groq OpenAI-compatible endpoint",apiKeyEnvVars:["GROQ_API_KEY"]},{preset:"hicap",routeKind:"gateway",routeId:"hicap",vendorId:"openai",gatewayId:"hicap",description:"Hicap OpenAI-compatible gateway",apiKeyEnvVars:["HICAP_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"lmstudio",routeKind:"gateway",routeId:"lmstudio",vendorId:"openai",gatewayId:"lmstudio",description:"Local LM Studio endpoint",modelEnvVars:["OPENAI_MODEL"]},{preset:"atomic-chat",routeKind:"gateway",routeId:"atomic-chat",vendorId:"openai",gatewayId:"atomic-chat",description:"Local Model Provider",modelEnvVars:["OPENAI_MODEL"]},{preset:"ollama",routeKind:"gateway",routeId:"ollama",vendorId:"openai",gatewayId:"ollama",description:"Local or remote Ollama endpoint",modelEnvVars:["OPENAI_MODEL"]},{preset:"minimax",routeKind:"vendor",routeId:"minimax",vendorId:"minimax",description:"MiniMax API endpoint",apiKeyEnvVars:["MINIMAX_API_KEY"]},{preset:"mistral",routeKind:"gateway",routeId:"mistral",vendorId:"openai",gatewayId:"mistral",description:"Mistral OpenAI-compatible endpoint",apiKeyEnvVars:["MISTRAL_API_KEY"]},{preset:"moonshotai",routeKind:"vendor",routeId:"moonshot",vendorId:"moonshot",description:"Moonshot AI - API endpoint",label:"Moonshot AI - API",name:"Moonshot AI - API",apiKeyEnvVars:["MOONSHOT_API_KEY"]},{preset:"kimi-code",routeKind:"gateway",routeId:"kimi-code",vendorId:"openai",gatewayId:"kimi-code",description:"Moonshot AI - Kimi Code Subscription endpoint",apiKeyEnvVars:["KIMI_API_KEY"]},{preset:"nearai",routeKind:"vendor",routeId:"nearai",vendorId:"nearai",description:"NEAR AI unified gateway (Claude, GPT, Gemini + TEE models)",apiKeyEnvVars:["NEARAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"nvidia-nim",routeKind:"gateway",routeId:"nvidia-nim",vendorId:"openai",gatewayId:"nvidia-nim",description:"NVIDIA NIM endpoint",apiKeyEnvVars:["NVIDIA_API_KEY"]},{preset:"openai",routeKind:"vendor",routeId:"openai",vendorId:"openai",description:"OpenAI API with API key",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"]},{preset:"opencode-go",routeKind:"gateway",routeId:"opencode-go",vendorId:"openai",gatewayId:"opencode-go",description:"OpenCode Go - $10/mo subscription for open models (13 models)",apiKeyEnvVars:["OPENCODE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"opencode",routeKind:"gateway",routeId:"opencode",vendorId:"openai",gatewayId:"opencode",description:"OpenCode Zen - pay-as-you-go AI gateway (48 models)",apiKeyEnvVars:["OPENCODE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"openrouter",routeKind:"gateway",routeId:"openrouter",vendorId:"openai",gatewayId:"openrouter",description:"OpenRouter OpenAI-compatible endpoint",apiKeyEnvVars:["OPENROUTER_API_KEY"]},{preset:"together",routeKind:"gateway",routeId:"together",vendorId:"openai",gatewayId:"together",description:"Together chat/completions endpoint",apiKeyEnvVars:["TOGETHER_API_KEY"]},{preset:"venice",routeKind:"vendor",routeId:"venice",vendorId:"venice",description:"Venice OpenAI-compatible endpoint",apiKeyEnvVars:["VENICE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"xai",routeKind:"vendor",routeId:"xai",vendorId:"xai",description:"xAI Grok OpenAI-compatible endpoint",apiKeyEnvVars:["XAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"xiaomi-mimo",routeKind:"vendor",routeId:"xiaomi-mimo",vendorId:"xiaomi-mimo",description:"Xiaomi MiMo OpenAI-compatible endpoint",label:"Xiaomi MiMo",name:"Xiaomi MiMo",apiKeyEnvVars:["MIMO_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Sponsor",color:"success"}},{preset:"xiaomi-mimo-token",routeKind:"gateway",routeId:"xiaomi-mimo-token",vendorId:"xiaomi-mimo",gatewayId:"xiaomi-mimo-token",description:"Xiaomi MiMo Token Plan subscription endpoint",label:"Xiaomi MiMo (Token Plan)",name:"Xiaomi MiMo (Token Plan)",apiKeyEnvVars:["MIMO_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Sponsor",color:"success"}},{preset:"zai",routeKind:"vendor",routeId:"zai",vendorId:"zai",description:"Z.AI GLM coding subscription endpoint",label:"Z.AI - GLM Coding Plan",name:"Z.AI - GLM Coding Plan",apiKeyEnvVars:["OPENAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},{preset:"custom",routeKind:"gateway",routeId:"custom",vendorId:"openai",gatewayId:"custom",description:"Any OpenAI-compatible provider",label:"Custom (OpenAI-compatible)",name:"Custom (OpenAI-compatible)",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],baseUrlEnvVars:["OPENAI_BASE_URL","OPENAI_API_BASE"],modelEnvVars:["OPENAI_MODEL"],fallbackBaseUrl:"http://localhost:11434/v1"},{preset:"custom-anthropic",routeKind:"anthropic-proxy",routeId:"custom-anthropic",vendorId:"anthropic",description:"Any Anthropic Messages API-compatible provider",label:"Custom (Anthropic-compatible)",name:"Custom (Anthropic-compatible)",apiKeyEnvVars:["ANTHROPIC_AUTH_TOKEN","ANTHROPIC_API_KEY"],baseUrlEnvVars:["ANTHROPIC_BASE_URL"],modelEnvVars:["ANTHROPIC_MODEL"],fallbackBaseUrl:"https://anthropic-proxy.example",fallbackModel:"claude-sonnet-4-6"}],ORDERED_PROVIDER_PRESETS=["gitlawb-opengateway","anthropic","aimlapi","dashscope-cn","dashscope-intl","atlas-cloud","azure-openai","bankr","clinepass","cloudflare","deepseek","fireworks","gemini","groq","hicap","lmstudio","atomic-chat","ollama","minimax","mistral","moonshotai","kimi-code","nearai","nvidia-nim","openai","opencode-go","opencode","openrouter","together","venice","xai","xiaomi-mimo","xiaomi-mimo-token","zai","custom","custom-anthropic"]});function defineVendor(d){return d}function defineGateway(d){return d}function defineAnthropicProxy(d){return d}function defineBrand(d){return d}function defineModel(d){return d}var anthropic_default;var init_anthropic=__esm(()=>{anthropic_default=defineVendor({id:"anthropic",label:"Anthropic",classification:"anthropic",defaultBaseUrl:"https://api.anthropic.com",defaultModel:"claude-sonnet-4-6",requiredEnvVars:["ANTHROPIC_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["ANTHROPIC_API_KEY"]},transportConfig:{kind:"anthropic-native"},preset:{id:"anthropic",description:"Native Claude API (x-api-key auth)",apiKeyEnvVars:["ANTHROPIC_API_KEY"],baseUrlEnvVars:["ANTHROPIC_BASE_URL"],modelEnvVars:["ANTHROPIC_MODEL"]},isFirstParty:!0,usage:{supported:!0}})});var bankr_default;var init_bankr=__esm(()=>{bankr_default=defineVendor({id:"bankr",label:"Bankr",classification:"openai-compatible",defaultBaseUrl:"https://llm.bankr.bot/v1",defaultModel:"claude-opus-4.6",requiredEnvVars:["BNKR_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["BNKR_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"bankr",description:"Bankr LLM Gateway (OpenAI-compatible)",apiKeyEnvVars:["BNKR_API_KEY"],modelEnvVars:["BANKR_MODEL","OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0},credentialEnvVars:["BNKR_API_KEY","OPENAI_API_KEY"],missingCredentialMessage:"Bankr auth is required. Set BNKR_API_KEY or OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"claude-opus-4.6",apiName:"claude-opus-4.6",label:"Claude Opus 4.6"}]},usage:{supported:!1}})});var deepseek_default;var init_deepseek=__esm(()=>{deepseek_default=defineVendor({id:"deepseek",label:"DeepSeek",classification:"openai-compatible",defaultBaseUrl:"https://api.deepseek.com/v1",defaultModel:"deepseek-v4-pro",requiredEnvVars:["DEEPSEEK_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["DEEPSEEK_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",thinkingRequestFormat:"deepseek-compatible",maxTokensField:"max_tokens",removeBodyFields:["store"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"deepseek",description:"DeepSeek OpenAI-compatible endpoint",apiKeyEnvVars:["DEEPSEEK_API_KEY"]},catalog:{source:"static",models:[{id:"deepseek-chat",apiName:"deepseek-chat",label:"DeepSeek Chat",modelDescriptorId:"deepseek-chat"},{id:"deepseek-reasoner",apiName:"deepseek-reasoner",label:"DeepSeek Reasoner",modelDescriptorId:"deepseek-reasoner"},{id:"deepseek-v4-flash",apiName:"deepseek-v4-flash",label:"DeepSeek V4 Flash",modelDescriptorId:"deepseek-v4-flash",maxOutputTokens:393216},{id:"deepseek-v4-pro",apiName:"deepseek-v4-pro",label:"DeepSeek V4 Pro",modelDescriptorId:"deepseek-v4-pro",maxOutputTokens:393216}]},usage:{supported:!1}})});var fireworks_default;var init_fireworks=__esm(()=>{fireworks_default=defineVendor({id:"fireworks",label:"Fireworks AI",classification:"openai-compatible",defaultBaseUrl:"https://api.fireworks.ai/inference/v1",defaultModel:"accounts/fireworks/models/llama-v3p1-70b-instruct",requiredEnvVars:["FIREWORKS_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["FIREWORKS_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"fireworks",description:"Fireworks AI OpenAI-compatible endpoint",apiKeyEnvVars:["FIREWORKS_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.fireworks.ai"]},credentialEnvVars:["FIREWORKS_API_KEY"],missingCredentialMessage:"FIREWORKS_API_KEY is required."},catalog:{source:"static",models:[{id:"accounts/fireworks/models/chronos-hermes-13b-v2",apiName:"accounts/fireworks/models/chronos-hermes-13b-v2",label:"Chronos Hermes 13B V2",modelDescriptorId:"accounts/fireworks/models/chronos-hermes-13b-v2"},{id:"accounts/fireworks/models/codegemma-2b",apiName:"accounts/fireworks/models/codegemma-2b",label:"CodeGemma 2B",modelDescriptorId:"accounts/fireworks/models/codegemma-2b"},{id:"accounts/fireworks/models/codegemma-7b",apiName:"accounts/fireworks/models/codegemma-7b",label:"CodeGemma 7B",modelDescriptorId:"accounts/fireworks/models/codegemma-7b"},{id:"accounts/fireworks/models/code-llama-13b",apiName:"accounts/fireworks/models/code-llama-13b",label:"Code Llama 13B",modelDescriptorId:"accounts/fireworks/models/code-llama-13b"},{id:"accounts/fireworks/models/code-llama-13b-instruct",apiName:"accounts/fireworks/models/code-llama-13b-instruct",label:"Code Llama 13B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-13b-instruct"},{id:"accounts/fireworks/models/code-llama-13b-python",apiName:"accounts/fireworks/models/code-llama-13b-python",label:"Code Llama 13B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-13b-python"},{id:"accounts/fireworks/models/code-llama-34b",apiName:"accounts/fireworks/models/code-llama-34b",label:"Code Llama 34B",modelDescriptorId:"accounts/fireworks/models/code-llama-34b"},{id:"accounts/fireworks/models/code-llama-34b-instruct",apiName:"accounts/fireworks/models/code-llama-34b-instruct",label:"Code Llama 34B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-34b-instruct"},{id:"accounts/fireworks/models/code-llama-34b-python",apiName:"accounts/fireworks/models/code-llama-34b-python",label:"Code Llama 34B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-34b-python"},{id:"accounts/fireworks/models/code-llama-70b",apiName:"accounts/fireworks/models/code-llama-70b",label:"Code Llama 70B",modelDescriptorId:"accounts/fireworks/models/code-llama-70b"},{id:"accounts/fireworks/models/code-llama-70b-instruct",apiName:"accounts/fireworks/models/code-llama-70b-instruct",label:"Code Llama 70B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-70b-instruct"},{id:"accounts/fireworks/models/code-llama-70b-python",apiName:"accounts/fireworks/models/code-llama-70b-python",label:"Code Llama 70B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-70b-python"},{id:"accounts/fireworks/models/code-llama-7b",apiName:"accounts/fireworks/models/code-llama-7b",label:"Code Llama 7B",modelDescriptorId:"accounts/fireworks/models/code-llama-7b"},{id:"accounts/fireworks/models/code-llama-7b-instruct",apiName:"accounts/fireworks/models/code-llama-7b-instruct",label:"Code Llama 7B Instruct",modelDescriptorId:"accounts/fireworks/models/code-llama-7b-instruct"},{id:"accounts/fireworks/models/code-llama-7b-python",apiName:"accounts/fireworks/models/code-llama-7b-python",label:"Code Llama 7B Python",modelDescriptorId:"accounts/fireworks/models/code-llama-7b-python"},{id:"accounts/fireworks/models/code-qwen-1p5-7b",apiName:"accounts/fireworks/models/code-qwen-1p5-7b",label:"CodeQwen 1.5 7B",modelDescriptorId:"accounts/fireworks/models/code-qwen-1p5-7b"},{id:"accounts/fireworks/models/cogito-v1-preview-llama-3b",apiName:"accounts/fireworks/models/cogito-v1-preview-llama-3b",label:"Cogito V1 Preview Llama 3B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-llama-3b"},{id:"accounts/fireworks/models/cogito-v1-preview-llama-70b",apiName:"accounts/fireworks/models/cogito-v1-preview-llama-70b",label:"Cogito V1 Preview Llama 70B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-llama-70b"},{id:"accounts/fireworks/models/cogito-v1-preview-llama-8b",apiName:"accounts/fireworks/models/cogito-v1-preview-llama-8b",label:"Cogito V1 Preview Llama 8B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-llama-8b"},{id:"accounts/fireworks/models/cogito-v1-preview-qwen-14b",apiName:"accounts/fireworks/models/cogito-v1-preview-qwen-14b",label:"Cogito V1 Preview Qwen 14B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-qwen-14b"},{id:"accounts/fireworks/models/cogito-v1-preview-qwen-32b",apiName:"accounts/fireworks/models/cogito-v1-preview-qwen-32b",label:"Cogito V1 Preview Qwen 32B",modelDescriptorId:"accounts/fireworks/models/cogito-v1-preview-qwen-32b"},{id:"accounts/fireworks/models/dbrx-instruct",apiName:"accounts/fireworks/models/dbrx-instruct",label:"DBRX Instruct",modelDescriptorId:"accounts/fireworks/models/dbrx-instruct"},{id:"accounts/fireworks/models/deepseek-coder-1b-base",apiName:"accounts/fireworks/models/deepseek-coder-1b-base",label:"DeepSeek Coder 1B Base",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-1b-base"},{id:"accounts/fireworks/models/deepseek-coder-33b-instruct",apiName:"accounts/fireworks/models/deepseek-coder-33b-instruct",label:"DeepSeek Coder 33B Instruct",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-33b-instruct"},{id:"accounts/fireworks/models/deepseek-coder-7b-base",apiName:"accounts/fireworks/models/deepseek-coder-7b-base",label:"DeepSeek Coder 7B Base",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-7b-base"},{id:"accounts/fireworks/models/deepseek-coder-7b-base-v1p5",apiName:"accounts/fireworks/models/deepseek-coder-7b-base-v1p5",label:"DeepSeek Coder 7B Base V1.5",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-7b-base-v1p5"},{id:"accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5",apiName:"accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5",label:"DeepSeek Coder 7B Instruct V1.5",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5"},{id:"accounts/fireworks/models/deepseek-coder-v2-instruct",apiName:"accounts/fireworks/models/deepseek-coder-v2-instruct",label:"DeepSeek Coder V2 Instruct",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-v2-instruct"},{id:"accounts/fireworks/models/deepseek-coder-v2-lite-base",apiName:"accounts/fireworks/models/deepseek-coder-v2-lite-base",label:"DeepSeek Coder V2 Lite Base",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-v2-lite-base"},{id:"accounts/fireworks/models/deepseek-coder-v2-lite-instruct",apiName:"accounts/fireworks/models/deepseek-coder-v2-lite-instruct",label:"DeepSeek Coder V2 Lite Instruct",modelDescriptorId:"accounts/fireworks/models/deepseek-coder-v2-lite-instruct"},{id:"accounts/fireworks/models/deepseek-prover-v2",apiName:"accounts/fireworks/models/deepseek-prover-v2",label:"DeepSeek Prover V2",modelDescriptorId:"accounts/fireworks/models/deepseek-prover-v2"},{id:"accounts/fireworks/models/deepseek-r1",apiName:"accounts/fireworks/models/deepseek-r1",label:"DeepSeek R1",modelDescriptorId:"accounts/fireworks/models/deepseek-r1"},{id:"accounts/fireworks/models/deepseek-r1-0528",apiName:"accounts/fireworks/models/deepseek-r1-0528",label:"DeepSeek R1 05/28",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-0528"},{id:"accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b",apiName:"accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b",label:"DeepSeek R1 05/28 Distill Qwen3 8B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b"},{id:"accounts/fireworks/models/deepseek-r1-basic",apiName:"accounts/fireworks/models/deepseek-r1-basic",label:"DeepSeek R1 Basic",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-basic"},{id:"accounts/fireworks/models/deepseek-r1-distill-llama-70b",apiName:"accounts/fireworks/models/deepseek-r1-distill-llama-70b",label:"DeepSeek R1 Distill Llama 70B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-llama-70b"},{id:"accounts/fireworks/models/deepseek-r1-distill-llama-8b",apiName:"accounts/fireworks/models/deepseek-r1-distill-llama-8b",label:"DeepSeek R1 Distill Llama 8B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-llama-8b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-14b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-14b",label:"DeepSeek R1 Distill Qwen 14B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-14b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b",label:"DeepSeek R1 Distill Qwen 1.5B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-32b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-32b",label:"DeepSeek R1 Distill Qwen 32B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-32b"},{id:"accounts/fireworks/models/deepseek-r1-distill-qwen-7b",apiName:"accounts/fireworks/models/deepseek-r1-distill-qwen-7b",label:"DeepSeek R1 Distill Qwen 7B",modelDescriptorId:"accounts/fireworks/models/deepseek-r1-distill-qwen-7b"},{id:"accounts/fireworks/models/deepseek-v2-lite-chat",apiName:"accounts/fireworks/models/deepseek-v2-lite-chat",label:"DeepSeek V2 Lite Chat",modelDescriptorId:"accounts/fireworks/models/deepseek-v2-lite-chat"},{id:"accounts/fireworks/models/deepseek-v2p5",apiName:"accounts/fireworks/models/deepseek-v2p5",label:"DeepSeek V2.5",modelDescriptorId:"accounts/fireworks/models/deepseek-v2p5"},{id:"accounts/fireworks/models/deepseek-v3",apiName:"accounts/fireworks/models/deepseek-v3",label:"DeepSeek V3",modelDescriptorId:"accounts/fireworks/models/deepseek-v3"},{id:"accounts/fireworks/models/deepseek-v3-0324",apiName:"accounts/fireworks/models/deepseek-v3-0324",label:"DeepSeek V3 03/24",modelDescriptorId:"accounts/fireworks/models/deepseek-v3-0324"},{id:"accounts/fireworks/models/deepseek-v3p1",apiName:"accounts/fireworks/models/deepseek-v3p1",label:"DeepSeek V3.1",modelDescriptorId:"accounts/fireworks/models/deepseek-v3p1"},{id:"accounts/fireworks/models/deepseek-v3p2",apiName:"accounts/fireworks/models/deepseek-v3p2",label:"DeepSeek V3.2",modelDescriptorId:"accounts/fireworks/models/deepseek-v3p2"},{id:"accounts/fireworks/models/deepseek-v4-flash",apiName:"accounts/fireworks/models/deepseek-v4-flash",label:"DeepSeek V4 Flash",modelDescriptorId:"accounts/fireworks/models/deepseek-v4-flash"},{id:"accounts/fireworks/models/deepseek-v4-pro",apiName:"accounts/fireworks/models/deepseek-v4-pro",label:"DeepSeek V4 Pro",modelDescriptorId:"accounts/fireworks/models/deepseek-v4-pro"},{id:"accounts/fireworks/models/devstral-small-2-24b-instruct-2512",apiName:"accounts/fireworks/models/devstral-small-2-24b-instruct-2512",label:"Devstral Small 2 24B Instruct 2512",modelDescriptorId:"accounts/fireworks/models/devstral-small-2-24b-instruct-2512"},{id:"accounts/fireworks/models/devstral-small-2505",apiName:"accounts/fireworks/models/devstral-small-2505",label:"Devstral Small 2505",modelDescriptorId:"accounts/fireworks/models/devstral-small-2505"},{id:"accounts/fireworks/models/dolphin-2-9-2-qwen2-72b",apiName:"accounts/fireworks/models/dolphin-2-9-2-qwen2-72b",label:"Dolphin 2.9.2 Qwen2 72B",modelDescriptorId:"accounts/fireworks/models/dolphin-2-9-2-qwen2-72b"},{id:"accounts/fireworks/models/dolphin-2p6-mixtral-8x7b",apiName:"accounts/fireworks/models/dolphin-2p6-mixtral-8x7b",label:"Dolphin 2.6 Mixtral 8x7B",modelDescriptorId:"accounts/fireworks/models/dolphin-2p6-mixtral-8x7b"},{id:"accounts/fireworks/models/ernie-4p5-21b-a3b-pt",apiName:"accounts/fireworks/models/ernie-4p5-21b-a3b-pt",label:"ERNIE 4.5 21B A3B PT",modelDescriptorId:"accounts/fireworks/models/ernie-4p5-21b-a3b-pt"},{id:"accounts/fireworks/models/ernie-4p5-300b-a47b-pt",apiName:"accounts/fireworks/models/ernie-4p5-300b-a47b-pt",label:"ERNIE 4.5 300B A47B PT",modelDescriptorId:"accounts/fireworks/models/ernie-4p5-300b-a47b-pt"},{id:"accounts/fireworks/models/fare-20b",apiName:"accounts/fireworks/models/fare-20b",label:"Fare 20B",modelDescriptorId:"accounts/fireworks/models/fare-20b"},{id:"accounts/fireworks/models/firefunction-v1",apiName:"accounts/fireworks/models/firefunction-v1",label:"FireFunction V1",modelDescriptorId:"accounts/fireworks/models/firefunction-v1"},{id:"accounts/fireworks/models/firefunction-v2",apiName:"accounts/fireworks/models/firefunction-v2",label:"FireFunction V2",modelDescriptorId:"accounts/fireworks/models/firefunction-v2"},{id:"accounts/fireworks/models/firellava-13b",apiName:"accounts/fireworks/models/firellava-13b",label:"FireLLaVA 13B",modelDescriptorId:"accounts/fireworks/models/firellava-13b"},{id:"accounts/fireworks/models/firesearch-ocr-v6",apiName:"accounts/fireworks/models/firesearch-ocr-v6",label:"Firesearch OCR V6",modelDescriptorId:"accounts/fireworks/models/firesearch-ocr-v6"},{id:"accounts/fireworks/models/gemma-2b-it",apiName:"accounts/fireworks/models/gemma-2b-it",label:"Gemma 2B IT",modelDescriptorId:"accounts/fireworks/models/gemma-2b-it"},{id:"accounts/fireworks/models/gemma-3-12b-it",apiName:"accounts/fireworks/models/gemma-3-12b-it",label:"Gemma 3 12B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-12b-it"},{id:"accounts/fireworks/models/gemma-3-1b-it",apiName:"accounts/fireworks/models/gemma-3-1b-it",label:"Gemma 3 1B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-1b-it"},{id:"accounts/fireworks/models/gemma-3-27b-it",apiName:"accounts/fireworks/models/gemma-3-27b-it",label:"Gemma 3 27B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-27b-it"},{id:"accounts/fireworks/models/gemma-3-4b-it",apiName:"accounts/fireworks/models/gemma-3-4b-it",label:"Gemma 3 4B IT",modelDescriptorId:"accounts/fireworks/models/gemma-3-4b-it"},{id:"accounts/fireworks/models/gemma-4-26b-a4b-it",apiName:"accounts/fireworks/models/gemma-4-26b-a4b-it",label:"Gemma 4 26B A4B IT",modelDescriptorId:"accounts/fireworks/models/gemma-4-26b-a4b-it"},{id:"accounts/fireworks/models/gemma-4-31b-it",apiName:"accounts/fireworks/models/gemma-4-31b-it",label:"Gemma 4 31B IT",modelDescriptorId:"accounts/fireworks/models/gemma-4-31b-it"},{id:"accounts/fireworks/models/gemma-4-31b-it-nvfp4",apiName:"accounts/fireworks/models/gemma-4-31b-it-nvfp4",label:"Gemma 4 31B IT NVFP4",modelDescriptorId:"accounts/fireworks/models/gemma-4-31b-it-nvfp4"},{id:"accounts/fireworks/models/gemma-4-e4b",apiName:"accounts/fireworks/models/gemma-4-e4b",label:"Gemma 4 E4B",modelDescriptorId:"accounts/fireworks/models/gemma-4-e4b"},{id:"accounts/fireworks/models/gemma-7b",apiName:"accounts/fireworks/models/gemma-7b",label:"Gemma 7B",modelDescriptorId:"accounts/fireworks/models/gemma-7b"},{id:"accounts/fireworks/models/gemma-7b-it",apiName:"accounts/fireworks/models/gemma-7b-it",label:"Gemma 7B IT",modelDescriptorId:"accounts/fireworks/models/gemma-7b-it"},{id:"accounts/fireworks/models/gemma2-9b-it",apiName:"accounts/fireworks/models/gemma2-9b-it",label:"Gemma 2 9B IT",modelDescriptorId:"accounts/fireworks/models/gemma2-9b-it"},{id:"accounts/fireworks/models/glm-4p5",apiName:"accounts/fireworks/models/glm-4p5",label:"GLM 4.5",modelDescriptorId:"accounts/fireworks/models/glm-4p5"},{id:"accounts/fireworks/models/glm-4p5-air",apiName:"accounts/fireworks/models/glm-4p5-air",label:"GLM 4.5 Air",modelDescriptorId:"accounts/fireworks/models/glm-4p5-air"},{id:"accounts/fireworks/models/glm-4p5v",apiName:"accounts/fireworks/models/glm-4p5v",label:"GLM 4.5V",modelDescriptorId:"accounts/fireworks/models/glm-4p5v"},{id:"accounts/fireworks/models/glm-4p6",apiName:"accounts/fireworks/models/glm-4p6",label:"GLM 4.6",modelDescriptorId:"accounts/fireworks/models/glm-4p6"},{id:"accounts/fireworks/models/glm-4p7",apiName:"accounts/fireworks/models/glm-4p7",label:"GLM 4.7",modelDescriptorId:"accounts/fireworks/models/glm-4p7"},{id:"accounts/fireworks/models/glm-4p7-flash",apiName:"accounts/fireworks/models/glm-4p7-flash",label:"GLM 4.7 Flash",modelDescriptorId:"accounts/fireworks/models/glm-4p7-flash"},{id:"accounts/fireworks/models/glm-5",apiName:"accounts/fireworks/models/glm-5",label:"GLM 5",modelDescriptorId:"accounts/fireworks/models/glm-5"},{id:"accounts/fireworks/models/glm-5p2",apiName:"accounts/fireworks/models/glm-5p2",label:"GLM 5.2",modelDescriptorId:"accounts/fireworks/models/glm-5p2"},{id:"accounts/fireworks/models/glm-5p1",apiName:"accounts/fireworks/models/glm-5p1",label:"GLM 5.1",modelDescriptorId:"accounts/fireworks/models/glm-5p1"},{id:"accounts/fireworks/models/gpt-oss-120b",apiName:"accounts/fireworks/models/gpt-oss-120b",label:"GPT-OSS 120B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-120b"},{id:"accounts/fireworks/models/gpt-oss-20b",apiName:"accounts/fireworks/models/gpt-oss-20b",label:"GPT-OSS 20B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-20b"},{id:"accounts/fireworks/models/gpt-oss-safeguard-120b",apiName:"accounts/fireworks/models/gpt-oss-safeguard-120b",label:"GPT-OSS Safeguard 120B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-safeguard-120b"},{id:"accounts/fireworks/models/gpt-oss-safeguard-20b",apiName:"accounts/fireworks/models/gpt-oss-safeguard-20b",label:"GPT-OSS Safeguard 20B",modelDescriptorId:"accounts/fireworks/models/gpt-oss-safeguard-20b"},{id:"accounts/fireworks/models/hermes-2-pro-mistral-7b",apiName:"accounts/fireworks/models/hermes-2-pro-mistral-7b",label:"Hermes 2 Pro Mistral 7B",modelDescriptorId:"accounts/fireworks/models/hermes-2-pro-mistral-7b"},{id:"accounts/fireworks/models/internvl3-38b",apiName:"accounts/fireworks/models/internvl3-38b",label:"InternVL3 38B",modelDescriptorId:"accounts/fireworks/models/internvl3-38b"},{id:"accounts/fireworks/models/internvl3-78b",apiName:"accounts/fireworks/models/internvl3-78b",label:"InternVL3 78B",modelDescriptorId:"accounts/fireworks/models/internvl3-78b"},{id:"accounts/fireworks/models/internvl3-8b",apiName:"accounts/fireworks/models/internvl3-8b",label:"InternVL3 8B",modelDescriptorId:"accounts/fireworks/models/internvl3-8b"},{id:"accounts/fireworks/models/kat-coder",apiName:"accounts/fireworks/models/kat-coder",label:"Kat Coder",modelDescriptorId:"accounts/fireworks/models/kat-coder"},{id:"accounts/fireworks/models/kat-dev-32b",apiName:"accounts/fireworks/models/kat-dev-32b",label:"Kat Dev 32B",modelDescriptorId:"accounts/fireworks/models/kat-dev-32b"},{id:"accounts/fireworks/models/kat-dev-72b-exp",apiName:"accounts/fireworks/models/kat-dev-72b-exp",label:"Kat Dev 72B Exp",modelDescriptorId:"accounts/fireworks/models/kat-dev-72b-exp"},{id:"accounts/fireworks/models/kimi-k2-instruct",apiName:"accounts/fireworks/models/kimi-k2-instruct",label:"Kimi K2 Instruct",modelDescriptorId:"accounts/fireworks/models/kimi-k2-instruct"},{id:"accounts/fireworks/models/kimi-k2-instruct-0905",apiName:"accounts/fireworks/models/kimi-k2-instruct-0905",label:"Kimi K2 Instruct 0905",modelDescriptorId:"accounts/fireworks/models/kimi-k2-instruct-0905"},{id:"accounts/fireworks/models/kimi-k2-thinking",apiName:"accounts/fireworks/models/kimi-k2-thinking",label:"Kimi K2 Thinking",modelDescriptorId:"accounts/fireworks/models/kimi-k2-thinking"},{id:"accounts/fireworks/models/kimi-k2p5",apiName:"accounts/fireworks/models/kimi-k2p5",label:"Kimi K2.5",modelDescriptorId:"accounts/fireworks/models/kimi-k2p5"},{id:"accounts/fireworks/models/kimi-k2p6",apiName:"accounts/fireworks/models/kimi-k2p6",label:"Kimi K2.6",modelDescriptorId:"accounts/fireworks/models/kimi-k2p6"},{id:"accounts/fireworks/models/llama4-maverick-instruct-basic",apiName:"accounts/fireworks/models/llama4-maverick-instruct-basic",label:"Llama 4 Maverick Instruct Basic",modelDescriptorId:"accounts/fireworks/models/llama4-maverick-instruct-basic"},{id:"accounts/fireworks/models/llama4-scout-instruct-basic",apiName:"accounts/fireworks/models/llama4-scout-instruct-basic",label:"Llama 4 Scout Instruct Basic",modelDescriptorId:"accounts/fireworks/models/llama4-scout-instruct-basic"},{id:"accounts/fireworks/models/llama-guard-2-8b",apiName:"accounts/fireworks/models/llama-guard-2-8b",label:"Llama Guard 2 8B",modelDescriptorId:"accounts/fireworks/models/llama-guard-2-8b"},{id:"accounts/fireworks/models/llama-guard-3-1b",apiName:"accounts/fireworks/models/llama-guard-3-1b",label:"Llama Guard 3 1B",modelDescriptorId:"accounts/fireworks/models/llama-guard-3-1b"},{id:"accounts/fireworks/models/llama-guard-3-8b",apiName:"accounts/fireworks/models/llama-guard-3-8b",label:"Llama Guard 3 8B",modelDescriptorId:"accounts/fireworks/models/llama-guard-3-8b"},{id:"accounts/fireworks/models/llamaguard-7b",apiName:"accounts/fireworks/models/llamaguard-7b",label:"LlamaGuard 7B",modelDescriptorId:"accounts/fireworks/models/llamaguard-7b"},{id:"accounts/fireworks/models/llama-v2-13b",apiName:"accounts/fireworks/models/llama-v2-13b",label:"Llama V2 13B",modelDescriptorId:"accounts/fireworks/models/llama-v2-13b"},{id:"accounts/fireworks/models/llama-v2-13b-chat",apiName:"accounts/fireworks/models/llama-v2-13b-chat",label:"Llama V2 13B Chat",modelDescriptorId:"accounts/fireworks/models/llama-v2-13b-chat"},{id:"accounts/fireworks/models/llama-v2-70b",apiName:"accounts/fireworks/models/llama-v2-70b",label:"Llama V2 70B",modelDescriptorId:"accounts/fireworks/models/llama-v2-70b"},{id:"accounts/fireworks/models/llama-v2-70b-chat",apiName:"accounts/fireworks/models/llama-v2-70b-chat",label:"Llama V2 70B Chat",modelDescriptorId:"accounts/fireworks/models/llama-v2-70b-chat"},{id:"accounts/fireworks/models/llama-v2-7b",apiName:"accounts/fireworks/models/llama-v2-7b",label:"Llama V2 7B",modelDescriptorId:"accounts/fireworks/models/llama-v2-7b"},{id:"accounts/fireworks/models/llama-v2-7b-chat",apiName:"accounts/fireworks/models/llama-v2-7b-chat",label:"Llama V2 7B Chat",modelDescriptorId:"accounts/fireworks/models/llama-v2-7b-chat"},{id:"accounts/fireworks/models/llama-v3-70b-instruct",apiName:"accounts/fireworks/models/llama-v3-70b-instruct",label:"Llama 3 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3-70b-instruct"},{id:"accounts/fireworks/models/llama-v3-70b-instruct-hf",apiName:"accounts/fireworks/models/llama-v3-70b-instruct-hf",label:"Llama 3 70B Instruct HF",modelDescriptorId:"accounts/fireworks/models/llama-v3-70b-instruct-hf"},{id:"accounts/fireworks/models/llama-v3-8b",apiName:"accounts/fireworks/models/llama-v3-8b",label:"Llama 3 8B",modelDescriptorId:"accounts/fireworks/models/llama-v3-8b"},{id:"accounts/fireworks/models/llama-v3-8b-instruct",apiName:"accounts/fireworks/models/llama-v3-8b-instruct",label:"Llama 3 8B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3-8b-instruct"},{id:"accounts/fireworks/models/llama-v3-8b-instruct-hf",apiName:"accounts/fireworks/models/llama-v3-8b-instruct-hf",label:"Llama 3 8B Instruct HF",modelDescriptorId:"accounts/fireworks/models/llama-v3-8b-instruct-hf"},{id:"accounts/fireworks/models/llama-v3p1-405b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-405b-instruct",label:"Llama 3.1 405B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-405b-instruct"},{id:"accounts/fireworks/models/llama-v3p1-405b-instruct-long",apiName:"accounts/fireworks/models/llama-v3p1-405b-instruct-long",label:"Llama 3.1 405B Instruct Long",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-405b-instruct-long"},{id:"accounts/fireworks/models/llama-v3p1-70b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-70b-instruct",label:"Llama 3.1 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-70b-instruct"},{id:"accounts/fireworks/models/llama-v3p1-70b-instruct-1b",apiName:"accounts/fireworks/models/llama-v3p1-70b-instruct-1b",label:"Llama 3.1 70B Instruct 1B",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-70b-instruct-1b"},{id:"accounts/fireworks/models/llama-v3p1-8b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-8b-instruct",label:"Llama 3.1 8B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-8b-instruct"},{id:"accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct",apiName:"accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct",label:"Llama 3.1 Nemotron 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct"},{id:"accounts/fireworks/models/llama-v3p2-11b-vision-instruct",apiName:"accounts/fireworks/models/llama-v3p2-11b-vision-instruct",label:"Llama 3.2 11B Vision Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-11b-vision-instruct"},{id:"accounts/fireworks/models/llama-v3p2-1b",apiName:"accounts/fireworks/models/llama-v3p2-1b",label:"Llama 3.2 1B",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-1b"},{id:"accounts/fireworks/models/llama-v3p2-1b-instruct",apiName:"accounts/fireworks/models/llama-v3p2-1b-instruct",label:"Llama 3.2 1B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-1b-instruct"},{id:"accounts/fireworks/models/llama-v3p2-3b",apiName:"accounts/fireworks/models/llama-v3p2-3b",label:"Llama 3.2 3B",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-3b"},{id:"accounts/fireworks/models/llama-v3p2-3b-instruct",apiName:"accounts/fireworks/models/llama-v3p2-3b-instruct",label:"Llama 3.2 3B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-3b-instruct"},{id:"accounts/fireworks/models/llama-v3p2-90b-vision-instruct",apiName:"accounts/fireworks/models/llama-v3p2-90b-vision-instruct",label:"Llama 3.2 90B Vision Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p2-90b-vision-instruct"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",apiName:"accounts/fireworks/models/llama-v3p3-70b-instruct",label:"Llama 3.3 70B Instruct",modelDescriptorId:"accounts/fireworks/models/llama-v3p3-70b-instruct"},{id:"accounts/fireworks/models/llava-yi-34b",apiName:"accounts/fireworks/models/llava-yi-34b",label:"LLaVA Yi 34B",modelDescriptorId:"accounts/fireworks/models/llava-yi-34b"},{id:"accounts/fireworks/models/minimax-m1-80k",apiName:"accounts/fireworks/models/minimax-m1-80k",label:"MiniMax M1 80K",modelDescriptorId:"accounts/fireworks/models/minimax-m1-80k"},{id:"accounts/fireworks/models/minimax-m2",apiName:"accounts/fireworks/models/minimax-m2",label:"MiniMax M2",modelDescriptorId:"accounts/fireworks/models/minimax-m2"},{id:"accounts/fireworks/models/minimax-m2p1",apiName:"accounts/fireworks/models/minimax-m2p1",label:"MiniMax M2.1",modelDescriptorId:"accounts/fireworks/models/minimax-m2p1"},{id:"accounts/fireworks/models/minimax-m2p5",apiName:"accounts/fireworks/models/minimax-m2p5",label:"MiniMax M2.5",modelDescriptorId:"accounts/fireworks/models/minimax-m2p5"},{id:"accounts/fireworks/models/minimax-m2p7",apiName:"accounts/fireworks/models/minimax-m2p7",label:"MiniMax M2.7",modelDescriptorId:"accounts/fireworks/models/minimax-m2p7"},{id:"accounts/fireworks/models/ministral-3-14b-instruct-2512",apiName:"accounts/fireworks/models/ministral-3-14b-instruct-2512",label:"Ministral 3 14B Instruct",modelDescriptorId:"accounts/fireworks/models/ministral-3-14b-instruct-2512"},{id:"accounts/fireworks/models/ministral-3-3b-instruct-2512",apiName:"accounts/fireworks/models/ministral-3-3b-instruct-2512",label:"Ministral 3 3B Instruct",modelDescriptorId:"accounts/fireworks/models/ministral-3-3b-instruct-2512"},{id:"accounts/fireworks/models/ministral-3-8b-instruct-2512",apiName:"accounts/fireworks/models/ministral-3-8b-instruct-2512",label:"Ministral 3 8B Instruct",modelDescriptorId:"accounts/fireworks/models/ministral-3-8b-instruct-2512"},{id:"accounts/fireworks/models/mirothinker-1p7",apiName:"accounts/fireworks/models/mirothinker-1p7",label:"Mirothinker 1.7",modelDescriptorId:"accounts/fireworks/models/mirothinker-1p7"},{id:"accounts/fireworks/models/mistral-7b",apiName:"accounts/fireworks/models/mistral-7b",label:"Mistral 7B",modelDescriptorId:"accounts/fireworks/models/mistral-7b"},{id:"accounts/fireworks/models/mistral-7b-instruct-4k",apiName:"accounts/fireworks/models/mistral-7b-instruct-4k",label:"Mistral 7B Instruct 4K",modelDescriptorId:"accounts/fireworks/models/mistral-7b-instruct-4k"},{id:"accounts/fireworks/models/mistral-7b-instruct-v0p2",apiName:"accounts/fireworks/models/mistral-7b-instruct-v0p2",label:"Mistral 7B Instruct V0.2",modelDescriptorId:"accounts/fireworks/models/mistral-7b-instruct-v0p2"},{id:"accounts/fireworks/models/mistral-7b-instruct-v3",apiName:"accounts/fireworks/models/mistral-7b-instruct-v3",label:"Mistral 7B Instruct V3",modelDescriptorId:"accounts/fireworks/models/mistral-7b-instruct-v3"},{id:"accounts/fireworks/models/mistral-7b-v0p2",apiName:"accounts/fireworks/models/mistral-7b-v0p2",label:"Mistral 7B V0.2",modelDescriptorId:"accounts/fireworks/models/mistral-7b-v0p2"},{id:"accounts/fireworks/models/mistral-large-3-fp8",apiName:"accounts/fireworks/models/mistral-large-3-fp8",label:"Mistral Large 3 675B Instruct",modelDescriptorId:"accounts/fireworks/models/mistral-large-3-fp8"},{id:"accounts/fireworks/models/mistral-nemo-base-2407",apiName:"accounts/fireworks/models/mistral-nemo-base-2407",label:"Mistral Nemo Base 2407",modelDescriptorId:"accounts/fireworks/models/mistral-nemo-base-2407"},{id:"accounts/fireworks/models/mistral-nemo-instruct-2407",apiName:"accounts/fireworks/models/mistral-nemo-instruct-2407",label:"Mistral Nemo Instruct 2407",modelDescriptorId:"accounts/fireworks/models/mistral-nemo-instruct-2407"},{id:"accounts/fireworks/models/mistral-small-24b-instruct-2501",apiName:"accounts/fireworks/models/mistral-small-24b-instruct-2501",label:"Mistral Small 24B Instruct 2501",modelDescriptorId:"accounts/fireworks/models/mistral-small-24b-instruct-2501"},{id:"accounts/fireworks/models/mixtral-8x22b",apiName:"accounts/fireworks/models/mixtral-8x22b",label:"Mixtral 8x22B",modelDescriptorId:"accounts/fireworks/models/mixtral-8x22b"},{id:"accounts/fireworks/models/mixtral-8x22b-instruct",apiName:"accounts/fireworks/models/mixtral-8x22b-instruct",label:"Mixtral 8x22B Instruct",modelDescriptorId:"accounts/fireworks/models/mixtral-8x22b-instruct"},{id:"accounts/fireworks/models/mixtral-8x7b",apiName:"accounts/fireworks/models/mixtral-8x7b",label:"Mixtral 8x7B",modelDescriptorId:"accounts/fireworks/models/mixtral-8x7b"},{id:"accounts/fireworks/models/mixtral-8x7b-instruct",apiName:"accounts/fireworks/models/mixtral-8x7b-instruct",label:"Mixtral 8x7B Instruct",modelDescriptorId:"accounts/fireworks/models/mixtral-8x7b-instruct"},{id:"accounts/fireworks/models/mixtral-8x7b-instruct-hf",apiName:"accounts/fireworks/models/mixtral-8x7b-instruct-hf",label:"Mixtral 8x7B Instruct HF",modelDescriptorId:"accounts/fireworks/models/mixtral-8x7b-instruct-hf"},{id:"accounts/fireworks/models/molmo2-4b",apiName:"accounts/fireworks/models/molmo2-4b",label:"Molmo 2 4B",modelDescriptorId:"accounts/fireworks/models/molmo2-4b"},{id:"accounts/fireworks/models/molmo2-8b",apiName:"accounts/fireworks/models/molmo2-8b",label:"Molmo 2 8B",modelDescriptorId:"accounts/fireworks/models/molmo2-8b"},{id:"accounts/fireworks/models/mythomax-l2-13b",apiName:"accounts/fireworks/models/mythomax-l2-13b",label:"MythoMax L2 13B",modelDescriptorId:"accounts/fireworks/models/mythomax-l2-13b"},{id:"accounts/fireworks/models/nemotron-3-super-120b-a12b-bf16",apiName:"accounts/fireworks/models/nemotron-3-super-120b-a12b-bf16",label:"NVIDIA Nemotron 3 Super 120B A12B BF16",modelDescriptorId:"accounts/fireworks/models/nemotron-3-super-120b-a12b-bf16"},{id:"accounts/fireworks/models/nemotron-3-ultra-bf16",apiName:"accounts/fireworks/models/nemotron-3-ultra-bf16",label:"NVIDIA Nemotron 3 Ultra BF16",modelDescriptorId:"accounts/fireworks/models/nemotron-3-ultra-bf16"},{id:"accounts/fireworks/models/nemotron-3-ultra-nvfp4",apiName:"accounts/fireworks/models/nemotron-3-ultra-nvfp4",label:"NVIDIA Nemotron 3 Ultra NVFP4",modelDescriptorId:"accounts/fireworks/models/nemotron-3-ultra-nvfp4"},{id:"accounts/fireworks/models/nemotron-nano-3-30b-a3b",apiName:"accounts/fireworks/models/nemotron-nano-3-30b-a3b",label:"Nemotron Nano 3 30B A3B",modelDescriptorId:"accounts/fireworks/models/nemotron-nano-3-30b-a3b"},{id:"accounts/fireworks/models/nemotron-nano-v2-12b-vl",apiName:"accounts/fireworks/models/nemotron-nano-v2-12b-vl",label:"Nemotron Nano V2 12B VL",modelDescriptorId:"accounts/fireworks/models/nemotron-nano-v2-12b-vl"},{id:"accounts/fireworks/models/nvidia-nemotron-3-nano-omni-30b-a3b",apiName:"accounts/fireworks/models/nvidia-nemotron-3-nano-omni-30b-a3b",label:"NVIDIA Nemotron 3 Nano Omni 30B A3B",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-nano-omni-30b-a3b"},{id:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-bf16",apiName:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-bf16",label:"NVIDIA Nemotron 3 Super 120B A12B BF16",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-bf16"},{id:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-fp8",apiName:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-fp8",label:"NVIDIA Nemotron 3 Super 120B A12B FP8",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-fp8"},{id:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-nvfp4",apiName:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-nvfp4",label:"NVIDIA Nemotron 3 Super 120B A12B NVFP4",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-3-super-120b-a12b-nvfp4"},{id:"accounts/fireworks/models/nvidia-nemotron-nano-12b-v2",apiName:"accounts/fireworks/models/nvidia-nemotron-nano-12b-v2",label:"NVIDIA Nemotron Nano 12B V2",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-nano-12b-v2"},{id:"accounts/fireworks/models/nvidia-nemotron-nano-9b-v2",apiName:"accounts/fireworks/models/nvidia-nemotron-nano-9b-v2",label:"NVIDIA Nemotron Nano 9B V2",modelDescriptorId:"accounts/fireworks/models/nvidia-nemotron-nano-9b-v2"},{id:"accounts/fireworks/models/nous-capybara-7b-v1p9",apiName:"accounts/fireworks/models/nous-capybara-7b-v1p9",label:"Nous Capybara 7B V1.9",modelDescriptorId:"accounts/fireworks/models/nous-capybara-7b-v1p9"},{id:"accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo",apiName:"accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo",label:"Nous Hermes 2 Mixtral 8x7B DPO",modelDescriptorId:"accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo"},{id:"accounts/fireworks/models/nous-hermes-2-yi-34b",apiName:"accounts/fireworks/models/nous-hermes-2-yi-34b",label:"Nous Hermes 2 Yi 34B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-2-yi-34b"},{id:"accounts/fireworks/models/nous-hermes-llama2-13b",apiName:"accounts/fireworks/models/nous-hermes-llama2-13b",label:"Nous Hermes Llama 2 13B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-llama2-13b"},{id:"accounts/fireworks/models/nous-hermes-llama2-70b",apiName:"accounts/fireworks/models/nous-hermes-llama2-70b",label:"Nous Hermes Llama 2 70B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-llama2-70b"},{id:"accounts/fireworks/models/nous-hermes-llama2-7b",apiName:"accounts/fireworks/models/nous-hermes-llama2-7b",label:"Nous Hermes Llama 2 7B",modelDescriptorId:"accounts/fireworks/models/nous-hermes-llama2-7b"},{id:"accounts/fireworks/models/openchat-3p5-0106-7b",apiName:"accounts/fireworks/models/openchat-3p5-0106-7b",label:"OpenChat 3.5 0106 7B",modelDescriptorId:"accounts/fireworks/models/openchat-3p5-0106-7b"},{id:"accounts/fireworks/models/openhermes-2-mistral-7b",apiName:"accounts/fireworks/models/openhermes-2-mistral-7b",label:"OpenHermes 2 Mistral 7B",modelDescriptorId:"accounts/fireworks/models/openhermes-2-mistral-7b"},{id:"accounts/fireworks/models/openhermes-2p5-mistral-7b",apiName:"accounts/fireworks/models/openhermes-2p5-mistral-7b",label:"OpenHermes 2.5 Mistral 7B",modelDescriptorId:"accounts/fireworks/models/openhermes-2p5-mistral-7b"},{id:"accounts/fireworks/models/openorca-7b",apiName:"accounts/fireworks/models/openorca-7b",label:"OpenOrca 7B",modelDescriptorId:"accounts/fireworks/models/openorca-7b"},{id:"accounts/fireworks/models/phi-2-3b",apiName:"accounts/fireworks/models/phi-2-3b",label:"Phi-2 3B",modelDescriptorId:"accounts/fireworks/models/phi-2-3b"},{id:"accounts/fireworks/models/phi-3-mini-128k-instruct",apiName:"accounts/fireworks/models/phi-3-mini-128k-instruct",label:"Phi-3 Mini 128K Instruct",modelDescriptorId:"accounts/fireworks/models/phi-3-mini-128k-instruct"},{id:"accounts/fireworks/models/phi-3-vision-128k-instruct",apiName:"accounts/fireworks/models/phi-3-vision-128k-instruct",label:"Phi-3 Vision 128K Instruct",modelDescriptorId:"accounts/fireworks/models/phi-3-vision-128k-instruct"},{id:"accounts/fireworks/models/phind-code-llama-34b-python-v1",apiName:"accounts/fireworks/models/phind-code-llama-34b-python-v1",label:"Phind Code Llama 34B Python V1",modelDescriptorId:"accounts/fireworks/models/phind-code-llama-34b-python-v1"},{id:"accounts/fireworks/models/phind-code-llama-34b-v1",apiName:"accounts/fireworks/models/phind-code-llama-34b-v1",label:"Phind Code Llama 34B V1",modelDescriptorId:"accounts/fireworks/models/phind-code-llama-34b-v1"},{id:"accounts/fireworks/models/phind-code-llama-34b-v2",apiName:"accounts/fireworks/models/phind-code-llama-34b-v2",label:"Phind Code Llama 34B V2",modelDescriptorId:"accounts/fireworks/models/phind-code-llama-34b-v2"},{id:"accounts/fireworks/models/pythia-12b",apiName:"accounts/fireworks/models/pythia-12b",label:"Pythia 12B",modelDescriptorId:"accounts/fireworks/models/pythia-12b"},{id:"accounts/fireworks/models/qwen-qwq-32b-preview",apiName:"accounts/fireworks/models/qwen-qwq-32b-preview",label:"Qwen QWQ 32B Preview",modelDescriptorId:"accounts/fireworks/models/qwen-qwq-32b-preview"},{id:"accounts/fireworks/models/qwen-v2p5-14b-instruct",apiName:"accounts/fireworks/models/qwen-v2p5-14b-instruct",label:"Qwen V2.5 14B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen-v2p5-14b-instruct"},{id:"accounts/fireworks/models/qwen-v2p5-7b",apiName:"accounts/fireworks/models/qwen-v2p5-7b",label:"Qwen V2.5 7B",modelDescriptorId:"accounts/fireworks/models/qwen-v2p5-7b"},{id:"accounts/fireworks/models/qwen1p5-72b-chat",apiName:"accounts/fireworks/models/qwen1p5-72b-chat",label:"Qwen 1.5 72B Chat",modelDescriptorId:"accounts/fireworks/models/qwen1p5-72b-chat"},{id:"accounts/fireworks/models/qwen2-72b-instruct",apiName:"accounts/fireworks/models/qwen2-72b-instruct",label:"Qwen 2 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-72b-instruct"},{id:"accounts/fireworks/models/qwen2-7b-instruct",apiName:"accounts/fireworks/models/qwen2-7b-instruct",label:"Qwen 2 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-7b-instruct"},{id:"accounts/fireworks/models/qwen2-vl-2b-instruct",apiName:"accounts/fireworks/models/qwen2-vl-2b-instruct",label:"Qwen 2 VL 2B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-vl-2b-instruct"},{id:"accounts/fireworks/models/qwen2-vl-72b-instruct",apiName:"accounts/fireworks/models/qwen2-vl-72b-instruct",label:"Qwen 2 VL 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-vl-72b-instruct"},{id:"accounts/fireworks/models/qwen2-vl-7b-instruct",apiName:"accounts/fireworks/models/qwen2-vl-7b-instruct",label:"Qwen 2 VL 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2-vl-7b-instruct"},{id:"accounts/fireworks/models/qwen2p5-0p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-0p5b-instruct",label:"Qwen 2.5 0.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-0p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-14b",apiName:"accounts/fireworks/models/qwen2p5-14b",label:"Qwen 2.5 14B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-14b"},{id:"accounts/fireworks/models/qwen2p5-14b-instruct",apiName:"accounts/fireworks/models/qwen2p5-14b-instruct",label:"Qwen 2.5 14B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-14b-instruct"},{id:"accounts/fireworks/models/qwen2p5-1p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-1p5b-instruct",label:"Qwen 2.5 1.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-1p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-32b",apiName:"accounts/fireworks/models/qwen2p5-32b",label:"Qwen 2.5 32B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-32b"},{id:"accounts/fireworks/models/qwen2p5-32b-instruct",apiName:"accounts/fireworks/models/qwen2p5-32b-instruct",label:"Qwen 2.5 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-32b-instruct"},{id:"accounts/fireworks/models/qwen2p5-72b",apiName:"accounts/fireworks/models/qwen2p5-72b",label:"Qwen 2.5 72B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-72b"},{id:"accounts/fireworks/models/qwen2p5-72b-instruct",apiName:"accounts/fireworks/models/qwen2p5-72b-instruct",label:"Qwen 2.5 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-72b-instruct"},{id:"accounts/fireworks/models/qwen2p5-7b-instruct",apiName:"accounts/fireworks/models/qwen2p5-7b-instruct",label:"Qwen 2.5 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-7b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-0p5b",apiName:"accounts/fireworks/models/qwen2p5-coder-0p5b",label:"Qwen 2.5 Coder 0.5B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-0p5b"},{id:"accounts/fireworks/models/qwen2p5-coder-0p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-0p5b-instruct",label:"Qwen 2.5 Coder 0.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-0p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-14b",apiName:"accounts/fireworks/models/qwen2p5-coder-14b",label:"Qwen 2.5 Coder 14B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-14b"},{id:"accounts/fireworks/models/qwen2p5-coder-14b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-14b-instruct",label:"Qwen 2.5 Coder 14B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-14b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-1p5b",apiName:"accounts/fireworks/models/qwen2p5-coder-1p5b",label:"Qwen 2.5 Coder 1.5B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-1p5b"},{id:"accounts/fireworks/models/qwen2p5-coder-1p5b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-1p5b-instruct",label:"Qwen 2.5 Coder 1.5B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-1p5b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-32b",apiName:"accounts/fireworks/models/qwen2p5-coder-32b",label:"Qwen 2.5 Coder 32B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct",label:"Qwen 2.5 Coder 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k",label:"Qwen 2.5 Coder 32B Instruct 128K",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope",label:"Qwen 2.5 Coder 32B Instruct 32K RoPE",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope"},{id:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k",apiName:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k",label:"Qwen 2.5 Coder 32B Instruct 64K",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k"},{id:"accounts/fireworks/models/qwen2p5-coder-3b",apiName:"accounts/fireworks/models/qwen2p5-coder-3b",label:"Qwen 2.5 Coder 3B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-3b"},{id:"accounts/fireworks/models/qwen2p5-coder-3b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-3b-instruct",label:"Qwen 2.5 Coder 3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-3b-instruct"},{id:"accounts/fireworks/models/qwen2p5-coder-7b",apiName:"accounts/fireworks/models/qwen2p5-coder-7b",label:"Qwen 2.5 Coder 7B",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-7b"},{id:"accounts/fireworks/models/qwen2p5-coder-7b-instruct",apiName:"accounts/fireworks/models/qwen2p5-coder-7b-instruct",label:"Qwen 2.5 Coder 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-coder-7b-instruct"},{id:"accounts/fireworks/models/qwen2p5-math-72b-instruct",apiName:"accounts/fireworks/models/qwen2p5-math-72b-instruct",label:"Qwen 2.5 Math 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-math-72b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-32b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-32b-instruct",label:"Qwen 2.5 VL 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-32b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-3b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-3b-instruct",label:"Qwen 2.5 VL 3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-3b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-72b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-72b-instruct",label:"Qwen 2.5 VL 72B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-72b-instruct"},{id:"accounts/fireworks/models/qwen2p5-vl-7b-instruct",apiName:"accounts/fireworks/models/qwen2p5-vl-7b-instruct",label:"Qwen 2.5 VL 7B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen2p5-vl-7b-instruct"},{id:"accounts/fireworks/models/qwen3-0p6b",apiName:"accounts/fireworks/models/qwen3-0p6b",label:"Qwen3 0.6B",modelDescriptorId:"accounts/fireworks/models/qwen3-0p6b"},{id:"accounts/fireworks/models/qwen3-14b",apiName:"accounts/fireworks/models/qwen3-14b",label:"Qwen3 14B",modelDescriptorId:"accounts/fireworks/models/qwen3-14b"},{id:"accounts/fireworks/models/qwen3-1p7b",apiName:"accounts/fireworks/models/qwen3-1p7b",label:"Qwen3 1.7B",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b"},{id:"accounts/fireworks/models/qwen3-1p7b-fp8-draft",apiName:"accounts/fireworks/models/qwen3-1p7b-fp8-draft",label:"Qwen3 1.7B FP8 Draft",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b-fp8-draft"},{id:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072",apiName:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072",label:"Qwen3 1.7B FP8 Draft 131K",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072"},{id:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960",apiName:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960",label:"Qwen3 1.7B FP8 Draft 40K",modelDescriptorId:"accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960"},{id:"accounts/fireworks/models/qwen3-235b-a22b",apiName:"accounts/fireworks/models/qwen3-235b-a22b",label:"Qwen3 235B A22B",modelDescriptorId:"accounts/fireworks/models/qwen3-235b-a22b"},{id:"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507",apiName:"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507",label:"Qwen3 235B A22B Instruct 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507"},{id:"accounts/fireworks/models/qwen3-30b-a3b",apiName:"accounts/fireworks/models/qwen3-30b-a3b",label:"Qwen3 30B A3B",modelDescriptorId:"accounts/fireworks/models/qwen3-30b-a3b"},{id:"accounts/fireworks/models/qwen3-30b-a3b-instruct-2507",apiName:"accounts/fireworks/models/qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-30b-a3b-instruct-2507"},{id:"accounts/fireworks/models/qwen3-30b-a3b-thinking-2507",apiName:"accounts/fireworks/models/qwen3-30b-a3b-thinking-2507",label:"Qwen3 30B A3B Thinking 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-30b-a3b-thinking-2507"},{id:"accounts/fireworks/models/qwen3-32b",apiName:"accounts/fireworks/models/qwen3-32b",label:"Qwen3 32B",modelDescriptorId:"accounts/fireworks/models/qwen3-32b"},{id:"accounts/fireworks/models/qwen3-4b",apiName:"accounts/fireworks/models/qwen3-4b",label:"Qwen3 4B",modelDescriptorId:"accounts/fireworks/models/qwen3-4b"},{id:"accounts/fireworks/models/qwen3-4b-instruct-2507",apiName:"accounts/fireworks/models/qwen3-4b-instruct-2507",label:"Qwen3 4B Instruct 2507",modelDescriptorId:"accounts/fireworks/models/qwen3-4b-instruct-2507"},{id:"accounts/fireworks/models/qwen3-8b",apiName:"accounts/fireworks/models/qwen3-8b",label:"Qwen3 8B",modelDescriptorId:"accounts/fireworks/models/qwen3-8b"},{id:"accounts/fireworks/models/qwen3-coder-30b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-coder-30b-a3b-instruct",label:"Qwen3 Coder 30B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-coder-30b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",apiName:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",label:"Qwen3 Coder 480B A35B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct"},{id:"accounts/fireworks/models/qwen3-coder-480b-instruct-bf16",apiName:"accounts/fireworks/models/qwen3-coder-480b-instruct-bf16",label:"Qwen3 Coder 480B Instruct BF16",modelDescriptorId:"accounts/fireworks/models/qwen3-coder-480b-instruct-bf16"},{id:"accounts/fireworks/models/qwen3-embedding-0p6b",apiName:"accounts/fireworks/models/qwen3-embedding-0p6b",label:"Qwen3 Embedding 0.6B",modelDescriptorId:"accounts/fireworks/models/qwen3-embedding-0p6b"},{id:"accounts/fireworks/models/qwen3-embedding-4b",apiName:"accounts/fireworks/models/qwen3-embedding-4b",label:"Qwen3 Embedding 4B",modelDescriptorId:"accounts/fireworks/models/qwen3-embedding-4b"},{id:"accounts/fireworks/models/qwen3-embedding-8b",apiName:"accounts/fireworks/models/qwen3-embedding-8b",label:"Qwen3 Embedding 8B",modelDescriptorId:"accounts/fireworks/models/qwen3-embedding-8b"},{id:"accounts/fireworks/models/qwen3-next-80b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-next-80b-a3b-instruct",label:"Qwen3 Next 80B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-next-80b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-next-80b-a3b-thinking",apiName:"accounts/fireworks/models/qwen3-next-80b-a3b-thinking",label:"Qwen3 Next 80B A3B Thinking",modelDescriptorId:"accounts/fireworks/models/qwen3-next-80b-a3b-thinking"},{id:"accounts/fireworks/models/qwen3-omni-30b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-omni-30b-a3b-instruct",label:"Qwen3 Omni 30B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-omni-30b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-reranker-0p6b",apiName:"accounts/fireworks/models/qwen3-reranker-0p6b",label:"Qwen3 Reranker 0.6B",modelDescriptorId:"accounts/fireworks/models/qwen3-reranker-0p6b"},{id:"accounts/fireworks/models/qwen3-reranker-4b",apiName:"accounts/fireworks/models/qwen3-reranker-4b",label:"Qwen3 Reranker 4B",modelDescriptorId:"accounts/fireworks/models/qwen3-reranker-4b"},{id:"accounts/fireworks/models/qwen3-reranker-8b",apiName:"accounts/fireworks/models/qwen3-reranker-8b",label:"Qwen3 Reranker 8B",modelDescriptorId:"accounts/fireworks/models/qwen3-reranker-8b"},{id:"accounts/fireworks/models/qwen3-vl-235b-a22b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-235b-a22b-instruct",label:"Qwen3 VL 235B A22B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-235b-a22b-instruct"},{id:"accounts/fireworks/models/qwen3-vl-235b-a22b-thinking",apiName:"accounts/fireworks/models/qwen3-vl-235b-a22b-thinking",label:"Qwen3 VL 235B A22B Thinking",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-235b-a22b-thinking"},{id:"accounts/fireworks/models/qwen3-vl-30b-a3b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-30b-a3b-instruct",label:"Qwen3 VL 30B A3B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-30b-a3b-instruct"},{id:"accounts/fireworks/models/qwen3-vl-30b-a3b-thinking",apiName:"accounts/fireworks/models/qwen3-vl-30b-a3b-thinking",label:"Qwen3 VL 30B A3B Thinking",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-30b-a3b-thinking"},{id:"accounts/fireworks/models/qwen3-vl-32b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-32b-instruct",label:"Qwen3 VL 32B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-32b-instruct"},{id:"accounts/fireworks/models/qwen3-vl-8b-instruct",apiName:"accounts/fireworks/models/qwen3-vl-8b-instruct",label:"Qwen3 VL 8B Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3-vl-8b-instruct"},{id:"accounts/fireworks/models/qwen3p5-122b-a10b",apiName:"accounts/fireworks/models/qwen3p5-122b-a10b",label:"Qwen3.5 122B A10B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-122b-a10b"},{id:"accounts/fireworks/models/qwen3p5-27b",apiName:"accounts/fireworks/models/qwen3p5-27b",label:"Qwen3.5 27B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-27b"},{id:"accounts/fireworks/models/qwen3p5-35b-a3b",apiName:"accounts/fireworks/models/qwen3p5-35b-a3b",label:"Qwen3.5 35B A3B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-35b-a3b"},{id:"accounts/fireworks/models/qwen3p5-397b-a17b",apiName:"accounts/fireworks/models/qwen3p5-397b-a17b",label:"Qwen3.5 397B A17B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-397b-a17b"},{id:"accounts/fireworks/models/qwen3p5-9b",apiName:"accounts/fireworks/models/qwen3p5-9b",label:"Qwen3.5 9B",modelDescriptorId:"accounts/fireworks/models/qwen3p5-9b"},{id:"accounts/fireworks/models/qwen3p6-27b",apiName:"accounts/fireworks/models/qwen3p6-27b",label:"Qwen3.6 27B",modelDescriptorId:"accounts/fireworks/models/qwen3p6-27b"},{id:"accounts/fireworks/models/qwen3p6-35b-a3b",apiName:"accounts/fireworks/models/qwen3p6-35b-a3b",label:"Qwen3.6 35B A3B",modelDescriptorId:"accounts/fireworks/models/qwen3p6-35b-a3b"},{id:"accounts/fireworks/models/qwen3p6-plus",apiName:"accounts/fireworks/models/qwen3p6-plus",label:"Qwen3.6 Plus",modelDescriptorId:"accounts/fireworks/models/qwen3p6-plus"},{id:"accounts/fireworks/models/qwen3p7-plus-vl-instruct",apiName:"accounts/fireworks/models/qwen3p7-plus-vl-instruct",label:"Qwen3.7 Plus VL Instruct",modelDescriptorId:"accounts/fireworks/models/qwen3p7-plus-vl-instruct"},{id:"accounts/fireworks/models/qwq-32b",apiName:"accounts/fireworks/models/qwq-32b",label:"QWQ 32B",modelDescriptorId:"accounts/fireworks/models/qwq-32b"},{id:"accounts/fireworks/models/rolm-ocr",apiName:"accounts/fireworks/models/rolm-ocr",label:"Rolm OCR",modelDescriptorId:"accounts/fireworks/models/rolm-ocr"},{id:"accounts/fireworks/models/seed-oss-36b-instruct",apiName:"accounts/fireworks/models/seed-oss-36b-instruct",label:"Seed OSS 36B Instruct",modelDescriptorId:"accounts/fireworks/models/seed-oss-36b-instruct"},{id:"accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo",apiName:"accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo",label:"Snorkel Mistral 7B Paired DPO",modelDescriptorId:"accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo"},{id:"accounts/fireworks/models/stablecode-3b",apiName:"accounts/fireworks/models/stablecode-3b",label:"StableCode 3B",modelDescriptorId:"accounts/fireworks/models/stablecode-3b"},{id:"accounts/fireworks/models/starcoder-16b",apiName:"accounts/fireworks/models/starcoder-16b",label:"StarCoder 16B",modelDescriptorId:"accounts/fireworks/models/starcoder-16b"},{id:"accounts/fireworks/models/starcoder-7b",apiName:"accounts/fireworks/models/starcoder-7b",label:"StarCoder 7B",modelDescriptorId:"accounts/fireworks/models/starcoder-7b"},{id:"accounts/fireworks/models/starcoder2-15b",apiName:"accounts/fireworks/models/starcoder2-15b",label:"StarCoder 2 15B",modelDescriptorId:"accounts/fireworks/models/starcoder2-15b"},{id:"accounts/fireworks/models/starcoder2-3b",apiName:"accounts/fireworks/models/starcoder2-3b",label:"StarCoder 2 3B",modelDescriptorId:"accounts/fireworks/models/starcoder2-3b"},{id:"accounts/fireworks/models/starcoder2-7b",apiName:"accounts/fireworks/models/starcoder2-7b",label:"StarCoder 2 7B",modelDescriptorId:"accounts/fireworks/models/starcoder2-7b"},{id:"accounts/fireworks/models/step-3p7-flash-nvfp4",apiName:"accounts/fireworks/models/step-3p7-flash-nvfp4",label:"Step 3.7 Flash NVFP4",modelDescriptorId:"accounts/fireworks/models/step-3p7-flash-nvfp4"},{id:"accounts/fireworks/models/toppy-m-7b",apiName:"accounts/fireworks/models/toppy-m-7b",label:"Toppy M 7B",modelDescriptorId:"accounts/fireworks/models/toppy-m-7b"},{id:"accounts/fireworks/models/voyage-4-nano",apiName:"accounts/fireworks/models/voyage-4-nano",label:"Voyage 4 Nano",modelDescriptorId:"accounts/fireworks/models/voyage-4-nano"},{id:"accounts/fireworks/models/yi-34b-200k-capybara",apiName:"accounts/fireworks/models/yi-34b-200k-capybara",label:"Yi 34B 200K Capybara",modelDescriptorId:"accounts/fireworks/models/yi-34b-200k-capybara"},{id:"accounts/fireworks/models/zephyr-7b-beta",apiName:"accounts/fireworks/models/zephyr-7b-beta",label:"Zephyr 7B Beta",modelDescriptorId:"accounts/fireworks/models/zephyr-7b-beta"}]},usage:{supported:!1}})});var gemini_default;var init_gemini=__esm(()=>{gemini_default=defineVendor({id:"gemini",label:"Google AI / Gemini",classification:"native",defaultBaseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",defaultModel:"gemini-3-flash-preview",requiredEnvVars:["GEMINI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["GEMINI_API_KEY"]},transportConfig:{kind:"gemini-native",openaiShim:{removeBodyFields:["store"]}},preset:{id:"gemini",description:"Google AI / Gemini OpenAI-compatible endpoint",apiKeyEnvVars:["GEMINI_API_KEY"]},validation:{kind:"gemini-credential",routing:{enablementEnvVar:"CLAUDE_CODE_USE_GEMINI"},missingCredentialMessage:"GEMINI_API_KEY, GOOGLE_API_KEY, GEMINI_ACCESS_TOKEN, or Google ADC credentials are required when CLAUDE_CODE_USE_GEMINI=1."},catalog:{source:"static",models:[{id:"gemini-3-flash-preview",apiName:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",apiName:"gemini-2.5-pro",label:"Gemini 2.5 Pro"},{id:"gemma-4-26b-a4b-it",apiName:"gemma-4-26b-a4b-it",label:"Gemma 4 26B A4B"},{id:"gemma-4-31b-it",apiName:"gemma-4-31b-it",label:"Gemma 4 31B"}]},usage:{supported:!1}})});var minimax_default;var init_minimax=__esm(()=>{minimax_default=defineVendor({id:"minimax",label:"MiniMax",classification:"native",defaultBaseUrl:"https://api.minimax.io/anthropic",defaultModel:"MiniMax-M3",requiredEnvVars:["MINIMAX_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["MINIMAX_API_KEY"]},transportConfig:{kind:"anthropic-proxy"},preset:{id:"minimax",description:"MiniMax API endpoint",apiKeyEnvVars:["MINIMAX_API_KEY"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.minimax.io","api.minimax.chat"]},credentialEnvVars:["MINIMAX_API_KEY"],missingCredentialMessage:"MiniMax auth is required. Set MINIMAX_API_KEY."},catalog:{source:"static",models:[{id:"minimax-m2",apiName:"MiniMax-M2",label:"MiniMax M2",modelDescriptorId:"minimax-m2",contextWindow:204800},{id:"minimax-m2.1",apiName:"MiniMax-M2.1",label:"MiniMax M2.1",modelDescriptorId:"minimax-m2.1",contextWindow:204800},{id:"minimax-m2.1-highspeed",apiName:"MiniMax-M2.1-highspeed",label:"MiniMax M2.1 Highspeed",modelDescriptorId:"minimax-m2.1-highspeed",contextWindow:204800},{id:"minimax-m2.5",apiName:"MiniMax-M2.5",label:"MiniMax M2.5",modelDescriptorId:"minimax-m2.5",contextWindow:204800},{id:"minimax-m2.5-highspeed",apiName:"MiniMax-M2.5-highspeed",label:"MiniMax M2.5 Highspeed",modelDescriptorId:"minimax-m2.5-highspeed",contextWindow:204800},{id:"minimax-m2.7",apiName:"MiniMax-M2.7",label:"MiniMax M2.7",modelDescriptorId:"minimax-m2.7",contextWindow:204800},{id:"minimax-m2.7-highspeed",apiName:"MiniMax-M2.7-highspeed",label:"MiniMax M2.7 Highspeed",modelDescriptorId:"minimax-m2.7-highspeed",contextWindow:204800},{id:"minimax-m3",apiName:"MiniMax-M3",label:"MiniMax M3",modelDescriptorId:"minimax-m3",contextWindow:1048576},{id:"minimax-text-01",apiName:"MiniMax-Text-01",label:"MiniMax Text 01",modelDescriptorId:"minimax-text-01"},{id:"minimax-text-01-preview",apiName:"MiniMax-Text-01-Preview",label:"MiniMax Text 01 Preview",modelDescriptorId:"minimax-text-01-preview"},{id:"minimax-vision-01",apiName:"MiniMax-Vision-01",label:"MiniMax Vision 01",modelDescriptorId:"minimax-vision-01"},{id:"minimax-vision-01-fast",apiName:"MiniMax-Vision-01-Fast",label:"MiniMax Vision 01 Fast",modelDescriptorId:"minimax-vision-01-fast"}]},usage:{supported:!0}})});var moonshot_default;var init_moonshot=__esm(()=>{moonshot_default=defineVendor({id:"moonshot",label:"Moonshot AI",classification:"openai-compatible",defaultBaseUrl:"https://api.moonshot.ai/v1",defaultModel:"kimi-k2.7-code",requiredEnvVars:["MOONSHOT_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["MOONSHOT_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",maxTokensField:"max_tokens",removeBodyFields:["store"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"moonshotai",description:"Moonshot AI - API endpoint",label:"Moonshot AI - API",name:"Moonshot AI - API",apiKeyEnvVars:["MOONSHOT_API_KEY"]},catalog:{source:"static",models:[{id:"kimi-k2.7-code",apiName:"kimi-k2.7-code",aliases:["moonshotai/kimi-k2.7-code"],label:"Kimi K2.7 Code",modelDescriptorId:"kimi-k2.7-code",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"kimi-k2.6",apiName:"kimi-k2.6",aliases:["moonshotai/kimi-k2.6"],label:"Kimi K2.6",modelDescriptorId:"kimi-k2.6",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"kimi-k2.5",apiName:"kimi-k2.5",aliases:["moonshotai/kimi-k2.5"],label:"Kimi K2.5",modelDescriptorId:"kimi-k2.5",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}}]},usage:{supported:!1}})});var nearai_default;var init_nearai=__esm(()=>{nearai_default=defineVendor({id:"nearai",label:"NEAR AI",classification:"openai-compatible",defaultBaseUrl:"https://cloud-api.near.ai/v1",defaultModel:"anthropic/claude-sonnet-4-6",requiredEnvVars:["NEARAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["NEARAI_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"nearai",description:"NEAR AI unified gateway (Claude, GPT, Gemini + TEE models)",apiKeyEnvVars:["NEARAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["cloud-api.near.ai","completions.near.ai","*.completions.near.ai"]},credentialEnvVars:["NEARAI_API_KEY"],missingCredentialMessage:"NEARAI_API_KEY is required."},catalog:{source:"static",models:[{id:"anthropic/claude-opus-4-8",apiName:"anthropic/claude-opus-4-8",label:"Claude Opus 4.8",modelDescriptorId:"anthropic/claude-opus-4-8"},{id:"anthropic/claude-opus-4-7",apiName:"anthropic/claude-opus-4-7",label:"Claude Opus 4.7",modelDescriptorId:"anthropic/claude-opus-4-7"},{id:"anthropic/claude-opus-4-6",apiName:"anthropic/claude-opus-4-6",label:"Claude Opus 4.6",modelDescriptorId:"anthropic/claude-opus-4-6"},{id:"anthropic/claude-sonnet-4-6",apiName:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet 4.6",modelDescriptorId:"anthropic/claude-sonnet-4-6"},{id:"anthropic/claude-sonnet-4-5",apiName:"anthropic/claude-sonnet-4-5",label:"Claude Sonnet 4.5",modelDescriptorId:"anthropic/claude-sonnet-4-5"},{id:"anthropic/claude-haiku-4-5",apiName:"anthropic/claude-haiku-4-5",label:"Claude Haiku 4.5",modelDescriptorId:"anthropic/claude-haiku-4-5"},{id:"openai/gpt-5.5",apiName:"openai/gpt-5.5",label:"GPT-5.5",modelDescriptorId:"openai/gpt-5.5"},{id:"openai/gpt-5.4",apiName:"openai/gpt-5.4",label:"GPT-5.4",modelDescriptorId:"openai/gpt-5.4"},{id:"openai/gpt-5",apiName:"openai/gpt-5",label:"GPT-5",modelDescriptorId:"openai/gpt-5"},{id:"openai/gpt-4.1",apiName:"openai/gpt-4.1",label:"GPT-4.1",modelDescriptorId:"openai/gpt-4.1"},{id:"openai/gpt-4.1-mini",apiName:"openai/gpt-4.1-mini",label:"GPT-4.1 Mini",modelDescriptorId:"openai/gpt-4.1-mini"},{id:"openai/o3",apiName:"openai/o3",label:"o3",modelDescriptorId:"openai/o3"},{id:"openai/o4-mini",apiName:"openai/o4-mini",label:"o4-mini",modelDescriptorId:"openai/o4-mini"},{id:"openai/gpt-oss-120b",apiName:"openai/gpt-oss-120b",label:"GPT-OSS 120B (TEE)",modelDescriptorId:"openai/gpt-oss-120b"},{id:"google/gemini-3.5-flash",apiName:"google/gemini-3.5-flash",label:"Gemini 3.5 Flash",modelDescriptorId:"google/gemini-3.5-flash"},{id:"google/gemini-2.5-pro",apiName:"google/gemini-2.5-pro",label:"Gemini 2.5 Pro",modelDescriptorId:"google/gemini-2.5-pro"},{id:"google/gemini-2.5-flash",apiName:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash",modelDescriptorId:"google/gemini-2.5-flash"},{id:"google/gemma-4-31B-it",apiName:"google/gemma-4-31B-it",label:"Gemma 4 31B (TEE)",modelDescriptorId:"google/gemma-4-31B-it"},{id:"zai-org/GLM-5.1-FP8",apiName:"zai-org/GLM-5.1-FP8",label:"GLM 5.1 (TEE)",modelDescriptorId:"zai-org/GLM-5.1-FP8"},{id:"Qwen/Qwen3.5-122B-A10B",apiName:"Qwen/Qwen3.5-122B-A10B",label:"Qwen3.5 122B (TEE)",modelDescriptorId:"Qwen/Qwen3.5-122B-A10B"},{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",apiName:"Qwen/Qwen3-30B-A3B-Instruct-2507",label:"Qwen3 30B Instruct (TEE)",modelDescriptorId:"Qwen/Qwen3-30B-A3B-Instruct-2507"},{id:"moonshotai/kimi-k2.6",apiName:"moonshotai/kimi-k2.6",label:"Kimi K2.6",modelDescriptorId:"moonshotai/kimi-k2.6"},{id:"qwen/qwen3.7-max",apiName:"qwen/qwen3.7-max",label:"Qwen3.7 Max",modelDescriptorId:"qwen/qwen3.7-max"}]}})});var openai_default;var init_openai=__esm(()=>{openai_default=defineVendor({id:"openai",label:"OpenAI",classification:"openai-compatible",defaultBaseUrl:"https://api.openai.com/v1",defaultModel:"gpt-5.4",requiredEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsApiFormatSelection:!0,supportsAuthHeaders:!0}},preset:{id:"openai",description:"OpenAI API with API key",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,fallbackWhenUseOpenAI:!0},credentialEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],allowLocalBaseUrlWithoutCredential:!0,missingCredentialMessage:"OPENAI_API_KEYS or OPENAI_API_KEY is required when CLAUDE_CODE_USE_OPENAI=1 and OPENAI_BASE_URL is not local.",invalidCredentialValues:[{envVar:"OPENAI_API_KEYS",value:"SUA_CHAVE",message:"Invalid OPENAI_API_KEYS: placeholder value SUA_CHAVE detected. Set real key(s) or unset for local providers."},{envVar:"OPENAI_API_KEY",value:"SUA_CHAVE",message:"Invalid OPENAI_API_KEY: placeholder value SUA_CHAVE detected. Set a real key or unset for local providers."}]},isFirstParty:!0,catalog:{source:"static",models:[{id:"gpt-5.6-sol",apiName:"gpt-5.6-sol",label:"GPT-5.6 Sol",modelDescriptorId:"gpt-5.6-sol",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.6-terra",apiName:"gpt-5.6-terra",label:"GPT-5.6 Terra",modelDescriptorId:"gpt-5.6-terra",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.6-luna",apiName:"gpt-5.6-luna",label:"GPT-5.6 Luna",modelDescriptorId:"gpt-5.6-luna",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.5",apiName:"gpt-5.5",label:"GPT-5.5",modelDescriptorId:"gpt-5.5",contextWindow:272000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5.4",apiName:"gpt-5.4",label:"GPT-5.4",modelDescriptorId:"gpt-5.4",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"high",wireFormat:"reasoning_effort"}},{id:"gpt-5-mini",apiName:"gpt-5-mini",label:"GPT-5 Mini"},{id:"gpt-4o",apiName:"gpt-4o",label:"GPT-4o"},{id:"gpt-4o-mini",apiName:"gpt-4o-mini",label:"GPT-4o Mini"}]},usage:{supported:!1}})});var venice_default;var init_venice=__esm(()=>{venice_default=defineVendor({id:"venice",label:"Venice",classification:"openai-compatible",defaultBaseUrl:"https://api.venice.ai/api/v1",defaultModel:"venice-uncensored",requiredEnvVars:["VENICE_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["VENICE_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"venice",description:"Venice OpenAI-compatible endpoint",apiKeyEnvVars:["VENICE_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.venice.ai"]},credentialEnvVars:["VENICE_API_KEY","OPENAI_API_KEYS","OPENAI_API_KEY"],missingCredentialMessage:"Venice auth is required. Set VENICE_API_KEY or OPENAI_API_KEYS / OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"venice-uncensored",apiName:"venice-uncensored",label:"Venice Uncensored"}]},usage:{supported:!0}})});var xai_default;var init_xai=__esm(()=>{xai_default=defineVendor({id:"xai",label:"xAI",classification:"openai-compatible",defaultBaseUrl:"https://api.x.ai/v1",defaultModel:"grok-4.3",requiredEnvVars:["XAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["XAI_API_KEY"]},transportConfig:{kind:"openai-compatible"},preset:{id:"xai",description:"xAI Grok OpenAI-compatible endpoint",apiKeyEnvVars:["XAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"xai-credential",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.x.ai"]},credentialEnvVars:["XAI_API_KEY"],credentialSourceEnvMarkers:{XAI_CREDENTIAL_SOURCE:["oauth"]},missingCredentialMessage:"XAI_API_KEY is required, or sign in with `openclaude auth xai login` (browser OAuth) or `openclaude auth xai device` (remote hosts)."},catalog:{source:"static",models:[{id:"grok-4.3",apiName:"grok-4.3",aliases:["grok-4.3-latest","grok-latest","grok-4","grok-3"],label:"Grok 4.3",modelDescriptorId:"grok-4.3",contextWindow:1e6,maxOutputTokens:32768,reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"grok-build-0.1",apiName:"grok-build-0.1",aliases:["grok-code-fast-1","grok-code-fast","grok-code-fast-1-0825"],label:"Grok Build 0.1",modelDescriptorId:"xai/grok-build-0.1",contextWindow:256000,maxOutputTokens:64000,capabilities:{supportsReasoning:!1},transportOverrides:{openaiShim:{endpointPath:"/responses",removeBodyFields:["reasoning_effort"]}}},{id:"grok-4.20-0309-reasoning",apiName:"grok-4.20-0309-reasoning",aliases:["grok-4.20-reasoning-latest","grok-4.20","grok-4.20-reasoning","grok-4.20-0309","grok-4.20-beta-0309-reasoning","grok-4.20-beta","grok-4.20-beta-0309","grok-4.20-beta-latest","grok-4.20-beta-latest-reasoning","grok-4.20-beta-reasoning","grok-4.20-experimental-beta-0304-reasoning","grok-4.20-experimental-beta-0304","grok-4.20-experimental-beta-reasoning-latest","grok-4.20-experimental-beta-latest","grok-4.20-reasoning-gv2"],label:"Grok 4.20 Reasoning",modelDescriptorId:"grok-4.20-0309-reasoning",contextWindow:1e6,maxOutputTokens:32768,reasoning:{mode:"always-on",wireFormat:"none"},transportOverrides:{openaiShim:{endpointPath:"/responses",removeBodyFields:["reasoning_effort"]}}},{id:"grok-4.20-0309-non-reasoning",apiName:"grok-4.20-0309-non-reasoning",aliases:["grok-4.20-non-reasoning","grok-4.20-non-reasoning-latest","grok-4.20-beta-non-reasoning","grok-4.20-beta-latest-non-reasoning","grok-4.20-experimental-beta-0304-non-reasoning","grok-4.20-experimental-beta-non-reasoning-latest","grok-4.20-beta-0309-non-reasoning","grok-4.20-non-reasoning-gv2"],label:"Grok 4.20 Non-Reasoning",modelDescriptorId:"grok-4.20-0309-non-reasoning",contextWindow:1e6,maxOutputTokens:32768,capabilities:{supportsReasoning:!1}}]},usage:{supported:!1}})});var xiaomi_mimo_default;var init_xiaomi_mimo=__esm(()=>{xiaomi_mimo_default=defineVendor({id:"xiaomi-mimo",label:"Xiaomi MiMo",classification:"openai-compatible",defaultBaseUrl:"https://api.xiaomimimo.com/v1",defaultModel:"mimo-v2.5-pro",requiredEnvVars:["MIMO_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["MIMO_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{defaultAuthHeader:{name:"api-key",scheme:"raw"},preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,maxTokensField:"max_completion_tokens",removeBodyFields:["store","stream_options"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"xiaomi-mimo",description:"Xiaomi MiMo OpenAI-compatible endpoint",label:"Xiaomi MiMo",name:"Xiaomi MiMo",apiKeyEnvVars:["MIMO_API_KEY"],modelEnvVars:["OPENAI_MODEL"],badge:{text:"Sponsor",color:"success"}},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.xiaomimimo.com","api.mimo-v2.com"]},credentialEnvVars:["MIMO_API_KEY","OPENAI_API_KEYS","OPENAI_API_KEY"],missingCredentialMessage:"Xiaomi MiMo auth is required. Set MIMO_API_KEY or OPENAI_API_KEYS / OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"mimo-v2.5-pro",apiName:"mimo-v2.5-pro",label:"MiMo V2.5 Pro",modelDescriptorId:"mimo-v2.5-pro",reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"mimo-v2.5",apiName:"mimo-v2.5",label:"MiMo V2.5",modelDescriptorId:"mimo-v2.5",reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}}]},usage:{supported:!1}})});var zai_default;var init_zai=__esm(()=>{zai_default=defineVendor({id:"zai",label:"Z.AI",classification:"openai-compatible",defaultBaseUrl:"https://api.z.ai/api/coding/paas/v4",defaultModel:"glm-5.2",requiredEnvVars:["OPENAI_API_KEY"],setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["OPENAI_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",thinkingRequestFormat:"zai-compatible",maxTokensField:"max_tokens",removeBodyFields:["store"]}},preset:{id:"zai",description:"Z.AI GLM coding subscription endpoint",label:"Z.AI - GLM Coding Plan",name:"Z.AI - GLM Coding Plan",apiKeyEnvVars:["OPENAI_API_KEY"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.z.ai"]},credentialEnvVars:["OPENAI_API_KEY"],missingCredentialMessage:"OPENAI_API_KEY is required for Z.AI GLM Coding Plan."},catalog:{source:"static",models:[{id:"glm-5.2",apiName:"glm-5.2",label:"GLM-5.2",modelDescriptorId:"glm-5.2",transportOverrides:{openaiShim:{enableToolStreaming:!0}}},{id:"GLM-5.1",apiName:"GLM-5.1",label:"GLM-5.1",modelDescriptorId:"GLM-5.1"},{id:"GLM-5-Turbo",apiName:"GLM-5-Turbo",label:"GLM-5-Turbo",modelDescriptorId:"GLM-5-Turbo"},{id:"GLM-4.7",apiName:"GLM-4.7",label:"GLM-4.7",modelDescriptorId:"GLM-4.7"},{id:"GLM-4.5-Air",apiName:"GLM-4.5-Air",label:"GLM-4.5-Air",modelDescriptorId:"GLM-4.5-Air"}]},usage:{supported:!1}})});var require_constants=__commonJS((exports,module)=>{var MAX_SAFE_INTEGER3=Number.MAX_SAFE_INTEGER||9007199254740991,RELEASE_TYPES=["major","premajor","minor","preminor","patch","prepatch","prerelease"];module.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER3,RELEASE_TYPES,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var require_debug=__commonJS((exports,module)=>{var debug=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...args)=>console.error("SEMVER",...args):()=>{};module.exports=debug});var require_re=__commonJS((exports,module)=>{var{MAX_SAFE_COMPONENT_LENGTH,MAX_SAFE_BUILD_LENGTH,MAX_LENGTH}=require_constants(),debug=require_debug();exports=module.exports={};var re=exports.re=[],safeRe=exports.safeRe=[],src=exports.src=[],safeSrc=exports.safeSrc=[],t=exports.t={},R=0,LETTERDASHNUMBER="[a-zA-Z0-9-]",safeRegexReplacements=[["\\s",1],["\\d",MAX_LENGTH],[LETTERDASHNUMBER,MAX_SAFE_BUILD_LENGTH]],makeSafeRegex=(value)=>{for(let[token,max]of safeRegexReplacements)value=value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);return value},createToken=(name,value,isGlobal)=>{let safe=makeSafeRegex(value),index=R++;debug(name,index,value),t[name]=index,src[index]=value,safeSrc[index]=safe,re[index]=new RegExp(value,isGlobal?"g":void 0),safeRe[index]=new RegExp(safe,isGlobal?"g":void 0)};createToken("NUMERICIDENTIFIER","0|[1-9]\\d*");createToken("NUMERICIDENTIFIERLOOSE","\\d+");createToken("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);createToken("MAINVERSION",`(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`);createToken("MAINVERSIONLOOSE",`(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASEIDENTIFIER",`(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);createToken("PRERELEASEIDENTIFIERLOOSE",`(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASE",`(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`);createToken("PRERELEASELOOSE",`(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);createToken("BUILDIDENTIFIER",`${LETTERDASHNUMBER}+`);createToken("BUILD",`(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`);createToken("FULLPLAIN",`v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);createToken("FULL",`^${src[t.FULLPLAIN]}$`);createToken("LOOSEPLAIN",`[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);createToken("LOOSE",`^${src[t.LOOSEPLAIN]}$`);createToken("GTLT","((?:<|>)?=?)");createToken("XRANGEIDENTIFIERLOOSE",`${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);createToken("XRANGEIDENTIFIER",`${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);createToken("XRANGEPLAIN",`[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);createToken("XRANGEPLAINLOOSE",`[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);createToken("XRANGE",`^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);createToken("XRANGELOOSE",`^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);createToken("COERCEPLAIN",`(^|[^\\d])(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);createToken("COERCE",`${src[t.COERCEPLAIN]}(?:$|[^\\d])`);createToken("COERCEFULL",src[t.COERCEPLAIN]+`(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`);createToken("COERCERTL",src[t.COERCE],!0);createToken("COERCERTLFULL",src[t.COERCEFULL],!0);createToken("LONETILDE","(?:~>?)");createToken("TILDETRIM",`(\\s*)${src[t.LONETILDE]}\\s+`,!0);exports.tildeTrimReplace="$1~";createToken("TILDE",`^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);createToken("TILDELOOSE",`^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);createToken("LONECARET","(?:\\^)");createToken("CARETTRIM",`(\\s*)${src[t.LONECARET]}\\s+`,!0);exports.caretTrimReplace="$1^";createToken("CARET",`^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);createToken("CARETLOOSE",`^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);createToken("COMPARATORLOOSE",`^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);createToken("COMPARATOR",`^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);createToken("COMPARATORTRIM",`(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`,!0);exports.comparatorTrimReplace="$1$2$3";createToken("HYPHENRANGE",`^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`);createToken("HYPHENRANGELOOSE",`^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`);createToken("STAR","(<|>)?=?\\s*\\*");createToken("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");createToken("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var require_parse_options=__commonJS((exports,module)=>{var looseOption=Object.freeze({loose:!0}),emptyOpts=Object.freeze({}),parseOptions=(options)=>{if(!options)return emptyOpts;if(typeof options!=="object")return looseOption;return options};module.exports=parseOptions});var require_identifiers=__commonJS((exports,module)=>{var numeric=/^[0-9]+$/,compareIdentifiers=(a,b)=>{if(typeof a==="number"&&typeof b==="number")return a===b?0:a<b?-1:1;let anum=numeric.test(a),bnum=numeric.test(b);if(anum&&bnum)a=+a,b=+b;return a===b?0:anum&&!bnum?-1:bnum&&!anum?1:a<b?-1:1},rcompareIdentifiers=(a,b)=>compareIdentifiers(b,a);module.exports={compareIdentifiers,rcompareIdentifiers}});var require_semver=__commonJS((exports,module)=>{var debug=require_debug(),{MAX_LENGTH,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER3}=require_constants(),{safeRe:re,t}=require_re(),parseOptions=require_parse_options(),{compareIdentifiers}=require_identifiers();class SemVer{constructor(version,options){if(options=parseOptions(options),version instanceof SemVer)if(version.loose===!!options.loose&&version.includePrerelease===!!options.includePrerelease)return version;else version=version.version;else if(typeof version!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`);if(version.length>MAX_LENGTH)throw TypeError(`version is longer than ${MAX_LENGTH} characters`);debug("SemVer",version,options),this.options=options,this.loose=!!options.loose,this.includePrerelease=!!options.includePrerelease;let m=version.trim().match(options.loose?re[t.LOOSE]:re[t.FULL]);if(!m)throw TypeError(`Invalid Version: ${version}`);if(this.raw=version,this.major=+m[1],this.minor=+m[2],this.patch=+m[3],this.major>MAX_SAFE_INTEGER3||this.major<0)throw TypeError("Invalid major version");if(this.minor>MAX_SAFE_INTEGER3||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>MAX_SAFE_INTEGER3||this.patch<0)throw TypeError("Invalid patch version");if(!m[4])this.prerelease=[];else this.prerelease=m[4].split(".").map((id)=>{if(/^[0-9]+$/.test(id)){let num=+id;if(num>=0&&num<MAX_SAFE_INTEGER3)return num}return id});this.build=m[5]?m[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare(other){if(debug("SemVer.compare",this.version,this.options,other),!(other instanceof SemVer)){if(typeof other==="string"&&other===this.version)return 0;other=new SemVer(other,this.options)}if(other.version===this.version)return 0;return this.compareMain(other)||this.comparePre(other)}compareMain(other){if(!(other instanceof SemVer))other=new SemVer(other,this.options);if(this.major<other.major)return-1;if(this.major>other.major)return 1;if(this.minor<other.minor)return-1;if(this.minor>other.minor)return 1;if(this.patch<other.patch)return-1;if(this.patch>other.patch)return 1;return 0}comparePre(other){if(!(other instanceof SemVer))other=new SemVer(other,this.options);if(this.prerelease.length&&!other.prerelease.length)return-1;else if(!this.prerelease.length&&other.prerelease.length)return 1;else if(!this.prerelease.length&&!other.prerelease.length)return 0;let i=0;do{let a=this.prerelease[i],b=other.prerelease[i];if(debug("prerelease compare",i,a,b),a===void 0&&b===void 0)return 0;else if(b===void 0)return 1;else if(a===void 0)return-1;else if(a===b)continue;else return compareIdentifiers(a,b)}while(++i)}compareBuild(other){if(!(other instanceof SemVer))other=new SemVer(other,this.options);let i=0;do{let a=this.build[i],b=other.build[i];if(debug("build compare",i,a,b),a===void 0&&b===void 0)return 0;else if(b===void 0)return 1;else if(a===void 0)return-1;else if(a===b)continue;else return compareIdentifiers(a,b)}while(++i)}inc(release,identifier,identifierBase){if(release.startsWith("pre")){if(!identifier&&identifierBase===!1)throw Error("invalid increment argument: identifier is empty");if(identifier){let match=`-${identifier}`.match(this.options.loose?re[t.PRERELEASELOOSE]:re[t.PRERELEASE]);if(!match||match[1]!==identifier)throw Error(`invalid identifier: ${identifier}`)}}switch(release){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",identifier,identifierBase);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",identifier,identifierBase);break;case"prepatch":this.prerelease.length=0,this.inc("patch",identifier,identifierBase),this.inc("pre",identifier,identifierBase);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",identifier,identifierBase);this.inc("pre",identifier,identifierBase);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let base=Number(identifierBase)?1:0;if(this.prerelease.length===0)this.prerelease=[base];else{let i=this.prerelease.length;while(--i>=0)if(typeof this.prerelease[i]==="number")this.prerelease[i]++,i=-2;if(i===-1){if(identifier===this.prerelease.join(".")&&identifierBase===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(base)}}if(identifier){let prerelease=[identifier,base];if(identifierBase===!1)prerelease=[identifier];if(compareIdentifiers(this.prerelease[0],identifier)===0){if(isNaN(this.prerelease[1]))this.prerelease=prerelease}else this.prerelease=prerelease}break}default:throw Error(`invalid increment argument: ${release}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}module.exports=SemVer});var require_parse=__commonJS((exports,module)=>{var SemVer=require_semver(),parse=(version,options,throwErrors=!1)=>{if(version instanceof SemVer)return version;try{return new SemVer(version,options)}catch(er){if(!throwErrors)return null;throw er}};module.exports=parse});var require_valid=__commonJS((exports,module)=>{var parse=require_parse(),valid=(version,options)=>{let v=parse(version,options);return v?v.version:null};module.exports=valid});var require_clean=__commonJS((exports,module)=>{var parse=require_parse(),clean=(version,options)=>{let s=parse(version.trim().replace(/^[=v]+/,""),options);return s?s.version:null};module.exports=clean});var require_inc=__commonJS((exports,module)=>{var SemVer=require_semver(),inc=(version,release,options,identifier,identifierBase)=>{if(typeof options==="string")identifierBase=identifier,identifier=options,options=void 0;try{return new SemVer(version instanceof SemVer?version.version:version,options).inc(release,identifier,identifierBase).version}catch(er){return null}};module.exports=inc});var require_diff=__commonJS((exports,module)=>{var parse=require_parse(),diff=(version1,version2)=>{let v1=parse(version1,null,!0),v2=parse(version2,null,!0),comparison=v1.compare(v2);if(comparison===0)return null;let v1Higher=comparison>0,highVersion=v1Higher?v1:v2,lowVersion=v1Higher?v2:v1,highHasPre=!!highVersion.prerelease.length;if(!!lowVersion.prerelease.length&&!highHasPre){if(!lowVersion.patch&&!lowVersion.minor)return"major";if(lowVersion.compareMain(highVersion)===0){if(lowVersion.minor&&!lowVersion.patch)return"minor";return"patch"}}let prefix=highHasPre?"pre":"";if(v1.major!==v2.major)return prefix+"major";if(v1.minor!==v2.minor)return prefix+"minor";if(v1.patch!==v2.patch)return prefix+"patch";return"prerelease"};module.exports=diff});var require_major=__commonJS((exports,module)=>{var SemVer=require_semver(),major=(a,loose)=>new SemVer(a,loose).major;module.exports=major});var require_minor=__commonJS((exports,module)=>{var SemVer=require_semver(),minor=(a,loose)=>new SemVer(a,loose).minor;module.exports=minor});var require_patch=__commonJS((exports,module)=>{var SemVer=require_semver(),patch=(a,loose)=>new SemVer(a,loose).patch;module.exports=patch});var require_prerelease=__commonJS((exports,module)=>{var parse=require_parse(),prerelease=(version,options)=>{let parsed=parse(version,options);return parsed&&parsed.prerelease.length?parsed.prerelease:null};module.exports=prerelease});var require_compare=__commonJS((exports,module)=>{var SemVer=require_semver(),compare=(a,b,loose)=>new SemVer(a,loose).compare(new SemVer(b,loose));module.exports=compare});var require_rcompare=__commonJS((exports,module)=>{var compare=require_compare(),rcompare=(a,b,loose)=>compare(b,a,loose);module.exports=rcompare});var require_compare_loose=__commonJS((exports,module)=>{var compare=require_compare(),compareLoose=(a,b)=>compare(a,b,!0);module.exports=compareLoose});var require_compare_build=__commonJS((exports,module)=>{var SemVer=require_semver(),compareBuild=(a,b,loose)=>{let versionA=new SemVer(a,loose),versionB=new SemVer(b,loose);return versionA.compare(versionB)||versionA.compareBuild(versionB)};module.exports=compareBuild});var require_sort=__commonJS((exports,module)=>{var compareBuild=require_compare_build(),sort=(list,loose)=>list.sort((a,b)=>compareBuild(a,b,loose));module.exports=sort});var require_rsort=__commonJS((exports,module)=>{var compareBuild=require_compare_build(),rsort=(list,loose)=>list.sort((a,b)=>compareBuild(b,a,loose));module.exports=rsort});var require_gt=__commonJS((exports,module)=>{var compare=require_compare(),gt=(a,b,loose)=>compare(a,b,loose)>0;module.exports=gt});var require_lt=__commonJS((exports,module)=>{var compare=require_compare(),lt=(a,b,loose)=>compare(a,b,loose)<0;module.exports=lt});var require_eq=__commonJS((exports,module)=>{var compare=require_compare(),eq2=(a,b,loose)=>compare(a,b,loose)===0;module.exports=eq2});var require_neq=__commonJS((exports,module)=>{var compare=require_compare(),neq=(a,b,loose)=>compare(a,b,loose)!==0;module.exports=neq});var require_gte=__commonJS((exports,module)=>{var compare=require_compare(),gte=(a,b,loose)=>compare(a,b,loose)>=0;module.exports=gte});var require_lte=__commonJS((exports,module)=>{var compare=require_compare(),lte=(a,b,loose)=>compare(a,b,loose)<=0;module.exports=lte});var require_cmp=__commonJS((exports,module)=>{var eq2=require_eq(),neq=require_neq(),gt=require_gt(),gte=require_gte(),lt=require_lt(),lte=require_lte(),cmp=(a,op,b,loose)=>{switch(op){case"===":if(typeof a==="object")a=a.version;if(typeof b==="object")b=b.version;return a===b;case"!==":if(typeof a==="object")a=a.version;if(typeof b==="object")b=b.version;return a!==b;case"":case"=":case"==":return eq2(a,b,loose);case"!=":return neq(a,b,loose);case">":return gt(a,b,loose);case">=":return gte(a,b,loose);case"<":return lt(a,b,loose);case"<=":return lte(a,b,loose);default:throw TypeError(`Invalid operator: ${op}`)}};module.exports=cmp});var require_coerce=__commonJS((exports,module)=>{var SemVer=require_semver(),parse=require_parse(),{safeRe:re,t}=require_re(),coerce=(version,options)=>{if(version instanceof SemVer)return version;if(typeof version==="number")version=String(version);if(typeof version!=="string")return null;options=options||{};let match=null;if(!options.rtl)match=version.match(options.includePrerelease?re[t.COERCEFULL]:re[t.COERCE]);else{let coerceRtlRegex=options.includePrerelease?re[t.COERCERTLFULL]:re[t.COERCERTL],next;while((next=coerceRtlRegex.exec(version))&&(!match||match.index+match[0].length!==version.length)){if(!match||next.index+next[0].length!==match.index+match[0].length)match=next;coerceRtlRegex.lastIndex=next.index+next[1].length+next[2].length}coerceRtlRegex.lastIndex=-1}if(match===null)return null;let major=match[2],minor=match[3]||"0",patch=match[4]||"0",prerelease=options.includePrerelease&&match[5]?`-${match[5]}`:"",build=options.includePrerelease&&match[6]?`+${match[6]}`:"";return parse(`${major}.${minor}.${patch}${prerelease}${build}`,options)};module.exports=coerce});var require_lrucache=__commonJS((exports,module)=>{class LRUCache{constructor(){this.max=1000,this.map=new Map}get(key){let value=this.map.get(key);if(value===void 0)return;else return this.map.delete(key),this.map.set(key,value),value}delete(key){return this.map.delete(key)}set(key,value){if(!this.delete(key)&&value!==void 0){if(this.map.size>=this.max){let firstKey=this.map.keys().next().value;this.delete(firstKey)}this.map.set(key,value)}return this}}module.exports=LRUCache});var require_range=__commonJS((exports,module)=>{var SPACE_CHARACTERS=/\s+/g;class Range{constructor(range,options){if(options=parseOptions(options),range instanceof Range)if(range.loose===!!options.loose&&range.includePrerelease===!!options.includePrerelease)return range;else return new Range(range.raw,options);if(range instanceof Comparator)return this.raw=range.value,this.set=[[range]],this.formatted=void 0,this;if(this.options=options,this.loose=!!options.loose,this.includePrerelease=!!options.includePrerelease,this.raw=range.trim().replace(SPACE_CHARACTERS," "),this.set=this.raw.split("||").map((r)=>this.parseRange(r.trim())).filter((c)=>c.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let first=this.set[0];if(this.set=this.set.filter((c)=>!isNullSet(c[0])),this.set.length===0)this.set=[first];else if(this.set.length>1){for(let c of this.set)if(c.length===1&&isAny(c[0])){this.set=[c];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let i=0;i<this.set.length;i++){if(i>0)this.formatted+="||";let comps=this.set[i];for(let k=0;k<comps.length;k++){if(k>0)this.formatted+=" ";this.formatted+=comps[k].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(range){let memoKey=((this.options.includePrerelease&&FLAG_INCLUDE_PRERELEASE)|(this.options.loose&&FLAG_LOOSE))+":"+range,cached=cache.get(memoKey);if(cached)return cached;let loose=this.options.loose,hr=loose?re[t.HYPHENRANGELOOSE]:re[t.HYPHENRANGE];range=range.replace(hr,hyphenReplace(this.options.includePrerelease)),debug("hyphen replace",range),range=range.replace(re[t.COMPARATORTRIM],comparatorTrimReplace),debug("comparator trim",range),range=range.replace(re[t.TILDETRIM],tildeTrimReplace),debug("tilde trim",range),range=range.replace(re[t.CARETTRIM],caretTrimReplace),debug("caret trim",range);let rangeList=range.split(" ").map((comp)=>parseComparator(comp,this.options)).join(" ").split(/\s+/).map((comp)=>replaceGTE0(comp,this.options));if(loose)rangeList=rangeList.filter((comp)=>{return debug("loose invalid filter",comp,this.options),!!comp.match(re[t.COMPARATORLOOSE])});debug("range list",rangeList);let rangeMap=new Map,comparators=rangeList.map((comp)=>new Comparator(comp,this.options));for(let comp of comparators){if(isNullSet(comp))return[comp];rangeMap.set(comp.value,comp)}if(rangeMap.size>1&&rangeMap.has(""))rangeMap.delete("");let result=[...rangeMap.values()];return cache.set(memoKey,result),result}intersects(range,options){if(!(range instanceof Range))throw TypeError("a Range is required");return this.set.some((thisComparators)=>{return isSatisfiable(thisComparators,options)&&range.set.some((rangeComparators)=>{return isSatisfiable(rangeComparators,options)&&thisComparators.every((thisComparator)=>{return rangeComparators.every((rangeComparator)=>{return thisComparator.intersects(rangeComparator,options)})})})})}test(version){if(!version)return!1;if(typeof version==="string")try{version=new SemVer(version,this.options)}catch(er){return!1}for(let i=0;i<this.set.length;i++)if(testSet(this.set[i],version,this.options))return!0;return!1}}module.exports=Range;var LRU=require_lrucache(),cache=new LRU,parseOptions=require_parse_options(),Comparator=require_comparator(),debug=require_debug(),SemVer=require_semver(),{safeRe:re,t,comparatorTrimReplace,tildeTrimReplace,caretTrimReplace}=require_re(),{FLAG_INCLUDE_PRERELEASE,FLAG_LOOSE}=require_constants(),isNullSet=(c)=>c.value==="<0.0.0-0",isAny=(c)=>c.value==="",isSatisfiable=(comparators,options)=>{let result=!0,remainingComparators=comparators.slice(),testComparator=remainingComparators.pop();while(result&&remainingComparators.length)result=remainingComparators.every((otherComparator)=>{return testComparator.intersects(otherComparator,options)}),testComparator=remainingComparators.pop();return result},parseComparator=(comp,options)=>{return comp=comp.replace(re[t.BUILD],""),debug("comp",comp,options),comp=replaceCarets(comp,options),debug("caret",comp),comp=replaceTildes(comp,options),debug("tildes",comp),comp=replaceXRanges(comp,options),debug("xrange",comp),comp=replaceStars(comp,options),debug("stars",comp),comp},isX=(id)=>!id||id.toLowerCase()==="x"||id==="*",replaceTildes=(comp,options)=>{return comp.trim().split(/\s+/).map((c)=>replaceTilde(c,options)).join(" ")},replaceTilde=(comp,options)=>{let r=options.loose?re[t.TILDELOOSE]:re[t.TILDE];return comp.replace(r,(_,M,m,p,pr)=>{debug("tilde",comp,_,M,m,p,pr);let ret;if(isX(M))ret="";else if(isX(m))ret=`>=${M}.0.0 <${+M+1}.0.0-0`;else if(isX(p))ret=`>=${M}.${m}.0 <${M}.${+m+1}.0-0`;else if(pr)debug("replaceTilde pr",pr),ret=`>=${M}.${m}.${p}-${pr} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.${p} <${M}.${+m+1}.0-0`;return debug("tilde return",ret),ret})},replaceCarets=(comp,options)=>{return comp.trim().split(/\s+/).map((c)=>replaceCaret(c,options)).join(" ")},replaceCaret=(comp,options)=>{debug("caret",comp,options);let r=options.loose?re[t.CARETLOOSE]:re[t.CARET],z=options.includePrerelease?"-0":"";return comp.replace(r,(_,M,m,p,pr)=>{debug("caret",comp,_,M,m,p,pr);let ret;if(isX(M))ret="";else if(isX(m))ret=`>=${M}.0.0${z} <${+M+1}.0.0-0`;else if(isX(p))if(M==="0")ret=`>=${M}.${m}.0${z} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.0${z} <${+M+1}.0.0-0`;else if(pr)if(debug("replaceCaret pr",pr),M==="0")if(m==="0")ret=`>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p+1}-0`;else ret=`>=${M}.${m}.${p}-${pr} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.${p}-${pr} <${+M+1}.0.0-0`;else if(debug("no pr"),M==="0")if(m==="0")ret=`>=${M}.${m}.${p}${z} <${M}.${m}.${+p+1}-0`;else ret=`>=${M}.${m}.${p}${z} <${M}.${+m+1}.0-0`;else ret=`>=${M}.${m}.${p} <${+M+1}.0.0-0`;return debug("caret return",ret),ret})},replaceXRanges=(comp,options)=>{return debug("replaceXRanges",comp,options),comp.split(/\s+/).map((c)=>replaceXRange(c,options)).join(" ")},replaceXRange=(comp,options)=>{comp=comp.trim();let r=options.loose?re[t.XRANGELOOSE]:re[t.XRANGE];return comp.replace(r,(ret,gtlt,M,m,p,pr)=>{debug("xRange",comp,ret,gtlt,M,m,p,pr);let xM=isX(M),xm=xM||isX(m),xp=xm||isX(p),anyX=xp;if(gtlt==="="&&anyX)gtlt="";if(pr=options.includePrerelease?"-0":"",xM)if(gtlt===">"||gtlt==="<")ret="<0.0.0-0";else ret="*";else if(gtlt&&anyX){if(xm)m=0;if(p=0,gtlt===">")if(gtlt=">=",xm)M=+M+1,m=0,p=0;else m=+m+1,p=0;else if(gtlt==="<=")if(gtlt="<",xm)M=+M+1;else m=+m+1;if(gtlt==="<")pr="-0";ret=`${gtlt+M}.${m}.${p}${pr}`}else if(xm)ret=`>=${M}.0.0${pr} <${+M+1}.0.0-0`;else if(xp)ret=`>=${M}.${m}.0${pr} <${M}.${+m+1}.0-0`;return debug("xRange return",ret),ret})},replaceStars=(comp,options)=>{return debug("replaceStars",comp,options),comp.trim().replace(re[t.STAR],"")},replaceGTE0=(comp,options)=>{return debug("replaceGTE0",comp,options),comp.trim().replace(re[options.includePrerelease?t.GTE0PRE:t.GTE0],"")},hyphenReplace=(incPr)=>($0,from,fM,fm,fp,fpr,fb,to,tM,tm,tp,tpr)=>{if(isX(fM))from="";else if(isX(fm))from=`>=${fM}.0.0${incPr?"-0":""}`;else if(isX(fp))from=`>=${fM}.${fm}.0${incPr?"-0":""}`;else if(fpr)from=`>=${from}`;else from=`>=${from}${incPr?"-0":""}`;if(isX(tM))to="";else if(isX(tm))to=`<${+tM+1}.0.0-0`;else if(isX(tp))to=`<${tM}.${+tm+1}.0-0`;else if(tpr)to=`<=${tM}.${tm}.${tp}-${tpr}`;else if(incPr)to=`<${tM}.${tm}.${+tp+1}-0`;else to=`<=${to}`;return`${from} ${to}`.trim()},testSet=(set,version,options)=>{for(let i=0;i<set.length;i++)if(!set[i].test(version))return!1;if(version.prerelease.length&&!options.includePrerelease){for(let i=0;i<set.length;i++){if(debug(set[i].semver),set[i].semver===Comparator.ANY)continue;if(set[i].semver.prerelease.length>0){let allowed=set[i].semver;if(allowed.major===version.major&&allowed.minor===version.minor&&allowed.patch===version.patch)return!0}}return!1}return!0}});var require_comparator=__commonJS((exports,module)=>{var ANY=Symbol("SemVer ANY");class Comparator{static get ANY(){return ANY}constructor(comp,options){if(options=parseOptions(options),comp instanceof Comparator)if(comp.loose===!!options.loose)return comp;else comp=comp.value;if(comp=comp.trim().split(/\s+/).join(" "),debug("comparator",comp,options),this.options=options,this.loose=!!options.loose,this.parse(comp),this.semver===ANY)this.value="";else this.value=this.operator+this.semver.version;debug("comp",this)}parse(comp){let r=this.options.loose?re[t.COMPARATORLOOSE]:re[t.COMPARATOR],m=comp.match(r);if(!m)throw TypeError(`Invalid comparator: ${comp}`);if(this.operator=m[1]!==void 0?m[1]:"",this.operator==="=")this.operator="";if(!m[2])this.semver=ANY;else this.semver=new SemVer(m[2],this.options.loose)}toString(){return this.value}test(version){if(debug("Comparator.test",version,this.options.loose),this.semver===ANY||version===ANY)return!0;if(typeof version==="string")try{version=new SemVer(version,this.options)}catch(er){return!1}return cmp(version,this.operator,this.semver,this.options)}intersects(comp,options){if(!(comp instanceof Comparator))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new Range(comp.value,options).test(this.value)}else if(comp.operator===""){if(comp.value==="")return!0;return new Range(this.value,options).test(comp.semver)}if(options=parseOptions(options),options.includePrerelease&&(this.value==="<0.0.0-0"||comp.value==="<0.0.0-0"))return!1;if(!options.includePrerelease&&(this.value.startsWith("<0.0.0")||comp.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&comp.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&comp.operator.startsWith("<"))return!0;if(this.semver.version===comp.semver.version&&this.operator.includes("=")&&comp.operator.includes("="))return!0;if(cmp(this.semver,"<",comp.semver,options)&&this.operator.startsWith(">")&&comp.operator.startsWith("<"))return!0;if(cmp(this.semver,">",comp.semver,options)&&this.operator.startsWith("<")&&comp.operator.startsWith(">"))return!0;return!1}}module.exports=Comparator;var parseOptions=require_parse_options(),{safeRe:re,t}=require_re(),cmp=require_cmp(),debug=require_debug(),SemVer=require_semver(),Range=require_range()});var require_satisfies=__commonJS((exports,module)=>{var Range=require_range(),satisfies=(version,range,options)=>{try{range=new Range(range,options)}catch(er){return!1}return range.test(version)};module.exports=satisfies});var require_to_comparators=__commonJS((exports,module)=>{var Range=require_range(),toComparators=(range,options)=>new Range(range,options).set.map((comp)=>comp.map((c)=>c.value).join(" ").trim().split(" "));module.exports=toComparators});var require_max_satisfying=__commonJS((exports,module)=>{var SemVer=require_semver(),Range=require_range(),maxSatisfying=(versions,range,options)=>{let max=null,maxSV=null,rangeObj=null;try{rangeObj=new Range(range,options)}catch(er){return null}return versions.forEach((v)=>{if(rangeObj.test(v)){if(!max||maxSV.compare(v)===-1)max=v,maxSV=new SemVer(max,options)}}),max};module.exports=maxSatisfying});var require_min_satisfying=__commonJS((exports,module)=>{var SemVer=require_semver(),Range=require_range(),minSatisfying=(versions,range,options)=>{let min=null,minSV=null,rangeObj=null;try{rangeObj=new Range(range,options)}catch(er){return null}return versions.forEach((v)=>{if(rangeObj.test(v)){if(!min||minSV.compare(v)===1)min=v,minSV=new SemVer(min,options)}}),min};module.exports=minSatisfying});var require_min_version=__commonJS((exports,module)=>{var SemVer=require_semver(),Range=require_range(),gt=require_gt(),minVersion=(range,loose)=>{range=new Range(range,loose);let minver=new SemVer("0.0.0");if(range.test(minver))return minver;if(minver=new SemVer("0.0.0-0"),range.test(minver))return minver;minver=null;for(let i=0;i<range.set.length;++i){let comparators=range.set[i],setMin=null;if(comparators.forEach((comparator)=>{let compver=new SemVer(comparator.semver.version);switch(comparator.operator){case">":if(compver.prerelease.length===0)compver.patch++;else compver.prerelease.push(0);compver.raw=compver.format();case"":case">=":if(!setMin||gt(compver,setMin))setMin=compver;break;case"<":case"<=":break;default:throw Error(`Unexpected operation: ${comparator.operator}`)}}),setMin&&(!minver||gt(minver,setMin)))minver=setMin}if(minver&&range.test(minver))return minver;return null};module.exports=minVersion});var require_valid2=__commonJS((exports,module)=>{var Range=require_range(),validRange=(range,options)=>{try{return new Range(range,options).range||"*"}catch(er){return null}};module.exports=validRange});var require_outside=__commonJS((exports,module)=>{var SemVer=require_semver(),Comparator=require_comparator(),{ANY}=Comparator,Range=require_range(),satisfies=require_satisfies(),gt=require_gt(),lt=require_lt(),lte=require_lte(),gte=require_gte(),outside=(version,range,hilo,options)=>{version=new SemVer(version,options),range=new Range(range,options);let gtfn,ltefn,ltfn,comp,ecomp;switch(hilo){case">":gtfn=gt,ltefn=lte,ltfn=lt,comp=">",ecomp=">=";break;case"<":gtfn=lt,ltefn=gte,ltfn=gt,comp="<",ecomp="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"')}if(satisfies(version,range,options))return!1;for(let i=0;i<range.set.length;++i){let comparators=range.set[i],high=null,low=null;if(comparators.forEach((comparator)=>{if(comparator.semver===ANY)comparator=new Comparator(">=0.0.0");if(high=high||comparator,low=low||comparator,gtfn(comparator.semver,high.semver,options))high=comparator;else if(ltfn(comparator.semver,low.semver,options))low=comparator}),high.operator===comp||high.operator===ecomp)return!1;if((!low.operator||low.operator===comp)&<efn(version,low.semver))return!1;else if(low.operator===ecomp&<fn(version,low.semver))return!1}return!0};module.exports=outside});var require_gtr=__commonJS((exports,module)=>{var outside=require_outside(),gtr=(version,range,options)=>outside(version,range,">",options);module.exports=gtr});var require_ltr=__commonJS((exports,module)=>{var outside=require_outside(),ltr=(version,range,options)=>outside(version,range,"<",options);module.exports=ltr});var require_intersects=__commonJS((exports,module)=>{var Range=require_range(),intersects=(r1,r2,options)=>{return r1=new Range(r1,options),r2=new Range(r2,options),r1.intersects(r2,options)};module.exports=intersects});var require_simplify=__commonJS((exports,module)=>{var satisfies=require_satisfies(),compare=require_compare();module.exports=(versions,range,options)=>{let set=[],first=null,prev=null,v=versions.sort((a,b)=>compare(a,b,options));for(let version of v)if(satisfies(version,range,options)){if(prev=version,!first)first=version}else{if(prev)set.push([first,prev]);prev=null,first=null}if(first)set.push([first,null]);let ranges=[];for(let[min,max]of set)if(min===max)ranges.push(min);else if(!max&&min===v[0])ranges.push("*");else if(!max)ranges.push(`>=${min}`);else if(min===v[0])ranges.push(`<=${max}`);else ranges.push(`${min} - ${max}`);let simplified=ranges.join(" || "),original=typeof range.raw==="string"?range.raw:String(range);return simplified.length<original.length?simplified:range}});var require_subset=__commonJS((exports,module)=>{var Range=require_range(),Comparator=require_comparator(),{ANY}=Comparator,satisfies=require_satisfies(),compare=require_compare(),subset=(sub,dom,options={})=>{if(sub===dom)return!0;sub=new Range(sub,options),dom=new Range(dom,options);let sawNonNull=!1;OUTER:for(let simpleSub of sub.set){for(let simpleDom of dom.set){let isSub=simpleSubset(simpleSub,simpleDom,options);if(sawNonNull=sawNonNull||isSub!==null,isSub)continue OUTER}if(sawNonNull)return!1}return!0},minimumVersionWithPreRelease=[new Comparator(">=0.0.0-0")],minimumVersion=[new Comparator(">=0.0.0")],simpleSubset=(sub,dom,options)=>{if(sub===dom)return!0;if(sub.length===1&&sub[0].semver===ANY)if(dom.length===1&&dom[0].semver===ANY)return!0;else if(options.includePrerelease)sub=minimumVersionWithPreRelease;else sub=minimumVersion;if(dom.length===1&&dom[0].semver===ANY)if(options.includePrerelease)return!0;else dom=minimumVersion;let eqSet=new Set,gt,lt;for(let c of sub)if(c.operator===">"||c.operator===">=")gt=higherGT(gt,c,options);else if(c.operator==="<"||c.operator==="<=")lt=lowerLT(lt,c,options);else eqSet.add(c.semver);if(eqSet.size>1)return null;let gtltComp;if(gt&<){if(gtltComp=compare(gt.semver,lt.semver,options),gtltComp>0)return null;else if(gtltComp===0&&(gt.operator!==">="||lt.operator!=="<="))return null}for(let eq2 of eqSet){if(gt&&!satisfies(eq2,String(gt),options))return null;if(lt&&!satisfies(eq2,String(lt),options))return null;for(let c of dom)if(!satisfies(eq2,String(c),options))return!1;return!0}let higher,lower,hasDomLT,hasDomGT,needDomLTPre=lt&&!options.includePrerelease&<.semver.prerelease.length?lt.semver:!1,needDomGTPre=gt&&!options.includePrerelease&>.semver.prerelease.length?gt.semver:!1;if(needDomLTPre&&needDomLTPre.prerelease.length===1&<.operator==="<"&&needDomLTPre.prerelease[0]===0)needDomLTPre=!1;for(let c of dom){if(hasDomGT=hasDomGT||c.operator===">"||c.operator===">=",hasDomLT=hasDomLT||c.operator==="<"||c.operator==="<=",gt){if(needDomGTPre){if(c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===needDomGTPre.major&&c.semver.minor===needDomGTPre.minor&&c.semver.patch===needDomGTPre.patch)needDomGTPre=!1}if(c.operator===">"||c.operator===">="){if(higher=higherGT(gt,c,options),higher===c&&higher!==gt)return!1}else if(gt.operator===">="&&!satisfies(gt.semver,String(c),options))return!1}if(lt){if(needDomLTPre){if(c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===needDomLTPre.major&&c.semver.minor===needDomLTPre.minor&&c.semver.patch===needDomLTPre.patch)needDomLTPre=!1}if(c.operator==="<"||c.operator==="<="){if(lower=lowerLT(lt,c,options),lower===c&&lower!==lt)return!1}else if(lt.operator==="<="&&!satisfies(lt.semver,String(c),options))return!1}if(!c.operator&&(lt||gt)&>ltComp!==0)return!1}if(gt&&hasDomLT&&!lt&>ltComp!==0)return!1;if(lt&&hasDomGT&&!gt&>ltComp!==0)return!1;if(needDomGTPre||needDomLTPre)return!1;return!0},higherGT=(a,b,options)=>{if(!a)return b;let comp=compare(a.semver,b.semver,options);return comp>0?a:comp<0?b:b.operator===">"&&a.operator===">="?b:a},lowerLT=(a,b,options)=>{if(!a)return b;let comp=compare(a.semver,b.semver,options);return comp<0?a:comp>0?b:b.operator==="<"&&a.operator==="<="?b:a};module.exports=subset});var require_semver2=__commonJS((exports,module)=>{var internalRe=require_re(),constants=require_constants(),SemVer=require_semver(),identifiers=require_identifiers(),parse=require_parse(),valid=require_valid(),clean=require_clean(),inc=require_inc(),diff=require_diff(),major=require_major(),minor=require_minor(),patch=require_patch(),prerelease=require_prerelease(),compare=require_compare(),rcompare=require_rcompare(),compareLoose=require_compare_loose(),compareBuild=require_compare_build(),sort=require_sort(),rsort=require_rsort(),gt=require_gt(),lt=require_lt(),eq2=require_eq(),neq=require_neq(),gte=require_gte(),lte=require_lte(),cmp=require_cmp(),coerce=require_coerce(),Comparator=require_comparator(),Range=require_range(),satisfies=require_satisfies(),toComparators=require_to_comparators(),maxSatisfying=require_max_satisfying(),minSatisfying=require_min_satisfying(),minVersion=require_min_version(),validRange=require_valid2(),outside=require_outside(),gtr=require_gtr(),ltr=require_ltr(),intersects=require_intersects(),simplifyRange=require_simplify(),subset=require_subset();module.exports={parse,valid,clean,inc,diff,major,minor,patch,prerelease,compare,rcompare,compareLoose,compareBuild,sort,rsort,gt,lt,eq:eq2,neq,gte,lte,cmp,coerce,Comparator,Range,satisfies,toComparators,maxSatisfying,minSatisfying,minVersion,validRange,outside,gtr,ltr,intersects,simplifyRange,subset,SemVer,re:internalRe.re,src:internalRe.src,tokens:internalRe.t,SEMVER_SPEC_VERSION:constants.SEMVER_SPEC_VERSION,RELEASE_TYPES:constants.RELEASE_TYPES,compareIdentifiers:identifiers.compareIdentifiers,rcompareIdentifiers:identifiers.rcompareIdentifiers}});import{readFileSync as readFileSync2}from"fs";import{dirname as dirname2,join as join3}from"path";import{fileURLToPath}from"url";function normalizePublicVersion(version){let trimmedVersion=version.trim(),coercedVersion=import_semver.coerce(trimmedVersion);if(coercedVersion)return coercedVersion.version;return trimmedVersion.replace(/^v/i,"")}function readPackageVersionFromDisk(){let currentDir=dirname2(fileURLToPath(import.meta.url));while(!0){let packageJsonPath=join3(currentDir,"package.json");try{let pkg=JSON.parse(readFileSync2(packageJsonPath,"utf-8"));if(typeof pkg.version==="string"&&pkg.version.trim())return pkg.version}catch{}let parentDir=dirname2(currentDir);if(parentDir===currentDir)return null;currentDir=parentDir}}function getReleaseTagUrl(version=publicBuildVersion){return`${OPENCLAUDE_RELEASES_URL}/tag/v${normalizePublicVersion(version)}`}function getPublicBuildVersion(){return"0.25.1"}var import_semver,OPENCLAUDE_RELEASES_URL="https://github.com/Gitlawb/openclaude/releases",fallbackBuildVersion,publicBuildVersion;var init_version=__esm(()=>{import_semver=__toESM(require_semver2(),1);fallbackBuildVersion=(()=>{try{return"99.0.0"}catch{return"0.0.0"}})(),publicBuildVersion=normalizePublicVersion(readPackageVersionFromDisk()??fallbackBuildVersion)});function isRecord(value){return typeof value==="object"&&value!==null}function getTrimmedString(record,key){let value=record?.[key];return typeof value==="string"?value.trim():void 0}function mapAimlapiModel(raw){if(!isRecord(raw))return null;let id=getTrimmedString(raw,"id"),type=getTrimmedString(raw,"type");if(!id||!type||!AIMLAPI_CHAT_MODEL_TYPES.has(type))return null;let info=isRecord(raw.info)?raw.info:null,developer=getTrimmedString(info,"developer")||getTrimmedString(raw,"developer"),displayName=getTrimmedString(info,"name"),label=displayName?developer&&!displayName.includes(`(${developer})`)?`${displayName} (${developer})`:displayName:id,contextLength=typeof info?.contextLength==="number"?info.contextLength:typeof raw.contextLength==="number"?raw.contextLength:void 0;return{id,apiName:id,label,...typeof contextLength==="number"&&contextLength>0?{contextWindow:contextLength}:{}}}var AIMLAPI_CHAT_MODEL_TYPES,aimlapi_default;var init_aimlapi=__esm(()=>{init_version();AIMLAPI_CHAT_MODEL_TYPES=new Set(["openai/chat-completions","chat-completion"]);aimlapi_default=defineGateway({id:"aimlapi",label:"AI/ML API",category:"aggregating",defaultBaseUrl:"https://api.aimlapi.com/v1",defaultModel:"gpt-4o",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["AIMLAPI_API_KEY"]},startup:{probeReadiness:"openai-compatible-models"},transportConfig:{kind:"openai-compatible",openaiShim:{headers:{"X-AIMLAPI-Partner-ID":"part_62yQoGYDq4Yqnrj2R1iGrDNJ","X-AIMLAPI-Integration-Repo":"Gitlawb/openclaude","X-AIMLAPI-Integration-Version":publicBuildVersion,"HTTP-Referer":"Claudio","X-Title":"Claudio"},supportsAuthHeaders:!1}},preset:{id:"aimlapi",description:"1,000+ models OpenAI compatible endpoint",badge:{text:"Recommended",color:"success"},apiKeyEnvVars:["AIMLAPI_API_KEY"],modelEnvVars:["OPENAI_MODEL"],vendorId:"openai"},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0,matchBaseUrlHosts:["api.aimlapi.com"]},credentialEnvVars:["AIMLAPI_API_KEY","OPENAI_API_KEY"],missingCredentialMessage:"AI/ML API auth is required. Set AIMLAPI_API_KEY or OPENAI_API_KEY."},catalog:{source:"hybrid",discovery:{kind:"openai-compatible",requiresAuth:!1,mapModel:mapAimlapiModel},discoveryCacheTtl:"1d",discoveryRefreshMode:"startup",allowManualRefresh:!0,models:[{id:"aimlapi-gpt-4o",apiName:"gpt-4o",label:"GPT-4o",modelDescriptorId:"gpt-4o"}]},usage:{supported:!1}})});var ZAI_GLM_OPENAI_SHIM;var init_zaiGlmShim=__esm(()=>{ZAI_GLM_OPENAI_SHIM={preserveReasoningContent:!0,requireReasoningContentOnAssistantMessages:!0,reasoningContentFallback:"",thinkingRequestFormat:"zai-compatible",maxTokensField:"max_tokens",removeBodyFields:["store"],enableToolStreaming:!0}});var atlas_cloud_default;var init_atlas_cloud=__esm(()=>{init_zaiGlmShim();atlas_cloud_default=defineGateway({id:"atlas-cloud",label:"Atlas Cloud",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.atlascloud.ai/v1",defaultModel:"deepseek-ai/deepseek-v4-pro",setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["ATLAS_CLOUD_API_KEY"],dedicatedCredentialsOnly:!0},transportConfig:{kind:"openai-compatible"},preset:{id:"atlas-cloud",vendorId:"openai",description:"Atlas Cloud AI (OpenAI-compatible)",apiKeyEnvVars:["ATLAS_CLOUD_API_KEY"],modelEnvVars:["ATLAS_CLOUD_MODEL","OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0},credentialEnvVars:["ATLAS_CLOUD_API_KEY"],missingCredentialMessage:"Atlas Cloud auth is required. Set ATLAS_CLOUD_API_KEY."},catalog:{source:"static",models:[{id:"deepseek-ai/deepseek-v4-pro",apiName:"deepseek-ai/deepseek-v4-pro",aliases:["deepseek-v4-pro"],modelDescriptorId:"deepseek-v4-pro",label:"DeepSeek V4 Pro",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"deepseek-ai/deepseek-v4-flash",apiName:"deepseek-ai/deepseek-v4-flash",aliases:["deepseek-v4-flash"],modelDescriptorId:"deepseek-v4-flash",label:"DeepSeek V4 Flash",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"deepseek-ai/deepseek-v3.2",apiName:"deepseek-ai/deepseek-v3.2",modelDescriptorId:"deepseek-ai/deepseek-v3.2",label:"DeepSeek V3.2",contextWindow:163840,maxOutputTokens:163840,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"deepseek-ai/DeepSeek-V3.2-Exp",apiName:"deepseek-ai/DeepSeek-V3.2-Exp",modelDescriptorId:"deepseek-ai/DeepSeek-V3.2-Exp",label:"DeepSeek V3.2 Exp",contextWindow:163840,maxOutputTokens:163840,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-opus-4.8",apiName:"anthropic/claude-opus-4.8",aliases:["claude-opus-4-8"],modelDescriptorId:"claude-opus-4-8",label:"Claude Opus 4.8",contextWindow:1e6,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-sonnet-4.6",apiName:"anthropic/claude-sonnet-4.6",aliases:["claude-sonnet-4-6"],modelDescriptorId:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-sonnet-4.6-coding",apiName:"anthropic/claude-sonnet-4.6-coding",aliases:["claude-sonnet-4-6-coding"],modelDescriptorId:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 Coding",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-haiku-4.5-20251001",apiName:"anthropic/claude-haiku-4.5-20251001",aliases:["claude-haiku-4-5"],modelDescriptorId:"claude-haiku-4-5",label:"Claude Haiku 4.5",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"anthropic/claude-haiku-4.5-20251001-coding",apiName:"anthropic/claude-haiku-4.5-20251001-coding",aliases:["claude-haiku-4-5-coding"],modelDescriptorId:"claude-haiku-4-5",label:"Claude Haiku 4.5 Coding",contextWindow:200000,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"openai/gpt-5.5",apiName:"openai/gpt-5.5",aliases:["gpt-5.5"],modelDescriptorId:"gpt-5.5",label:"GPT 5.5",contextWindow:1050000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"openai/gpt-5.4",apiName:"openai/gpt-5.4",aliases:["gpt-5.4"],modelDescriptorId:"gpt-5.4",label:"GPT 5.4",contextWindow:400000,maxOutputTokens:128000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"google/gemini-3.5-flash",apiName:"google/gemini-3.5-flash",aliases:["gemini-3.5-flash"],modelDescriptorId:"gemini-3.5-flash",label:"Gemini 3.5 Flash",contextWindow:1048576,maxOutputTokens:65536,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"google/gemini-3.1-pro-preview",apiName:"google/gemini-3.1-pro-preview",modelDescriptorId:"google/gemini-3.1-pro-preview",label:"Gemini 3.1 Pro Preview",contextWindow:1e6,maxOutputTokens:64000,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"google/gemini-3.1-flash-lite",apiName:"google/gemini-3.1-flash-lite",modelDescriptorId:"google/gemini-3.1-flash-lite",label:"Gemini 3.1 Flash Lite",contextWindow:1048576,maxOutputTokens:65536},{id:"xai/grok-4.3",apiName:"xai/grok-4.3",aliases:["grok-4.3","grok-4.3-latest","grok-latest","grok-4","grok-3"],modelDescriptorId:"grok-4.3",label:"Grok 4.3",contextWindow:1e6,maxOutputTokens:32768,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"xai/grok-build-0.1",apiName:"xai/grok-build-0.1",aliases:["grok-build-0.1","grok-code-fast-1","grok-code-fast","grok-code-fast-1-0825"],modelDescriptorId:"xai/grok-build-0.1",label:"Grok Build 0.1",contextWindow:256000,maxOutputTokens:64000,capabilities:{supportsReasoning:!1},transportOverrides:{openaiShim:{removeBodyFields:["reasoning_effort"]}}},{id:"moonshotai/kimi-k2.7-code",apiName:"moonshotai/kimi-k2.7-code",aliases:["kimi-k2.7-code"],modelDescriptorId:"kimi-k2.7-code",label:"Kimi K2.7 Code",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"moonshotai/kimi-k2.6",apiName:"moonshotai/kimi-k2.6",aliases:["kimi-k2.6"],modelDescriptorId:"kimi-k2.6",label:"Kimi K2.6",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"moonshotai/kimi-k2.5",apiName:"moonshotai/kimi-k2.5",aliases:["kimi-k2.5"],modelDescriptorId:"kimi-k2.5",label:"Kimi K2.5",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],defaultLevel:"medium",wireFormat:"reasoning_effort"}},{id:"zai-org/glm-5.2",apiName:"zai-org/glm-5.2",aliases:["glm-5.2"],modelDescriptorId:"glm-5.2",label:"GLM 5.2",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5.1",apiName:"zai-org/glm-5.1",aliases:["glm-5.1"],modelDescriptorId:"glm-5.1",label:"GLM 5.1",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5",apiName:"zai-org/glm-5",aliases:["glm-5"],modelDescriptorId:"glm-5",label:"GLM 5",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5-turbo",apiName:"zai-org/glm-5-turbo",aliases:["glm-5-turbo"],modelDescriptorId:"glm-5-turbo",label:"GLM 5 Turbo",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-5v-turbo",apiName:"zai-org/glm-5v-turbo",aliases:["glm-5v-turbo"],modelDescriptorId:"glm-5v-turbo",label:"GLM 5V Turbo",contextWindow:202752,maxOutputTokens:131072,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/glm-4.7",apiName:"zai-org/glm-4.7",aliases:["glm-4.7"],modelDescriptorId:"glm-4.7",label:"GLM 4.7",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"zai-org/GLM-4.6",apiName:"zai-org/GLM-4.6",aliases:["glm-4.6"],modelDescriptorId:"glm-4.6",label:"GLM 4.6",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["high","xhigh"],wireFormat:"zai_compatible"},transportOverrides:{openaiShim:ZAI_GLM_OPENAI_SHIM}},{id:"minimaxai/minimax-m3",apiName:"minimaxai/minimax-m3",aliases:["minimax-m3"],modelDescriptorId:"minimax-m3",label:"MiniMax M3",contextWindow:524288,maxOutputTokens:524288,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"minimaxai/minimax-m2.7",apiName:"minimaxai/minimax-m2.7",aliases:["minimax-m2.7"],modelDescriptorId:"minimax-m2.7",label:"MiniMax M2.7",contextWindow:196608,maxOutputTokens:196608,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"minimaxai/minimax-m2.5",apiName:"minimaxai/minimax-m2.5",aliases:["minimax-m2.5"],modelDescriptorId:"minimax-m2.5",label:"MiniMax M2.5",contextWindow:196608,maxOutputTokens:196608,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.7-max",apiName:"qwen/qwen3.7-max",aliases:["qwen3.7-max"],modelDescriptorId:"qwen3.7-max",label:"Qwen3.7 Max",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.7-plus",apiName:"qwen/qwen3.7-plus",aliases:["qwen3.7-plus"],modelDescriptorId:"qwen3.7-plus",label:"Qwen3.7 Plus",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.6-plus",apiName:"qwen/qwen3.6-plus",aliases:["qwen3.6-plus"],modelDescriptorId:"qwen3.6-plus",label:"Qwen3.6 Plus",contextWindow:1e6,maxOutputTokens:65536,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.6-35b-a3b",apiName:"qwen/qwen3.6-35b-a3b",modelDescriptorId:"qwen/qwen3.6-35b-a3b",label:"Qwen3.6 35B A3B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-397b-a17b",apiName:"qwen/qwen3.5-397b-a17b",modelDescriptorId:"qwen/qwen3.5-397b-a17b",label:"Qwen3.5 397B A17B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-122b-a10b",apiName:"qwen/qwen3.5-122b-a10b",modelDescriptorId:"qwen/qwen3.5-122b-a10b",label:"Qwen3.5 122B A10B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-35b-a3b",apiName:"qwen/qwen3.5-35b-a3b",modelDescriptorId:"qwen/qwen3.5-35b-a3b",label:"Qwen3.5 35B A3B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3.5-27b",apiName:"qwen/qwen3.5-27b",modelDescriptorId:"qwen/qwen3.5-27b",label:"Qwen3.5 27B",contextWindow:262144,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3-coder-next",apiName:"qwen/qwen3-coder-next",aliases:["qwen3-coder-next"],modelDescriptorId:"qwen3-coder-next",label:"Qwen3 Coder Next",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"qwen/qwen3-max-2026-01-23",apiName:"qwen/qwen3-max-2026-01-23",aliases:["qwen3-max-2026-01-23"],modelDescriptorId:"qwen3-max-2026-01-23",label:"Qwen3 Max 2026-01-23",contextWindow:252000,maxOutputTokens:32000,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"qwen/qwen3-vl-30b-a3b-thinking",apiName:"qwen/qwen3-vl-30b-a3b-thinking",modelDescriptorId:"qwen/qwen3-vl-30b-a3b-thinking",label:"Qwen3 VL 30B A3B Thinking",contextWindow:128000,maxOutputTokens:32000,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"qwen/qwen3-vl-30b-a3b-instruct",apiName:"qwen/qwen3-vl-30b-a3b-instruct",modelDescriptorId:"qwen/qwen3-vl-30b-a3b-instruct",label:"Qwen3 VL 30B A3B Instruct",contextWindow:128000,maxOutputTokens:32000,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"qwen/qwen3-vl-8b-instruct",apiName:"qwen/qwen3-vl-8b-instruct",modelDescriptorId:"qwen/qwen3-vl-8b-instruct",label:"Qwen3 VL 8B Instruct",contextWindow:128000,maxOutputTokens:32000,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"Qwen/Qwen3-VL-235B-A22B-Instruct",apiName:"Qwen/Qwen3-VL-235B-A22B-Instruct",modelDescriptorId:"Qwen/Qwen3-VL-235B-A22B-Instruct",label:"Qwen3 VL 235B A22B Instruct",contextWindow:131072,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"Qwen/Qwen3-Next-80B-A3B-Thinking",apiName:"Qwen/Qwen3-Next-80B-A3B-Thinking",modelDescriptorId:"Qwen/Qwen3-Next-80B-A3B-Thinking",label:"Qwen3 Next 80B A3B Thinking",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"Qwen/Qwen3-Next-80B-A3B-Instruct",apiName:"Qwen/Qwen3-Next-80B-A3B-Instruct",modelDescriptorId:"Qwen/Qwen3-Next-80B-A3B-Instruct",label:"Qwen3 Next 80B A3B Instruct",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",apiName:"Qwen/Qwen3-30B-A3B-Instruct-2507",aliases:["qwen3-30b-a3b-instruct-2507"],modelDescriptorId:"qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",contextWindow:131072,maxOutputTokens:131072,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"bytedance/doubao-seed-2.0-pro-260215",apiName:"bytedance/doubao-seed-2.0-pro-260215",modelDescriptorId:"bytedance/doubao-seed-2.0-pro-260215",label:"Doubao Seed 2.0 Pro",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"bytedance/doubao-seed-2.0-code-preview-260215",apiName:"bytedance/doubao-seed-2.0-code-preview-260215",modelDescriptorId:"bytedance/doubao-seed-2.0-code-preview-260215",label:"Doubao Seed 2.0 Code Preview",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"bytedance/doubao-seed-2.0-lite-260428",apiName:"bytedance/doubao-seed-2.0-lite-260428",modelDescriptorId:"bytedance/doubao-seed-2.0-lite-260428",label:"Doubao Seed 2.0 Lite",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"bytedance/doubao-seed-2.0-mini-260428",apiName:"bytedance/doubao-seed-2.0-mini-260428",modelDescriptorId:"bytedance/doubao-seed-2.0-mini-260428",label:"Doubao Seed 2.0 Mini",contextWindow:262144,maxOutputTokens:131072,capabilities:{supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high"],wireFormat:"reasoning_effort"}},{id:"kwaipilot/kat-coder-pro-v2",apiName:"kwaipilot/kat-coder-pro-v2",modelDescriptorId:"kwaipilot/kat-coder-pro-v2",label:"KAT Coder Pro V2",contextWindow:262144,maxOutputTokens:144000,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0}},{id:"owl",apiName:"owl",modelDescriptorId:"owl",label:"OWL",contextWindow:1048576,maxOutputTokens:262144,capabilities:{supportsFunctionCalling:!0,supportsJsonMode:!0},notes:"Free"}]},usage:{supported:!1}})});var atomic_chat_default;var init_atomic_chat=__esm(()=>{atomic_chat_default=defineGateway({id:"atomic-chat",label:"Atomic Chat",category:"local",defaultBaseUrl:"http://127.0.0.1:1337/v1",defaultModel:"local-model",supportsModelRouting:!0,setup:{requiresAuth:!1,authMode:"none"},startup:{autoDetectable:!0,probeReadiness:"openai-compatible-models"},transportConfig:{kind:"local",openaiShim:{supportsAuthHeaders:!0,maxTokensField:"max_tokens"}},preset:{id:"atomic-chat",description:"Local Model Provider",modelEnvVars:["OPENAI_MODEL"],vendorId:"openai"},catalog:{source:"dynamic",discovery:{kind:"openai-compatible"},discoveryCacheTtl:"1d",discoveryRefreshMode:"background-if-stale",allowManualRefresh:!0},usage:{supported:!1}})});var azure_openai_default;var init_azure_openai=__esm(()=>{azure_openai_default=defineGateway({id:"azure-openai",label:"Azure OpenAI",category:"hosted",defaultBaseUrl:"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1",defaultModel:"YOUR-DEPLOYMENT-NAME",supportsModelRouting:!1,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["AZURE_OPENAI_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0}},preset:{id:"azure-openai",description:"Azure OpenAI endpoint (model=deployment name)",apiKeyEnvVars:["AZURE_OPENAI_API_KEY"],vendorId:"openai"},catalog:{source:"static",models:[{id:"azure-deployment",apiName:"YOUR-DEPLOYMENT-NAME",label:"Azure Deployment"}]},usage:{supported:!1}})});var bedrock_default;var init_bedrock=__esm(()=>{bedrock_default=defineGateway({id:"bedrock",label:"AWS Bedrock",vendorId:"anthropic",category:"hosted",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"adc"},transportConfig:{kind:"bedrock"},catalog:{source:"static",models:[{id:"bedrock-claude-opus",apiName:"us.anthropic.claude-opus-4-6-v1",label:"Claude Opus (Bedrock)",modelDescriptorId:"claude-opus-4-6"}]},usage:{supported:!1}})});var clinepass_default;var init_clinepass=__esm(()=>{clinepass_default=defineGateway({id:"clinepass",label:"ClinePass",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.cline.bot/api/v1",defaultModel:"cline-pass/deepseek-v4-flash",setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["CLINE_API_KEY"],dedicatedCredentialsOnly:!0},transportConfig:{kind:"openai-compatible"},preset:{id:"clinepass",vendorId:"openai",description:"ClinePass - AI model gateway with usage limits",apiKeyEnvVars:["CLINE_API_KEY"],modelEnvVars:["CLINE_API_MODEL","OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!0},credentialEnvVars:["CLINE_API_KEY"],missingCredentialMessage:"ClinePass auth is required. Set CLINE_API_KEY."},catalog:{source:"static",models:[{id:"cline-pass/qwen3.7-max",apiName:"cline-pass/qwen3.7-max",aliases:["qwen3.7-max"],modelDescriptorId:"qwen3.7-max",label:"Qwen3.7 Max",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/qwen3.7-plus",apiName:"cline-pass/qwen3.7-plus",aliases:["qwen3.7-plus"],modelDescriptorId:"qwen3.7-plus",label:"Qwen3.7 Plus",contextWindow:1e6,maxOutputTokens:67072,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/minimax-m3",apiName:"cline-pass/minimax-m3",aliases:["minimax-m3"],modelDescriptorId:"minimax-m3",label:"MiniMax M3",contextWindow:524288,maxOutputTokens:524288,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!1}},{id:"cline-pass/glm-5.2",apiName:"cline-pass/glm-5.2",aliases:["glm-5.2"],modelDescriptorId:"glm-5.2",label:"GLM 5.2",contextWindow:202752,maxOutputTokens:202752,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/kimi-k2.7-code",apiName:"cline-pass/kimi-k2.7-code",aliases:["kimi-k2.7-code"],modelDescriptorId:"kimi-k2.7-code",label:"Kimi K2.7 Code",contextWindow:262144,maxOutputTokens:32768,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/kimi-k2.6",apiName:"cline-pass/kimi-k2.6",aliases:["kimi-k2.6"],modelDescriptorId:"kimi-k2.6",label:"Kimi K2.6",contextWindow:262144,maxOutputTokens:262144,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/deepseek-v4-pro",apiName:"cline-pass/deepseek-v4-pro",aliases:["deepseek-v4-pro"],modelDescriptorId:"deepseek-v4-pro",label:"DeepSeek V4 Pro",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/deepseek-v4-flash",apiName:"cline-pass/deepseek-v4-flash",aliases:["deepseek-v4-flash"],modelDescriptorId:"deepseek-v4-flash",label:"DeepSeek V4 Flash",contextWindow:1048576,maxOutputTokens:393216,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/mimo-v2.5",apiName:"cline-pass/mimo-v2.5",aliases:["mimo-v2.5"],modelDescriptorId:"mimo-v2.5",label:"MiMo V2.5",contextWindow:1048576,maxOutputTokens:65536,capabilities:{supportsVision:!0,supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}},{id:"cline-pass/mimo-v2.5-pro",apiName:"cline-pass/mimo-v2.5-pro",aliases:["mimo-v2.5-pro"],modelDescriptorId:"mimo-v2.5-pro",label:"MiMo V2.5 Pro",contextWindow:1048576,maxOutputTokens:65536,capabilities:{supportsFunctionCalling:!0,supportsReasoning:!0},reasoning:{mode:"levels",levels:["low","medium","high","xhigh"],wireFormat:"reasoning_effort"}}]},usage:{supported:!0,ui:{showResetCountdown:!0,compactProgressBar:!1}}})});var cloudflare_default;var init_cloudflare=__esm(()=>{cloudflare_default=defineGateway({id:"cloudflare",label:"Cloudflare Workers AI",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/v1",defaultModel:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["CLOUDFLARE_API_TOKEN"]},transportConfig:{kind:"openai-compatible",openaiShim:{maxTokensField:"max_tokens",removeBodyFields:["store"],supportsApiFormatSelection:!1,supportsAuthHeaders:!1}},preset:{id:"cloudflare",vendorId:"openai",description:"Cloudflare Workers AI OpenAI-compatible endpoint. Replace <ACCOUNT_ID> in the base URL with your Cloudflare account id.",label:"Cloudflare Workers AI",name:"Cloudflare Workers AI",apiKeyEnvVars:["CLOUDFLARE_API_TOKEN"],modelEnvVars:["OPENAI_MODEL"]},validation:{kind:"credential-env",routing:{matchDefaultBaseUrl:!1,matchBaseUrlHosts:["api.cloudflare.com"]},credentialEnvVars:["CLOUDFLARE_API_TOKEN","OPENAI_API_KEY"],missingCredentialMessage:"Cloudflare Workers AI auth is required. Set CLOUDFLARE_API_TOKEN or OPENAI_API_KEY."},catalog:{source:"static",models:[{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",apiName:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",label:"Llama 3.3 70B Instruct (FP8 Fast)"},{id:"@cf/meta/llama-3.1-8b-instruct",apiName:"@cf/meta/llama-3.1-8b-instruct",label:"Llama 3.1 8B Instruct"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",apiName:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",label:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",apiName:"@cf/qwen/qwen2.5-coder-32b-instruct",label:"Qwen 2.5 Coder 32B Instruct"}]},usage:{supported:!1}})});function getContextWindow(value){if(typeof value==="number"&&Number.isFinite(value)&&Number.isInteger(value)&&value>0)return value;return}function getModelInfo(raw){if(!raw||typeof raw!=="object"||Array.isArray(raw))return;let modelInfo=raw.model_info;return modelInfo&&typeof modelInfo==="object"&&!Array.isArray(modelInfo)?modelInfo:void 0}var custom_default;var init_custom=__esm(()=>{custom_default=defineGateway({id:"custom",label:"Custom (OpenAI-compatible)",category:"hosted",defaultModel:"llama3.1:8b",supportsModelRouting:!0,setup:{requiresAuth:!1,authMode:"api-key"},transportConfig:{kind:"openai-compatible",openaiShim:{supportsApiFormatSelection:!0,supportsAuthHeaders:!0}},preset:{id:"custom",description:"Any OpenAI-compatible provider",label:"Custom (OpenAI-compatible)",name:"Custom (OpenAI-compatible)",apiKeyEnvVars:["OPENAI_API_KEYS","OPENAI_API_KEY"],baseUrlEnvVars:["OPENAI_BASE_URL","OPENAI_API_BASE"],modelEnvVars:["OPENAI_MODEL"],fallbackBaseUrl:"http://localhost:11434/v1",vendorId:"openai"},catalog:{source:"hybrid",discovery:{kind:"openai-compatible",mapModel(raw){if(!raw||typeof raw!=="object"||Array.isArray(raw))return null;let model=raw,modelId=typeof model.id==="string"?model.id.trim():"";if(!modelId)return null;let modelInfo=getModelInfo(raw),contextWindow=getContextWindow(model.context_length)??getContextWindow(model.context_window)??getContextWindow(model.max_model_len)??getContextWindow(model.max_input_tokens)??getContextWindow(modelInfo?.context_length)??getContextWindow(modelInfo?.context_window)??getContextWindow(modelInfo?.max_model_len)??getContextWindow(modelInfo?.max_input_tokens);return{id:modelId,apiName:modelId,label:modelId,...contextWindow!==void 0?{contextWindow}:{}}}},discoveryCacheTtl:"1d",discoveryRefreshMode:"startup",allowManualRefresh:!0,models:[]},usage:{supported:!1}})});var dashscope_cn_default;var init_dashscope_cn=__esm(()=>{dashscope_cn_default=defineGateway({id:"dashscope-cn",label:"Alibaba Coding Plan (China)",category:"hosted",defaultBaseUrl:"https://coding.dashscope.aliyuncs.com/v1",defaultModel:"qwen3.6-plus",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["DASHSCOPE_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0}},preset:{id:"dashscope-cn",description:"Alibaba DashScope China endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"],vendorId:"openai"},catalog:{source:"static",models:[{id:"qwen-cn-3.6-plus",apiName:"qwen3.6-plus",label:"Qwen 3.6 Plus",modelDescriptorId:"qwen3.6-plus"}]},usage:{supported:!1}})});var dashscope_intl_default;var init_dashscope_intl=__esm(()=>{dashscope_intl_default=defineGateway({id:"dashscope-intl",label:"Alibaba Coding Plan",category:"hosted",defaultBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1",defaultModel:"qwen3.6-plus",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"api-key",credentialEnvVars:["DASHSCOPE_API_KEY"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0}},preset:{id:"dashscope-intl",description:"Alibaba DashScope International endpoint",apiKeyEnvVars:["DASHSCOPE_API_KEY"],vendorId:"openai"},catalog:{source:"static",models:[{id:"qwen-intl-3.6-plus",apiName:"qwen3.6-plus",label:"Qwen 3.6 Plus",modelDescriptorId:"qwen3.6-plus"}]},usage:{supported:!1}})});var github_enterprise_default;var init_github_enterprise=__esm(()=>{github_enterprise_default=defineGateway({id:"github-enterprise",label:"GitHub Copilot Enterprise",vendorId:"openai",category:"hosted",defaultBaseUrl:"https://api.githubcopilot.com",supportsModelRouting:!0,setup:{requiresAuth:!0,authMode:"token",credentialEnvVars:["GITHUB_COPILOT_KEY","GITHUB_TOKEN","GH_TOKEN"]},transportConfig:{kind:"openai-compatible",openaiShim:{supportsAuthHeaders:!0,maxTokensField:"max_tokens"}},validation:{kind:"github-token",routing:{enablementEnvVar:"CLAUDE_CODE_USE_GITHUB",skipWhenUseOpenAI:!0},missingCredentialMessage:`GitHub Copilot Enterprise authentication required.
|
|
43
43
|
Set GITHUB_ENTERPRISE_URL to your GHE instance URL (e.g. https://github.mycompany.com).
|
|
44
44
|
Then run /onboard-github to sign in, or set GITHUB_COPILOT_KEY for direct API key auth.`,expiredCredentialMessage:`GitHub Copilot Enterprise token has expired.
|
|
45
45
|
Run /onboard-github to sign in again.`,invalidCredentialMessage:`GitHub Copilot Enterprise token is invalid or corrupted.
|
|
@@ -4712,7 +4712,7 @@ ${decision.nextInstruction}`:"","","Continue directly and use tools as needed. D
|
|
|
4712
4712
|
`)}async function saveGoalState(goal){let{recordGoalState}=await Promise.resolve().then(() => (init_sessionStorage(),exports_sessionStorage));await recordGoalState(goal,getSessionId())}var init_persistence=__esm(()=>{init_state()});import{randomUUID as randomUUID19}from"crypto";function nowIso(){return new Date().toISOString()}function normalizeGoalCondition(input){let trimmed=input.trim();if(trimmed.length>=2&&(trimmed.startsWith('"')&&trimmed.endsWith('"')||trimmed.startsWith("'")&&trimmed.endsWith("'")))return trimmed.slice(1,-1).trim();return trimmed}function validateGoalCondition(input){let condition=normalizeGoalCondition(input);if(!condition)return{ok:!1,error:"Goal condition cannot be empty."};if(condition.length>MAX_GOAL_CONDITION_CHARS)return{ok:!1,error:"Goal condition must be 4,000 characters or fewer."};return{ok:!0,condition}}function createGoalState(condition,now2=nowIso(),maxTurns=DEFAULT_GOAL_MAX_TURNS){return{id:randomUUID19(),condition:condition.trim(),status:"active",createdAt:now2,updatedAt:now2,startedAt:now2,turnCount:0,maxTurns,evaluatorFailures:0}}function pauseGoal(goal,now2=nowIso()){if(goal.status!=="active")return goal;return{...goal,status:"paused",pausedAt:now2,updatedAt:now2}}function resumeGoal(goal,now2=nowIso()){if(goal.status!=="paused"&&goal.status!=="active")return goal;return{...goal,status:"active",startedAt:now2,resumedAt:now2,pausedAt:void 0,updatedAt:now2,turnCount:0,lastEvaluatedMessageUuid:void 0}}function achieveGoal(goal,opts){let now2=opts.now??nowIso();return{...goal,status:"achieved",achievedAt:now2,updatedAt:now2,turnCount:goal.turnCount+1,lastEvaluatedMessageUuid:opts.evaluatedMessageUuid,lastDecision:"complete",lastReason:opts.reason,lastNextInstruction:opts.nextInstruction??void 0}}function markGoalEvaluated(goal,opts){let now2=opts.now??nowIso(),evaluatorFailed=opts.decision==="malformed"||opts.decision==="error";return{...goal,updatedAt:now2,turnCount:goal.turnCount+1,lastEvaluatedMessageUuid:opts.evaluatedMessageUuid,lastDecision:opts.decision,lastReason:opts.reason,lastNextInstruction:opts.nextInstruction??void 0,evaluatorFailures:goal.evaluatorFailures+(evaluatorFailed?1:0)}}function pauseGoalAtMaxTurns(goal,terminalMessageUuid,now2=nowIso(),evaluatorReason){let maxReason=`Goal paused: after reaching the maximum of ${goal.maxTurns} turns.`;return{...goal,status:"paused",pausedAt:now2,updatedAt:now2,lastEvaluatedMessageUuid:terminalMessageUuid,lastDecision:"incomplete",lastReason:evaluatorReason?`${maxReason} Last evaluator reason: ${evaluatorReason}`:maxReason}}function shouldEvaluateGoal(goal,terminalAssistantMessageUuid){if(!goal||goal.status!=="active")return!1;if(!terminalAssistantMessageUuid)return!1;if(goal.lastEvaluatedMessageUuid===terminalAssistantMessageUuid)return!1;if(goal.turnCount>=goal.maxTurns)return!1;return!0}function prepareGoalForSessionResume(goal,now2=nowIso()){if(!goal)return null;if(goal.status!=="active")return goal;return{...goal,startedAt:now2,resumedAt:now2,updatedAt:now2,turnCount:0,lastEvaluatedMessageUuid:void 0}}var DEFAULT_GOAL_MAX_TURNS=50,MAX_GOAL_CONDITION_CHARS=4000;var init_state2=()=>{};var exports_controller={};__export(exports_controller,{isMainThreadGoalSource:()=>isMainThreadGoalSource,evaluateGoalAfterTurn:()=>evaluateGoalAfterTurn});function isMainThreadGoalSource(querySource,toolUseContext){if(toolUseContext.agentId)return!1;if(typeof querySource!=="string")return!1;return querySource==="sdk"||querySource.startsWith("repl_main_thread")}function hasPendingInteractiveDialog(toolUseContext){let state2=toolUseContext.getAppState();return Boolean(state2.elicitation?.queue?.length||state2.pendingWorkerRequest||state2.pendingSandboxRequest||state2.activeOverlays?.size)}function terminalAssistantUuid(assistantMessages){return assistantMessages.at(-1)?.uuid}function getRecentGoalEvaluationMessages(messagesForQuery,assistantMessages){return[...messagesForQuery.slice(-GOAL_EVALUATION_MESSAGE_LIMIT),...assistantMessages.slice(-GOAL_EVALUATION_MESSAGE_LIMIT)].slice(-GOAL_EVALUATION_MESSAGE_LIMIT)}async function persistGoal(saveGoalState2,goal,logGoalPersistenceFailure){try{await saveGoalState2(goal)}catch(error41){logGoalPersistenceFailure(goal,error41)}}function describeGoalPersistenceError(error41){if(error41 instanceof Error)return{name:error41.name,message:error41.message};return{name:typeof error41,message:String(error41)}}function formatGoalPersistenceErrorMessage(message){return message.replace(/\s+/g," ").trim().slice(0,GOAL_PERSISTENCE_ERROR_MESSAGE_LIMIT)}function logGoalPersistenceFailureDefault(goal,error41){let sessionId=getSessionId(),{name,message}=describeGoalPersistenceError(error41),goalId=goal?.id??null,goalStatus=goal?.status??null;logForDiagnosticsNoPII("warn","goal_persistence_failed",{session_id:sessionId,goal_id:goalId,goal_status:goalStatus,error_name:name}),logForDebugging(["Goal persistence failed",`session_id=${sessionId}`,`goal_id=${goalId??"none"}`,`goal_status=${goalStatus??"none"}`,`error_name=${name}`,`error_message=${formatGoalPersistenceErrorMessage(message)}`].join(" "),{level:"warn"})}async function*evaluateGoalAfterTurn({messagesForQuery,assistantMessages,toolUseContext,querySource,deps={}}){let evaluateGoal2=deps.evaluateGoal??evaluateGoal,getTotalCost=deps.getTotalCost??getTotalCostUSD,logGoalPersistenceFailure=deps.logGoalPersistenceFailure??logGoalPersistenceFailureDefault,saveGoalState2=deps.saveGoalState??saveGoalState,terminalUuid=terminalAssistantUuid(assistantMessages),goal=toolUseContext.getAppState().goal??null;if(!isMainThreadGoalSource(querySource,toolUseContext))return[];if(!goal||goal.status!=="active")return[];if(!terminalUuid)return[];if(goal.lastEvaluatedMessageUuid===terminalUuid)return[];if(toolUseContext.abortController.signal.aborted)return[];if(hasPendingInteractiveDialog(toolUseContext))return[];if(goal.turnCount>=goal.maxTurns){let paused=pauseGoalAtMaxTurns(goal,terminalUuid,nowIso());return toolUseContext.setAppState((prev)=>({...prev,goal:paused})),await persistGoal(saveGoalState2,paused,logGoalPersistenceFailure),yield createSystemMessage(paused.lastReason??"Goal paused: automatic continuation has been paused.","warning"),[]}if(!shouldEvaluateGoal(goal,terminalUuid))return[];if(toolUseContext.options.maxBudgetUsd!==void 0&&getTotalCost()>=toolUseContext.options.maxBudgetUsd)return[];let decision=await evaluateGoal2({goal,messages:getRecentGoalEvaluationMessages(messagesForQuery,assistantMessages),signal:toolUseContext.abortController.signal,isNonInteractiveSession:toolUseContext.options.isNonInteractiveSession??!1});if(toolUseContext.abortController.signal.aborted)return[];if(decision.complete){let achieved=achieveGoal(goal,{evaluatedMessageUuid:terminalUuid,reason:decision.reason,nextInstruction:decision.nextInstruction});return toolUseContext.setAppState((prev)=>({...prev,goal:achieved})),await persistGoal(saveGoalState2,achieved,logGoalPersistenceFailure),yield createSystemMessage(`Goal achieved: ${decision.reason}`,"info"),[]}if(decision.decision==="malformed"||decision.decision==="error"){let now2=nowIso(),paused=pauseGoal(markGoalEvaluated(goal,{evaluatedMessageUuid:terminalUuid,decision:decision.decision,reason:decision.reason,nextInstruction:null,now:now2}),now2);return toolUseContext.setAppState((prev)=>({...prev,goal:paused})),await persistGoal(saveGoalState2,paused,logGoalPersistenceFailure),yield createSystemMessage(`Goal paused: ${decision.reason}`,"warning"),[]}let updatedGoal=markGoalEvaluated(goal,{evaluatedMessageUuid:terminalUuid,decision:decision.decision==="complete"?"incomplete":decision.decision,reason:decision.reason,nextInstruction:decision.nextInstruction});if(updatedGoal.turnCount>=updatedGoal.maxTurns){let paused=pauseGoalAtMaxTurns(updatedGoal,terminalUuid,nowIso(),decision.reason);return toolUseContext.setAppState((prev)=>({...prev,goal:paused})),await persistGoal(saveGoalState2,paused,logGoalPersistenceFailure),yield createSystemMessage(`Goal not complete: ${decision.reason} Goal paused after reaching the maximum of ${updatedGoal.maxTurns} turns.`,"warning"),[]}return toolUseContext.setAppState((prev)=>({...prev,goal:updatedGoal})),await persistGoal(saveGoalState2,updatedGoal,logGoalPersistenceFailure),yield createSystemMessage(`Goal not complete: ${decision.reason}`,"info"),[createUserMessage({content:buildGoalContinuationInstruction(updatedGoal,decision),isMeta:!0})]}var GOAL_EVALUATION_MESSAGE_LIMIT=24,GOAL_PERSISTENCE_ERROR_MESSAGE_LIMIT=500;var init_controller=__esm(()=>{init_state();init_cost_tracker();init_debug();init_diagLogs();init_messages3();init_evaluator();init_persistence();init_state2()});function isMainThreadCacheParamSource(querySource){return querySource.startsWith("repl_main_thread")||querySource==="sdk"}async function*handleStopHooks(messagesForQuery,assistantMessages,systemPrompt,userContext,systemContext,toolUseContext,querySource,stopHookActive,goalEvaluationDeps,stopHookExecutionDeps){let hookStartTime=Date.now(),hookDeps={executeStopHooks,executeTaskCompletedHooks,executeTeammateIdleHooks,getStopHookMessage,getTaskCompletedHookMessage,getTeammateIdleHookMessage,isTeammate,...stopHookExecutionDeps},stopHookContext={messages:[...messagesForQuery,...assistantMessages],systemPrompt,userContext,systemContext,toolUseContext,querySource};if(isMainThreadCacheParamSource(querySource))saveCacheSafeParams(createCacheSafeParams(stopHookContext));if(!isBareMode()){if(!isEnvDefinedFalsy(process.env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION))executePromptSuggestion(stopHookContext);if(!toolUseContext.agentId&&isExtractModeActive())extractMemoriesModule.executeExtractMemories(stopHookContext,toolUseContext.appendSystemMessage);if(!toolUseContext.agentId)executeAutoDream(stopHookContext,toolUseContext.appendSystemMessage)}try{let blockingErrors=[],permissionMode=toolUseContext.getAppState().toolPermissionContext.mode,generator=hookDeps.executeStopHooks(permissionMode,toolUseContext.abortController.signal,void 0,stopHookActive??!1,toolUseContext.agentId,toolUseContext,[...messagesForQuery,...assistantMessages],toolUseContext.agentType),stopHookToolUseID="",hookCount=0,preventedContinuation=!1,stopReason="",hasOutput=!1,hookErrors=[],hookInfos=[];for await(let result of generator){if(result.message){if(yield result.message,result.message.type==="progress"&&result.message.toolUseID){stopHookToolUseID=result.message.toolUseID,hookCount++;let progressData=result.message.data;if(progressData.command)hookInfos.push({command:progressData.command,promptText:progressData.promptText})}if(result.message.type==="attachment"){let attachment=result.message.attachment;if("hookEvent"in attachment&&(attachment.hookEvent==="Stop"||attachment.hookEvent==="SubagentStop")){if(attachment.type==="hook_non_blocking_error")hookErrors.push(attachment.stderr||`Exit code ${attachment.exitCode}`),hasOutput=!0;else if(attachment.type==="hook_error_during_execution")hookErrors.push(attachment.content),hasOutput=!0;else if(attachment.type==="hook_success"){if(attachment.stdout&&attachment.stdout.trim()||attachment.stderr&&attachment.stderr.trim())hasOutput=!0}if("durationMs"in attachment&&"command"in attachment){let info=hookInfos.find((i3)=>i3.command===attachment.command&&i3.durationMs===void 0);if(info)info.durationMs=attachment.durationMs}}}}if(result.blockingError){let userMessage=createUserMessage({content:hookDeps.getStopHookMessage(result.blockingError),isMeta:!0});blockingErrors.push(userMessage),yield userMessage,hasOutput=!0,hookErrors.push(result.blockingError.blockingError)}if(result.preventContinuation)preventedContinuation=!0,stopReason=result.stopReason||"Stop hook prevented continuation",yield createAttachmentMessage({type:"hook_stopped_continuation",message:stopReason,hookName:"Stop",toolUseID:stopHookToolUseID,hookEvent:"Stop"});if(toolUseContext.abortController.signal.aborted){let abortReason2=toolUseContext.abortController.signal.reason;logEvent("tengu_pre_stop_hooks_cancelled",{queryChainId:toolUseContext.queryTracking?.chainId,queryDepth:toolUseContext.queryTracking?.depth});let abortSystemMessage=getQueryAbortSystemMessage(abortReason2);if(abortSystemMessage)yield createSystemMessage(abortSystemMessage,"warning");if(shouldCreateUserInterruptionMessage(abortReason2))yield createUserInterruptionMessage({toolUse:!1});return{blockingErrors:[],preventContinuation:!0,stopHookActive:!1}}}if(hookCount>0){if(yield createStopHookSummaryMessage(hookCount,hookInfos,hookErrors,preventedContinuation,stopReason,hasOutput,"suggestion",stopHookToolUseID),hookErrors.length>0){let expandShortcut=getShortcutDisplay("app:toggleTranscript","Global","ctrl+o");toolUseContext.addNotification?.({key:"stop-hook-error",text:`Stop hook error occurred · ${expandShortcut} to see`,priority:"immediate"})}}if(preventedContinuation)return{blockingErrors:[],preventContinuation:!0,stopHookActive:!1};if(blockingErrors.length>0)return{blockingErrors,preventContinuation:!1,stopHookActive:!0};if(hookDeps.isTeammate()){let teammateName=getAgentName()??"",teamName=getTeamName()??"",teammateBlockingErrors=[],teammatePreventedContinuation=!1,teammateStopReason,teammateHookToolUseID="",taskListId=getTaskListId(),inProgressTasks=(await listTasks(taskListId)).filter((t)=>t.status==="in_progress"&&t.owner===teammateName);for(let task of inProgressTasks){let taskCompletedGenerator=hookDeps.executeTaskCompletedHooks(task.id,task.subject,task.description,teammateName,teamName,permissionMode,toolUseContext.abortController.signal,void 0,toolUseContext);for await(let result of taskCompletedGenerator){if(result.message){if(result.message.type==="progress"&&result.message.toolUseID)teammateHookToolUseID=result.message.toolUseID;yield result.message}if(result.blockingError){let userMessage=createUserMessage({content:hookDeps.getTaskCompletedHookMessage(result.blockingError),isMeta:!0});teammateBlockingErrors.push(userMessage),yield userMessage}if(result.preventContinuation)teammatePreventedContinuation=!0,teammateStopReason=result.stopReason||"TaskCompleted hook prevented continuation",yield createAttachmentMessage({type:"hook_stopped_continuation",message:teammateStopReason,hookName:"TaskCompleted",toolUseID:teammateHookToolUseID,hookEvent:"TaskCompleted"});if(toolUseContext.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0,stopHookActive:!1}}}let teammateIdleGenerator=hookDeps.executeTeammateIdleHooks(teammateName,teamName,permissionMode,toolUseContext.abortController.signal);for await(let result of teammateIdleGenerator){if(result.message){if(result.message.type==="progress"&&result.message.toolUseID)teammateHookToolUseID=result.message.toolUseID;yield result.message}if(result.blockingError){let userMessage=createUserMessage({content:hookDeps.getTeammateIdleHookMessage(result.blockingError),isMeta:!0});teammateBlockingErrors.push(userMessage),yield userMessage}if(result.preventContinuation)teammatePreventedContinuation=!0,teammateStopReason=result.stopReason||"TeammateIdle hook prevented continuation",yield createAttachmentMessage({type:"hook_stopped_continuation",message:teammateStopReason,hookName:"TeammateIdle",toolUseID:teammateHookToolUseID,hookEvent:"TeammateIdle"});if(toolUseContext.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0,stopHookActive:!1}}if(teammatePreventedContinuation)return{blockingErrors:[],preventContinuation:!0,stopHookActive:!1};if(teammateBlockingErrors.length>0)return{blockingErrors:teammateBlockingErrors,preventContinuation:!1,stopHookActive:!1}}let activeGoal=toolUseContext.getAppState().goal,terminalAssistantUuid2=assistantMessages.at(-1)?.uuid,isMainThreadGoalQuery=!toolUseContext.agentId&&typeof querySource==="string"&&(querySource==="sdk"||querySource.startsWith("repl_main_thread"));if(activeGoal?.status==="active"&&isMainThreadGoalQuery&&terminalAssistantUuid2&&activeGoal.lastEvaluatedMessageUuid!==terminalAssistantUuid2){let{evaluateGoalAfterTurn:evaluateGoalAfterTurn2}=await Promise.resolve().then(() => (init_controller(),exports_controller)),goalBlockingErrors=yield*evaluateGoalAfterTurn2({messagesForQuery,assistantMessages,toolUseContext,querySource,deps:goalEvaluationDeps});if(goalBlockingErrors.length>0){for(let userMessage of goalBlockingErrors)yield userMessage;return{blockingErrors:goalBlockingErrors,preventContinuation:!1,stopHookActive:!1}}}return{blockingErrors:[],preventContinuation:!1,stopHookActive:!1}}catch(error41){let durationMs=Date.now()-hookStartTime;return logEvent("tengu_stop_hook_error",{duration:durationMs,queryChainId:toolUseContext.queryTracking?.chainId,queryDepth:toolUseContext.queryTracking?.depth}),yield createSystemMessage(`Stop hook failed: ${errorMessage(error41)}`,"warning"),{blockingErrors:[],preventContinuation:!1,stopHookActive:!1}}}var extractMemoriesModule;var init_stopHooks=__esm(()=>{init_shortcutFormat();init_paths();init_attachments2();init_abortReasons();init_debug();init_errors();init_hooks4();init_messages3();init_tasks();init_teammate();init_autoDream();init_promptSuggestion();init_envUtils();init_forkedAgent();extractMemoriesModule=(init_extractMemories(),__toCommonJS(exports_extractMemories))});function createToolFailureLoopGuardState(){return{persistentSignatureCounts:new Map,signatureCounts:new Map,categoryCounts:new Map,pathCounts:new Map}}function getToolFailureLoopThreshold(value=process.env.CLAUDE_CODE_TOOL_FAILURE_LOOP_THRESHOLD){if(value===void 0)return DEFAULT_TOOL_FAILURE_LOOP_THRESHOLD;let trimmed=value.trim();if(!/^\d+$/.test(trimmed))return DEFAULT_TOOL_FAILURE_LOOP_THRESHOLD;let parsed=Number(trimmed);return Number.isSafeInteger(parsed)?parsed:DEFAULT_TOOL_FAILURE_LOOP_THRESHOLD}function updateToolFailureLoopGuard(params){let threshold=normalizeThreshold(params.threshold);if(threshold===0)return{tripped:!1};let toolUseById=new Map(params.toolUseBlocks.map((block2)=>[block2.id,block2])),failures=[],hasSuccess=!1,successfulToolNames=new Set,successfulMutationPaths=new Set;for(let block2 of getToolResultBlocks(params.toolResults)){let content=toolResultContentToString(block2.content),toolUse=toolUseById.get(String(block2.tool_use_id??""));if(block2.is_error!==!0){if(hasSuccess=!0,toolUse?.name)successfulToolNames.add(toolUse.name);if(toolUse&&isMutatingFileTool(toolUse.name)){let path21=extractNormalizedPath(toolUse.input);if(path21)successfulMutationPaths.add(path21)}continue}if(block2.isAgentStepLimitToolResult||isIgnoredSyntheticToolResult(content))continue;let toolName=toolUse?.name??"unknown",errorCategory=normalizeErrorCategory(content);failures.push({toolName,errorCategory,path:extractNormalizedPath(toolUse?.input)})}for(let toolName of successfulToolNames)resetPersistentToolSignatures(params.state,toolName);let advisories=[];for(let failure of failures){let persistentSignatureCount=incrementCounter(params.state.persistentSignatureCounts,`${failure.toolName}\x00${failure.errorCategory}`);if(persistentSignatureCount>=threshold)return{tripped:!0,kind:"signature",threshold,toolName:failure.toolName,errorCategory:failure.errorCategory,message:createTripMessage({kind:"signature",threshold,toolName:failure.toolName,errorCategory:failure.errorCategory})};if(threshold>1&&persistentSignatureCount===threshold-1)advisories.push({threshold,toolName:failure.toolName,errorCategory:failure.errorCategory,message:createAdvisoryMessage({threshold,toolName:failure.toolName,errorCategory:failure.errorCategory})})}for(let failure of failures){if(!failure.path||successfulMutationPaths.has(failure.path))continue;if(incrementCounter(params.state.pathCounts,failure.path)>=threshold)return{tripped:!0,kind:"path",threshold,path:failure.path,message:createTripMessage({kind:"path",threshold,path:failure.path})}}if(hasSuccess)return resetToolFailureLoopGuard(params.state,successfulMutationPaths),advisories.length>0?{tripped:!1,advisories}:{tripped:!1};for(let failure of failures){let signatureCount=incrementCounter(params.state.signatureCounts,`${failure.toolName}\x00${failure.errorCategory}`),categoryCount=incrementCounter(params.state.categoryCounts,failure.errorCategory);if(signatureCount>=threshold)return{tripped:!0,kind:"signature",threshold,toolName:failure.toolName,errorCategory:failure.errorCategory,message:createTripMessage({kind:"signature",threshold,toolName:failure.toolName,errorCategory:failure.errorCategory})};if(categoryCount>=threshold)return{tripped:!0,kind:"category",threshold,errorCategory:failure.errorCategory,message:createTripMessage({kind:"category",threshold,errorCategory:failure.errorCategory})}}return advisories.length>0?{tripped:!1,advisories}:{tripped:!1}}function normalizeThreshold(threshold){if(threshold===void 0)return getToolFailureLoopThreshold();if(!Number.isSafeInteger(threshold)||threshold<0)return DEFAULT_TOOL_FAILURE_LOOP_THRESHOLD;return threshold}function resetToolFailureLoopGuard(state2,successfulMutationPaths){state2.signatureCounts.clear(),state2.categoryCounts.clear();for(let path21 of successfulMutationPaths)state2.pathCounts.delete(path21)}function resetPersistentToolSignatures(state2,toolName){let prefix=`${toolName}\x00`;for(let key of state2.persistentSignatureCounts.keys())if(key.startsWith(prefix))state2.persistentSignatureCounts.delete(key)}function isMutatingFileTool(toolName){return toolName==="Edit"||toolName==="MultiEdit"||toolName==="Write"||toolName==="NotebookEdit"}function getToolResultBlocks(messages){let blocks=[];for(let message of messages){if(message?.type!=="user"||!Array.isArray(message.message?.content))continue;for(let block2 of message.message.content)if(isToolResultBlock(block2))blocks.push({...block2,isAgentStepLimitToolResult:message.isAgentStepLimitToolResult})}return blocks}function isToolResultBlock(block2){return typeof block2==="object"&&block2!==null&&block2.type==="tool_result"}function toolResultContentToString(content){if(typeof content==="string")return content;if(Array.isArray(content))return content.map(toolResultContentToString).join(" ");if(typeof content==="object"&&content!==null){let block2=content;if(block2.text!==void 0)return toolResultContentToString(block2.text);if(block2.content!==void 0)return toolResultContentToString(block2.content)}if(content===void 0||content===null)return"";return String(content)}function isIgnoredSyntheticToolResult(content){let withoutErrorPrefix=normalizeToolResultText(content).toLowerCase().replace(/^\[(.*)\]$/,"$1").trim().replace(/^error:\s*/,"").trim();return withoutErrorPrefix==="interrupted by user"||withoutErrorPrefix.startsWith("request interrupted by user")||withoutErrorPrefix==="user rejected tool use"||withoutErrorPrefix.startsWith("the user doesn't want to proceed with this tool use")||withoutErrorPrefix.startsWith("the user doesn't want to take this action right now")||SYNTHETIC_ABORT_TOOL_RESULT_PREFIXES.some((prefix)=>withoutErrorPrefix.startsWith(prefix))||withoutErrorPrefix==="streaming fallback - tool execution discarded"||withoutErrorPrefix.startsWith("cancelled: parallel tool call")}function normalizeErrorCategory(content){let normalized=normalizeToolResultText(content);if(/\bInputValidationError\b/i.test(normalized))return"InputValidationError";if(/Invalid tool parameters/i.test(normalized))return"InputValidationError";if(/No such tool available/i.test(normalized))return"NoSuchTool";if(/\b(EACCES|EPERM)\b/i.test(normalized))return"PermissionError";if(/permission denied/i.test(normalized))return"PermissionError";if(/\bENOENT\b/i.test(normalized)||/not found/i.test(normalized))return"NotFound";if(/Error writing file/i.test(normalized))return"FileWriteError";return normalized.toLowerCase().slice(0,MAX_FALLBACK_CATEGORY_LENGTH)||"unknown error"}function normalizeToolResultText(content){return content.replace(/<\/?tool_use_error[^>]*>/gi," ").replace(/\s+/g," ").trim()}function extractNormalizedPath(input){if(typeof input!=="object"||input===null)return;let record3=input;for(let field of["file_path","path","notebook_path"]){let value=record3[field];if(typeof value!=="string")continue;let normalized=normalizePath2(value);if(normalized)return normalized}return}function normalizePath2(path21){let normalized=path21.trim().replace(/\\/g,"/").replace(/\/{2,}/g,"/").replace(/\/+$/g,"");return normalized===""&&path21.trim().startsWith("/")?"/":normalized}function incrementCounter(counts,key){let next=(counts.get(key)??0)+1;return counts.set(key,next),next}function createTripMessage(detail){let reason;if(detail.kind==="path")reason=`The path \`${getTripPath(detail.path)}\` failed ${detail.threshold} times.`;else if(detail.kind==="signature")reason=`\`${getAdvisoryToolName(detail.toolName)}\` failed ${detail.threshold} times with \`${getAdvisoryErrorCategory(detail.errorCategory)}\`.`;else reason=`Tool calls failed ${detail.threshold} times with \`${getAdvisoryErrorCategory(detail.errorCategory)}\`.`;return["Stopped: repeated tool failures detected.","",`${reason} Please inspect permissions, path, or tool schema before retrying.`].join(`
|
|
4713
4713
|
`)}function createAdvisoryMessage({threshold,toolName,errorCategory}){return["Warning: repeated tool failures are close to stopping this query.","",`\`${getAdvisoryToolName(toolName)}\` failed ${threshold-1}/${threshold} times with \`${getAdvisoryErrorCategory(errorCategory)}\`. One more matching failure will stop the query. Try a different tool, or verify the path, permissions, and tool inputs before retrying.`].join(`
|
|
4714
4714
|
`)}function getAdvisoryToolName(toolName){return/^[A-Za-z0-9_.:-]+$/.test(toolName)?toolName:"unknown tool"}function getAdvisoryErrorCategory(errorCategory){return["InputValidationError","NoSuchTool","PermissionError","NotFound","FileWriteError"].includes(errorCategory)?errorCategory:"unknown error"}function getTripPath(path21){let sanitized=path21.replace(/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}`]/gu,"");return sanitized===""?"unknown path":sanitized}var DEFAULT_TOOL_FAILURE_LOOP_THRESHOLD=3,MAX_FALLBACK_CATEGORY_LENGTH=120,SYNTHETIC_ABORT_TOOL_RESULT_PREFIXES;var init_toolFailureLoopGuard=__esm(()=>{init_abortReasons();SYNTHETIC_ABORT_TOOL_RESULT_PREFIXES=[getMissingToolResultAbortMessage("interrupt"),getMissingToolResultAbortMessage("query-timeout"),getMissingToolResultAbortMessage("hard-max-query-timeout"),getMissingToolResultAbortMessage("background"),getMissingToolResultAbortMessage("side-task-cancelled"),getMissingToolResultAbortMessage("agent-summary-superseded"),getMissingToolResultAbortMessage("memory-extraction-superseded"),getMissingToolResultAbortMessage("parent-ended"),getMissingToolResultAbortMessage("unknown-abort")].map((message)=>message.toLowerCase())});var AGENT_STEP_LIMIT_TOOL_RESULT_PREFIX="Agent step limit reached";function buildQueryConfig(){return{sessionId:getSessionId(),gates:{streamingToolExecution:checkStatsigFeatureGate_CACHED_MAY_BE_STALE("tengu_streaming_tool_execution2"),emitToolUseSummaries:isEnvTruthy(process.env.CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES),isAnt:!1,fastModeEnabled:!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_FAST_MODE)}}}var init_config6=__esm(()=>{init_state();init_growthbook();init_envUtils()});import{randomUUID as randomUUID20}from"crypto";function productionDeps(){return{callModel:queryModelWithStreaming,microcompact:microcompactMessages,autocompact:autoCompactIfNeeded,uuid:randomUUID20}}var init_deps=__esm(()=>{init_claude3();init_autoCompact();init_microCompact()});function parseBudgetMatch(value,suffix){return parseFloat(value)*MULTIPLIERS[suffix.toLowerCase()]}function parseTokenBudget(text2){let startMatch=text2.match(SHORTHAND_START_RE);if(startMatch)return parseBudgetMatch(startMatch[1],startMatch[2]);let endMatch=text2.match(SHORTHAND_END_RE);if(endMatch)return parseBudgetMatch(endMatch[1],endMatch[2]);let verboseMatch=text2.match(VERBOSE_RE);if(verboseMatch)return parseBudgetMatch(verboseMatch[1],verboseMatch[2]);return null}function findTokenBudgetPositions(text2){let positions=[],startMatch=text2.match(SHORTHAND_START_RE);if(startMatch){let offset=startMatch.index+startMatch[0].length-startMatch[0].trimStart().length;positions.push({start:offset,end:startMatch.index+startMatch[0].length})}let endMatch=text2.match(SHORTHAND_END_RE);if(endMatch){let endStart=endMatch.index+1;if(!positions.some((p)=>endStart>=p.start&&endStart<p.end))positions.push({start:endStart,end:endMatch.index+endMatch[0].length})}for(let match of text2.matchAll(VERBOSE_RE_G))positions.push({start:match.index,end:match.index+match[0].length});return positions}function getBudgetContinuationMessage(pct,turnTokens,budget){let fmt=(n2)=>new Intl.NumberFormat("en-US").format(n2);return`Stopped at ${pct}% of token target (${fmt(turnTokens)} / ${fmt(budget)}). Keep working — do not summarize.`}var SHORTHAND_START_RE,SHORTHAND_END_RE,VERBOSE_RE,VERBOSE_RE_G,MULTIPLIERS;var init_tokenBudget=__esm(()=>{SHORTHAND_START_RE=/^\s*\+(\d+(?:\.\d+)?)\s*(k|m|b)\b/i,SHORTHAND_END_RE=/\s\+(\d+(?:\.\d+)?)\s*(k|m|b)\s*[.!?]?\s*$/i,VERBOSE_RE=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,VERBOSE_RE_G=new RegExp(VERBOSE_RE.source,"gi"),MULTIPLIERS={k:1000,m:1e6,b:1e9}});function createBudgetTracker(){return{continuationCount:0,lastDeltaTokens:0,lastGlobalTurnTokens:0,startedAt:Date.now()}}function checkTokenBudget(tracker,agentId,budget,globalTurnTokens){if(agentId||budget===null||budget<=0)return{action:"stop",completionEvent:null};let turnTokens=globalTurnTokens,pct=Math.round(turnTokens/budget*100),deltaSinceLastCheck=globalTurnTokens-tracker.lastGlobalTurnTokens,isDiminishing=tracker.continuationCount>=3&&deltaSinceLastCheck<DIMINISHING_THRESHOLD&&tracker.lastDeltaTokens<DIMINISHING_THRESHOLD;if(!isDiminishing&&turnTokens<budget*COMPLETION_THRESHOLD)return tracker.continuationCount++,tracker.lastDeltaTokens=deltaSinceLastCheck,tracker.lastGlobalTurnTokens=globalTurnTokens,{action:"continue",nudgeMessage:getBudgetContinuationMessage(pct,turnTokens,budget),continuationCount:tracker.continuationCount,pct,turnTokens,budget};if(isDiminishing||tracker.continuationCount>0)return{action:"stop",completionEvent:{continuationCount:tracker.continuationCount,pct,turnTokens,budget,diminishingReturns:isDiminishing,durationMs:Date.now()-tracker.startedAt}};return{action:"stop",completionEvent:null}}var COMPLETION_THRESHOLD=0.9,DIMINISHING_THRESHOLD=500;var init_tokenBudget2=__esm(()=>{init_tokenBudget()});var exports_taskSummary={};__export(exports_taskSummary,{shouldGenerateTaskSummary:()=>shouldGenerateTaskSummary,maybeGenerateTaskSummary:()=>maybeGenerateTaskSummary});function shouldGenerateTaskSummary(){return!1}function maybeGenerateTaskSummary(_params){}function*yieldMissingToolResultBlocks(assistantMessages,errorMessage2){for(let assistantMessage of assistantMessages){let toolUseBlocks=assistantMessage.message.content.filter((content)=>content.type==="tool_use");for(let toolUse of toolUseBlocks)yield createUserMessage({content:[{type:"tool_result",content:errorMessage2,is_error:!0,tool_use_id:toolUse.id}],toolUseResult:errorMessage2,sourceToolAssistantUUID:assistantMessage.uuid})}}function normalizeAgentStepLimit(limit){if(!limit||!Number.isInteger(limit.maxSteps)||limit.maxSteps<=0)return;return{maxSteps:limit.maxSteps,agentType:limit.agentType,stepsUsed:0,summaryRequested:!1}}function findAssistantMessageForToolUse(assistantMessages,toolUseId){return assistantMessages.find((message)=>message.message.content.some((content)=>content.type==="tool_use"&&content.id===toolUseId))}function createAgentStepLimitToolResult(toolUse,assistantMessage,limit){let content=`${AGENT_STEP_LIMIT_TOOL_RESULT_PREFIX} for '${limit.agentType??"subagent"}' (${limit.stepsUsed}/${limit.maxSteps} tool uses). This tool call was not executed. Do not call more tools; provide the final summary requested next.`;return createUserMessage({content:[{type:"tool_result",content:`<tool_use_error>${content}</tool_use_error>`,is_error:!0,tool_use_id:toolUse.id}],toolUseResult:content,isAgentStepLimitToolResult:!0,...assistantMessage?{sourceToolAssistantUUID:assistantMessage.uuid}:{}})}function createAgentStepLimitSummaryRequest(limit){return createUserMessage({content:`Agent '${limit.agentType??"subagent"}' reached its configured step limit after ${limit.stepsUsed}/${limit.maxSteps} tool uses. Stop using tools now. Provide a concise final summary with these sections: completed work, findings, remaining tasks, and whether another run is needed.`,isMeta:!0})}function createAgentStepLimitForcedSummary(limit,blockedToolUseCount){let blockedCallText=blockedToolUseCount===1?"1 additional tool call was blocked":`${blockedToolUseCount} additional tool calls were blocked`;return createAssistantMessage({content:`Completed work: Agent '${limit.agentType??"subagent"}' reached its configured step limit after ${limit.stepsUsed}/${limit.maxSteps} tool uses. Findings: ${blockedCallText} during the forced summary step and no more tools were run. Remaining tasks: continue any unfinished work in another run if more tool access is needed. Another run needed: yes, if the requested task is not complete.`})}function hasAssistantSummaryText(assistantMessage){let text2=(assistantMessage?.message.content??[]).map((part)=>part.type==="text"&&typeof part.text==="string"?part.text.toLowerCase():"").join(`
|
|
4715
|
-
`);return text2.includes("completed")&&text2.includes("findings")&&text2.includes("remaining tasks")&&text2.includes("another run")}function formatAutoCompactRetryDelay(delayMs){let totalSeconds=Math.max(1,Math.ceil(delayMs/1000));if(totalSeconds<60)return`${totalSeconds} second${totalSeconds===1?"":"s"}`;let totalMinutes=Math.ceil(totalSeconds/60);return`${totalMinutes} minute${totalMinutes===1?"":"s"}`}function createAutoCompactDiagnosticMessage(args){let{consecutiveFailures,nextRetryAtMs,circuitBreakerActive,circuitBreakerTripped}=args;if(circuitBreakerActive||circuitBreakerTripped){let retryDelayMs=nextRetryAtMs!==void 0?nextRetryAtMs-Date.now():void 0,retryText=retryDelayMs!==void 0&&retryDelayMs>0?` It will retry after ${formatAutoCompactRetryDelay(retryDelayMs)}.`:"";return createSystemMessage(`Automatic compaction is paused after repeated failures.${retryText} Claudio will stop before sending oversized requests while the guard is active.`,"warning")}if(consecutiveFailures!==void 0&&consecutiveFailures>0)return createSystemMessage(`Automatic compaction failed (${consecutiveFailures}/${MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES}); Claudio will retry compaction on the next eligible turn.`,"warning");return}function isWithheldMaxOutputTokens(msg){return msg?.type==="assistant"&&msg.apiError==="max_output_tokens"}function isWithheldContextOverflow(msg){return msg?.type==="assistant"&&msg.apiError==="context_overflow"}function shouldRecoverContextOverflow(msg,hasAttemptedContextOverflowRecovery,querySource){return!hasAttemptedContextOverflowRecovery&&querySource!=="compact"&&querySource!=="session_memory"&&isWithheldContextOverflow(msg)}function createContextOverflowRecoveryMessage(){return createUserMessage({content:"The previous provider request exceeded the context window. Claudio compacted the conversation and is retrying this turn once; continue from the compacted context, avoid repeating the oversized request shape, and use narrower tool reads if more detail is needed.",isMeta:!0})}function isWithheldProviderMaxTokensCap(msg){return msg?.type==="assistant"&&getProviderMaxTokensCapFromMessage(msg)!==void 0}function injectRequestOnlyMessages(messages,requestOnlyMessages){if(!requestOnlyMessages?.length)return[...messages];let latestUserIndex=messages.findLastIndex(isHumanTurn),insertionIndex=latestUserIndex===-1?messages.length:latestUserIndex;return[...messages.slice(0,insertionIndex),...requestOnlyMessages,...messages.slice(insertionIndex)]}async function*query2(params){let consumedCommandUuids=[],terminal=yield*queryLoop(params,consumedCommandUuids);for(let uuid5 of consumedCommandUuids)notifyCommandLifecycle(uuid5,"completed");return terminal}async function*queryLoop(params,consumedCommandUuids){let __stack=[];try{let{systemPrompt,userContext,systemContext,canUseTool,fallbackModel,querySource,maxTurns,skipCacheWrite}=params;let deps=params.deps??productionDeps();let state2={messages:params.messages,toolUseContext:params.toolUseContext,maxOutputTokensOverride:params.maxOutputTokensOverride,providerMaxOutputTokensCap:void 0,autoCompactTracking:params.autoCompactTracking,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,turnCount:1,continuationNudgeCount:0,pendingToolUseSummary:void 0,transition:void 0,agentStepLimit:normalizeAgentStepLimit(params.agentStepLimit)};let budgetTracker=createBudgetTracker();let updateAutoCompactTracking=(tracking)=>{params.onAutoCompactTrackingChange?.(tracking)};let taskBudgetRemaining=void 0;let requestOnlyMessages=params.requestOnlyMessages;let pendingToolFailureAdvisories=[];let pinnedTurnRoute=void 0;let pinnedRouteProviderId=void 0;let toolFailureGuardState=createToolFailureLoopGuardState();let config3=buildQueryConfig();const pendingMemoryPrefetch=__using(__stack,startRelevantMemoryPrefetch(state2.messages,state2.toolUseContext),0);while(!0){let{toolUseContext}=state2,{messages,autoCompactTracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride,providerMaxOutputTokensCap,pendingToolUseSummary,stopHookActive,turnCount,agentStepLimit}=state2,effectiveMaxOutputTokensOverride=maxOutputTokensOverride===void 0?providerMaxOutputTokensCap:providerMaxOutputTokensCap===void 0?maxOutputTokensOverride:Math.min(maxOutputTokensOverride,providerMaxOutputTokensCap),pendingSkillPrefetch=skillPrefetch?.startSkillDiscoveryPrefetch(null,messages,toolUseContext);if(yield{type:"stream_request_start"},queryCheckpoint("query_fn_entry"),!toolUseContext.agentId)headlessProfilerCheckpoint("query_started");let queryTracking=toolUseContext.queryTracking?{chainId:toolUseContext.queryTracking.chainId,depth:toolUseContext.queryTracking.depth+1}:{chainId:deps.uuid(),depth:0},queryChainIdForAnalytics=queryTracking.chainId;toolUseContext={...toolUseContext,queryTracking};let messagesForQuery=[...getMessagesAfterCompactBoundary(messages)];if(pendingToolFailureAdvisories.length>0)messagesForQuery.push(...pendingToolFailureAdvisories.map((advisory)=>advisory.message));let tracking=autoCompactTracking,configuredMaxMessagesCompactionThreshold=getGlobalConfig().maxMessagesCompactionThreshold,maxMessagesCompactionThreshold=normalizeMaxMessagesCompactionThreshold(configuredMaxMessagesCompactionThreshold),persistReplacements=querySource.startsWith("agent:")||querySource.startsWith("repl_main_thread"),toolResultBudgetResult=await applyToolResultBudget(messagesForQuery,toolUseContext.contentReplacementState,persistReplacements?(records)=>void recordContentReplacement(records,toolUseContext.agentId).catch(logError):void 0,new Set(toolUseContext.options.tools.filter((t)=>!Number.isFinite(t.maxResultSizeChars)).map((t)=>t.name)));if(messagesForQuery=toolResultBudgetResult.messages,toolResultBudgetResult.newlyReplaced.length>0)toolUseContext.syncToolResultReplacements?.(toolUseContext.contentReplacementState?.replacements??new Map);let snipTokensFreed=0;{queryCheckpoint("query_snip_start");let snipResult=snipModule.snipCompactIfNeeded(messagesForQuery);if(messagesForQuery=snipResult.messages,snipTokensFreed=snipResult.tokensFreed,snipResult.boundaryMessage)yield snipResult.boundaryMessage;queryCheckpoint("query_snip_end")}queryCheckpoint("query_microcompact_start");let microcompactResult;if(querySource==="compact"||configuredMaxMessagesCompactionThreshold!=="off")microcompactResult=await deps.microcompact(messagesForQuery,toolUseContext,querySource),messagesForQuery=microcompactResult.messages;let pendingCacheEdits2=microcompactResult?.compactionInfo?.pendingCacheEdits;if(queryCheckpoint("query_microcompact_end"),contextCollapse)messagesForQuery=(await contextCollapse.applyCollapsesIfNeeded(messagesForQuery,toolUseContext,querySource)).messages;let fullSystemPrompt=asSystemPrompt(appendSystemContext(asSystemPrompt(systemPrompt),systemContext)),canForceCompact=querySource!=="compact"&&querySource!=="session_memory",hasValidLegacyActiveMessageLimit=parseMaxActiveMessagesLimit(process.env.OPENCLAUDE_MAX_ACTIVE_MESSAGES)>0,maxMessagesLimitSetting=configuredMaxMessagesCompactionThreshold===void 0&&hasValidLegacyActiveMessageLimit?void 0:maxMessagesCompactionThreshold,hasActiveMessageLimitOverride=configuredMaxMessagesCompactionThreshold!==void 0&&isValidMaxMessagesCompactionThreshold(configuredMaxMessagesCompactionThreshold)&&configuredMaxMessagesCompactionThreshold!=="off"||(configuredMaxMessagesCompactionThreshold===void 0||configuredMaxMessagesCompactionThreshold==="off")&&hasValidLegacyActiveMessageLimit,activeMessageLimit=canForceCompact?resolveMaxActiveMessagesLimit(maxMessagesLimitSetting,process.env.OPENCLAUDE_MAX_ACTIVE_MESSAGES):0;if(canForceCompact){if(isAboveMaxActiveMessagesLimit(messagesForQuery.length,activeMessageLimit)&&(isAutoCompactEnabled()||hasActiveMessageLimitOverride||isAboveMaxActiveMessagesLimit(messagesForQuery.length,getMaxActiveMessagesHardCap())))tracking={...tracking??{compacted:!1,turnId:"",turnCounter:0},forceReason:"message-count"};if(consumeCompactionRequest())tracking={...tracking??{compacted:!1,turnId:"",turnCounter:0},forceReason:tracking?.forceReason??"memory-pressure"}}queryCheckpoint("query_autocompact_start");let{compactionResult,consecutiveFailures,nextRetryAtMs,lastFailureAtMs,circuitBreakerActive,circuitBreakerTripped}=await deps.autocompact(messagesForQuery,toolUseContext,{systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages:messagesForQuery},querySource,tracking,snipTokensFreed);if(queryCheckpoint("query_autocompact_end"),compactionResult){requestOnlyMessages=void 0;let{preCompactTokenCount,postCompactTokenCount,truePostCompactTokenCount,compactionUsage}=compactionResult;if(logEvent("tengu_auto_compact_succeeded",{originalMessageCount:messages.length,compactedMessageCount:compactionResult.summaryMessages.length+compactionResult.attachments.length+compactionResult.hookResults.length,preCompactTokenCount,postCompactTokenCount,truePostCompactTokenCount,compactionInputTokens:compactionUsage?.input_tokens,compactionOutputTokens:compactionUsage?.output_tokens,compactionCacheReadTokens:compactionUsage?.cache_read_input_tokens??0,compactionCacheCreationTokens:compactionUsage?.cache_creation_input_tokens??0,compactionTotalTokens:compactionUsage?compactionUsage.input_tokens+(compactionUsage.cache_creation_input_tokens??0)+(compactionUsage.cache_read_input_tokens??0)+compactionUsage.output_tokens:0,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),params.taskBudget){let preCompactContext=finalContextTokensFromLastResponse(messagesForQuery);taskBudgetRemaining=Math.max(0,(taskBudgetRemaining??params.taskBudget.total)-preCompactContext)}tracking={compacted:!0,turnId:deps.uuid(),turnCounter:0,consecutiveFailures:0},updateAutoCompactTracking(tracking);let postCompactMessages=buildPostCompactMessages(compactionResult),messagesAfterCompact=state2.transition?.reason==="context_overflow_compact_retry"?[...postCompactMessages,createContextOverflowRecoveryMessage()]:postCompactMessages;for(let message of postCompactMessages)yield message;messagesForQuery=[...messagesAfterCompact,...pendingToolFailureAdvisories.filter((advisory)=>!messagesAfterCompact.some((message)=>message.uuid===advisory.message.uuid)).map((advisory)=>advisory.message)]}else if(consecutiveFailures!==void 0||nextRetryAtMs!==void 0||lastFailureAtMs!==void 0||circuitBreakerActive!==void 0||circuitBreakerTripped!==void 0){let nextTracking={...tracking??{compacted:!1,turnId:"",turnCounter:0}};if(consecutiveFailures!==void 0)nextTracking.consecutiveFailures=consecutiveFailures;if(nextRetryAtMs!==void 0)nextTracking.nextRetryAtMs=nextRetryAtMs;else delete nextTracking.nextRetryAtMs;if(lastFailureAtMs!==void 0)nextTracking.lastFailureAtMs=lastFailureAtMs;tracking=nextTracking,updateAutoCompactTracking(tracking);let diagnosticMessage=createAutoCompactDiagnosticMessage({consecutiveFailures,nextRetryAtMs,circuitBreakerActive,circuitBreakerTripped});if(diagnosticMessage)yield diagnosticMessage}toolUseContext={...toolUseContext,messages:messagesForQuery};let assistantMessages=[],toolResults=[],toolUseBlocks=[],needsFollowUp=!1;queryCheckpoint("query_setup_start");let streamingToolExecutor=config3.gates.streamingToolExecution&&agentStepLimit===void 0?new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext):null,appState=toolUseContext.getAppState(),permissionMode=appState.toolPermissionContext.mode,appStateMainLoopModel=appState.mainLoopModelForSession??appState.mainLoopModel??getDefaultMainLoopModelSetting(),currentModel=getRuntimeMainLoopModel({permissionMode,mainLoopModel:parseUserSpecifiedModel(appStateMainLoopModel),exceeds200kTokens:permissionMode==="plan"&&doesMostRecentAssistantMessageExceed200k(messagesForQuery)});if(state2.transition===void 0){if(pinnedTurnRoute=decideTurnModel({settings:appState.settings,parentModel:currentModel,permissionMode,input:{userText:extractLatestUserText(messagesForQuery),hasNonTextContent:latestUserMessageHasNonTextContent(messagesForQuery),turnNumber:deriveUserTurnNumber(messagesForQuery)},sessionId:getSessionId()}),pinnedTurnRoute.routed===!1&&pinnedTurnRoute.justDisabledForSession)yield createSystemMessage("Smart routing disabled for this session: both configured models are outside the org allowlist. Using the default model.","warning");if(pinnedTurnRoute.routed)recordRoutingDecision(pinnedTurnRoute.complexity),pinnedRouteProviderId=getActiveProviderProfile()?.id}else if(shouldDropPinForProviderSwap(pinnedTurnRoute,pinnedRouteProviderId,getActiveProviderProfile()?.id))pinnedTurnRoute=void 0;if(pinnedTurnRoute?.routed){let priorModel=currentModel;if(currentModel=pinnedTurnRoute.model,toolUseContext.options.mainLoopModel=pinnedTurnRoute.model,pinnedTurnRoute.model!==priorModel)messagesForQuery=stripThinkingBlocksIfProviderAllows(messagesForQuery)}queryCheckpoint("query_setup_end");let dumpPromptsFetch=void 0,collapseOwnsIt=!1;collapseOwnsIt=(contextCollapse?.isMainThreadSource(querySource)??!1)&&(contextCollapse?.hasActiveReduction()??!1)&&isAutoCompactEnabled();let mediaRecoveryEnabled=reactiveCompact?.isReactiveCompactEnabled()??!1;if(!compactionResult&&querySource!=="compact"&&querySource!=="session_memory"&&!(reactiveCompact?.isReactiveCompactEnabled()&&isAutoCompactEnabled())&&!collapseOwnsIt){let{isAtBlockingLimit}=calculateTokenWarningState(tokenCountWithEstimation(messagesForQuery)-snipTokensFreed,toolUseContext.options.mainLoopModel);if(isAtBlockingLimit)return yield createAssistantAPIErrorMessage({content:PROMPT_TOO_LONG_ERROR_MESSAGE,error:"invalid_request"}),{reason:"blocking_limit"}}if(state2.transition?.reason==="context_overflow_compact_retry"&&!compactionResult)return yield createAssistantAPIErrorMessage({content:"The provider reported a context-window overflow, but automatic compaction could not reduce the conversation before retry. Run /compact, undo recent large output, or start a new session with /new.",apiError:"context_overflow",error:"invalid_request"}),{reason:"blocking_limit"};let isAboveActiveMessageHardCap=isAboveMaxActiveMessagesLimit(messagesForQuery.length,getMaxActiveMessagesHardCap()),shouldEnforceActiveMessageLimit=!collapseOwnsIt&&isAutoCompactEnabled()||hasActiveMessageLimitOverride||isAboveActiveMessageHardCap;if(tracking?.consecutiveFailures!==void 0&&tracking.consecutiveFailures>=MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES&&(isAutoCompactEnabled()||circuitBreakerActive===!0||circuitBreakerTripped===!0)){let model=toolUseContext.options.mainLoopModel,tokenUsage=tokenCountWithEstimation(messagesForQuery)-snipTokensFreed,{isAboveAutoCompactThreshold}=calculateTokenWarningState(tokenUsage,model),isAboveActiveMessageSafetyLimit=isAboveMaxActiveMessagesLimit(messagesForQuery.length,activeMessageLimit)&&shouldEnforceActiveMessageLimit;if(isAboveAutoCompactThreshold||(circuitBreakerActive===!0||circuitBreakerTripped===!0)&&tokenUsage>=getAutoCompactThreshold(model)||isAboveActiveMessageSafetyLimit){let nowMs=Date.now(),retryDelayMs=tracking.nextRetryAtMs!==void 0?tracking.nextRetryAtMs-nowMs:void 0,content=retryDelayMs!==void 0&&retryDelayMs>0?`The conversation is over the auto-compact safety threshold, but automatic compaction is cooling down after repeated failures. Claudio stopped before sending another oversized request. Retry after ${formatAutoCompactRetryDelay(retryDelayMs)}, run /compact, or start a new session with /new.`:"The conversation is over the auto-compact safety threshold and automatic compaction has failed repeatedly. Claudio stopped before sending another oversized request. Run /compact, undo recent large tool output, or start a new session with /new.";return yield createAssistantAPIErrorMessage({content,error:"invalid_request"}),{reason:"blocking_limit"}}}if(shouldEnforceActiveMessageLimit&&isAboveMaxActiveMessagesLimit(messagesForQuery.length,activeMessageLimit))return yield createAssistantAPIErrorMessage({content:"The conversation is over the active-message safety limit, but automatic compaction could not reduce it before the next provider request. Claudio stopped before sending another oversized request. Run /compact, undo recent large tool output, or start a new session with /new.",error:"invalid_request"}),{reason:"blocking_limit"};let attemptWithFallback=!0,toolsForModel=agentStepLimit?.summaryRequested?[]:toolUseContext.options.tools,advisoriesForCurrentRequest=pendingToolFailureAdvisories;for(let advisory of advisoriesForCurrentRequest)logForDebugging(`Tool failure loop guard advisory: threshold=${advisory.threshold} hasToolName=true hasErrorCategory=true`),logEvent("tengu_tool_failure_loop_guard_advisory",{threshold:advisory.threshold,hasToolName:!0,hasErrorCategory:!0,queryDepth:queryTracking.depth});pendingToolFailureAdvisories=[];let routedFallbackUsed=!1;queryCheckpoint("query_api_loop_start");try{while(attemptWithFallback){attemptWithFallback=!1;try{let streamingFallbackOccured=!1;queryCheckpoint("query_api_streaming_start"),params.onModelRequestStart?.();try{for await(let message of deps.callModel({messages:prependUserContext(injectRequestOnlyMessages(messagesForQuery,requestOnlyMessages),userContext),systemPrompt:fullSystemPrompt,thinkingConfig:toolUseContext.options.thinkingConfig,tools:toolsForModel,signal:toolUseContext.abortController.signal,options:{async getToolPermissionContext(){return toolUseContext.getAppState().toolPermissionContext},model:currentModel,...config3.gates.fastModeEnabled&&{fastMode:appState.fastMode},toolChoice:void 0,isNonInteractiveSession:toolUseContext.options.isNonInteractiveSession,fallbackModel,onStreamingFallback:()=>{streamingFallbackOccured=!0},querySource,agents:toolUseContext.options.agentDefinitions.activeAgents,allowedAgentTypes:toolUseContext.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!toolUseContext.options.appendSystemPrompt,maxOutputTokensOverride:effectiveMaxOutputTokensOverride,fetchOverride:dumpPromptsFetch,mcpTools:appState.mcp.tools,hasPendingMcpServers:appState.mcp.clients.some((c5)=>c5.type==="pending"),queryTracking,queryLifecycle:toolUseContext.queryLifecycle,effortValue:appState.effortValue,advisorModel:appState.advisorModel,skipCacheWrite,agentId:toolUseContext.agentId,addNotification:toolUseContext.addNotification,providerOverride:toolUseContext.options.providerOverride,...toolsForModel!==toolUseContext.options.tools&&{messageNormalizationTools:toolUseContext.options.tools},...params.taskBudget&&{taskBudget:{total:params.taskBudget.total,...taskBudgetRemaining!==void 0&&{remaining:taskBudgetRemaining}}}}})){if(streamingFallbackOccured){for(let msg of assistantMessages)yield{type:"tombstone",message:msg};if(logEvent("tengu_orphaned_messages_tombstoned",{orphanedMessageCount:assistantMessages.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),assistantMessages.length=0,toolResults.length=0,toolUseBlocks.length=0,needsFollowUp=!1,streamingToolExecutor)streamingToolExecutor.discard(),streamingToolExecutor=new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext)}let yieldMessage=message;if(message.type==="assistant"){let clonedContent;for(let i3=0;i3<message.message.content.length;i3++){let block2=message.message.content[i3];if(block2.type==="tool_use"&&typeof block2.input==="object"&&block2.input!==null){let tool=findToolByName(toolUseContext.options.tools,block2.name);if(tool?.backfillObservableInput){let originalInput=block2.input,inputCopy={...originalInput};if(tool.backfillObservableInput(inputCopy),Object.keys(inputCopy).some((k)=>!(k in originalInput)))clonedContent??=[...message.message.content],clonedContent[i3]={...block2,input:inputCopy}}}}if(clonedContent)yieldMessage={...message,message:{...message.message,content:clonedContent}}}let withheld=!1;if(contextCollapse?.isWithheldPromptTooLong(message,isPromptTooLongMessage,querySource))withheld=!0;if(reactiveCompact?.isWithheldPromptTooLong(message))withheld=!0;if(mediaRecoveryEnabled&&reactiveCompact?.isWithheldMediaSizeError(message))withheld=!0;if(isWithheldMaxOutputTokens(message))withheld=!0;if(shouldRecoverContextOverflow(message,hasAttemptedContextOverflowRecovery,querySource))withheld=!0;if(isWithheldProviderMaxTokensCap(message))withheld=!0;if(!hasAttemptedProviderFallback&&querySource!=="compact"&&querySource!=="session_memory"&&message.type==="assistant"&&message.isApiErrorMessage===!0&&message.error==="rate_limit"&&resolveNextFallbackProviderFromState()!==null)withheld=!0;if(!withheld)yield yieldMessage;if(message.type==="assistant"){assistantMessages.push(message);let msgToolUseBlocks=message.message.content.filter((content)=>content.type==="tool_use");if(msgToolUseBlocks.length>0)toolUseBlocks.push(...msgToolUseBlocks),needsFollowUp=!0;if(streamingToolExecutor&&!toolUseContext.abortController.signal.aborted)for(let toolBlock of msgToolUseBlocks)streamingToolExecutor.addTool(toolBlock,message)}if(streamingToolExecutor&&!toolUseContext.abortController.signal.aborted){for(let result of streamingToolExecutor.getCompletedResults())if(result.message)yield result.message,toolResults.push(...normalizeMessagesForAPI([result.message],toolUseContext.options.tools).filter((_)=>_.type==="user"))}}}finally{params.onModelRequestEnd?.()}if(queryCheckpoint("query_api_streaming_end"),pendingCacheEdits2){let usage=assistantMessages.at(-1)?.message.usage,cumulativeDeleted=usage?usage.cache_deleted_input_tokens??0:0,deletedTokens=Math.max(0,cumulativeDeleted-pendingCacheEdits2.baselineCacheDeletedTokens);if(deletedTokens>0)yield createMicrocompactBoundaryMessage(pendingCacheEdits2.trigger,0,deletedTokens,pendingCacheEdits2.deletedToolIds,[])}}catch(innerError){if(innerError instanceof FallbackTriggeredError&&fallbackModel){if(currentModel=fallbackModel,attemptWithFallback=!0,yield*yieldMissingToolResultBlocks(assistantMessages,"Model fallback triggered"),assistantMessages.length=0,toolResults.length=0,toolUseBlocks.length=0,needsFollowUp=!1,streamingToolExecutor)streamingToolExecutor.discard(),streamingToolExecutor=new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext);toolUseContext.options.mainLoopModel=fallbackModel,logEvent("tengu_model_fallback_triggered",{original_model:innerError.originalModel,fallback_model:fallbackModel,entrypoint:"cli",queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),yield createSystemMessage(`Switched to ${renderModelName(innerError.fallbackModel)} due to high demand for ${renderModelName(innerError.originalModel)}`,"warning");continue}if(pinnedTurnRoute?.routed&&pinnedTurnRoute.complexity==="simple"&&!routedFallbackUsed&&!(innerError instanceof FallbackTriggeredError)&&!toolUseContext.abortController.signal.aborted&&isRetryableRoutedModelError(innerError)){let strongModel=pinnedTurnRoute.strongModel;if(routedFallbackUsed=!0,attemptWithFallback=!0,recordRoutingEscalation(),pinnedTurnRoute={routed:!0,model:strongModel,complexity:"strong",reason:"fell back from simple model",strongModel},yield*yieldMissingToolResultBlocks(assistantMessages,"Smart-routing fallback to strong model"),assistantMessages.length=0,toolResults.length=0,toolUseBlocks.length=0,needsFollowUp=!1,streamingToolExecutor)streamingToolExecutor.discard(),streamingToolExecutor=new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext);currentModel=strongModel,toolUseContext.options.mainLoopModel=strongModel,messagesForQuery=stripThinkingBlocksIfProviderAllows(messagesForQuery),yield createSystemMessage(`Smart routing: retrying on ${renderModelName(strongModel)} after the simple model failed`,"warning");continue}throw innerError}}}catch(error41){logError(error41);let errorMessage2=error41 instanceof Error?error41.message:String(error41);if(logEvent("tengu_query_error",{assistantMessages:assistantMessages.length,toolUses:assistantMessages.flatMap((_)=>_.message.content.filter((content)=>content.type==="tool_use")).length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),error41 instanceof ImageSizeError||error41 instanceof ImageResizeError)return yield createAssistantAPIErrorMessage({content:error41.message}),{reason:"image_error"};return yield*yieldMissingToolResultBlocks(assistantMessages,errorMessage2),yield createAssistantAPIErrorMessage({content:errorMessage2}),logAntError("Query error",error41),{reason:"model_error",error:error41}}if(assistantMessages.length>0)executePostSamplingHooks([...messagesForQuery,...assistantMessages],systemPrompt,userContext,systemContext,toolUseContext,querySource);if(toolUseContext.abortController.signal.aborted){let abortReason2=toolUseContext.abortController.signal.reason;if(streamingToolExecutor){for await(let update of streamingToolExecutor.getRemainingResults())if(update.message)yield update.message}else yield*yieldMissingToolResultBlocks(assistantMessages,getMissingToolResultAbortMessage(abortReason2));let abortSystemMessage=getQueryAbortSystemMessage(abortReason2);if(abortSystemMessage)yield createSystemMessage(abortSystemMessage,"warning");if(shouldCreateUserInterruptionMessage(abortReason2))yield createUserInterruptionMessage({toolUse:!1});return{reason:"aborted_streaming"}}if(pendingToolUseSummary){let summary=await pendingToolUseSummary;if(summary)yield summary}if(!needsFollowUp){let lastMessage=assistantMessages.at(-1),isWithheld413=lastMessage?.type==="assistant"&&lastMessage.isApiErrorMessage&&isPromptTooLongMessage(lastMessage),isWithheldMedia=mediaRecoveryEnabled&&reactiveCompact?.isWithheldMediaSizeError(lastMessage);if(isWithheld413){if(contextCollapse&&state2.transition?.reason!=="collapse_drain_retry"){let drained=contextCollapse.recoverFromOverflow(messagesForQuery,querySource);if(drained.committed>0){requestOnlyMessages=void 0,state2={messages:drained.messages,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"collapse_drain_retry",committed:drained.committed}};continue}}}if((isWithheld413||isWithheldMedia)&&reactiveCompact){let compacted=await reactiveCompact.tryReactiveCompact({hasAttempted:hasAttemptedReactiveCompact,querySource,aborted:toolUseContext.abortController.signal.aborted,messages:messagesForQuery,cacheSafeParams:{systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages:messagesForQuery}});if(compacted){if(requestOnlyMessages=void 0,params.taskBudget){let preCompactContext=finalContextTokensFromLastResponse(messagesForQuery);taskBudgetRemaining=Math.max(0,(taskBudgetRemaining??params.taskBudget.total)-preCompactContext)}let postCompactMessages=buildPostCompactMessages(compacted),messagesAfterCompact=[...postCompactMessages,...advisoriesForCurrentRequest.filter((advisory)=>!postCompactMessages.some((message)=>message.uuid===advisory.message.uuid)).map((advisory)=>advisory.message)];for(let msg of postCompactMessages)yield msg;updateAutoCompactTracking(void 0),state2={messages:messagesAfterCompact,toolUseContext,autoCompactTracking:void 0,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact:!0,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"reactive_compact_retry"}};continue}return yield lastMessage,executeStopFailureHooks(lastMessage,toolUseContext),{reason:isWithheldMedia?"image_error":"prompt_too_long"}}else if(isWithheld413)return yield lastMessage,executeStopFailureHooks(lastMessage,toolUseContext),{reason:"prompt_too_long"};if(shouldRecoverContextOverflow(lastMessage,hasAttemptedContextOverflowRecovery,querySource)){yield createSystemMessage("Provider context limit reached; compacting conversation and retrying turn.","warning");let nextTracking={...tracking??{compacted:!1,turnId:"",turnCounter:0},forceReason:"context-overflow"};state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:nextTracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery:!0,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"context_overflow_compact_retry"}};continue}if(isWithheldProviderMaxTokensCap(lastMessage)){let providerMaxTokensCap=getProviderMaxTokensCapFromMessage(lastMessage);if(providerMaxTokensCap!==void 0&&state2.transition?.reason!=="provider_max_tokens_retry"&&(effectiveMaxOutputTokensOverride===void 0||providerMaxTokensCap<effectiveMaxOutputTokensOverride)){let nextProviderMaxOutputTokensCap=providerMaxOutputTokensCap===void 0?providerMaxTokensCap:Math.min(providerMaxOutputTokensCap,providerMaxTokensCap);logEvent("tengu_provider_max_tokens_cap_retry",{cap:providerMaxTokensCap,...effectiveMaxOutputTokensOverride!==void 0&&{previousMaxOutputTokensOverride:effectiveMaxOutputTokensOverride}}),yield createSystemMessage(`Provider maximum output tokens limit is ${providerMaxTokensCap.toLocaleString("en-US")}; retrying with that cap.`,"warning"),state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride,providerMaxOutputTokensCap:nextProviderMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"provider_max_tokens_retry",cap:providerMaxTokensCap}};continue}yield lastMessage}if(isWithheldMaxOutputTokens(lastMessage)){if(getFeatureValue_CACHED_MAY_BE_STALE("tengu_otk_slot_v1",!1)&&effectiveMaxOutputTokensOverride===void 0&&!process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS){logEvent("tengu_max_tokens_escalate",{escalatedTo:ESCALATED_MAX_TOKENS}),state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:ESCALATED_MAX_TOKENS,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"max_output_tokens_escalate"}};continue}if(maxOutputTokensRecoveryCount<MAX_OUTPUT_TOKENS_RECOVERY_LIMIT){let recoveryMessage=createUserMessage({content:"Output token limit hit. Resume directly — no apology, no recap of what you were doing. "+"Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.",isMeta:!0});state2={messages:[...messagesForQuery,...assistantMessages,recoveryMessage],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:maxOutputTokensRecoveryCount+1,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"max_output_tokens_recovery",attempt:maxOutputTokensRecoveryCount+1}};continue}yield lastMessage}if(!hasAttemptedProviderFallback&&querySource!=="compact"&&querySource!=="session_memory"&&lastMessage?.type==="assistant"&&lastMessage.isApiErrorMessage===!0&&lastMessage.error==="rate_limit"){let fallback=resolveNextFallbackProviderFromState();if(fallback!==null){let activated=setActiveProviderProfile(fallback.nextProfileId);if(activated){let fromLabel=fallback.fromProfileId??"previous provider",activatedModel=getPrimaryModel(activated.model);if(activatedModel)toolUseContext.setAppState((prev)=>({...prev,mainLoopModel:activatedModel,mainLoopModelForSession:null})),toolUseContext.options.mainLoopModel=activatedModel;yield createSystemMessage(`Provider ${fromLabel} rate-limited — switched to ${activated.name}. Retrying turn.`,"warning"),state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback:!0,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"provider_fallback_retry"}};continue}}yield lastMessage}if(lastMessage?.isApiErrorMessage)return executeStopFailureHooks(lastMessage,toolUseContext),{reason:"completed"};let stopHookResult=yield*handleStopHooks(messagesForQuery,assistantMessages,systemPrompt,userContext,systemContext,toolUseContext,querySource,stopHookActive,deps.goalEvaluationDeps,deps.stopHookExecutionDeps);if(stopHookResult.preventContinuation)return{reason:"stop_hook_prevented"};if(stopHookResult.blockingErrors.length>0){state2={messages:[...messagesForQuery,...assistantMessages,...stopHookResult.blockingErrors],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:stopHookResult.stopHookActive,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"stop_hook_blocking"}};continue}{let decision=checkTokenBudget(budgetTracker,toolUseContext.agentId,getCurrentTurnTokenBudget(),getTurnOutputTokens());if(decision.action==="continue"){incrementBudgetContinuationCount(),logForDebugging(`Token budget continuation #${decision.continuationCount}: ${decision.pct}% (${decision.turnTokens.toLocaleString()} / ${decision.budget.toLocaleString()})`),state2={messages:[...messagesForQuery,...assistantMessages,createUserMessage({content:decision.nudgeMessage,isMeta:!0})],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"token_budget_continuation"}};continue}if(decision.completionEvent){if(decision.completionEvent.diminishingReturns)logForDebugging(`Token budget early stop: diminishing returns at ${decision.completionEvent.pct}%`);logEvent("tengu_token_budget_completed",{...decision.completionEvent,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth})}}if(assistantMessages.length>0&&!agentStepLimit?.summaryRequested&&turnCount<(maxTurns??1/0)&&state2.continuationNudgeCount<MAX_CONTINUATION_NUDGES){let lastAssistant=assistantMessages.at(-1);if(lastAssistant?.type==="assistant"){let lastText=lastAssistant.message.content.filter((b)=>b.type==="text").map((b)=>b.text).join(" ").toLowerCase(),{shouldNudge,reason:nudgeReason}=analyzeContinuationIntent(lastText);if(shouldNudge){logForDebugging(`Continuation nudge triggered (${state2.continuationNudgeCount+1}/${MAX_CONTINUATION_NUDGES}): ${nudgeReason} detected in "${lastText.slice(-120)}" without tool calls`);let nudge=createUserMessage({content:"Continue with the task. If you were interrupted, resume your thought. Otherwise, use the appropriate tools to proceed to the next step.",isMeta:!0});state2={messages:[...messagesForQuery,...assistantMessages,nudge],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount+1,agentStepLimit,transition:{reason:"continuation_nudge"}};continue}}}if(agentStepLimit?.summaryRequested)return{reason:"agent_step_limit",turnCount,stepsUsed:agentStepLimit.stepsUsed,maxSteps:agentStepLimit.maxSteps};return{reason:"completed"}}let shouldPreventContinuation=!1,updatedToolUseContext=toolUseContext;queryCheckpoint("query_tool_execution_start");let toolUseBlocksToExecute=toolUseBlocks,blockedToolUseBlocks=[],nextAgentStepLimit=agentStepLimit,shouldRequestAgentStepSummary=!1,shouldTerminateAgentStepSummary=agentStepLimit?.summaryRequested===!0&&toolUseBlocks.length>0;if(agentStepLimit)if(agentStepLimit.summaryRequested)toolUseBlocksToExecute=[],blockedToolUseBlocks=toolUseBlocks;else{let remainingSteps=Math.max(0,agentStepLimit.maxSteps-agentStepLimit.stepsUsed);toolUseBlocksToExecute=toolUseBlocks.slice(0,remainingSteps),blockedToolUseBlocks=toolUseBlocks.slice(remainingSteps);let stepsUsed=agentStepLimit.stepsUsed+toolUseBlocksToExecute.length,summaryRequested=stepsUsed>=agentStepLimit.maxSteps||blockedToolUseBlocks.length>0;nextAgentStepLimit={...agentStepLimit,stepsUsed,summaryRequested},shouldRequestAgentStepSummary=summaryRequested}if(streamingToolExecutor)logEvent("tengu_streaming_tool_execution_used",{tool_count:toolUseBlocks.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});else logEvent("tengu_streaming_tool_execution_not_used",{tool_count:toolUseBlocks.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});let toolUpdates=streamingToolExecutor?streamingToolExecutor.getRemainingResults():runTools(toolUseBlocksToExecute,assistantMessages,canUseTool,toolUseContext);for await(let update of toolUpdates){if(update.message){if(yield update.message,update.message.type==="attachment"&&update.message.attachment.type==="hook_stopped_continuation")shouldPreventContinuation=!0;toolResults.push(...normalizeMessagesForAPI([update.message],toolUseContext.options.tools).filter((_)=>_.type==="user"))}if(update.newContext)updatedToolUseContext={...update.newContext,queryTracking}}if(nextAgentStepLimit&&blockedToolUseBlocks.length>0)for(let toolUse of blockedToolUseBlocks){let message=createAgentStepLimitToolResult(toolUse,findAssistantMessageForToolUse(assistantMessages,toolUse.id),nextAgentStepLimit);yield message,toolResults.push(message)}if(shouldTerminateAgentStepSummary&&nextAgentStepLimit){if(!hasAssistantSummaryText(assistantMessages.at(-1)))yield createAgentStepLimitForcedSummary(nextAgentStepLimit,blockedToolUseBlocks.length);return{reason:"agent_step_limit",turnCount,stepsUsed:nextAgentStepLimit.stepsUsed,maxSteps:nextAgentStepLimit.maxSteps}}if(queryCheckpoint("query_tool_execution_end"),toolUseContext.abortController.signal.aborted){let abortReason2=toolUseContext.abortController.signal.reason,abortSystemMessage=getQueryAbortSystemMessage(abortReason2);if(abortSystemMessage)yield createSystemMessage(abortSystemMessage,"warning");if(shouldCreateUserInterruptionMessage(abortReason2))yield createUserInterruptionMessage({toolUse:!0});let nextTurnCountOnAbort=turnCount+1;if(maxTurns&&nextTurnCountOnAbort>maxTurns)yield createAttachmentMessage({type:"max_turns_reached",maxTurns,turnCount:nextTurnCountOnAbort});return{reason:"aborted_tools"}}if(shouldPreventContinuation)return{reason:"hook_stopped"};let toolFailureLoopDecision=updateToolFailureLoopGuard({state:toolFailureGuardState,toolUseBlocks,toolResults});if(toolFailureLoopDecision.tripped)return logForDebugging(`Tool failure loop guard tripped: kind=${toolFailureLoopDecision.kind} threshold=${toolFailureLoopDecision.threshold} hasToolName=${toolFailureLoopDecision.toolName!==void 0} hasErrorCategory=${toolFailureLoopDecision.errorCategory!==void 0} hasPath=${toolFailureLoopDecision.path!==void 0}`),logEvent("tengu_tool_failure_loop_guard_tripped",{threshold:toolFailureLoopDecision.threshold,isPathTrip:toolFailureLoopDecision.kind==="path",isSignatureTrip:toolFailureLoopDecision.kind==="signature",isCategoryTrip:toolFailureLoopDecision.kind==="category",hasToolName:toolFailureLoopDecision.toolName!==void 0,hasErrorCategory:toolFailureLoopDecision.errorCategory!==void 0,hasPath:toolFailureLoopDecision.path!==void 0,queryDepth:queryTracking.depth}),yield createAssistantAPIErrorMessage({content:toolFailureLoopDecision.message}),{reason:"tool_failure_loop"};if(shouldRequestAgentStepSummary&&nextAgentStepLimit){let summaryRequest=createAgentStepLimitSummaryRequest(nextAgentStepLimit);yield summaryRequest,toolResults.push(summaryRequest),logForDebugging(`[Agent: ${nextAgentStepLimit.agentType??"subagent"}] Reached maxSteps limit (${nextAgentStepLimit.stepsUsed}/${nextAgentStepLimit.maxSteps}); requesting final summary`),logEvent("tengu_agent_step_limit_reached",{agent_type:nextAgentStepLimit.agentType??"subagent",steps_used:nextAgentStepLimit.stepsUsed,max_steps:nextAgentStepLimit.maxSteps,blocked_tool_uses:blockedToolUseBlocks.length})}let nextPendingToolUseSummary;if(config3.gates.emitToolUseSummaries&&toolUseBlocks.length>0&&!toolUseContext.abortController.signal.aborted&&!toolUseContext.agentId){let lastAssistantMessage=assistantMessages.at(-1),lastAssistantText;if(lastAssistantMessage){let textBlocks=lastAssistantMessage.message.content.filter((block2)=>block2.type==="text");if(textBlocks.length>0){let lastTextBlock=textBlocks.at(-1);if(lastTextBlock&&"text"in lastTextBlock)lastAssistantText=lastTextBlock.text}}let toolUseIds=toolUseBlocks.map((block2)=>block2.id),toolInfoForSummary=toolUseBlocks.map((block2)=>{let toolResult=toolResults.find((result)=>result.type==="user"&&Array.isArray(result.message.content)&&result.message.content.some((content)=>content.type==="tool_result"&&content.tool_use_id===block2.id)),resultContent=toolResult?.type==="user"&&Array.isArray(toolResult.message.content)?toolResult.message.content.find((c5)=>c5.type==="tool_result"&&c5.tool_use_id===block2.id):void 0;return{name:block2.name,input:block2.input,output:resultContent&&"content"in resultContent?resultContent.content:null}});nextPendingToolUseSummary=generateToolUseSummary({tools:toolInfoForSummary,signal:toolUseContext.abortController.signal,isNonInteractiveSession:toolUseContext.options.isNonInteractiveSession,lastAssistantText}).then((summary)=>{if(summary)return createToolUseSummaryMessage(summary,toolUseIds);return null}).catch(()=>null)}if(tracking?.compacted)tracking={...tracking,turnCounter:tracking.turnCounter+1},updateAutoCompactTracking(tracking),logEvent("tengu_post_autocompact_turn",{turnId:tracking.turnId,turnCounter:tracking.turnCounter,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});logEvent("tengu_query_before_attachments",{messagesForQueryCount:messagesForQuery.length,assistantMessagesCount:assistantMessages.length,toolResultsCount:toolResults.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});let sleepRan=toolUseBlocks.some((b)=>b.name===SLEEP_TOOL_NAME),isMainThread=querySource.startsWith("repl_main_thread")||querySource==="sdk",currentAgentId=toolUseContext.agentId,queuedCommandsSnapshot=getCommandsByMaxPriority(sleepRan?"later":"next").filter((cmd)=>{if(isSlashCommand(cmd))return!1;if(isMainThread)return cmd.agentId===void 0;return cmd.mode==="task-notification"&&cmd.agentId===currentAgentId});for await(let attachment of getAttachmentMessages(null,updatedToolUseContext,null,queuedCommandsSnapshot,[...messagesForQuery,...assistantMessages,...toolResults],querySource))yield attachment,toolResults.push(attachment);if(pendingMemoryPrefetch&&pendingMemoryPrefetch.settledAt!==null&&pendingMemoryPrefetch.consumedOnIteration===-1){let memoryAttachments=filterDuplicateMemoryAttachments(await pendingMemoryPrefetch.promise,toolUseContext.readFileState);for(let memAttachment of memoryAttachments){let msg=createAttachmentMessage(memAttachment);yield msg,toolResults.push(msg)}pendingMemoryPrefetch.consumedOnIteration=turnCount-1}if(skillPrefetch&&pendingSkillPrefetch){let skillAttachments=await skillPrefetch.collectSkillDiscoveryPrefetch(pendingSkillPrefetch);for(let att of skillAttachments){let msg=createAttachmentMessage(att);yield msg,toolResults.push(msg)}}let consumedCommands=queuedCommandsSnapshot.filter((cmd)=>cmd.mode==="prompt"||cmd.mode==="task-notification");if(consumedCommands.length>0){for(let cmd of consumedCommands)if(cmd.uuid)consumedCommandUuids.push(cmd.uuid),notifyCommandLifecycle(cmd.uuid,"started");remove(consumedCommands)}let fileChangeAttachmentCount=count2(toolResults,(tr)=>tr.type==="attachment"&&tr.attachment.type==="edited_text_file");if(logEvent("tengu_query_after_attachments",{totalToolResultsCount:toolResults.length,fileChangeAttachmentCount,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),updatedToolUseContext.options.refreshTools){let refreshedTools=updatedToolUseContext.options.refreshTools();if(refreshedTools!==updatedToolUseContext.options.tools)updatedToolUseContext={...updatedToolUseContext,options:{...updatedToolUseContext.options,tools:refreshedTools}}}let toolUseContextWithQueryTracking={...updatedToolUseContext,queryTracking},nextTurnCount=turnCount+1;if(!toolUseContext.agentId&&taskSummaryModule.shouldGenerateTaskSummary())taskSummaryModule.maybeGenerateTaskSummary({systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages:[...messagesForQuery,...assistantMessages,...toolResults]});if(maxTurns&&nextTurnCount>maxTurns&&!nextAgentStepLimit?.summaryRequested)return yield createAttachmentMessage({type:"max_turns_reached",maxTurns,turnCount:nextTurnCount}),{reason:"max_turns",turnCount:nextTurnCount};if(!nextAgentStepLimit?.summaryRequested)pendingToolFailureAdvisories=(toolFailureLoopDecision.advisories??[]).map((advisoryDecision)=>({message:createUserMessage({content:advisoryDecision.message,isMeta:!0}),threshold:advisoryDecision.threshold}));queryCheckpoint("query_recursive_call"),state2={messages:[...messagesForQuery,...assistantMessages,...toolResults],toolUseContext:toolUseContextWithQueryTracking,autoCompactTracking:tracking,turnCount:nextTurnCount,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,continuationNudgeCount:0,pendingToolUseSummary:nextPendingToolUseSummary,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,stopHookActive,agentStepLimit:nextAgentStepLimit,transition:{reason:"next_turn"}}}}catch(_catch3){var _err=_catch3,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}var reactiveCompact=null,contextCollapse,skillPrefetch=null,snipModule,taskSummaryModule,MAX_OUTPUT_TOKENS_RECOVERY_LIMIT=3,MAX_CONTINUATION_NUDGES=20;var init_query2=__esm(()=>{init_withRetry();init_autoCompact();init_memoryPressure();init_compact();init_imageValidation();init_imageResizer();init_Tool();init_log2();init_errors6();init_debug();init_abortReasons();init_messages3();init_continuation();init_toolUseSummaryGenerator();init_api3();init_attachments2();init_messageQueueManager();init_headlessProfiler();init_model();init_tokens();init_context();init_growthbook();init_prompt20();init_postSamplingHooks();init_hooks4();init_StreamingToolExecutor();init_queryProfiler();init_toolOrchestration();init_toolResultStorage();init_providerFallback();init_providerProfiles();init_sessionStorage();init_stopHooks();init_toolFailureLoopGuard();init_config6();init_config();init_deps();init_state();init_conversationRecovery();init_smartRouting();init_tokenBudget2();contextCollapse=(init_contextCollapse(),__toCommonJS(exports_contextCollapse)),snipModule=(init_snipCompact(),__toCommonJS(exports_snipCompact)),taskSummaryModule=__toCommonJS(exports_taskSummary)});var EMPTY_USAGE;var init_emptyUsage=__esm(()=>{EMPTY_USAGE={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"}});function getErrorMessage2(error41){if(error41 instanceof APIError){let body=error41.error;if(body?.error?.message)return body.error.message}return error41 instanceof Error?error41.message:String(error41)}function detectGateway({headers,baseUrl}){if(headers){let headerNames=[];headers.forEach((_,key)=>headerNames.push(key));for(let[gw,{prefixes}]of Object.entries(GATEWAY_FINGERPRINTS))if(prefixes.some((p)=>headerNames.some((h2)=>h2.startsWith(p))))return gw}if(baseUrl)try{let host=new URL(baseUrl).hostname.toLowerCase();for(let[gw,suffixes]of Object.entries(GATEWAY_HOST_SUFFIXES))if(suffixes.some((s)=>host.endsWith(s)))return gw}catch{}return}function getAnthropicEnvMetadata(){return{...process.env.ANTHROPIC_BASE_URL?{baseUrl:redactUrlForDisplay(process.env.ANTHROPIC_BASE_URL)}:{},...process.env.ANTHROPIC_MODEL?{envModel:process.env.ANTHROPIC_MODEL}:{},...process.env.ANTHROPIC_SMALL_FAST_MODEL?{envSmallFastModel:process.env.ANTHROPIC_SMALL_FAST_MODEL}:{}}}function getBuildAgeMinutes(){let buildTime=new Date("2026-07-19T21:08:35.606Z").getTime();if(isNaN(buildTime))return;return Math.floor((Date.now()-buildTime)/60000)}function logAPIQuery({model,messagesLength,temperature,betas,permissionMode,querySource,queryTracking,thinkingType,effortValue,fastMode,previousRequestId}){logEvent("tengu_api_query",{model,messagesLength,temperature,provider:getAPIProviderForStatsig(),buildAgeMins:getBuildAgeMinutes(),...betas?.length?{betas:betas.join(",")}:{},permissionMode,querySource,...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{},thinkingType,effortValue,fastMode,...previousRequestId?{previousRequestId}:{},...getAnthropicEnvMetadata()})}function logAPIError({error:error41,model,messageCount,messageTokens,durationMs,durationMsIncludingRetries,attempt,requestId,clientRequestId,didFallBackToNonStreaming,promptCategory,headers,queryTracking,querySource,fastMode,previousRequestId}){let gateway=detectGateway({headers:error41 instanceof APIError&&error41.headers?error41.headers:headers,baseUrl:process.env.ANTHROPIC_BASE_URL}),errStr=redactSensitiveInfo(getErrorMessage2(error41)),status=error41 instanceof APIError?String(error41.status):void 0,errorType=classifyAPIError(error41),connectionDetails=extractConnectionErrorDetails(error41);if(connectionDetails){let sslLabel=connectionDetails.isSSLError?" (SSL error)":"";logForDebugging(`Connection error details: code=${connectionDetails.code}${sslLabel}, message=${connectionDetails.message}`,{level:"error"})}let invocation=consumeInvokingRequestId();if(clientRequestId)logForDebugging(`API error x-client-request-id=${clientRequestId} (give this to the API team for server-log lookup)`,{level:"error"});logError(error41),logEvent("tengu_api_error",{model,error:errStr,status,errorType,messageCount,messageTokens,durationMs,durationMsIncludingRetries,attempt,provider:getAPIProviderForStatsig(),requestId:requestId||void 0,...invocation?{invokingRequestId:invocation.invokingRequestId,invocationKind:invocation.invocationKind}:{},clientRequestId:clientRequestId||void 0,didFallBackToNonStreaming,...promptCategory?{promptCategory}:{},...gateway?{gateway}:{},...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{},...querySource?{querySource}:{},fastMode,...previousRequestId?{previousRequestId}:{},...getAnthropicEnvMetadata()});let teleportInfo=getTeleportedSessionInfo();if(teleportInfo?.isTeleported&&!teleportInfo.hasLoggedFirstMessage)logEvent("tengu_teleport_first_message_error",{session_id:teleportInfo.sessionId,error_type:errorType}),markFirstTeleportMessageLogged()}function logAPISuccess({model,preNormalizedModel,messageCount,messageTokens,usage,durationMs,durationMsIncludingRetries,attempt,ttftMs,requestId,stopReason,costUSD,didFallBackToNonStreaming,querySource,gateway,queryTracking,permissionMode,globalCacheStrategy,textContentLength,thinkingContentLength,toolUseContentLengths,connectorTextBlockCount,fastMode,previousRequestId,betas}){let isNonInteractiveSession=getIsNonInteractiveSession(),isPostCompaction=consumePostCompaction(),hasPrintFlag=process.argv.includes("-p")||process.argv.includes("--print"),now2=Date.now(),lastCompletion=getLastApiCompletionTimestamp(),timeSinceLastApiCallMs=lastCompletion!==null?now2-lastCompletion:void 0,invocation=consumeInvokingRequestId();logEvent("tengu_api_success",{model,...preNormalizedModel!==model?{preNormalizedModel}:{},...betas?.length?{betas:betas.join(",")}:{},messageCount,messageTokens,inputTokens:usage.input_tokens,outputTokens:usage.output_tokens,cachedInputTokens:usage.cache_read_input_tokens??0,uncachedInputTokens:usage.cache_creation_input_tokens??0,durationMs,durationMsIncludingRetries,attempt,ttftMs:ttftMs??void 0,buildAgeMins:getBuildAgeMinutes(),provider:getAPIProviderForStatsig(),requestId:requestId??void 0,...invocation?{invokingRequestId:invocation.invokingRequestId,invocationKind:invocation.invocationKind}:{},stop_reason:stopReason??void 0,costUSD,didFallBackToNonStreaming,isNonInteractiveSession,print:hasPrintFlag,isTTY:process.stdout.isTTY??!1,querySource,...gateway?{gateway}:{},...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{},permissionMode,...globalCacheStrategy?{globalCacheStrategy}:{},...textContentLength!==void 0?{textContentLength}:{},...thinkingContentLength!==void 0?{thinkingContentLength}:{},...toolUseContentLengths!==void 0?{toolUseContentLengths:jsonStringify(toolUseContentLengths)}:{},...connectorTextBlockCount!==void 0?{connectorTextBlockCount}:{},fastMode,...(usage.cache_deleted_input_tokens??0)>0?{cacheDeletedInputTokens:usage.cache_deleted_input_tokens}:{},...previousRequestId?{previousRequestId}:{},...isPostCompaction?{isPostCompaction}:{},...getAnthropicEnvMetadata(),timeSinceLastApiCallMs}),setLastApiCompletionTimestamp(now2)}function logAPISuccessAndDuration({model,preNormalizedModel,start,startIncludingRetries,ttftMs,usage,attempt,messageCount,messageTokens,requestId,stopReason,didFallBackToNonStreaming,querySource,headers,costUSD,queryTracking,permissionMode,newMessages,globalCacheStrategy,requestSetupMs,attemptStartTimes,fastMode,previousRequestId,betas}){let gateway=detectGateway({headers,baseUrl:process.env.ANTHROPIC_BASE_URL}),textContentLength,thinkingContentLength,toolUseContentLengths,connectorTextBlockCount;if(newMessages){let textLen=0,thinkingLen=0,hasToolUse=!1,toolLengths={},connectorCount=0;for(let msg of newMessages)for(let block2 of msg.message.content)if(block2.type==="text")textLen+=block2.text.length;else if(block2.type==="thinking")thinkingLen+=block2.thinking.length;else if(block2.type==="tool_use"||block2.type==="server_tool_use"||block2.type==="mcp_tool_use"){let inputLen=jsonStringify(block2.input).length,sanitizedName=sanitizeToolNameForAnalytics(block2.name);toolLengths[sanitizedName]=(toolLengths[sanitizedName]??0)+inputLen,hasToolUse=!0}textContentLength=textLen,thinkingContentLength=thinkingLen>0?thinkingLen:void 0,toolUseContentLengths=hasToolUse?toolLengths:void 0,connectorTextBlockCount=connectorCount>0?connectorCount:void 0}let durationMs=Date.now()-start,durationMsIncludingRetries=Date.now()-startIncludingRetries;addToTotalDurationState(durationMsIncludingRetries,durationMs),logAPISuccess({model,preNormalizedModel,messageCount,messageTokens,usage,durationMs,durationMsIncludingRetries,attempt,ttftMs,requestId,stopReason,costUSD,didFallBackToNonStreaming,querySource,gateway,queryTracking,permissionMode,globalCacheStrategy,textContentLength,thinkingContentLength,toolUseContentLengths,connectorTextBlockCount,fastMode,previousRequestId,betas});let teleportInfo=getTeleportedSessionInfo();if(teleportInfo?.isTeleported&&!teleportInfo.hasLoggedFirstMessage)logEvent("tengu_teleport_first_message_success",{session_id:teleportInfo.sessionId}),markFirstTeleportMessageLogged()}var GATEWAY_FINGERPRINTS,GATEWAY_HOST_SUFFIXES;var init_logging=__esm(()=>{init_sdk();init_state();init_debug();init_log2();init_providers();init_redaction();init_slowOperations();init_agentContext();init_metadata();init_emptyUsage();init_errors6();init_errorUtils();GATEWAY_FINGERPRINTS={litellm:{prefixes:["x-litellm-"]},helicone:{prefixes:["helicone-"]},portkey:{prefixes:["x-portkey-"]},"cloudflare-ai-gateway":{prefixes:["cf-aig-"]},kong:{prefixes:["x-kong-"]},braintrust:{prefixes:["x-bt-"]}},GATEWAY_HOST_SUFFIXES={databricks:[".cloud.databricks.com",".azuredatabricks.net",".gcp.databricks.com"]}});function createDenialTrackingState(){return{consecutiveDenials:0,totalDenials:0}}function recordDenial(state2){return{...state2,consecutiveDenials:state2.consecutiveDenials+1,totalDenials:state2.totalDenials+1}}function recordSuccess(state2){if(state2.consecutiveDenials===0)return state2;return{...state2,consecutiveDenials:0}}function shouldFallbackToPrompting(state2){return state2.consecutiveDenials>=DENIAL_LIMITS.maxConsecutive||state2.totalDenials>=DENIAL_LIMITS.maxTotal}var DENIAL_LIMITS;var init_denialTracking=__esm(()=>{DENIAL_LIMITS={maxConsecutive:3,maxTotal:20}});var exports_forkedAgent={};__export(exports_forkedAgent,{saveCacheSafeParams:()=>saveCacheSafeParams,runForkedAgent:()=>runForkedAgent,prepareForkedCommandContext:()=>prepareForkedCommandContext,getLastCacheSafeParams:()=>getLastCacheSafeParams,extractResultText:()=>extractResultText,createSubagentContext:()=>createSubagentContext,createGetAppStateWithAllowedTools:()=>createGetAppStateWithAllowedTools,createCacheSafeParams:()=>createCacheSafeParams});import{randomUUID as randomUUID21}from"crypto";function saveCacheSafeParams(params){lastCacheSafeParams=params}function getLastCacheSafeParams(){return lastCacheSafeParams}function createCacheSafeParams(context){return{systemPrompt:context.systemPrompt,userContext:context.userContext,systemContext:context.systemContext,toolUseContext:context.toolUseContext,forkContextMessages:context.messages}}function createGetAppStateWithAllowedTools(baseGetAppState,allowedTools){if(allowedTools.length===0)return baseGetAppState;return()=>{let appState=baseGetAppState();return{...appState,toolPermissionContext:{...appState.toolPermissionContext,alwaysAllowRules:{...appState.toolPermissionContext.alwaysAllowRules,command:[...new Set([...appState.toolPermissionContext.alwaysAllowRules.command||[],...allowedTools])]}}}}}async function prepareForkedCommandContext(command,args,context){let skillContent=(await command.getPromptForCommand(args,context)).map((block2)=>block2.type==="text"?block2.text:"").join(`
|
|
4715
|
+
`);return text2.includes("completed")&&text2.includes("findings")&&text2.includes("remaining tasks")&&text2.includes("another run")}function formatAutoCompactRetryDelay(delayMs){let totalSeconds=Math.max(1,Math.ceil(delayMs/1000));if(totalSeconds<60)return`${totalSeconds} second${totalSeconds===1?"":"s"}`;let totalMinutes=Math.ceil(totalSeconds/60);return`${totalMinutes} minute${totalMinutes===1?"":"s"}`}function createAutoCompactDiagnosticMessage(args){let{consecutiveFailures,nextRetryAtMs,circuitBreakerActive,circuitBreakerTripped}=args;if(circuitBreakerActive||circuitBreakerTripped){let retryDelayMs=nextRetryAtMs!==void 0?nextRetryAtMs-Date.now():void 0,retryText=retryDelayMs!==void 0&&retryDelayMs>0?` It will retry after ${formatAutoCompactRetryDelay(retryDelayMs)}.`:"";return createSystemMessage(`Automatic compaction is paused after repeated failures.${retryText} Claudio will stop before sending oversized requests while the guard is active.`,"warning")}if(consecutiveFailures!==void 0&&consecutiveFailures>0)return createSystemMessage(`Automatic compaction failed (${consecutiveFailures}/${MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES}); Claudio will retry compaction on the next eligible turn.`,"warning");return}function isWithheldMaxOutputTokens(msg){return msg?.type==="assistant"&&msg.apiError==="max_output_tokens"}function isWithheldContextOverflow(msg){return msg?.type==="assistant"&&msg.apiError==="context_overflow"}function shouldRecoverContextOverflow(msg,hasAttemptedContextOverflowRecovery,querySource){return!hasAttemptedContextOverflowRecovery&&querySource!=="compact"&&querySource!=="session_memory"&&isWithheldContextOverflow(msg)}function createContextOverflowRecoveryMessage(){return createUserMessage({content:"The previous provider request exceeded the context window. Claudio compacted the conversation and is retrying this turn once; continue from the compacted context, avoid repeating the oversized request shape, and use narrower tool reads if more detail is needed.",isMeta:!0})}function isWithheldProviderMaxTokensCap(msg){return msg?.type==="assistant"&&getProviderMaxTokensCapFromMessage(msg)!==void 0}function injectRequestOnlyMessages(messages,requestOnlyMessages){if(!requestOnlyMessages?.length)return[...messages];let latestUserIndex=messages.findLastIndex(isHumanTurn),insertionIndex=latestUserIndex===-1?messages.length:latestUserIndex;return[...messages.slice(0,insertionIndex),...requestOnlyMessages,...messages.slice(insertionIndex)]}async function*query2(params){let consumedCommandUuids=[],terminal=yield*queryLoop(params,consumedCommandUuids);for(let uuid5 of consumedCommandUuids)notifyCommandLifecycle(uuid5,"completed");return terminal}async function*queryLoop(params,consumedCommandUuids){let __stack=[];try{let{systemPrompt,userContext,systemContext,canUseTool,fallbackModel,querySource,maxTurns,skipCacheWrite}=params;let deps=params.deps??productionDeps();let state2={messages:params.messages,toolUseContext:params.toolUseContext,maxOutputTokensOverride:params.maxOutputTokensOverride,providerMaxOutputTokensCap:void 0,autoCompactTracking:params.autoCompactTracking,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,turnCount:1,continuationNudgeCount:0,pendingToolUseSummary:void 0,transition:void 0,agentStepLimit:normalizeAgentStepLimit(params.agentStepLimit)};let budgetTracker=createBudgetTracker();let updateAutoCompactTracking=(tracking)=>{params.onAutoCompactTrackingChange?.(tracking)};let taskBudgetRemaining=void 0;let requestOnlyMessages=params.requestOnlyMessages;let pendingToolFailureAdvisories=[];let pinnedTurnRoute=void 0;let pinnedRouteProviderId=void 0;let toolFailureGuardState=createToolFailureLoopGuardState();let config3=buildQueryConfig();const pendingMemoryPrefetch=__using(__stack,startRelevantMemoryPrefetch(state2.messages,state2.toolUseContext),0);while(!0){let{toolUseContext}=state2,{messages,autoCompactTracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride,providerMaxOutputTokensCap,pendingToolUseSummary,stopHookActive,turnCount,agentStepLimit}=state2,effectiveMaxOutputTokensOverride=maxOutputTokensOverride===void 0?providerMaxOutputTokensCap:providerMaxOutputTokensCap===void 0?maxOutputTokensOverride:Math.min(maxOutputTokensOverride,providerMaxOutputTokensCap),pendingSkillPrefetch=skillPrefetch?.startSkillDiscoveryPrefetch(null,messages,toolUseContext);if(yield{type:"stream_request_start"},queryCheckpoint("query_fn_entry"),!toolUseContext.agentId)headlessProfilerCheckpoint("query_started");let queryTracking=toolUseContext.queryTracking?{chainId:toolUseContext.queryTracking.chainId,depth:toolUseContext.queryTracking.depth+1}:{chainId:deps.uuid(),depth:0},queryChainIdForAnalytics=queryTracking.chainId;toolUseContext={...toolUseContext,queryTracking};let messagesForQuery=[...getMessagesAfterCompactBoundary(messages)];if(pendingToolFailureAdvisories.length>0)messagesForQuery.push(...pendingToolFailureAdvisories.map((advisory)=>advisory.message));let tracking=autoCompactTracking,configuredMaxMessagesCompactionThreshold=getGlobalConfig().maxMessagesCompactionThreshold,maxMessagesCompactionThreshold=normalizeMaxMessagesCompactionThreshold(configuredMaxMessagesCompactionThreshold),persistReplacements=querySource.startsWith("agent:")||querySource.startsWith("repl_main_thread"),toolResultBudgetResult=await applyToolResultBudget(messagesForQuery,toolUseContext.contentReplacementState,persistReplacements?(records)=>void recordContentReplacement(records,toolUseContext.agentId).catch(logError):void 0,new Set(toolUseContext.options.tools.filter((t)=>!Number.isFinite(t.maxResultSizeChars)).map((t)=>t.name)));if(messagesForQuery=toolResultBudgetResult.messages,toolResultBudgetResult.newlyReplaced.length>0)toolUseContext.syncToolResultReplacements?.(toolUseContext.contentReplacementState?.replacements??new Map);let snipTokensFreed=0;{queryCheckpoint("query_snip_start");let snipResult=snipModule.snipCompactIfNeeded(messagesForQuery);if(messagesForQuery=snipResult.messages,snipTokensFreed=snipResult.tokensFreed,snipResult.boundaryMessage)yield snipResult.boundaryMessage;queryCheckpoint("query_snip_end")}queryCheckpoint("query_microcompact_start");let microcompactResult;if(querySource==="compact"||configuredMaxMessagesCompactionThreshold!=="off")microcompactResult=await deps.microcompact(messagesForQuery,toolUseContext,querySource),messagesForQuery=microcompactResult.messages;let pendingCacheEdits2=microcompactResult?.compactionInfo?.pendingCacheEdits;if(queryCheckpoint("query_microcompact_end"),contextCollapse)messagesForQuery=(await contextCollapse.applyCollapsesIfNeeded(messagesForQuery,toolUseContext,querySource)).messages;let fullSystemPrompt=asSystemPrompt(appendSystemContext(asSystemPrompt(systemPrompt),systemContext)),canForceCompact=querySource!=="compact"&&querySource!=="session_memory",hasValidLegacyActiveMessageLimit=parseMaxActiveMessagesLimit(process.env.OPENCLAUDE_MAX_ACTIVE_MESSAGES)>0,maxMessagesLimitSetting=configuredMaxMessagesCompactionThreshold===void 0&&hasValidLegacyActiveMessageLimit?void 0:maxMessagesCompactionThreshold,hasActiveMessageLimitOverride=configuredMaxMessagesCompactionThreshold!==void 0&&isValidMaxMessagesCompactionThreshold(configuredMaxMessagesCompactionThreshold)&&configuredMaxMessagesCompactionThreshold!=="off"||(configuredMaxMessagesCompactionThreshold===void 0||configuredMaxMessagesCompactionThreshold==="off")&&hasValidLegacyActiveMessageLimit,activeMessageLimit=canForceCompact?resolveMaxActiveMessagesLimit(maxMessagesLimitSetting,process.env.OPENCLAUDE_MAX_ACTIVE_MESSAGES):0;if(canForceCompact){if(isAboveMaxActiveMessagesLimit(messagesForQuery.length,activeMessageLimit)&&(isAutoCompactEnabled()||hasActiveMessageLimitOverride||isAboveMaxActiveMessagesLimit(messagesForQuery.length,getMaxActiveMessagesHardCap())))tracking={...tracking??{compacted:!1,turnId:"",turnCounter:0},forceReason:"message-count"};if(consumeCompactionRequest())tracking={...tracking??{compacted:!1,turnId:"",turnCounter:0},forceReason:tracking?.forceReason??"memory-pressure"}}queryCheckpoint("query_autocompact_start");let{compactionResult,consecutiveFailures,nextRetryAtMs,lastFailureAtMs,circuitBreakerActive,circuitBreakerTripped}=await deps.autocompact(messagesForQuery,toolUseContext,{systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages:messagesForQuery},querySource,tracking,snipTokensFreed);if(queryCheckpoint("query_autocompact_end"),compactionResult){requestOnlyMessages=void 0;let{preCompactTokenCount,postCompactTokenCount,truePostCompactTokenCount,compactionUsage}=compactionResult;if(logEvent("tengu_auto_compact_succeeded",{originalMessageCount:messages.length,compactedMessageCount:compactionResult.summaryMessages.length+compactionResult.attachments.length+compactionResult.hookResults.length,preCompactTokenCount,postCompactTokenCount,truePostCompactTokenCount,compactionInputTokens:compactionUsage?.input_tokens,compactionOutputTokens:compactionUsage?.output_tokens,compactionCacheReadTokens:compactionUsage?.cache_read_input_tokens??0,compactionCacheCreationTokens:compactionUsage?.cache_creation_input_tokens??0,compactionTotalTokens:compactionUsage?compactionUsage.input_tokens+(compactionUsage.cache_creation_input_tokens??0)+(compactionUsage.cache_read_input_tokens??0)+compactionUsage.output_tokens:0,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),params.taskBudget){let preCompactContext=finalContextTokensFromLastResponse(messagesForQuery);taskBudgetRemaining=Math.max(0,(taskBudgetRemaining??params.taskBudget.total)-preCompactContext)}tracking={compacted:!0,turnId:deps.uuid(),turnCounter:0,consecutiveFailures:0},updateAutoCompactTracking(tracking);let postCompactMessages=buildPostCompactMessages(compactionResult),messagesAfterCompact=state2.transition?.reason==="context_overflow_compact_retry"?[...postCompactMessages,createContextOverflowRecoveryMessage()]:postCompactMessages;for(let message of postCompactMessages)yield message;messagesForQuery=[...messagesAfterCompact,...pendingToolFailureAdvisories.filter((advisory)=>!messagesAfterCompact.some((message)=>message.uuid===advisory.message.uuid)).map((advisory)=>advisory.message)]}else if(consecutiveFailures!==void 0||nextRetryAtMs!==void 0||lastFailureAtMs!==void 0||circuitBreakerActive!==void 0||circuitBreakerTripped!==void 0){let nextTracking={...tracking??{compacted:!1,turnId:"",turnCounter:0}};if(consecutiveFailures!==void 0)nextTracking.consecutiveFailures=consecutiveFailures;if(nextRetryAtMs!==void 0)nextTracking.nextRetryAtMs=nextRetryAtMs;else delete nextTracking.nextRetryAtMs;if(lastFailureAtMs!==void 0)nextTracking.lastFailureAtMs=lastFailureAtMs;tracking=nextTracking,updateAutoCompactTracking(tracking);let diagnosticMessage=createAutoCompactDiagnosticMessage({consecutiveFailures,nextRetryAtMs,circuitBreakerActive,circuitBreakerTripped});if(diagnosticMessage)yield diagnosticMessage}toolUseContext={...toolUseContext,messages:messagesForQuery};let assistantMessages=[],toolResults=[],toolUseBlocks=[],needsFollowUp=!1;queryCheckpoint("query_setup_start");let streamingToolExecutor=config3.gates.streamingToolExecution&&agentStepLimit===void 0?new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext):null,appState=toolUseContext.getAppState(),permissionMode=appState.toolPermissionContext.mode,appStateMainLoopModel=appState.mainLoopModelForSession??appState.mainLoopModel??getDefaultMainLoopModelSetting(),currentModel=getRuntimeMainLoopModel({permissionMode,mainLoopModel:parseUserSpecifiedModel(appStateMainLoopModel),exceeds200kTokens:permissionMode==="plan"&&doesMostRecentAssistantMessageExceed200k(messagesForQuery)});if(state2.transition===void 0){if(pinnedTurnRoute=decideTurnModel({settings:appState.settings,parentModel:currentModel,permissionMode,input:{userText:extractLatestUserText(messagesForQuery),hasNonTextContent:latestUserMessageHasNonTextContent(messagesForQuery),turnNumber:deriveUserTurnNumber(messagesForQuery)},sessionId:getSessionId()}),pinnedTurnRoute.routed===!1&&pinnedTurnRoute.justDisabledForSession)yield createSystemMessage("Smart routing disabled for this session: both configured models are outside the org allowlist. Using the default model.","warning");if(pinnedTurnRoute.routed)recordRoutingDecision(pinnedTurnRoute.complexity),pinnedRouteProviderId=getActiveProviderProfile()?.id}else if(shouldDropPinForProviderSwap(pinnedTurnRoute,pinnedRouteProviderId,getActiveProviderProfile()?.id))pinnedTurnRoute=void 0;if(pinnedTurnRoute?.routed){let priorModel=currentModel;if(currentModel=pinnedTurnRoute.model,toolUseContext.options.mainLoopModel=pinnedTurnRoute.model,pinnedTurnRoute.model!==priorModel)messagesForQuery=stripThinkingBlocksIfProviderAllows(messagesForQuery)}queryCheckpoint("query_setup_end");let dumpPromptsFetch=void 0,collapseOwnsIt=!1;collapseOwnsIt=(contextCollapse?.isMainThreadSource(querySource)??!1)&&(contextCollapse?.hasActiveReduction()??!1)&&isAutoCompactEnabled();let mediaRecoveryEnabled=reactiveCompact?.isReactiveCompactEnabled()??!1;if(!compactionResult&&querySource!=="compact"&&querySource!=="session_memory"&&!(reactiveCompact?.isReactiveCompactEnabled()&&isAutoCompactEnabled())&&!collapseOwnsIt){let{isAtBlockingLimit}=calculateTokenWarningState(tokenCountWithEstimation(messagesForQuery)-snipTokensFreed,toolUseContext.options.mainLoopModel);if(isAtBlockingLimit)return yield createAssistantAPIErrorMessage({content:PROMPT_TOO_LONG_ERROR_MESSAGE,error:"invalid_request"}),{reason:"blocking_limit"}}if(state2.transition?.reason==="context_overflow_compact_retry"&&!compactionResult)return yield createAssistantAPIErrorMessage({content:"The provider reported a context-window overflow, but automatic compaction could not reduce the conversation before retry. Run /compact, undo recent large output, or start a new session with /new.",apiError:"context_overflow",error:"invalid_request"}),{reason:"blocking_limit"};let isAboveActiveMessageHardCap=isAboveMaxActiveMessagesLimit(messagesForQuery.length,getMaxActiveMessagesHardCap()),shouldEnforceActiveMessageLimit=!collapseOwnsIt&&isAutoCompactEnabled()||hasActiveMessageLimitOverride||isAboveActiveMessageHardCap;if(tracking?.consecutiveFailures!==void 0&&tracking.consecutiveFailures>=MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES&&(isAutoCompactEnabled()||circuitBreakerActive===!0||circuitBreakerTripped===!0)){let model=toolUseContext.options.mainLoopModel,tokenUsage=tokenCountWithEstimation(messagesForQuery)-snipTokensFreed,{isAboveAutoCompactThreshold}=calculateTokenWarningState(tokenUsage,model),isAboveActiveMessageSafetyLimit=isAboveMaxActiveMessagesLimit(messagesForQuery.length,activeMessageLimit)&&shouldEnforceActiveMessageLimit;if(isAboveAutoCompactThreshold||(circuitBreakerActive===!0||circuitBreakerTripped===!0)&&tokenUsage>=getAutoCompactThreshold(model)||isAboveActiveMessageSafetyLimit){let nowMs=Date.now(),retryDelayMs=tracking.nextRetryAtMs!==void 0?tracking.nextRetryAtMs-nowMs:void 0,content=retryDelayMs!==void 0&&retryDelayMs>0?`The conversation is over the auto-compact safety threshold, but automatic compaction is cooling down after repeated failures. Claudio stopped before sending another oversized request. Retry after ${formatAutoCompactRetryDelay(retryDelayMs)}, run /compact, or start a new session with /new.`:"The conversation is over the auto-compact safety threshold and automatic compaction has failed repeatedly. Claudio stopped before sending another oversized request. Run /compact, undo recent large tool output, or start a new session with /new.";return yield createAssistantAPIErrorMessage({content,error:"invalid_request"}),{reason:"blocking_limit"}}}if(shouldEnforceActiveMessageLimit&&isAboveMaxActiveMessagesLimit(messagesForQuery.length,activeMessageLimit))return yield createAssistantAPIErrorMessage({content:"The conversation is over the active-message safety limit, but automatic compaction could not reduce it before the next provider request. Claudio stopped before sending another oversized request. Run /compact, undo recent large tool output, or start a new session with /new.",error:"invalid_request"}),{reason:"blocking_limit"};let attemptWithFallback=!0,toolsForModel=agentStepLimit?.summaryRequested?[]:toolUseContext.options.tools,advisoriesForCurrentRequest=pendingToolFailureAdvisories;for(let advisory of advisoriesForCurrentRequest)logForDebugging(`Tool failure loop guard advisory: threshold=${advisory.threshold} hasToolName=true hasErrorCategory=true`),logEvent("tengu_tool_failure_loop_guard_advisory",{threshold:advisory.threshold,hasToolName:!0,hasErrorCategory:!0,queryDepth:queryTracking.depth});pendingToolFailureAdvisories=[];let routedFallbackUsed=!1;queryCheckpoint("query_api_loop_start");try{while(attemptWithFallback){attemptWithFallback=!1;try{let streamingFallbackOccured=!1;queryCheckpoint("query_api_streaming_start"),params.onModelRequestStart?.();try{for await(let message of deps.callModel({messages:prependUserContext(injectRequestOnlyMessages(messagesForQuery,requestOnlyMessages),userContext),systemPrompt:fullSystemPrompt,thinkingConfig:toolUseContext.options.thinkingConfig,tools:toolsForModel,signal:toolUseContext.abortController.signal,options:{async getToolPermissionContext(){return toolUseContext.getAppState().toolPermissionContext},model:currentModel,...config3.gates.fastModeEnabled&&{fastMode:appState.fastMode},toolChoice:void 0,isNonInteractiveSession:toolUseContext.options.isNonInteractiveSession,fallbackModel,onStreamingFallback:()=>{streamingFallbackOccured=!0},querySource,agents:toolUseContext.options.agentDefinitions.activeAgents,allowedAgentTypes:toolUseContext.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!toolUseContext.options.appendSystemPrompt,maxOutputTokensOverride:effectiveMaxOutputTokensOverride,fetchOverride:dumpPromptsFetch,mcpTools:appState.mcp.tools,hasPendingMcpServers:appState.mcp.clients.some((c5)=>c5.type==="pending"),queryTracking,queryLifecycle:toolUseContext.queryLifecycle,effortValue:appState.effortValue,advisorModel:appState.advisorModel,skipCacheWrite,agentId:toolUseContext.agentId,addNotification:toolUseContext.addNotification,providerOverride:toolUseContext.options.providerOverride,...toolsForModel!==toolUseContext.options.tools&&{messageNormalizationTools:toolUseContext.options.tools},...params.taskBudget&&{taskBudget:{total:params.taskBudget.total,...taskBudgetRemaining!==void 0&&{remaining:taskBudgetRemaining}}}}})){if(streamingFallbackOccured){for(let msg of assistantMessages)yield{type:"tombstone",message:msg};if(logEvent("tengu_orphaned_messages_tombstoned",{orphanedMessageCount:assistantMessages.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),assistantMessages.length=0,toolResults.length=0,toolUseBlocks.length=0,needsFollowUp=!1,streamingToolExecutor)streamingToolExecutor.discard(),streamingToolExecutor=new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext)}let yieldMessage=message;if(message.type==="assistant"){let clonedContent;for(let i3=0;i3<message.message.content.length;i3++){let block2=message.message.content[i3];if(block2.type==="tool_use"&&typeof block2.input==="object"&&block2.input!==null){let tool=findToolByName(toolUseContext.options.tools,block2.name);if(tool?.backfillObservableInput){let originalInput=block2.input,inputCopy={...originalInput};if(tool.backfillObservableInput(inputCopy),Object.keys(inputCopy).some((k)=>!(k in originalInput)))clonedContent??=[...message.message.content],clonedContent[i3]={...block2,input:inputCopy}}}}if(clonedContent)yieldMessage={...message,message:{...message.message,content:clonedContent}}}let withheld=!1;if(contextCollapse?.isWithheldPromptTooLong(message,isPromptTooLongMessage,querySource))withheld=!0;if(reactiveCompact?.isWithheldPromptTooLong(message))withheld=!0;if(mediaRecoveryEnabled&&reactiveCompact?.isWithheldMediaSizeError(message))withheld=!0;if(isWithheldMaxOutputTokens(message))withheld=!0;if(shouldRecoverContextOverflow(message,hasAttemptedContextOverflowRecovery,querySource))withheld=!0;if(isWithheldProviderMaxTokensCap(message))withheld=!0;if(!hasAttemptedProviderFallback&&querySource!=="compact"&&querySource!=="session_memory"&&message.type==="assistant"&&message.isApiErrorMessage===!0&&message.error==="rate_limit"&&resolveNextFallbackProviderFromState()!==null)withheld=!0;if(!withheld)yield yieldMessage;if(message.type==="assistant"){assistantMessages.push(message);let msgToolUseBlocks=message.message.content.filter((content)=>content.type==="tool_use");if(msgToolUseBlocks.length>0)toolUseBlocks.push(...msgToolUseBlocks),needsFollowUp=!0;if(streamingToolExecutor&&!toolUseContext.abortController.signal.aborted)for(let toolBlock of msgToolUseBlocks)streamingToolExecutor.addTool(toolBlock,message)}if(streamingToolExecutor&&!toolUseContext.abortController.signal.aborted){for(let result of streamingToolExecutor.getCompletedResults())if(result.message)yield result.message,toolResults.push(...normalizeMessagesForAPI([result.message],toolUseContext.options.tools).filter((_)=>_.type==="user"))}}}finally{params.onModelRequestEnd?.()}if(queryCheckpoint("query_api_streaming_end"),pendingCacheEdits2){let usage=assistantMessages.at(-1)?.message.usage,cumulativeDeleted=usage?usage.cache_deleted_input_tokens??0:0,deletedTokens=Math.max(0,cumulativeDeleted-pendingCacheEdits2.baselineCacheDeletedTokens);if(deletedTokens>0)yield createMicrocompactBoundaryMessage(pendingCacheEdits2.trigger,0,deletedTokens,pendingCacheEdits2.deletedToolIds,[])}}catch(innerError){if(innerError instanceof FallbackTriggeredError&&fallbackModel){if(currentModel=fallbackModel,attemptWithFallback=!0,yield*yieldMissingToolResultBlocks(assistantMessages,"Model fallback triggered"),assistantMessages.length=0,toolResults.length=0,toolUseBlocks.length=0,needsFollowUp=!1,streamingToolExecutor)streamingToolExecutor.discard(),streamingToolExecutor=new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext);toolUseContext.options.mainLoopModel=fallbackModel,logEvent("tengu_model_fallback_triggered",{original_model:innerError.originalModel,fallback_model:fallbackModel,entrypoint:"cli",queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),yield createSystemMessage(`Switched to ${renderModelName(innerError.fallbackModel)} due to high demand for ${renderModelName(innerError.originalModel)}`,"warning");continue}if(pinnedTurnRoute?.routed&&pinnedTurnRoute.complexity==="simple"&&!routedFallbackUsed&&!(innerError instanceof FallbackTriggeredError)&&!toolUseContext.abortController.signal.aborted&&isRetryableRoutedModelError(innerError)){let strongModel=pinnedTurnRoute.strongModel;if(routedFallbackUsed=!0,attemptWithFallback=!0,recordRoutingEscalation(),pinnedTurnRoute={routed:!0,model:strongModel,complexity:"strong",reason:"fell back from simple model",strongModel},yield*yieldMissingToolResultBlocks(assistantMessages,"Smart-routing fallback to strong model"),assistantMessages.length=0,toolResults.length=0,toolUseBlocks.length=0,needsFollowUp=!1,streamingToolExecutor)streamingToolExecutor.discard(),streamingToolExecutor=new StreamingToolExecutor(toolUseContext.options.tools,canUseTool,toolUseContext);currentModel=strongModel,toolUseContext.options.mainLoopModel=strongModel,messagesForQuery=stripThinkingBlocksIfProviderAllows(messagesForQuery),yield createSystemMessage(`Smart routing: retrying on ${renderModelName(strongModel)} after the simple model failed`,"warning");continue}throw innerError}}}catch(error41){logError(error41);let errorMessage2=error41 instanceof Error?error41.message:String(error41);if(logEvent("tengu_query_error",{assistantMessages:assistantMessages.length,toolUses:assistantMessages.flatMap((_)=>_.message.content.filter((content)=>content.type==="tool_use")).length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),error41 instanceof ImageSizeError||error41 instanceof ImageResizeError)return yield createAssistantAPIErrorMessage({content:error41.message}),{reason:"image_error"};return yield*yieldMissingToolResultBlocks(assistantMessages,errorMessage2),yield createAssistantAPIErrorMessage({content:errorMessage2}),logAntError("Query error",error41),{reason:"model_error",error:error41}}if(assistantMessages.length>0)executePostSamplingHooks([...messagesForQuery,...assistantMessages],systemPrompt,userContext,systemContext,toolUseContext,querySource);if(toolUseContext.abortController.signal.aborted){let abortReason2=toolUseContext.abortController.signal.reason;if(streamingToolExecutor){for await(let update of streamingToolExecutor.getRemainingResults())if(update.message)yield update.message}else yield*yieldMissingToolResultBlocks(assistantMessages,getMissingToolResultAbortMessage(abortReason2));let abortSystemMessage=getQueryAbortSystemMessage(abortReason2);if(abortSystemMessage)yield createSystemMessage(abortSystemMessage,"warning");if(shouldCreateUserInterruptionMessage(abortReason2))yield createUserInterruptionMessage({toolUse:!1});return{reason:"aborted_streaming"}}if(pendingToolUseSummary){let summary=await pendingToolUseSummary;if(summary)yield summary}if(!needsFollowUp){let lastMessage=assistantMessages.at(-1),isWithheld413=lastMessage?.type==="assistant"&&lastMessage.isApiErrorMessage&&isPromptTooLongMessage(lastMessage),isWithheldMedia=mediaRecoveryEnabled&&reactiveCompact?.isWithheldMediaSizeError(lastMessage);if(isWithheld413){if(contextCollapse&&state2.transition?.reason!=="collapse_drain_retry"){let drained=contextCollapse.recoverFromOverflow(messagesForQuery,querySource);if(drained.committed>0){requestOnlyMessages=void 0,state2={messages:drained.messages,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"collapse_drain_retry",committed:drained.committed}};continue}}}if((isWithheld413||isWithheldMedia)&&reactiveCompact){let compacted=await reactiveCompact.tryReactiveCompact({hasAttempted:hasAttemptedReactiveCompact,querySource,aborted:toolUseContext.abortController.signal.aborted,messages:messagesForQuery,cacheSafeParams:{systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages:messagesForQuery}});if(compacted){if(requestOnlyMessages=void 0,params.taskBudget){let preCompactContext=finalContextTokensFromLastResponse(messagesForQuery);taskBudgetRemaining=Math.max(0,(taskBudgetRemaining??params.taskBudget.total)-preCompactContext)}let postCompactMessages=buildPostCompactMessages(compacted),messagesAfterCompact=[...postCompactMessages,...advisoriesForCurrentRequest.filter((advisory)=>!postCompactMessages.some((message)=>message.uuid===advisory.message.uuid)).map((advisory)=>advisory.message)];for(let msg of postCompactMessages)yield msg;updateAutoCompactTracking(void 0),state2={messages:messagesAfterCompact,toolUseContext,autoCompactTracking:void 0,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact:!0,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"reactive_compact_retry"}};continue}return yield lastMessage,executeStopFailureHooks(lastMessage,toolUseContext),{reason:isWithheldMedia?"image_error":"prompt_too_long"}}else if(isWithheld413)return yield lastMessage,executeStopFailureHooks(lastMessage,toolUseContext),{reason:"prompt_too_long"};if(shouldRecoverContextOverflow(lastMessage,hasAttemptedContextOverflowRecovery,querySource)){yield createSystemMessage("Provider context limit reached; compacting conversation and retrying turn.","warning");let nextTracking={...tracking??{compacted:!1,turnId:"",turnCounter:0},forceReason:"context-overflow"};state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:nextTracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery:!0,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"context_overflow_compact_retry"}};continue}if(isWithheldProviderMaxTokensCap(lastMessage)){let providerMaxTokensCap=getProviderMaxTokensCapFromMessage(lastMessage);if(providerMaxTokensCap!==void 0&&state2.transition?.reason!=="provider_max_tokens_retry"&&(effectiveMaxOutputTokensOverride===void 0||providerMaxTokensCap<effectiveMaxOutputTokensOverride)){let nextProviderMaxOutputTokensCap=providerMaxOutputTokensCap===void 0?providerMaxTokensCap:Math.min(providerMaxOutputTokensCap,providerMaxTokensCap);logEvent("tengu_provider_max_tokens_cap_retry",{cap:providerMaxTokensCap,...effectiveMaxOutputTokensOverride!==void 0&&{previousMaxOutputTokensOverride:effectiveMaxOutputTokensOverride}}),yield createSystemMessage(`Provider maximum output tokens limit is ${providerMaxTokensCap.toLocaleString("en-US")}; retrying with that cap.`,"warning"),state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride,providerMaxOutputTokensCap:nextProviderMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"provider_max_tokens_retry",cap:providerMaxTokensCap}};continue}yield lastMessage}if(isWithheldMaxOutputTokens(lastMessage)){if(getFeatureValue_CACHED_MAY_BE_STALE("tengu_otk_slot_v1",!1)&&effectiveMaxOutputTokensOverride===void 0&&!process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS){logEvent("tengu_max_tokens_escalate",{escalatedTo:ESCALATED_MAX_TOKENS}),state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:ESCALATED_MAX_TOKENS,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"max_output_tokens_escalate"}};continue}if(maxOutputTokensRecoveryCount<MAX_OUTPUT_TOKENS_RECOVERY_LIMIT){let recoveryMessage=createUserMessage({content:"Output token limit hit. Resume directly — no apology, no recap of what you were doing. "+"Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.",isMeta:!0});state2={messages:[...messagesForQuery,...assistantMessages,recoveryMessage],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:maxOutputTokensRecoveryCount+1,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"max_output_tokens_recovery",attempt:maxOutputTokensRecoveryCount+1}};continue}yield lastMessage}if(!hasAttemptedProviderFallback&&querySource!=="compact"&&querySource!=="session_memory"&&lastMessage?.type==="assistant"&&lastMessage.isApiErrorMessage===!0&&lastMessage.error==="rate_limit"){let fallback=resolveNextFallbackProviderFromState();if(fallback!==null){let activated=setActiveProviderProfile(fallback.nextProfileId);if(activated){let fromLabel=fallback.fromProfileId??"previous provider",activatedModel=getPrimaryModel(activated.model);if(activatedModel)toolUseContext.setAppState((prev)=>({...prev,mainLoopModel:activatedModel,mainLoopModelForSession:null})),toolUseContext.options.mainLoopModel=activatedModel;yield createSystemMessage(`Provider ${fromLabel} rate-limited — switched to ${activated.name}. Retrying turn.`,"warning"),state2={messages:messagesForQuery,toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback:!0,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"provider_fallback_retry"}};continue}}yield lastMessage}if(lastMessage?.isApiErrorMessage)return executeStopFailureHooks(lastMessage,toolUseContext),{reason:"completed"};let stopHookResult=yield*handleStopHooks(messagesForQuery,assistantMessages,systemPrompt,userContext,systemContext,toolUseContext,querySource,stopHookActive,deps.goalEvaluationDeps,deps.stopHookExecutionDeps);if(stopHookResult.preventContinuation)return{reason:"stop_hook_prevented"};if(stopHookResult.blockingErrors.length>0){state2={messages:[...messagesForQuery,...assistantMessages,...stopHookResult.blockingErrors],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact,hasAttemptedContextOverflowRecovery,hasAttemptedProviderFallback,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:stopHookResult.stopHookActive,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"stop_hook_blocking"}};continue}{let decision=checkTokenBudget(budgetTracker,toolUseContext.agentId,getCurrentTurnTokenBudget(),getTurnOutputTokens());if(decision.action==="continue"){incrementBudgetContinuationCount(),logForDebugging(`Token budget continuation #${decision.continuationCount}: ${decision.pct}% (${decision.turnTokens.toLocaleString()} / ${decision.budget.toLocaleString()})`),state2={messages:[...messagesForQuery,...assistantMessages,createUserMessage({content:decision.nudgeMessage,isMeta:!0})],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount,agentStepLimit,transition:{reason:"token_budget_continuation"}};continue}if(decision.completionEvent){if(decision.completionEvent.diminishingReturns)logForDebugging(`Token budget early stop: diminishing returns at ${decision.completionEvent.pct}%`);logEvent("tengu_token_budget_completed",{...decision.completionEvent,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth})}}if(assistantMessages.length>0&&!agentStepLimit?.summaryRequested&&turnCount<(maxTurns??1/0)&&state2.continuationNudgeCount<MAX_CONTINUATION_NUDGES){let lastAssistant=assistantMessages.at(-1);if(lastAssistant?.type==="assistant"){let lastText=lastAssistant.message.content.filter((b)=>b.type==="text").map((b)=>b.text).join(" ").toLowerCase(),{shouldNudge,reason:nudgeReason}=analyzeContinuationIntent(lastText);if(shouldNudge){logForDebugging(`Continuation nudge triggered (${state2.continuationNudgeCount+1}/${MAX_CONTINUATION_NUDGES}): ${nudgeReason} detected in "${lastText.slice(-120)}" without tool calls`);let nudge=createUserMessage({content:"Continue with the task. If you were interrupted, resume your thought. Otherwise, use the appropriate tools to proceed to the next step.",isMeta:!0});state2={messages:[...messagesForQuery,...assistantMessages,nudge],toolUseContext,autoCompactTracking:tracking,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount,continuationNudgeCount:state2.continuationNudgeCount+1,agentStepLimit,transition:{reason:"continuation_nudge"}};continue}}}if(agentStepLimit?.summaryRequested)return{reason:"agent_step_limit",turnCount,stepsUsed:agentStepLimit.stepsUsed,maxSteps:agentStepLimit.maxSteps};return{reason:"completed"}}let shouldPreventContinuation=!1,updatedToolUseContext=toolUseContext;queryCheckpoint("query_tool_execution_start");let toolUseBlocksToExecute=toolUseBlocks,blockedToolUseBlocks=[],nextAgentStepLimit=agentStepLimit,shouldRequestAgentStepSummary=!1,shouldTerminateAgentStepSummary=agentStepLimit?.summaryRequested===!0&&toolUseBlocks.length>0;if(agentStepLimit)if(agentStepLimit.summaryRequested)toolUseBlocksToExecute=[],blockedToolUseBlocks=toolUseBlocks;else{let remainingSteps=Math.max(0,agentStepLimit.maxSteps-agentStepLimit.stepsUsed);toolUseBlocksToExecute=toolUseBlocks.slice(0,remainingSteps),blockedToolUseBlocks=toolUseBlocks.slice(remainingSteps);let stepsUsed=agentStepLimit.stepsUsed+toolUseBlocksToExecute.length,summaryRequested=stepsUsed>=agentStepLimit.maxSteps||blockedToolUseBlocks.length>0;nextAgentStepLimit={...agentStepLimit,stepsUsed,summaryRequested},shouldRequestAgentStepSummary=summaryRequested}if(streamingToolExecutor)logEvent("tengu_streaming_tool_execution_used",{tool_count:toolUseBlocks.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});else logEvent("tengu_streaming_tool_execution_not_used",{tool_count:toolUseBlocks.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});let toolUpdates=streamingToolExecutor?streamingToolExecutor.getRemainingResults():runTools(toolUseBlocksToExecute,assistantMessages,canUseTool,toolUseContext);for await(let update of toolUpdates){if(update.message){if(yield update.message,update.message.type==="attachment"&&update.message.attachment.type==="hook_stopped_continuation")shouldPreventContinuation=!0;toolResults.push(...normalizeMessagesForAPI([update.message],toolUseContext.options.tools).filter((_)=>_.type==="user"))}if(update.newContext)updatedToolUseContext={...update.newContext,queryTracking}}if(nextAgentStepLimit&&blockedToolUseBlocks.length>0)for(let toolUse of blockedToolUseBlocks){let message=createAgentStepLimitToolResult(toolUse,findAssistantMessageForToolUse(assistantMessages,toolUse.id),nextAgentStepLimit);yield message,toolResults.push(message)}if(shouldTerminateAgentStepSummary&&nextAgentStepLimit){if(!hasAssistantSummaryText(assistantMessages.at(-1)))yield createAgentStepLimitForcedSummary(nextAgentStepLimit,blockedToolUseBlocks.length);return{reason:"agent_step_limit",turnCount,stepsUsed:nextAgentStepLimit.stepsUsed,maxSteps:nextAgentStepLimit.maxSteps}}if(queryCheckpoint("query_tool_execution_end"),toolUseContext.abortController.signal.aborted){let abortReason2=toolUseContext.abortController.signal.reason,abortSystemMessage=getQueryAbortSystemMessage(abortReason2);if(abortSystemMessage)yield createSystemMessage(abortSystemMessage,"warning");if(shouldCreateUserInterruptionMessage(abortReason2))yield createUserInterruptionMessage({toolUse:!0});let nextTurnCountOnAbort=turnCount+1;if(maxTurns&&nextTurnCountOnAbort>maxTurns)yield createAttachmentMessage({type:"max_turns_reached",maxTurns,turnCount:nextTurnCountOnAbort});return{reason:"aborted_tools"}}if(shouldPreventContinuation)return{reason:"hook_stopped"};let toolFailureLoopDecision=updateToolFailureLoopGuard({state:toolFailureGuardState,toolUseBlocks,toolResults});if(toolFailureLoopDecision.tripped)return logForDebugging(`Tool failure loop guard tripped: kind=${toolFailureLoopDecision.kind} threshold=${toolFailureLoopDecision.threshold} hasToolName=${toolFailureLoopDecision.toolName!==void 0} hasErrorCategory=${toolFailureLoopDecision.errorCategory!==void 0} hasPath=${toolFailureLoopDecision.path!==void 0}`),logEvent("tengu_tool_failure_loop_guard_tripped",{threshold:toolFailureLoopDecision.threshold,isPathTrip:toolFailureLoopDecision.kind==="path",isSignatureTrip:toolFailureLoopDecision.kind==="signature",isCategoryTrip:toolFailureLoopDecision.kind==="category",hasToolName:toolFailureLoopDecision.toolName!==void 0,hasErrorCategory:toolFailureLoopDecision.errorCategory!==void 0,hasPath:toolFailureLoopDecision.path!==void 0,queryDepth:queryTracking.depth}),yield createAssistantAPIErrorMessage({content:toolFailureLoopDecision.message}),{reason:"tool_failure_loop"};if(shouldRequestAgentStepSummary&&nextAgentStepLimit){let summaryRequest=createAgentStepLimitSummaryRequest(nextAgentStepLimit);yield summaryRequest,toolResults.push(summaryRequest),logForDebugging(`[Agent: ${nextAgentStepLimit.agentType??"subagent"}] Reached maxSteps limit (${nextAgentStepLimit.stepsUsed}/${nextAgentStepLimit.maxSteps}); requesting final summary`),logEvent("tengu_agent_step_limit_reached",{agent_type:nextAgentStepLimit.agentType??"subagent",steps_used:nextAgentStepLimit.stepsUsed,max_steps:nextAgentStepLimit.maxSteps,blocked_tool_uses:blockedToolUseBlocks.length})}let nextPendingToolUseSummary;if(config3.gates.emitToolUseSummaries&&toolUseBlocks.length>0&&!toolUseContext.abortController.signal.aborted&&!toolUseContext.agentId){let lastAssistantMessage=assistantMessages.at(-1),lastAssistantText;if(lastAssistantMessage){let textBlocks=lastAssistantMessage.message.content.filter((block2)=>block2.type==="text");if(textBlocks.length>0){let lastTextBlock=textBlocks.at(-1);if(lastTextBlock&&"text"in lastTextBlock)lastAssistantText=lastTextBlock.text}}let toolUseIds=toolUseBlocks.map((block2)=>block2.id),toolInfoForSummary=toolUseBlocks.map((block2)=>{let toolResult=toolResults.find((result)=>result.type==="user"&&Array.isArray(result.message.content)&&result.message.content.some((content)=>content.type==="tool_result"&&content.tool_use_id===block2.id)),resultContent=toolResult?.type==="user"&&Array.isArray(toolResult.message.content)?toolResult.message.content.find((c5)=>c5.type==="tool_result"&&c5.tool_use_id===block2.id):void 0;return{name:block2.name,input:block2.input,output:resultContent&&"content"in resultContent?resultContent.content:null}});nextPendingToolUseSummary=generateToolUseSummary({tools:toolInfoForSummary,signal:toolUseContext.abortController.signal,isNonInteractiveSession:toolUseContext.options.isNonInteractiveSession,lastAssistantText}).then((summary)=>{if(summary)return createToolUseSummaryMessage(summary,toolUseIds);return null}).catch(()=>null)}if(tracking?.compacted)tracking={...tracking,turnCounter:tracking.turnCounter+1},updateAutoCompactTracking(tracking),logEvent("tengu_post_autocompact_turn",{turnId:tracking.turnId,turnCounter:tracking.turnCounter,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});logEvent("tengu_query_before_attachments",{messagesForQueryCount:messagesForQuery.length,assistantMessagesCount:assistantMessages.length,toolResultsCount:toolResults.length,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth});let sleepRan=toolUseBlocks.some((b)=>b.name===SLEEP_TOOL_NAME),isMainThread=querySource.startsWith("repl_main_thread")||querySource==="sdk",currentAgentId=toolUseContext.agentId,queuedCommandsSnapshot=getCommandsByMaxPriority(sleepRan?"later":"next").filter((cmd)=>{if(isSlashCommand(cmd))return!1;if(isMainThread)return cmd.agentId===void 0;return cmd.mode==="task-notification"&&cmd.agentId===currentAgentId});for await(let attachment of getAttachmentMessages(null,updatedToolUseContext,null,queuedCommandsSnapshot,[...messagesForQuery,...assistantMessages,...toolResults],querySource))yield attachment,toolResults.push(attachment);if(pendingMemoryPrefetch&&pendingMemoryPrefetch.settledAt!==null&&pendingMemoryPrefetch.consumedOnIteration===-1){let memoryAttachments=filterDuplicateMemoryAttachments(await pendingMemoryPrefetch.promise,toolUseContext.readFileState);for(let memAttachment of memoryAttachments){let msg=createAttachmentMessage(memAttachment);yield msg,toolResults.push(msg)}pendingMemoryPrefetch.consumedOnIteration=turnCount-1}if(skillPrefetch&&pendingSkillPrefetch){let skillAttachments=await skillPrefetch.collectSkillDiscoveryPrefetch(pendingSkillPrefetch);for(let att of skillAttachments){let msg=createAttachmentMessage(att);yield msg,toolResults.push(msg)}}let consumedCommands=queuedCommandsSnapshot.filter((cmd)=>cmd.mode==="prompt"||cmd.mode==="task-notification");if(consumedCommands.length>0){for(let cmd of consumedCommands)if(cmd.uuid)consumedCommandUuids.push(cmd.uuid),notifyCommandLifecycle(cmd.uuid,"started");remove(consumedCommands)}let fileChangeAttachmentCount=count2(toolResults,(tr)=>tr.type==="attachment"&&tr.attachment.type==="edited_text_file");if(logEvent("tengu_query_after_attachments",{totalToolResultsCount:toolResults.length,fileChangeAttachmentCount,queryChainId:queryChainIdForAnalytics,queryDepth:queryTracking.depth}),updatedToolUseContext.options.refreshTools){let refreshedTools=updatedToolUseContext.options.refreshTools();if(refreshedTools!==updatedToolUseContext.options.tools)updatedToolUseContext={...updatedToolUseContext,options:{...updatedToolUseContext.options,tools:refreshedTools}}}let toolUseContextWithQueryTracking={...updatedToolUseContext,queryTracking},nextTurnCount=turnCount+1;if(!toolUseContext.agentId&&taskSummaryModule.shouldGenerateTaskSummary())taskSummaryModule.maybeGenerateTaskSummary({systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages:[...messagesForQuery,...assistantMessages,...toolResults]});if(maxTurns&&nextTurnCount>maxTurns&&!nextAgentStepLimit?.summaryRequested)return yield createAttachmentMessage({type:"max_turns_reached",maxTurns,turnCount:nextTurnCount}),{reason:"max_turns",turnCount:nextTurnCount};if(!nextAgentStepLimit?.summaryRequested)pendingToolFailureAdvisories=(toolFailureLoopDecision.advisories??[]).map((advisoryDecision)=>({message:createUserMessage({content:advisoryDecision.message,isMeta:!0}),threshold:advisoryDecision.threshold}));queryCheckpoint("query_recursive_call"),state2={messages:[...messagesForQuery,...assistantMessages,...toolResults],toolUseContext:toolUseContextWithQueryTracking,autoCompactTracking:tracking,turnCount:nextTurnCount,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,hasAttemptedContextOverflowRecovery:!1,hasAttemptedProviderFallback:!1,continuationNudgeCount:0,pendingToolUseSummary:nextPendingToolUseSummary,maxOutputTokensOverride:void 0,providerMaxOutputTokensCap,stopHookActive,agentStepLimit:nextAgentStepLimit,transition:{reason:"next_turn"}}}}catch(_catch3){var _err=_catch3,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}var reactiveCompact=null,contextCollapse,skillPrefetch=null,snipModule,taskSummaryModule,MAX_OUTPUT_TOKENS_RECOVERY_LIMIT=3,MAX_CONTINUATION_NUDGES=20;var init_query2=__esm(()=>{init_withRetry();init_autoCompact();init_memoryPressure();init_compact();init_imageValidation();init_imageResizer();init_Tool();init_log2();init_errors6();init_debug();init_abortReasons();init_messages3();init_continuation();init_toolUseSummaryGenerator();init_api3();init_attachments2();init_messageQueueManager();init_headlessProfiler();init_model();init_tokens();init_context();init_growthbook();init_prompt20();init_postSamplingHooks();init_hooks4();init_StreamingToolExecutor();init_queryProfiler();init_toolOrchestration();init_toolResultStorage();init_providerFallback();init_providerProfiles();init_sessionStorage();init_stopHooks();init_toolFailureLoopGuard();init_config6();init_config();init_deps();init_state();init_conversationRecovery();init_smartRouting();init_tokenBudget2();contextCollapse=(init_contextCollapse(),__toCommonJS(exports_contextCollapse)),snipModule=(init_snipCompact(),__toCommonJS(exports_snipCompact)),taskSummaryModule=__toCommonJS(exports_taskSummary)});var EMPTY_USAGE;var init_emptyUsage=__esm(()=>{EMPTY_USAGE={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"}});function getErrorMessage2(error41){if(error41 instanceof APIError){let body=error41.error;if(body?.error?.message)return body.error.message}return error41 instanceof Error?error41.message:String(error41)}function detectGateway({headers,baseUrl}){if(headers){let headerNames=[];headers.forEach((_,key)=>headerNames.push(key));for(let[gw,{prefixes}]of Object.entries(GATEWAY_FINGERPRINTS))if(prefixes.some((p)=>headerNames.some((h2)=>h2.startsWith(p))))return gw}if(baseUrl)try{let host=new URL(baseUrl).hostname.toLowerCase();for(let[gw,suffixes]of Object.entries(GATEWAY_HOST_SUFFIXES))if(suffixes.some((s)=>host.endsWith(s)))return gw}catch{}return}function getAnthropicEnvMetadata(){return{...process.env.ANTHROPIC_BASE_URL?{baseUrl:redactUrlForDisplay(process.env.ANTHROPIC_BASE_URL)}:{},...process.env.ANTHROPIC_MODEL?{envModel:process.env.ANTHROPIC_MODEL}:{},...process.env.ANTHROPIC_SMALL_FAST_MODEL?{envSmallFastModel:process.env.ANTHROPIC_SMALL_FAST_MODEL}:{}}}function getBuildAgeMinutes(){let buildTime=new Date("2026-07-19T21:19:06.848Z").getTime();if(isNaN(buildTime))return;return Math.floor((Date.now()-buildTime)/60000)}function logAPIQuery({model,messagesLength,temperature,betas,permissionMode,querySource,queryTracking,thinkingType,effortValue,fastMode,previousRequestId}){logEvent("tengu_api_query",{model,messagesLength,temperature,provider:getAPIProviderForStatsig(),buildAgeMins:getBuildAgeMinutes(),...betas?.length?{betas:betas.join(",")}:{},permissionMode,querySource,...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{},thinkingType,effortValue,fastMode,...previousRequestId?{previousRequestId}:{},...getAnthropicEnvMetadata()})}function logAPIError({error:error41,model,messageCount,messageTokens,durationMs,durationMsIncludingRetries,attempt,requestId,clientRequestId,didFallBackToNonStreaming,promptCategory,headers,queryTracking,querySource,fastMode,previousRequestId}){let gateway=detectGateway({headers:error41 instanceof APIError&&error41.headers?error41.headers:headers,baseUrl:process.env.ANTHROPIC_BASE_URL}),errStr=redactSensitiveInfo(getErrorMessage2(error41)),status=error41 instanceof APIError?String(error41.status):void 0,errorType=classifyAPIError(error41),connectionDetails=extractConnectionErrorDetails(error41);if(connectionDetails){let sslLabel=connectionDetails.isSSLError?" (SSL error)":"";logForDebugging(`Connection error details: code=${connectionDetails.code}${sslLabel}, message=${connectionDetails.message}`,{level:"error"})}let invocation=consumeInvokingRequestId();if(clientRequestId)logForDebugging(`API error x-client-request-id=${clientRequestId} (give this to the API team for server-log lookup)`,{level:"error"});logError(error41),logEvent("tengu_api_error",{model,error:errStr,status,errorType,messageCount,messageTokens,durationMs,durationMsIncludingRetries,attempt,provider:getAPIProviderForStatsig(),requestId:requestId||void 0,...invocation?{invokingRequestId:invocation.invokingRequestId,invocationKind:invocation.invocationKind}:{},clientRequestId:clientRequestId||void 0,didFallBackToNonStreaming,...promptCategory?{promptCategory}:{},...gateway?{gateway}:{},...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{},...querySource?{querySource}:{},fastMode,...previousRequestId?{previousRequestId}:{},...getAnthropicEnvMetadata()});let teleportInfo=getTeleportedSessionInfo();if(teleportInfo?.isTeleported&&!teleportInfo.hasLoggedFirstMessage)logEvent("tengu_teleport_first_message_error",{session_id:teleportInfo.sessionId,error_type:errorType}),markFirstTeleportMessageLogged()}function logAPISuccess({model,preNormalizedModel,messageCount,messageTokens,usage,durationMs,durationMsIncludingRetries,attempt,ttftMs,requestId,stopReason,costUSD,didFallBackToNonStreaming,querySource,gateway,queryTracking,permissionMode,globalCacheStrategy,textContentLength,thinkingContentLength,toolUseContentLengths,connectorTextBlockCount,fastMode,previousRequestId,betas}){let isNonInteractiveSession=getIsNonInteractiveSession(),isPostCompaction=consumePostCompaction(),hasPrintFlag=process.argv.includes("-p")||process.argv.includes("--print"),now2=Date.now(),lastCompletion=getLastApiCompletionTimestamp(),timeSinceLastApiCallMs=lastCompletion!==null?now2-lastCompletion:void 0,invocation=consumeInvokingRequestId();logEvent("tengu_api_success",{model,...preNormalizedModel!==model?{preNormalizedModel}:{},...betas?.length?{betas:betas.join(",")}:{},messageCount,messageTokens,inputTokens:usage.input_tokens,outputTokens:usage.output_tokens,cachedInputTokens:usage.cache_read_input_tokens??0,uncachedInputTokens:usage.cache_creation_input_tokens??0,durationMs,durationMsIncludingRetries,attempt,ttftMs:ttftMs??void 0,buildAgeMins:getBuildAgeMinutes(),provider:getAPIProviderForStatsig(),requestId:requestId??void 0,...invocation?{invokingRequestId:invocation.invokingRequestId,invocationKind:invocation.invocationKind}:{},stop_reason:stopReason??void 0,costUSD,didFallBackToNonStreaming,isNonInteractiveSession,print:hasPrintFlag,isTTY:process.stdout.isTTY??!1,querySource,...gateway?{gateway}:{},...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{},permissionMode,...globalCacheStrategy?{globalCacheStrategy}:{},...textContentLength!==void 0?{textContentLength}:{},...thinkingContentLength!==void 0?{thinkingContentLength}:{},...toolUseContentLengths!==void 0?{toolUseContentLengths:jsonStringify(toolUseContentLengths)}:{},...connectorTextBlockCount!==void 0?{connectorTextBlockCount}:{},fastMode,...(usage.cache_deleted_input_tokens??0)>0?{cacheDeletedInputTokens:usage.cache_deleted_input_tokens}:{},...previousRequestId?{previousRequestId}:{},...isPostCompaction?{isPostCompaction}:{},...getAnthropicEnvMetadata(),timeSinceLastApiCallMs}),setLastApiCompletionTimestamp(now2)}function logAPISuccessAndDuration({model,preNormalizedModel,start,startIncludingRetries,ttftMs,usage,attempt,messageCount,messageTokens,requestId,stopReason,didFallBackToNonStreaming,querySource,headers,costUSD,queryTracking,permissionMode,newMessages,globalCacheStrategy,requestSetupMs,attemptStartTimes,fastMode,previousRequestId,betas}){let gateway=detectGateway({headers,baseUrl:process.env.ANTHROPIC_BASE_URL}),textContentLength,thinkingContentLength,toolUseContentLengths,connectorTextBlockCount;if(newMessages){let textLen=0,thinkingLen=0,hasToolUse=!1,toolLengths={},connectorCount=0;for(let msg of newMessages)for(let block2 of msg.message.content)if(block2.type==="text")textLen+=block2.text.length;else if(block2.type==="thinking")thinkingLen+=block2.thinking.length;else if(block2.type==="tool_use"||block2.type==="server_tool_use"||block2.type==="mcp_tool_use"){let inputLen=jsonStringify(block2.input).length,sanitizedName=sanitizeToolNameForAnalytics(block2.name);toolLengths[sanitizedName]=(toolLengths[sanitizedName]??0)+inputLen,hasToolUse=!0}textContentLength=textLen,thinkingContentLength=thinkingLen>0?thinkingLen:void 0,toolUseContentLengths=hasToolUse?toolLengths:void 0,connectorTextBlockCount=connectorCount>0?connectorCount:void 0}let durationMs=Date.now()-start,durationMsIncludingRetries=Date.now()-startIncludingRetries;addToTotalDurationState(durationMsIncludingRetries,durationMs),logAPISuccess({model,preNormalizedModel,messageCount,messageTokens,usage,durationMs,durationMsIncludingRetries,attempt,ttftMs,requestId,stopReason,costUSD,didFallBackToNonStreaming,querySource,gateway,queryTracking,permissionMode,globalCacheStrategy,textContentLength,thinkingContentLength,toolUseContentLengths,connectorTextBlockCount,fastMode,previousRequestId,betas});let teleportInfo=getTeleportedSessionInfo();if(teleportInfo?.isTeleported&&!teleportInfo.hasLoggedFirstMessage)logEvent("tengu_teleport_first_message_success",{session_id:teleportInfo.sessionId}),markFirstTeleportMessageLogged()}var GATEWAY_FINGERPRINTS,GATEWAY_HOST_SUFFIXES;var init_logging=__esm(()=>{init_sdk();init_state();init_debug();init_log2();init_providers();init_redaction();init_slowOperations();init_agentContext();init_metadata();init_emptyUsage();init_errors6();init_errorUtils();GATEWAY_FINGERPRINTS={litellm:{prefixes:["x-litellm-"]},helicone:{prefixes:["helicone-"]},portkey:{prefixes:["x-portkey-"]},"cloudflare-ai-gateway":{prefixes:["cf-aig-"]},kong:{prefixes:["x-kong-"]},braintrust:{prefixes:["x-bt-"]}},GATEWAY_HOST_SUFFIXES={databricks:[".cloud.databricks.com",".azuredatabricks.net",".gcp.databricks.com"]}});function createDenialTrackingState(){return{consecutiveDenials:0,totalDenials:0}}function recordDenial(state2){return{...state2,consecutiveDenials:state2.consecutiveDenials+1,totalDenials:state2.totalDenials+1}}function recordSuccess(state2){if(state2.consecutiveDenials===0)return state2;return{...state2,consecutiveDenials:0}}function shouldFallbackToPrompting(state2){return state2.consecutiveDenials>=DENIAL_LIMITS.maxConsecutive||state2.totalDenials>=DENIAL_LIMITS.maxTotal}var DENIAL_LIMITS;var init_denialTracking=__esm(()=>{DENIAL_LIMITS={maxConsecutive:3,maxTotal:20}});var exports_forkedAgent={};__export(exports_forkedAgent,{saveCacheSafeParams:()=>saveCacheSafeParams,runForkedAgent:()=>runForkedAgent,prepareForkedCommandContext:()=>prepareForkedCommandContext,getLastCacheSafeParams:()=>getLastCacheSafeParams,extractResultText:()=>extractResultText,createSubagentContext:()=>createSubagentContext,createGetAppStateWithAllowedTools:()=>createGetAppStateWithAllowedTools,createCacheSafeParams:()=>createCacheSafeParams});import{randomUUID as randomUUID21}from"crypto";function saveCacheSafeParams(params){lastCacheSafeParams=params}function getLastCacheSafeParams(){return lastCacheSafeParams}function createCacheSafeParams(context){return{systemPrompt:context.systemPrompt,userContext:context.userContext,systemContext:context.systemContext,toolUseContext:context.toolUseContext,forkContextMessages:context.messages}}function createGetAppStateWithAllowedTools(baseGetAppState,allowedTools){if(allowedTools.length===0)return baseGetAppState;return()=>{let appState=baseGetAppState();return{...appState,toolPermissionContext:{...appState.toolPermissionContext,alwaysAllowRules:{...appState.toolPermissionContext.alwaysAllowRules,command:[...new Set([...appState.toolPermissionContext.alwaysAllowRules.command||[],...allowedTools])]}}}}}async function prepareForkedCommandContext(command,args,context){let skillContent=(await command.getPromptForCommand(args,context)).map((block2)=>block2.type==="text"?block2.text:"").join(`
|
|
4716
4716
|
`),allowedTools=parseToolListFromCLI(command.allowedTools??[]),modifiedGetAppState=createGetAppStateWithAllowedTools(context.getAppState,allowedTools),agentTypeName=command.agent??"general-purpose",agents=context.options.agentDefinitions.activeAgents,baseAgent=agents.find((a2)=>a2.agentType===agentTypeName)??agents.find((a2)=>a2.agentType==="general-purpose")??agents[0];if(!baseAgent)throw Error("No agent available for forked execution");let promptMessages=[createUserMessage({content:skillContent})];return{skillContent,modifiedGetAppState,baseAgent,promptMessages}}function extractResultText(agentMessages,defaultText="Execution completed"){let lastAssistantMessage=getLastAssistantMessage(agentMessages);if(!lastAssistantMessage)return defaultText;return extractTextContent(lastAssistantMessage.message.content,`
|
|
4717
4717
|
`)||defaultText}function createSubagentContext(parentContext,overrides){let abortController=overrides?.abortController??(overrides?.shareAbortController?parentContext.abortController:createChildAbortController(parentContext.abortController)),getAppState=overrides?.getAppState?overrides.getAppState:overrides?.shareAbortController?parentContext.getAppState:()=>{let state2=parentContext.getAppState();if(state2.toolPermissionContext.shouldAvoidPermissionPrompts)return state2;return{...state2,toolPermissionContext:{...state2.toolPermissionContext,shouldAvoidPermissionPrompts:!0}}};return{readFileState:cloneFileStateCache(overrides?.readFileState??parentContext.readFileState),nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:new Set,dynamicSkillDirTriggers:new Set,discoveredSkillNames:new Set,toolDecisions:void 0,contentReplacementState:overrides?.contentReplacementState??(parentContext.contentReplacementState?cloneContentReplacementState(parentContext.contentReplacementState):void 0),abortController,getAppState,setAppState:overrides?.shareSetAppState?parentContext.setAppState:()=>{},setAppStateForTasks:parentContext.setAppStateForTasks??parentContext.setAppState,localDenialTracking:overrides?.shareSetAppState?parentContext.localDenialTracking:createDenialTrackingState(),setInProgressToolUseIDs:()=>{},setResponseLength:overrides?.shareSetResponseLength?parentContext.setResponseLength:()=>{},pushApiMetricsEntry:overrides?.shareSetResponseLength?parentContext.pushApiMetricsEntry:void 0,updateFileHistoryState:()=>{},updateAttributionState:parentContext.updateAttributionState,addNotification:void 0,setToolJSX:void 0,setStreamMode:void 0,setSDKStatus:void 0,openMessageSelector:void 0,options:overrides?.options??parentContext.options,messages:overrides?.messages??parentContext.messages,agentId:overrides?.agentId??createAgentId(),agentType:overrides?.agentType,...overrides?.queryLifecycle?{queryLifecycle:overrides.queryLifecycle}:{},queryTracking:{chainId:randomUUID21(),depth:(parentContext.queryTracking?.depth??-1)+1},fileReadingLimits:parentContext.fileReadingLimits,userModified:parentContext.userModified,criticalSystemReminder_EXPERIMENTAL:overrides?.criticalSystemReminder_EXPERIMENTAL,requireCanUseTool:overrides?.requireCanUseTool}}async function runForkedAgent({promptMessages,cacheSafeParams,canUseTool,querySource,forkLabel,overrides,maxOutputTokens,maxTurns,onMessage:onMessage2,onStreamEvent,skipTranscript,skipCacheWrite}){let startTime2=Date.now(),outputMessages=[],totalUsage={...EMPTY_USAGE},{systemPrompt,userContext,systemContext,toolUseContext,forkContextMessages}=cacheSafeParams,isolatedToolUseContext=createSubagentContext(toolUseContext,overrides),initialMessages=[...forkContextMessages,...promptMessages],agentId=skipTranscript?void 0:createAgentId(forkLabel),lastRecordedUuid=null;if(agentId)await recordSidechainTranscript(initialMessages,agentId).catch((err2)=>logForDebugging(`Forked agent [${forkLabel}] failed to record initial transcript: ${err2}`)),lastRecordedUuid=initialMessages.length>0?initialMessages[initialMessages.length-1].uuid:null;try{for await(let message of query2({messages:initialMessages,systemPrompt,userContext,systemContext,canUseTool,toolUseContext:isolatedToolUseContext,querySource,maxOutputTokensOverride:maxOutputTokens,maxTurns,skipCacheWrite})){if(message.type==="stream_event"){if("event"in message&&message.event?.type==="message_delta"&&message.event.usage){let turnUsage=updateUsage({...EMPTY_USAGE},message.event.usage);totalUsage=accumulateUsage(totalUsage,turnUsage)}if(onStreamEvent&&"event"in message&&message.event?.type==="content_block_delta"&&message.event?.delta?.type==="text_delta")onStreamEvent(message);continue}if(message.type==="stream_request_start")continue;logForDebugging(`Forked agent [${forkLabel}] received message: type=${message.type}`),outputMessages.push(message),onMessage2?.(message);let msg=message;if(agentId&&(msg.type==="assistant"||msg.type==="user"||msg.type==="progress")){if(await recordSidechainTranscript([msg],agentId,lastRecordedUuid).catch((err2)=>logForDebugging(`Forked agent [${forkLabel}] failed to record transcript: ${err2}`)),msg.type!=="progress")lastRecordedUuid=msg.uuid}}}finally{isolatedToolUseContext.readFileState.clear(),initialMessages.length=0}logForDebugging(`Forked agent [${forkLabel}] finished: ${outputMessages.length} messages, types=[${outputMessages.map((m)=>m.type).join(", ")}], totalUsage: input=${totalUsage.input_tokens} output=${totalUsage.output_tokens} cacheRead=${totalUsage.cache_read_input_tokens} cacheCreate=${totalUsage.cache_creation_input_tokens}`);let durationMs=Date.now()-startTime2;return logForkAgentQueryEvent({forkLabel,querySource,durationMs,messageCount:outputMessages.length,totalUsage,queryTracking:toolUseContext.queryTracking}),{messages:outputMessages,totalUsage}}function logForkAgentQueryEvent({forkLabel,querySource,durationMs,messageCount,totalUsage,queryTracking}){let totalInputTokens=totalUsage.input_tokens+totalUsage.cache_creation_input_tokens+totalUsage.cache_read_input_tokens,cacheHitRate=totalInputTokens>0?totalUsage.cache_read_input_tokens/totalInputTokens:0;logEvent("tengu_fork_agent_query",{forkLabel,querySource,durationMs,messageCount,inputTokens:totalUsage.input_tokens,outputTokens:totalUsage.output_tokens,cacheReadInputTokens:totalUsage.cache_read_input_tokens,cacheCreationInputTokens:totalUsage.cache_creation_input_tokens,serviceTier:totalUsage.service_tier,cacheCreationEphemeral1hTokens:totalUsage.cache_creation.ephemeral_1h_input_tokens,cacheCreationEphemeral5mTokens:totalUsage.cache_creation.ephemeral_5m_input_tokens,cacheHitRate,...queryTracking?{queryChainId:queryTracking.chainId,queryDepth:queryTracking.depth}:{}})}var lastCacheSafeParams=null;var init_forkedAgent=__esm(()=>{init_query2();init_claude3();init_logging();init_abortController();init_debug();init_fileStateCache();init_messages3();init_denialTracking();init_permissionSetup();init_sessionStorage();init_toolResultStorage();init_uuid()});function getPromptVariant(){return"user_intent"}function shouldEnablePromptSuggestion(){let envOverride=process.env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION;if(isEnvDefinedFalsy(envOverride))return logEvent("tengu_prompt_suggestion_init",{enabled:!1,source:"env"}),!1;if(isEnvTruthy(envOverride))return logEvent("tengu_prompt_suggestion_init",{enabled:!0,source:"env"}),!0;if(!getFeatureValue_CACHED_MAY_BE_STALE("tengu_chomp_inflection",!1))return logEvent("tengu_prompt_suggestion_init",{enabled:!1,source:"growthbook"}),!1;if(getIsNonInteractiveSession())return logEvent("tengu_prompt_suggestion_init",{enabled:!1,source:"non_interactive"}),!1;if(isAgentSwarmsEnabled()&&isTeammate())return logEvent("tengu_prompt_suggestion_init",{enabled:!1,source:"swarm_teammate"}),!1;let enabled2=getInitialSettings()?.promptSuggestionEnabled!==!1;return logEvent("tengu_prompt_suggestion_init",{enabled:enabled2,source:"setting"}),enabled2}function abortPromptSuggestion(){if(currentAbortController)currentAbortController.abort(),currentAbortController=null}function getSuggestionSuppressReason(appState){if(!appState.promptSuggestionEnabled)return"disabled";if(appState.pendingWorkerRequest||appState.pendingSandboxRequest)return"pending_permission";if(appState.elicitation.queue.length>0)return"elicitation_active";if(appState.toolPermissionContext.mode==="plan")return"plan_mode";if(process.env.USER_TYPE==="external"&¤tLimits.status!=="allowed")return"rate_limit";return null}async function tryGenerateSuggestion(abortController,messages,getAppState,cacheSafeParams,source){if(abortController.signal.aborted)return logSuggestionSuppressed("aborted",void 0,void 0,source),null;if(count2(messages,(m)=>m.type==="assistant")<2)return logSuggestionSuppressed("early_conversation",void 0,void 0,source),null;let lastAssistantMessage=getLastAssistantMessage(messages);if(lastAssistantMessage?.isApiErrorMessage)return logSuggestionSuppressed("last_response_error",void 0,void 0,source),null;let cacheReason=getParentCacheSuppressReason(lastAssistantMessage);if(cacheReason)return logSuggestionSuppressed(cacheReason,void 0,void 0,source),null;let appState=getAppState(),suppressReason=getSuggestionSuppressReason(appState);if(suppressReason)return logSuggestionSuppressed(suppressReason,void 0,void 0,source),null;let promptId=getPromptVariant(),{suggestion,generationRequestId}=await generateSuggestion(abortController,promptId,cacheSafeParams);if(abortController.signal.aborted)return logSuggestionSuppressed("aborted",void 0,void 0,source),null;if(!suggestion)return logSuggestionSuppressed("empty",void 0,promptId,source),null;if(shouldFilterSuggestion(suggestion,promptId,source))return null;return{suggestion,promptId,generationRequestId}}async function executePromptSuggestion(context){if(context.querySource!=="repl_main_thread")return;currentAbortController=new AbortController;let abortController=currentAbortController,cacheSafeParams=createCacheSafeParams(context);try{let result=await tryGenerateSuggestion(abortController,context.messages,context.toolUseContext.getAppState,cacheSafeParams,"cli");if(!result)return;if(context.toolUseContext.setAppState((prev)=>({...prev,promptSuggestion:{text:result.suggestion,promptId:result.promptId,shownAt:0,acceptedAt:0,generationRequestId:result.generationRequestId}})),isSpeculationEnabled()&&result.suggestion)startSpeculation(result.suggestion,context,context.toolUseContext.setAppState,!1,cacheSafeParams)}catch(error41){if(error41 instanceof Error&&(error41.name==="AbortError"||error41.name==="APIUserAbortError")){logSuggestionSuppressed("aborted",void 0,void 0,"cli");return}logError(toError(error41))}finally{if(currentAbortController===abortController)currentAbortController=null}}function getParentCacheSuppressReason(lastAssistantMessage){if(!lastAssistantMessage)return null;let usage=lastAssistantMessage.message.usage,inputTokens=usage.input_tokens??0,cacheWriteTokens=usage.cache_creation_input_tokens??0,outputTokens=usage.output_tokens??0;return inputTokens+cacheWriteTokens+outputTokens>MAX_PARENT_UNCACHED_TOKENS?"cache_cold":null}async function generateSuggestion(abortController,promptId,cacheSafeParams){let prompt=SUGGESTION_PROMPTS[promptId],canUseTool=async()=>({behavior:"deny",message:"No tools needed for suggestion",decisionReason:{type:"other",reason:"suggestion only"}}),result=await runForkedAgent({promptMessages:[createUserMessage({content:prompt})],cacheSafeParams,canUseTool,querySource:"prompt_suggestion",forkLabel:"prompt_suggestion",overrides:{abortController},skipTranscript:!0,skipCacheWrite:!0}),firstAssistantMsg=result.messages.find((m)=>m.type==="assistant"),generationRequestId=firstAssistantMsg?.type==="assistant"?firstAssistantMsg.requestId??null:null;for(let msg of result.messages){if(msg.type!=="assistant")continue;let textBlock=msg.message.content.find((b)=>b.type==="text");if(textBlock?.type==="text"){let suggestion=textBlock.text.trim();if(suggestion)return{suggestion,generationRequestId}}}return{suggestion:null,generationRequestId}}function shouldFilterSuggestion(suggestion,promptId,source){if(!suggestion)return logSuggestionSuppressed("empty",void 0,promptId,source),!0;let lower=suggestion.toLowerCase(),wordCount=suggestion.trim().split(/\s+/).length,filters=[["done",()=>lower==="done"],["meta_text",()=>lower==="nothing found"||lower==="nothing found."||lower.startsWith("nothing to suggest")||lower.startsWith("no suggestion")||/\bsilence is\b|\bstay(s|ing)? silent\b/.test(lower)||/^\W*silence\W*$/.test(lower)],["meta_wrapped",()=>/^\(.*\)$|^\[.*\]$/.test(suggestion)],["error_message",()=>lower.startsWith("api error:")||lower.startsWith("prompt is too long")||lower.startsWith("request timed out")||lower.startsWith("invalid api key")||lower.startsWith("image was too large")],["prefixed_label",()=>/^\w+:\s/.test(suggestion)],["too_few_words",()=>{if(wordCount>=2)return!1;if(suggestion.startsWith("/"))return!1;return!new Set(["yes","yeah","yep","yea","yup","sure","ok","okay","push","commit","deploy","stop","continue","check","exit","quit","no"]).has(lower)}],["too_many_words",()=>wordCount>12],["too_long",()=>suggestion.length>=100],["multiple_sentences",()=>/[.!?]\s+[A-Z]/.test(suggestion)],["has_formatting",()=>/[\n*]|\*\*/.test(suggestion)],["evaluative",()=>/thanks|thank you|looks good|sounds good|that works|that worked|that's all|nice|great|perfect|makes sense|awesome|excellent/.test(lower)],["claude_voice",()=>/^(let me|i'll|i've|i'm|i can|i would|i think|i notice|here's|here is|here are|that's|this is|this will|you can|you should|you could|sure,|of course|certainly)/i.test(suggestion)]];for(let[reason,check3]of filters)if(check3())return logSuggestionSuppressed(reason,suggestion,promptId,source),!0;return!1}function logSuggestionOutcome(suggestion,userInput,emittedAt,promptId,generationRequestId){let similarity=Math.round(userInput.length/(suggestion.length||1)*100)/100,wasAccepted=userInput===suggestion,timeMs=Math.max(0,Date.now()-emittedAt);logEvent("tengu_prompt_suggestion",{source:"sdk",outcome:wasAccepted?"accepted":"ignored",prompt_id:promptId,...generationRequestId&&{generationRequestId},...wasAccepted&&{timeToAcceptMs:timeMs},...!wasAccepted&&{timeToIgnoreMs:timeMs},similarity,...process.env.USER_TYPE==="ant"&&{suggestion,userInput}})}function logSuggestionSuppressed(reason,suggestion,promptId,source){let resolvedPromptId=promptId??getPromptVariant();logEvent("tengu_prompt_suggestion",{...source&&{source},outcome:"suppressed",reason,prompt_id:resolvedPromptId,...process.env.USER_TYPE==="ant"&&suggestion&&{suggestion}})}var currentAbortController=null,MAX_PARENT_UNCACHED_TOKENS=1e4,SUGGESTION_PROMPT=`[SUGGESTION MODE: Suggest what the user might naturally type next into Claude Code.]
|
|
4718
4718
|
|
|
@@ -5092,7 +5092,7 @@ _Step by step, what was attempted, done? Very terse summary for each step_
|
|
|
5092
5092
|
|
|
5093
5093
|
Some session memory sections were truncated for length. The full session memory can be viewed at: ${memoryPath}`}let summaryMessages=[createUserMessage({content:summaryContent,isCompactSummary:!0,isVisibleInTranscriptOnly:!0})],planAttachment=createPlanAttachmentIfNeeded(agentId),attachments=planAttachment?[planAttachment]:[];return{boundaryMarker:annotateBoundaryWithPreservedSegment(boundaryMarker,summaryMessages[summaryMessages.length-1].uuid,messagesToKeep),summaryMessages,attachments,hookResults,messagesToKeep,preCompactTokenCount,postCompactTokenCount:estimateMessageTokens(summaryMessages),truePostCompactTokenCount:estimateMessageTokens(summaryMessages)}}async function trySessionMemoryCompaction(messages,agentId,autoCompactThreshold){if(!shouldUseSessionMemoryCompaction())return null;await initSessionMemoryCompactConfig(),await waitForSessionMemoryExtraction();let lastSummarizedMessageId2=getLastSummarizedMessageId(),sessionMemory=await getSessionMemoryContent();if(!sessionMemory)return logEvent("tengu_sm_compact_no_session_memory",{}),null;if(await isSessionMemoryEmpty(sessionMemory))return logEvent("tengu_sm_compact_empty_template",{}),null;try{let lastSummarizedIndex;if(lastSummarizedMessageId2){if(lastSummarizedIndex=messages.findIndex((msg)=>msg.uuid===lastSummarizedMessageId2),lastSummarizedIndex===-1)return logEvent("tengu_sm_compact_summarized_id_not_found",{}),null}else lastSummarizedIndex=messages.length-1,logEvent("tengu_sm_compact_resumed_session",{});let startIndex=calculateMessagesToKeepIndex(messages,lastSummarizedIndex),messagesToKeep=messages.slice(startIndex).filter((m)=>!isCompactBoundaryMessage(m)),hookResults=await processSessionStartHooks("compact",{model:getMainLoopModel()}),transcriptPath=getTranscriptPath(),compactionResult=createCompactionResultFromSessionMemory(messages,sessionMemory,messagesToKeep,hookResults,transcriptPath,agentId),postCompactMessages=buildPostCompactMessages(compactionResult),postCompactTokenCount=estimateMessageTokens(postCompactMessages);if(autoCompactThreshold!==void 0&&postCompactTokenCount>=autoCompactThreshold)return logEvent("tengu_sm_compact_threshold_exceeded",{postCompactTokenCount,autoCompactThreshold}),null;return{...compactionResult,postCompactTokenCount,truePostCompactTokenCount:postCompactTokenCount}}catch(error41){if(logEvent("tengu_sm_compact_error",{}),process.env.USER_TYPE==="ant")logForDebugging(`Session memory compaction error: ${errorMessage(error41)}`);return null}}var DEFAULT_SM_COMPACT_CONFIG,smCompactConfig,configInitialized=!1;var init_sessionMemoryCompact=__esm(()=>{init_debug();init_envUtils();init_errors();init_messages3();init_model();init_filesystem();init_sessionStart();init_sessionStorage();init_tokens();init_toolSearch();init_growthbook();init_prompts3();init_sessionMemoryUtils();init_compact();init_microCompact();init_prompt19();DEFAULT_SM_COMPACT_CONFIG={minTokens:1e4,minTextBlockMessages:5,maxTokens:40000},smCompactConfig={...DEFAULT_SM_COMPACT_CONFIG}});var exports_compact={};__export(exports_compact,{call:()=>call13});async function compactViaReactive(messages,context,customInstructions,reactive){context.onCompactProgress?.({type:"hooks_start",hookType:"pre_compact"}),context.setSDKStatus?.("compacting");try{let[hookResult,cacheSafeParams]=await Promise.all([executePreCompactHooks({trigger:"manual",customInstructions:customInstructions||null},context.abortController.signal),getCacheSharingParams(context,messages)]),mergedInstructions=mergeHookInstructions(customInstructions,hookResult.newCustomInstructions);context.setStreamMode?.("requesting"),context.setResponseLength?.(()=>0),context.onCompactProgress?.({type:"compact_start"});let outcome=await reactive.reactiveCompactOnPromptTooLong(messages,cacheSafeParams,{customInstructions:mergedInstructions,trigger:"manual"});if(!outcome.ok)switch(outcome.reason){case"too_few_groups":throw Error(ERROR_MESSAGE_NOT_ENOUGH_MESSAGES);case"aborted":throw Error(ERROR_MESSAGE_USER_ABORT);case"exhausted":case"error":case"media_unstrippable":throw Error(ERROR_MESSAGE_INCOMPLETE_RESPONSE)}setLastSummarizedMessageId(void 0),runPostCompactCleanup(),suppressCompactWarning(),getUserContext.cache.clear?.();let combinedMessage=[hookResult.userDisplayMessage,outcome.result.userDisplayMessage].filter(Boolean).join(`
|
|
5094
5094
|
`)||void 0;return{type:"compact",compactionResult:{...outcome.result,userDisplayMessage:combinedMessage},displayText:buildDisplayText(context,combinedMessage)}}finally{context.setStreamMode?.("requesting"),context.setResponseLength?.(()=>0),context.onCompactProgress?.({type:"compact_end"}),context.setSDKStatus?.(null)}}function buildDisplayText(context,userDisplayMessage){let upgradeMessage=getUpgradeMessage("tip"),expandShortcut=getShortcutDisplay("app:toggleTranscript","Global","ctrl+o"),dimmed=[...context.options.verbose?[]:[`(${expandShortcut} to see full summary)`],...userDisplayMessage?[userDisplayMessage]:[],...upgradeMessage?[upgradeMessage]:[]];return source_default.dim("Compacted "+dimmed.join(`
|
|
5095
|
-
`))}async function getCacheSharingParams(context,forkContextMessages){let appState=context.getAppState(),defaultSysPrompt=await getSystemPrompt(context.options.tools,context.options.mainLoopModel,Array.from(appState.toolPermissionContext.additionalWorkingDirectories.keys()),context.options.mcpClients),systemPrompt=buildEffectiveSystemPrompt({mainThreadAgentDefinition:void 0,toolUseContext:context,customSystemPrompt:context.options.customSystemPrompt,defaultSystemPrompt:defaultSysPrompt,appendSystemPrompt:context.options.appendSystemPrompt}),[userContext,systemContext]=await Promise.all([getUserContext(),getSystemContext()]);return{systemPrompt,userContext,systemContext,toolUseContext:context,forkContextMessages}}var reactiveCompact2=null,call13=async(args,context)=>{let{abortController}=context,{messages}=context;if(messages=getMessagesAfterCompactBoundary(messages),messages.length===0)throw Error("No messages to compact");let customInstructions=args.trim();try{if(!customInstructions){context.onCompactProgress?.({type:"hooks_start",hookType:"pre_compact"}),context.onCompactProgress?.({type:"compact_start"});try{let sessionMemoryResult=await trySessionMemoryCompaction(messages,context.agentId);if(sessionMemoryResult)return getUserContext.cache.clear?.(),runPostCompactCleanup(),notifyCompaction(context.options.querySource??"compact",context.agentId),markPostCompaction(),suppressCompactWarning(),{type:"compact",compactionResult:sessionMemoryResult,displayText:buildDisplayText(context)}}finally{context.onCompactProgress?.({type:"compact_end"})}}if(reactiveCompact2?.isReactiveOnlyMode())return await compactViaReactive(messages,context,customInstructions,reactiveCompact2);let messagesForCompact=(await microcompactMessages(messages,context)).messages,result=await compactConversation(messagesForCompact,context,await getCacheSharingParams(context,messagesForCompact),!1,customInstructions,!1);return setLastSummarizedMessageId(void 0),suppressCompactWarning(),getUserContext.cache.clear?.(),runPostCompactCleanup(),{type:"compact",compactionResult:result,displayText:buildDisplayText(context,result.userDisplayMessage)}}catch(error41){if(abortController.signal.aborted)throw Error("Compaction canceled.");else if(hasExactErrorMessage(error41,ERROR_MESSAGE_NOT_ENOUGH_MESSAGES))throw Error(ERROR_MESSAGE_NOT_ENOUGH_MESSAGES);else if(hasExactErrorMessage(error41,ERROR_MESSAGE_INCOMPLETE_RESPONSE))throw Error(ERROR_MESSAGE_INCOMPLETE_RESPONSE);else throw logError(error41),Error(`Error during compaction: ${error41}`)}};var init_compact2=__esm(()=>{init_source2();init_state();init_prompts4();init_context2();init_shortcutFormat();init_promptCacheBreakDetection();init_compact();init_compactWarningState();init_microCompact();init_postCompactCleanup();init_sessionMemoryCompact();init_sessionMemoryUtils();init_errors();init_hooks4();init_log2();init_messages3();init_contextWindowUpgradeCheck();init_systemPrompt()});var compact,compact_default;var init_compact3=__esm(()=>{init_envUtils();compact={type:"local",name:"compact",description:"Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]",isEnabled:()=>!isEnvTruthy(process.env.DISABLE_COMPACT),supportsNonInteractive:!0,argumentHint:"<optional custom summarization instructions>",load:()=>Promise.resolve().then(() => (init_compact2(),exports_compact))},compact_default=compact});function Tabs(t0){let $2=import_react_compiler_runtime126.c(25),{title,color:color3,defaultTab,children,hidden:hidden2,useFullWidth,selectedTab:controlledSelectedTab,onTabChange,banner,disableNavigation,initialHeaderFocused:t1,contentHeight,navFromContent:t2}=t0,initialHeaderFocused=t1===void 0?!0:t1,navFromContent=t2===void 0?!1:t2,{columns:terminalWidth}=useTerminalSize(),tabs=children.map(_temp57),defaultTabIndex=defaultTab?tabs.findIndex((tab)=>defaultTab===tab[0]):0,isControlled=controlledSelectedTab!==void 0,[internalSelectedTab,setInternalSelectedTab]=import_react99.useState(defaultTabIndex!==-1?defaultTabIndex:0),controlledTabIndex=isControlled?tabs.findIndex((tab_0)=>tab_0[0]===controlledSelectedTab):-1,selectedTabIndex=isControlled?controlledTabIndex!==-1?controlledTabIndex:0:internalSelectedTab,modalScrollRef=useModalScrollRef(),[headerFocused,setHeaderFocused]=import_react99.useState(initialHeaderFocused),t3;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t3=()=>setHeaderFocused(!0),$2[0]=t3;else t3=$2[0];let focusHeader=t3,t4;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t4=()=>setHeaderFocused(!1),$2[1]=t4;else t4=$2[1];let blurHeader=t4,[optInCount,setOptInCount]=import_react99.useState(0),t5;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t5=()=>{return setOptInCount(_temp215),()=>setOptInCount(_temp310)},$2[2]=t5;else t5=$2[2];let registerOptIn=t5,optedIn=optInCount>0,handleTabChange=(offset)=>{let newIndex=(selectedTabIndex+tabs.length+offset)%tabs.length,newTabId=tabs[newIndex]?.[0];if(isControlled&&onTabChange&&newTabId)onTabChange(newTabId);else setInternalSelectedTab(newIndex);setHeaderFocused(!0)},t6=!hidden2&&!disableNavigation&&headerFocused,t7;if($2[3]!==t6)t7={context:"Tabs",isActive:t6},$2[3]=t6,$2[4]=t7;else t7=$2[4];useKeybindings({"tabs:next":()=>handleTabChange(1),"tabs:previous":()=>handleTabChange(-1)},t7);let t8;if($2[5]!==headerFocused||$2[6]!==hidden2||$2[7]!==optedIn)t8=(e)=>{if(!headerFocused||!optedIn||hidden2)return;if(e.key==="down")e.preventDefault(),setHeaderFocused(!1)},$2[5]=headerFocused,$2[6]=hidden2,$2[7]=optedIn,$2[8]=t8;else t8=$2[8];let handleKeyDown=t8,t9=navFromContent&&!headerFocused&&optedIn&&!hidden2&&!disableNavigation,t10;if($2[9]!==t9)t10={context:"Tabs",isActive:t9},$2[9]=t9,$2[10]=t10;else t10=$2[10];useKeybindings({"tabs:next":()=>{handleTabChange(1),setHeaderFocused(!0)},"tabs:previous":()=>{handleTabChange(-1),setHeaderFocused(!0)}},t10);let titleWidth=title?stringWidth(title)+1:0,tabsWidth=tabs.reduce(_temp47,0),usedWidth=titleWidth+tabsWidth,spacerWidth=useFullWidth?Math.max(0,terminalWidth-usedWidth):0,contentWidth=useFullWidth?terminalWidth:void 0,T0=ThemedBox_default,t11="column",t12=0,t13=!0,t14=modalScrollRef?0:void 0,t15=!hidden2&&jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,flexShrink:modalScrollRef?0:void 0,children:[title!==void 0&&jsxDEV(ThemedText,{bold:!0,color:color3,children:title},void 0,!1,void 0,this),tabs.map((t16,i3)=>{let[id,title_0]=t16,isCurrent=selectedTabIndex===i3,hasColorCursor=color3&&isCurrent&&headerFocused;return jsxDEV(ThemedText,{backgroundColor:hasColorCursor?color3:void 0,color:hasColorCursor?"inverseText":void 0,inverse:isCurrent&&!hasColorCursor,bold:isCurrent,children:[" ",title_0," "]},id,!0,void 0,this)}),spacerWidth>0&&jsxDEV(ThemedText,{children:" ".repeat(spacerWidth)},void 0,!1,void 0,this)]},`${selectedTabIndex}-${headerFocused?"focused":"blurred"}`,!0,void 0,this),t17;if($2[11]!==children||$2[12]!==contentHeight||$2[13]!==contentWidth||$2[14]!==hidden2||$2[15]!==modalScrollRef||$2[16]!==selectedTabIndex)t17=modalScrollRef?jsxDEV(ThemedBox_default,{width:contentWidth,marginTop:hidden2?0:1,flexShrink:0,children:jsxDEV(ScrollBox_default,{ref:modalScrollRef,flexDirection:"column",flexShrink:0,children},selectedTabIndex,!1,void 0,this)},void 0,!1,void 0,this):jsxDEV(ThemedBox_default,{width:contentWidth,marginTop:hidden2?0:1,height:contentHeight,overflowY:contentHeight!==void 0?"hidden":void 0,children},void 0,!1,void 0,this),$2[11]=children,$2[12]=contentHeight,$2[13]=contentWidth,$2[14]=hidden2,$2[15]=modalScrollRef,$2[16]=selectedTabIndex,$2[17]=t17;else t17=$2[17];let t18;if($2[18]!==T0||$2[19]!==banner||$2[20]!==handleKeyDown||$2[21]!==t14||$2[22]!==t15||$2[23]!==t17)t18=jsxDEV(T0,{flexDirection:t11,tabIndex:t12,autoFocus:t13,onKeyDown:handleKeyDown,flexShrink:t14,children:[t15,banner,t17]},void 0,!0,void 0,this),$2[18]=T0,$2[19]=banner,$2[20]=handleKeyDown,$2[21]=t14,$2[22]=t15,$2[23]=t17,$2[24]=t18;else t18=$2[24];return jsxDEV(TabsContext.Provider,{value:{selectedTab:tabs[selectedTabIndex][0],width:contentWidth,headerFocused,focusHeader,blurHeader,registerOptIn},children:t18},void 0,!1,void 0,this)}function _temp47(sum,t0){let[,tabTitle]=t0;return sum+(tabTitle?stringWidth(tabTitle):0)+2+1}function _temp310(n_0){return n_0-1}function _temp215(n2){return n2+1}function _temp57(child){return[child.props.id??child.props.title,child.props.title]}function Tab(t0){let $2=import_react_compiler_runtime126.c(4),{title,id,children}=t0,{selectedTab,width}=import_react99.useContext(TabsContext),insideModal=useIsInsideModal();if(selectedTab!==(id??title))return null;let t1=insideModal?0:void 0,t2;if($2[0]!==children||$2[1]!==t1||$2[2]!==width)t2=jsxDEV(ThemedBox_default,{width,flexShrink:t1,children},void 0,!1,void 0,this),$2[0]=children,$2[1]=t1,$2[2]=width,$2[3]=t2;else t2=$2[3];return t2}function useTabsWidth(){let{width}=import_react99.useContext(TabsContext);return width}function useTabHeaderFocus(){let $2=import_react_compiler_runtime126.c(6),{headerFocused,focusHeader,blurHeader,registerOptIn}=import_react99.useContext(TabsContext),t0;if($2[0]!==registerOptIn)t0=[registerOptIn],$2[0]=registerOptIn,$2[1]=t0;else t0=$2[1];import_react99.useEffect(registerOptIn,t0);let t1;if($2[2]!==blurHeader||$2[3]!==focusHeader||$2[4]!==headerFocused)t1={headerFocused,focusHeader,blurHeader},$2[2]=blurHeader,$2[3]=focusHeader,$2[4]=headerFocused,$2[5]=t1;else t1=$2[5];return t1}var import_react_compiler_runtime126,import_react99,TabsContext;var init_Tabs=__esm(()=>{init_modalContext();init_useTerminalSize();init_ScrollBox();init_stringWidth();init_ink2();init_useKeybinding();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime126=__toESM(require_dist4(),1),import_react99=__toESM(require_react_production(),1),TabsContext=import_react99.createContext({selectedTab:void 0,width:void 0,headerFocused:!1,focusHeader:()=>{},blurHeader:()=>{},registerOptIn:()=>()=>{}})});function buildPrimarySection(){let sessionId=getSessionId(),nameValue=getCurrentSessionTitle(sessionId)??jsxDEV(ThemedText,{dimColor:!0,children:"/rename to add a name"},void 0,!1,void 0,this);return[{label:"Version",value:"0.25.0"},{label:"Session name",value:nameValue},{label:"Session ID",value:sessionId},{label:"cwd",value:getCwd()},...buildAccountProperties(),...buildAPIProviderProperties()]}function buildSecondarySection({mainLoopModel,mcp,theme,context}){return[{label:"Model",value:getModelDisplayLabel(mainLoopModel)},...buildIDEProperties(mcp.clients,context.options.ideInstallationStatus,theme),...buildMcpProperties(mcp.clients,theme),...buildSandboxProperties(),...buildSettingSourcesProperties()]}async function buildDiagnostics(){return[...await buildInstallationDiagnostics(),...await buildInstallationHealthDiagnostics(),...await buildMemoryDiagnostics()]}function PropertyValue(t0){let $2=import_react_compiler_runtime127.c(8),{value}=t0;if(Array.isArray(value)){let t1;if($2[0]!==value){let t22;if($2[2]!==value.length)t22=(item,i3)=>jsxDEV(ThemedText,{children:[item,i3<value.length-1?",":""]},i3,!0,void 0,this),$2[2]=value.length,$2[3]=t22;else t22=$2[3];t1=value.map(t22),$2[0]=value,$2[1]=t1}else t1=$2[1];let t2;if($2[4]!==t1)t2=jsxDEV(ThemedBox_default,{flexWrap:"wrap",columnGap:1,flexShrink:99,children:t1},void 0,!1,void 0,this),$2[4]=t1,$2[5]=t2;else t2=$2[5];return t2}if(typeof value==="string"){let t1;if($2[6]!==value)t1=jsxDEV(ThemedText,{children:value},void 0,!1,void 0,this),$2[6]=value,$2[7]=t1;else t1=$2[7];return t1}return value}function Status(t0){let $2=import_react_compiler_runtime127.c(20),{context,diagnosticsPromise}=t0,mainLoopModel=useAppState(_temp58),mcp=useAppState(_temp216),[theme]=useTheme(),t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=buildPrimarySection(),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==context||$2[2]!==mainLoopModel||$2[3]!==mcp||$2[4]!==theme)t2=buildSecondarySection({mainLoopModel,mcp,theme,context}),$2[1]=context,$2[2]=mainLoopModel,$2[3]=mcp,$2[4]=theme,$2[5]=t2;else t2=$2[5];let t3;if($2[6]!==t2)t3=[t1,t2],$2[6]=t2,$2[7]=t3;else t3=$2[7];let sections=t3,grow=useIsInsideModal()?1:void 0,t4;if($2[8]!==sections)t4=sections.map(_temp410),$2[8]=sections,$2[9]=t4;else t4=$2[9];let t5;if($2[10]!==diagnosticsPromise)t5=jsxDEV(import_react100.Suspense,{fallback:null,children:jsxDEV(Diagnostics,{promise:diagnosticsPromise},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[10]=diagnosticsPromise,$2[11]=t5;else t5=$2[11];let t6;if($2[12]!==grow||$2[13]!==t4||$2[14]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,flexGrow:grow,children:[t4,t5]},void 0,!0,void 0,this),$2[12]=grow,$2[13]=t4,$2[14]=t5,$2[15]=t6;else t6=$2[15];let t7;if($2[16]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[16]=t7;else t7=$2[16];let t8;if($2[17]!==grow||$2[18]!==t6)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",flexGrow:grow,children:[t6,t7]},void 0,!0,void 0,this),$2[17]=grow,$2[18]=t6,$2[19]=t8;else t8=$2[19];return t8}function _temp410(properties,i3){return properties.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:properties.map(_temp311)},i3,!1,void 0,this)}function _temp311(t0,j){let{label,value}=t0;return jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,flexShrink:0,children:[label!==void 0&&jsxDEV(ThemedText,{bold:!0,children:[label,":"]},void 0,!0,void 0,this),jsxDEV(PropertyValue,{value},void 0,!1,void 0,this)]},j,!0,void 0,this)}function _temp216(s_0){return s_0.mcp}function _temp58(s){return s.mainLoopModel}function Diagnostics(t0){let $2=import_react_compiler_runtime127.c(5),{promise:promise3}=t0,diagnostics=import_react100.use(promise3);if(diagnostics.length===0)return null;let t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{bold:!0,children:"System Diagnostics"},void 0,!1,void 0,this),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==diagnostics)t2=diagnostics.map(_temp55),$2[1]=diagnostics,$2[2]=t2;else t2=$2[2];let t3;if($2[3]!==t2)t3=jsxDEV(ThemedBox_default,{flexDirection:"column",paddingBottom:1,children:[t1,t2]},void 0,!0,void 0,this),$2[3]=t2,$2[4]=t3;else t3=$2[4];return t3}function _temp55(diagnostic,i3){return jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,paddingX:1,children:[jsxDEV(ThemedText,{color:"error",children:figures_default.warning},void 0,!1,void 0,this),typeof diagnostic==="string"?jsxDEV(ThemedText,{wrap:"wrap",children:diagnostic},void 0,!1,void 0,this):diagnostic]},i3,!0,void 0,this)}var import_react_compiler_runtime127,import_react100;var init_Status=__esm(()=>{init_figures();init_state();init_modalContext();init_ink2();init_AppState();init_cwd();init_sessionStorage();init_status();init_ConfigurableShortcutHint();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime127=__toESM(require_dist4(),1),import_react100=__toESM(require_react_production(),1)});async function maybeRemoveApiKeyFromMacOSKeychainThrows(){if(process.platform==="darwin"){let storageServiceName=getMacOsKeychainStorageServiceName();if((await execa(`security delete-generic-password -a $USER -s "${storageServiceName}"`,{shell:!0,reject:!1})).exitCode!==0)throw Error("Failed to delete keychain entry")}}function normalizeApiKeyForConfig(apiKey){return apiKey.slice(-20)}var init_authPortable=__esm(()=>{init_execa();init_macOsKeychainHelpers()});function isBridgeEnabled(){return!1}async function isBridgeEnabledBlocking(){return!1}function isEnvLessBridgeEnabled(){return!1}function isCseShimEnabled(){return!0}function checkBridgeMinVersion(){return null}var init_bridgeEnabled=__esm(()=>{init_growthbook();init_auth5();init_envUtils()});function ThemePicker({onThemeSelect,showIntroText=!1,helpText="",showHelpTextBelow=!1,hideEscToCancel=!1,skipExitHandling=!1,onCancel:onCancelProp}){let[theme]=useTheme(),themeSetting=useThemeSetting(),{columns}=useTerminalSize(),colorModuleUnavailableReason=React54.useMemo(()=>getColorModuleUnavailableReason(),[]),syntaxTheme=colorModuleUnavailableReason===null?getSyntaxTheme5(theme):null,{setPreviewTheme,savePreview,cancelPreview}=usePreviewTheme(),syntaxHighlightingDisabled=useAppState((s)=>s.settings.syntaxHighlightingDisabled??!1),setAppState=useSetAppState();useRegisterKeybindingContext("ThemePicker",!0);let syntaxToggleShortcut=useShortcutDisplay("theme:toggleSyntaxHighlighting","ThemePicker","ctrl+t"),toggleSyntax=React54.useCallback(()=>{if(colorModuleUnavailableReason===null){let newValue=!syntaxHighlightingDisabled;updateSettingsForSource("userSettings",{syntaxHighlightingDisabled:newValue}),setAppState((prev)=>({...prev,settings:{...prev.settings,syntaxHighlightingDisabled:newValue}}))}},[colorModuleUnavailableReason,syntaxHighlightingDisabled,setAppState]);useKeybinding("theme:toggleSyntaxHighlighting",toggleSyntax,{context:"ThemePicker"});let exitState=useExitOnCtrlCDWithKeybindings(skipExitHandling?()=>{}:void 0),themeOptions=React54.useMemo(()=>[...[],{label:"Dark mode",value:"dark"},{label:"Light mode",value:"light"},{label:"Dark mode (colorblind-friendly)",value:"dark-daltonized"},{label:"Light mode (colorblind-friendly)",value:"light-daltonized"},{label:"Dark mode (ANSI colors only)",value:"dark-ansi"},{label:"Light mode (ANSI colors only)",value:"light-ansi"}],[]),handleRowFocus=React54.useCallback((setting)=>{setPreviewTheme(setting)},[setPreviewTheme]),handleSelect=React54.useCallback((setting)=>{savePreview(),onThemeSelect(setting)},[savePreview,onThemeSelect]),handleCancel=React54.useCallback(()=>{if(cancelPreview(),skipExitHandling)onCancelProp?.();else gracefulShutdown(0)},[cancelPreview,onCancelProp,skipExitHandling]),syntaxHint=colorModuleUnavailableReason==="env"?`Syntax highlighting disabled (via CLAUDE_CODE_SYNTAX_HIGHLIGHT=${process.env.CLAUDE_CODE_SYNTAX_HIGHLIGHT})`:syntaxHighlightingDisabled?`Syntax highlighting disabled (${syntaxToggleShortcut} to enable)`:syntaxTheme?`Syntax theme: ${syntaxTheme.theme}${syntaxTheme.source?` (from ${syntaxTheme.source})`:""} (${syntaxToggleShortcut} to disable)`:`Syntax highlighting enabled (${syntaxToggleShortcut} to disable)`,content=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[showIntroText?jsxDEV(ThemedText,{children:"Let's get started."},void 0,!1,void 0,this):jsxDEV(ThemedText,{bold:!0,color:"permission",children:"Theme"},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Choose the text style that looks best with your terminal"},void 0,!1,void 0,this),helpText&&!showHelpTextBelow?jsxDEV(ThemedText,{dimColor:!0,children:helpText},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),jsxDEV(Select,{options:themeOptions,onFocus:handleRowFocus,onChange:handleSelect,onCancel:handleCancel,visibleOptionCount:themeOptions.length,defaultValue:themeSetting,defaultFocusValue:themeSetting},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",width:"100%",children:[jsxDEV(ThemedBox_default,{flexDirection:"column",borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,borderStyle:"dashed",borderColor:"subtle",children:jsxDEV(StructuredDiffView,{patch:DEMO_PATCH,dim:!1,filePath:"demo.js",firstLine:null,width:columns},void 0,!1,void 0,this)},theme,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",syntaxHint]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(!showIntroText)return jsxDEV($Fragment,{children:[jsxDEV(ThemedBox_default,{flexDirection:"column",children:content},void 0,!1,void 0,this),showHelpTextBelow&&helpText?jsxDEV(ThemedBox_default,{marginLeft:3,children:jsxDEV(ThemedText,{dimColor:!0,children:helpText},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,!hideEscToCancel?jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"Esc",action:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this);return content}var React54,StructuredDiffView,DEMO_PATCH;var init_ThemePicker=__esm(()=>{init_useExitOnCtrlCDWithKeybindings();init_useTerminalSize();init_ink2();init_KeybindingContext();init_useKeybinding();init_useShortcutDisplay();init_AppState();init_gracefulShutdown();init_settings3();init_CustomSelect();init_Byline();init_KeyboardShortcutHint();init_colorDiff();init_StructuredDiff();init_reactJsxDevRuntimeProductionShim();React54=__toESM(require_react_production(),1),StructuredDiffView=StructuredDiff,DEMO_PATCH={oldStart:1,newStart:1,oldLines:3,newLines:3,lines:[" function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Claudio!");'," }"]}});function isOllamaProvider(){if(process.env.OLLAMA_BASE_URL)return!0;if(!process.env.OPENAI_BASE_URL)return!1;let baseUrl=process.env.OPENAI_BASE_URL;try{if(new URL(baseUrl).port==="11434")return!0}catch{}return!1}async function fetchOllamaModels(){let apiUrl=getOllamaApiBaseUrl();if(!apiUrl)return[];let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),5000);try{let response=await fetch(`${apiUrl}/api/tags`,{method:"GET",signal:controller.signal});if(!response.ok)return[];return((await response.json()).models??[]).filter((m)=>Boolean(m.name)).map((m)=>{let paramSize=m.details?.parameter_size??"",quant=m.details?.quantization_level??"",sizeGB=m.size?`${(m.size/1e9).toFixed(1)}GB`:"",parts=[paramSize,quant,sizeGB].filter(Boolean).join(" · ");return{value:m.name,label:m.name,description:parts?`Ollama · ${parts}`:"Ollama model"}})}catch{return[]}finally{clearTimeout(timeout)}}function prefetchOllamaModels(){if(!isOllamaProvider())return;if(cachedOllamaOptions&&cachedOllamaOptions.length>0)return;if(fetchPromise)return;fetchPromise=fetchOllamaModels().then((options2)=>{return cachedOllamaOptions=options2,options2}).finally(()=>{fetchPromise=null})}function getCachedOllamaModelOptions(){return cachedOllamaOptions??[]}var cachedOllamaOptions=null,fetchPromise=null;var init_ollamaModels=__esm(()=>{init_providerDiscovery()});function isNvidiaNimProvider(){if(isEnvTruthy(process.env.NVIDIA_NIM))return!0;let baseUrl=process.env.OPENAI_BASE_URL??"";if(baseUrl.includes("nvidia")||baseUrl.includes("integrate.api.nvidia"))return!0;return getAPIProvider()==="nvidia-nim"}function getNvidiaNimModels(){return[{value:"nvidia/cosmos-reason2-8b",label:"Cosmos Reason 2 8B",description:"Reasoning"},{value:"microsoft/phi-4-mini-flash-reasoning",label:"Phi 4 Mini Flash Reasoning",description:"Reasoning"},{value:"qwen/qwen3-next-80b-a3b-thinking",label:"Qwen 3 Next 80B Thinking",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-qwen-32b",label:"DeepSeek R1 Qwen 32B",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-qwen-14b",label:"DeepSeek R1 Qwen 14B",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-qwen-7b",label:"DeepSeek R1 Qwen 7B",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-llama-8b",label:"DeepSeek R1 Llama 8B",description:"Reasoning"},{value:"qwen/qwq-32b",label:"QwQ 32B Reasoning",description:"Reasoning"},{value:"meta/codellama-70b",label:"CodeLlama 70B",description:"Code"},{value:"bigcode/starcoder2-15b",label:"StarCoder2 15B",description:"Code"},{value:"bigcode/starcoder2-7b",label:"StarCoder2 7B",description:"Code"},{value:"mistralai/codestral-22b-instruct-v0.1",label:"Codestral 22B",description:"Code"},{value:"mistralai/mamba-codestral-7b-v0.1",label:"Mamba Codestral 7B",description:"Code"},{value:"deepseek-ai/deepseek-coder-6.7b-instruct",label:"DeepSeek Coder 6.7B",description:"Code"},{value:"google/codegemma-7b",label:"CodeGemma 7B",description:"Code"},{value:"google/codegemma-1.1-7b",label:"CodeGemma 1.1 7B",description:"Code"},{value:"qwen/qwen2.5-coder-32b-instruct",label:"Qwen 2.5 Coder 32B",description:"Code"},{value:"qwen/qwen2.5-coder-7b-instruct",label:"Qwen 2.5 Coder 7B",description:"Code"},{value:"qwen/qwen3-coder-480b-a35b-instruct",label:"Qwen 3 Coder 480B",description:"Code"},{value:"ibm/granite-34b-code-instruct",label:"Granite 34B Code",description:"Code"},{value:"ibm/granite-8b-code-instruct",label:"Granite 8B Code",description:"Code"},{value:"nvidia/llama-3.1-nemotron-70b-instruct",label:"Nemotron 70B Instruct",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-51b-instruct",label:"Nemotron 51B Instruct",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-ultra-253b-v1",label:"Nemotron Ultra 253B",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.3-nemotron-super-49b-v1",label:"Nemotron Super 49B v1",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.3-nemotron-super-49b-v1.5",label:"Nemotron Super 49B v1.5",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-4-340b-instruct",label:"Nemotron 4 340B",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-3-super-120b-a12b",label:"Nemotron 3 Super 120B",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-3-nano-30b-a3b",label:"Nemotron 3 Nano 30B",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-nano-3-30b-a3b",label:"Nemotron Nano 3 30B",description:"NVIDIA Flagship"},{value:"nvidia/nvidia-nemotron-nano-9b-v2",label:"Nemotron Nano 9B v2",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-mini-4b-instruct",label:"Nemotron Mini 4B",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-nano-8b-v1",label:"Nemotron Nano 8B",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-nano-4b-v1.1",label:"Nemotron Nano 4B v1.1",description:"NVIDIA Flagship"},{value:"nvidia/llama3-chatqa-1.5-70b",label:"Llama3 ChatQA 1.5 70B",description:"Chat"},{value:"nvidia/llama3-chatqa-1.5-8b",label:"Llama3 ChatQA 1.5 8B",description:"Chat"},{value:"meta/llama-3.1-405b-instruct",label:"Llama 3.1 405B",description:"Meta Llama"},{value:"meta/llama-3.1-70b-instruct",label:"Llama 3.1 70B",description:"Meta Llama"},{value:"meta/llama-3.1-8b-instruct",label:"Llama 3.1 8B",description:"Meta Llama"},{value:"meta/llama-3.2-90b-vision-instruct",label:"Llama 3.2 90B Vision",description:"Meta Llama"},{value:"meta/llama-3.2-11b-vision-instruct",label:"Llama 3.2 11B Vision",description:"Meta Llama"},{value:"meta/llama-3.2-3b-instruct",label:"Llama 3.2 3B",description:"Meta Llama"},{value:"meta/llama-3.2-1b-instruct",label:"Llama 3.2 1B",description:"Meta Llama"},{value:"meta/llama-3.3-70b-instruct",label:"Llama 3.3 70B",description:"Meta Llama"},{value:"meta/llama-4-maverick-17b-128e-instruct",label:"Llama 4 Maverick 17B",description:"Meta Llama"},{value:"meta/llama-4-scout-17b-16e-instruct",label:"Llama 4 Scout 17B",description:"Meta Llama"},{value:"google/gemma-4-31b-it",label:"Gemma 4 31B",description:"Google Gemma"},{value:"google/gemma-3-27b-it",label:"Gemma 3 27B",description:"Google Gemma"},{value:"google/gemma-3-12b-it",label:"Gemma 3 12B",description:"Google Gemma"},{value:"google/gemma-3-4b-it",label:"Gemma 3 4B",description:"Google Gemma"},{value:"google/gemma-3-1b-it",label:"Gemma 3 1B",description:"Google Gemma"},{value:"google/gemma-3n-e4b-it",label:"Gemma 3N E4B",description:"Google Gemma"},{value:"google/gemma-3n-e2b-it",label:"Gemma 3N E2B",description:"Google Gemma"},{value:"google/gemma-2-27b-it",label:"Gemma 2 27B",description:"Google Gemma"},{value:"google/gemma-2-9b-it",label:"Gemma 2 9B",description:"Google Gemma"},{value:"google/gemma-2-2b-it",label:"Gemma 2 2B",description:"Google Gemma"},{value:"mistralai/mistral-large-3-675b-instruct-2512",label:"Mistral Large 3 675B",description:"Mistral"},{value:"mistralai/mistral-large-2-instruct",label:"Mistral Large 2",description:"Mistral"},{value:"mistralai/mistral-large",label:"Mistral Large",description:"Mistral"},{value:"mistralai/mistral-medium-3.5-128b",label:"Mistral Medium 3.5 128B",description:"Mistral"},{value:"mistralai/mistral-medium-3-instruct",label:"Mistral Medium 3",description:"Mistral"},{value:"mistralai/mistral-small-4-119b-2603",label:"Mistral Small 4 119B",description:"Mistral"},{value:"mistralai/mistral-small-3.1-24b-instruct-2503",label:"Mistral Small 3.1 24B",description:"Mistral"},{value:"mistralai/mistral-small-24b-instruct",label:"Mistral Small 24B",description:"Mistral"},{value:"mistralai/mistral-7b-instruct-v0.3",label:"Mistral 7B v0.3",description:"Mistral"},{value:"mistralai/mistral-7b-instruct-v0.2",label:"Mistral 7B v0.2",description:"Mistral"},{value:"mistralai/mixtral-8x22b-instruct-v0.1",label:"Mixtral 8x22B Instruct",description:"Mistral"},{value:"mistralai/mixtral-8x7b-instruct-v0.1",label:"Mixtral 8x7B",description:"Mistral"},{value:"mistralai/mistral-nemotron",label:"Mistral Nemotron",description:"Mistral"},{value:"mistralai/mathstral-7b-v0.1",label:"Mathstral 7B",description:"Math"},{value:"mistralai/ministral-14b-instruct-2512",label:"Ministral 14B",description:"Mistral"},{value:"mistralai/devstral-2-123b-instruct-2512",label:"Devstral 2 123B",description:"Code"},{value:"mistralai/magistral-small-2506",label:"Magistral Small",description:"Mistral"},{value:"microsoft/phi-4-multimodal-instruct",label:"Phi 4 Multimodal",description:"Multimodal"},{value:"microsoft/phi-4-mini-instruct",label:"Phi 4 Mini",description:"Phi"},{value:"microsoft/phi-3.5-mini-instruct",label:"Phi 3.5 Mini",description:"Phi"},{value:"microsoft/phi-3-small-128k-instruct",label:"Phi 3 Small 128K",description:"Phi"},{value:"microsoft/phi-3-small-8k-instruct",label:"Phi 3 Small 8K",description:"Phi"},{value:"microsoft/phi-3-medium-128k-instruct",label:"Phi 3 Medium 128K",description:"Phi"},{value:"microsoft/phi-3-medium-4k-instruct",label:"Phi 3 Medium 4K",description:"Phi"},{value:"microsoft/phi-3-mini-128k-instruct",label:"Phi 3 Mini 128K",description:"Phi"},{value:"microsoft/phi-3-mini-4k-instruct",label:"Phi 3 Mini 4K",description:"Phi"},{value:"qwen/qwen3.5-397b-a17b",label:"Qwen 3.5 397B",description:"Qwen"},{value:"qwen/qwen3.5-122b-a10b",label:"Qwen 3.5 122B",description:"Qwen"},{value:"qwen/qwen3-next-80b-a3b-instruct",label:"Qwen 3 Next 80B",description:"Qwen"},{value:"qwen/qwen2.5-7b-instruct",label:"Qwen 2.5 7B",description:"Qwen"},{value:"qwen/qwen2-7b-instruct",label:"Qwen 2 7B",description:"Qwen"},{value:"qwen/qwen3-32b",label:"Qwen 3 32B",description:"Qwen"},{value:"qwen/qwen3-8b",label:"Qwen 3 8B",description:"Qwen"},{value:"deepseek-ai/deepseek-v4-pro",label:"DeepSeek V4 Pro",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v4-flash",label:"DeepSeek V4 Flash",description:"DeepSeek"},{value:"deepseek-ai/deepseek-r1",label:"DeepSeek R1",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3",label:"DeepSeek V3",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3.2",label:"DeepSeek V3.2",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3.1-terminus",label:"DeepSeek V3.1 Terminus",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3.1",label:"DeepSeek V3.1",description:"DeepSeek"},{value:"ibm/granite-3.3-8b-instruct",label:"Granite 3.3 8B",description:"IBM Granite"},{value:"ibm/granite-3.0-8b-instruct",label:"Granite 3.0 8B",description:"IBM Granite"},{value:"ibm/granite-3.0-3b-a800m-instruct",label:"Granite 3.0 3B",description:"IBM Granite"},{value:"bytedance/seed-oss-36b-instruct",label:"Seed OSS 36B Instruct",description:"Other"},{value:"databricks/dbrx-instruct",label:"DBRX Instruct",description:"Other"},{value:"01-ai/yi-large",label:"Yi Large",description:"Other"},{value:"ai21labs/jamba-1.5-large-instruct",label:"Jamba 1.5 Large",description:"Other"},{value:"ai21labs/jamba-1.5-mini-instruct",label:"Jamba 1.5 Mini",description:"Other"},{value:"writer/palmyra-creative-122b",label:"Palmyra Creative 122B",description:"Other"},{value:"writer/palmyra-fin-70b-32k",label:"Palmyra Fin 70B 32K",description:"Other"},{value:"writer/palmyra-med-70b",label:"Palmyra Med 70B",description:"Other"},{value:"writer/palmyra-med-70b-32k",label:"Palmyra Med 70B 32K",description:"Other"},{value:"z-ai/glm-5.1",label:"GLM-5.1",description:"Z-AI"},{value:"z-ai/glm5",label:"GLM-5",description:"Z-AI"},{value:"z-ai/glm4.7",label:"GLM-4.7",description:"Z-AI"},{value:"minimaxai/minimax-m2.7",label:"MiniMax M2.7",description:"MiniMax"},{value:"minimaxai/minimax-m2.5",label:"MiniMax M2.5",description:"MiniMax"},{value:"moonshotai/kimi-k2.6",label:"Kimi K2.6",description:"Moonshot"},{value:"moonshotai/kimi-k2.5",label:"Kimi K2.5",description:"Moonshot"},{value:"moonshotai/kimi-k2-instruct",label:"Kimi K2 Instruct",description:"Moonshot"},{value:"moonshotai/kimi-k2-thinking",label:"Kimi K2 Thinking",description:"Moonshot"},{value:"moonshotai/kimi-k2.5-thinking",label:"Kimi K2.5 Thinking",description:"Moonshot"},{value:"moonshotai/kimi-k2-instruct-0905",label:"Kimi K2 Instruct 0905",description:"Moonshot"}]}function getCachedNvidiaNimModelOptions(){if(!cachedNvidiaNimOptions)cachedNvidiaNimOptions=getNvidiaNimModels();return cachedNvidiaNimOptions}function getNvidiaNimDiscoveryCacheKeyForEnv(processEnv=process.env){let request=resolveProviderRequest({model:processEnv.OPENAI_MODEL,baseUrl:processEnv.OPENAI_BASE_URL,processEnv}),routeCredential=resolveRouteCredentialValue({routeId:"nvidia-nim",baseUrl:request.baseUrl,processEnv}),apiKey=firstUsableCredential(routeCredential);return getDiscoveryCacheKey("nvidia-nim",{baseUrl:request.baseUrl,apiKey,headers:parseCustomHeadersEnv(processEnv.ANTHROPIC_CUSTOM_HEADERS)})}async function getDiscoveredNvidiaNimModelIds(){try{let cacheKey=getNvidiaNimDiscoveryCacheKeyForEnv(process.env);return(await getCachedModels(cacheKey,Number.MAX_SAFE_INTEGER,{includeStale:!0}))?.models.map((entry)=>entry.apiName)??[]}catch{return[]}}var cachedNvidiaNimOptions=null;var init_nvidiaNimModels=__esm(()=>{init_providers();init_envUtils();init_discoveryCache();init_discoveryService();init_routeMetadata();init_providerConfig();init_providerCustomHeaders()});function isMiniMaxProvider(){if(isEnvTruthy(process.env.MINIMAX_API_KEY))return!0;if(getMiniMaxBaseUrlOverride(process.env)!==void 0)return!0;return getAPIProvider()==="minimax"}function getMiniMaxModels(){return[{value:"MiniMax-M2",label:"MiniMax M2",description:"MoE model - 131K context - Chat/Code/Reasoning"},{value:"MiniMax-M2.1",label:"MiniMax M2.1",description:"Enhanced - 200K context - Vision"},{value:"MiniMax-M2.5",label:"MiniMax M2.5",description:"Flagship - 256K context - Vision/Function-calling"},{value:"MiniMax-M2.7",label:"MiniMax M2.7",description:"Flagship - 256K context - Chat/Code/Reasoning"},{value:"MiniMax-M2.7-highspeed",label:"MiniMax M2.7 Highspeed",description:"Fast flagship - 256K context - Chat/Code/Reasoning"},{value:"MiniMax-M3",label:"MiniMax M3",description:"Next-gen - 1M context - Coding/Agentic/Reasoning"},{value:"MiniMax-Text-01",label:"MiniMax Text 01",description:"Text-focused - 512K context - FREE"},{value:"MiniMax-Text-01-Preview",label:"MiniMax Text 01 Preview",description:"Preview - 256K context - FREE"},{value:"MiniMax-Vision-01",label:"MiniMax Vision 01",description:"Vision model - 32K context"},{value:"MiniMax-Vision-01-Fast",label:"MiniMax Vision 01 Fast",description:"Fast vision - 16K context - FREE"},{value:"abab6.5s-chat",label:"ABAB 6.5S Chat",description:"Legacy free - 16K context"},{value:"abab6.5-chat",label:"ABAB 6.5 Chat",description:"Legacy free - 32K context"},{value:"abab6.5g-chat",label:"ABAB 6.5G Chat",description:"Generation 6.5 - 32K context"},{value:"abab6-chat",label:"ABAB 6 Chat",description:"Legacy - 8K context"}]}function getCachedMiniMaxModelOptions(){if(!cachedMiniMaxOptions)cachedMiniMaxOptions=getMiniMaxModels();return cachedMiniMaxOptions}var cachedMiniMaxOptions=null;var init_minimaxModels=__esm(()=>{init_providers();init_routeMetadata();init_envUtils()});function isXiaomiMimoProvider(){if(isEnvTruthy(process.env.MIMO_API_KEY))return!0;let baseUrl=process.env.OPENAI_BASE_URL??"";if(baseUrl.includes("xiaomimimo")||baseUrl.includes("mimo-v2"))return!0;return getAPIProvider()==="xiaomi-mimo"}function getXiaomiMimoModels(){return[{value:"mimo-v2.5-pro",label:"MiMo V2.5 Pro",description:"Flagship - 1M context - 128K output - Chat/Code/Reasoning"},{value:"mimo-v2.5",label:"MiMo V2.5",description:"General - 1M context - 128K output - Vision/Chat/Code"},{value:"mimo-v2-flash",label:"MiMo V2 Flash",description:"Fast - 256K context - 64K output - Chat/Code/Reasoning"}]}function getCachedXiaomiMimoModelOptions(){if(!cachedXiaomiMimoOptions)cachedXiaomiMimoOptions=getXiaomiMimoModels();return cachedXiaomiMimoOptions}var cachedXiaomiMimoOptions=null;var init_xiaomi_mimoModels=__esm(()=>{init_providers();init_envUtils()});function getAllCopilotModels(){return Object.values(COPILOT_MODELS)}var COPILOT_MODELS;var init_copilotModels=__esm(()=>{COPILOT_MODELS={"gpt-5.5":{id:"gpt-5.5",name:"GPT-5.5",family:"gpt",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.5-mini":{id:"gpt-5.5-mini",name:"GPT-5.5 mini",family:"gpt-mini",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",family:"gpt",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 mini",family:"gpt-mini",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3-Codex",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2-Codex",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",family:"gpt",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:264000,output:32768}},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1-Codex",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1-Codex-max",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1-Codex-mini",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-4o":{id:"gpt-4o",name:"GPT-4o",family:"gpt",attachment:!0,reasoning:!1,tool_call:!0,temperature:!0,knowledge:"2023-10",release_date:"2024-05-01",last_updated:"2024-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:16384}},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",family:"gpt",attachment:!1,reasoning:!1,tool_call:!0,temperature:!0,knowledge:"2024-06",release_date:"2024-06-01",last_updated:"2024-06-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"claude-opus-4.6":{id:"claude-opus-4.6",name:"Claude Opus 4.6",family:"claude-opus",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:144000,output:32768}},"claude-opus-4.5":{id:"claude-opus-4.5",name:"Claude Opus 4.5",family:"claude-opus",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:160000,output:32768}},"claude-sonnet-4.6":{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",family:"claude-sonnet",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:200000,output:32768}},"claude-sonnet-4.5":{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",family:"claude-sonnet",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:144000,output:32768}},"claude-haiku-4.5":{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",family:"claude-haiku",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:144000,output:32768}},"gemini-3.1-pro-preview":{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",family:"gemini-pro",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image","audio"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",family:"gemini-flash",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",family:"gemini-pro",attachment:!0,reasoning:!1,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"grok-code-fast-1":{id:"grok-code-fast-1",name:"Grok Code Fast 1",family:"grok",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}}}});function parseSwitchProfileValue(value){if(typeof value!=="string"||!value.startsWith(SWITCH_PROFILE_VALUE_PREFIX))return null;let tail=value.slice(SWITCH_PROFILE_VALUE_PREFIX.length),sep29=tail.indexOf(":");if(sep29<=0||sep29===tail.length-1)return null;return{profileId:tail.slice(0,sep29),model:tail.slice(sep29+1)}}function encodeSwitchProfileValue(profileId,model){return`${SWITCH_PROFILE_VALUE_PREFIX}${profileId}:${model}`}function resolveSelectedSwitchProfileId(options2,selectedValue){let matches=options2.filter((option)=>option.value===selectedValue);return matches.length===1?matches[0].switchToProfileId:void 0}function getScopedAdditionalModelOptions(){let config3=getGlobalConfig(),activeScope=getAdditionalModelOptionsCacheScope();if(!activeScope)return[];if(config3.additionalModelOptionsCacheScope!==void 0)return config3.additionalModelOptionsCacheScope===activeScope?config3.additionalModelOptionsCache??[]:[];return activeScope==="firstParty"?config3.additionalModelOptionsCache??[]:[]}function getDefaultOptionForUser(fastMode=!1){let is3P=!isFirstPartyAnthropicProvider(),currentDefaultModel=isCustomAnthropicProvider()&&process.env.ANTHROPIC_MODEL?process.env.ANTHROPIC_MODEL:getDefaultMainLoopModelSetting();if(process.env.USER_TYPE==="ant"&&!is3P){let currentModel=renderDefaultModelSetting(currentDefaultModel);return{value:null,label:"Default (recommended)",description:`Use the default model for Ants (currently ${currentModel})`,descriptionForModel:`Default model (currently ${currentModel})`}}if(is3P)return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${renderDefaultModelSetting(currentDefaultModel)})`};if(isClaudeAISubscriber())return{value:null,label:"Default (recommended)",description:getClaudeAiUserDefaultModelDescription(fastMode)};return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${renderDefaultModelSetting(currentDefaultModel)})${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`}}function getCustomSonnetOption(){let is3P=getAPIProvider()!=="firstParty",customSonnetModel=process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;if(is3P&&customSonnetModel){let is1m=has1mContext(customSonnetModel);return{value:"sonnet",label:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME??customSonnetModel,description:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${is1m?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${is1m?" with 1M context":""}`} (${customSonnetModel})`}}}function getSonnet46Option(){let is3P=getAPIProvider()!=="firstParty";return{value:is3P?getModelStrings2().sonnet46:"sonnet",label:"Sonnet",description:`Sonnet 4.6 · Best for everyday tasks${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`,descriptionForModel:"Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"}}function getCustomOpusOption(){let is3P=getAPIProvider()!=="firstParty",customOpusModel=process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;if(is3P&&customOpusModel){let is1m=has1mContext(customOpusModel);return{value:"opus",label:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME??customOpusModel,description:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${is1m?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${is1m?" with 1M context":""}`} (${customOpusModel})`}}}function getOpus41Option(){return{value:"opus",label:"Opus 4.1",description:"Opus 4.1 · Legacy",descriptionForModel:"Opus 4.1 - legacy version"}}function getOpus48Option(fastMode=!1){return{value:getAPIProvider()!=="firstParty"?getModelStrings2().opus48:"opus",label:"Opus",description:`Opus 4.8 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:"Opus 4.8 - most capable for complex work"}}function getOpus47Option(fastMode=!1){return{value:getAPIProvider()!=="firstParty"?getModelStrings2().opus47:"opus",label:"Opus",description:`Opus 4.7 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:"Opus 4.7 - most capable for complex work"}}function getOpus46Option(fastMode=!1){return{value:getAPIProvider()!=="firstParty"?getModelStrings2().opus46:"opus",label:"Opus",description:`Opus 4.6 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:"Opus 4.6 - most capable for complex work"}}function getSonnet46_1MOption(){let is3P=getAPIProvider()!=="firstParty";return{value:is3P?getModelStrings2().sonnet46+"[1m]":"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 for long sessions${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`,descriptionForModel:"Sonnet 4.6 with 1M context window - for long sessions with large codebases"}}function getOpus46_1MOption(fastMode=!1){let is3P=getAPIProvider()!=="firstParty",opusName=is3P?"Opus 4.6":"Opus 4.8";return{value:is3P?getModelStrings2().opus46+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`${opusName} for long sessions${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:`${opusName} with 1M context window - for long sessions with large codebases`}}function getCustomHaikuOption(){let is3P=getAPIProvider()!=="firstParty",customHaikuModel=process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;if(is3P&&customHaikuModel)return{value:"haiku",label:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME??customHaikuModel,description:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model",descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model"} (${customHaikuModel})`}}function getHaiku45Option(){return{value:"haiku",label:"Haiku",description:`Haiku 4.5 · Fastest for quick answers${getAPIProvider()!=="firstParty"?"":` · ${formatModelPricing(COST_HAIKU_45)}`}`,descriptionForModel:"Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."}}function getHaiku35Option(){return{value:"haiku",label:"Haiku",description:`Haiku 3.5 for simple tasks${getAPIProvider()!=="firstParty"?"":` · ${formatModelPricing(COST_HAIKU_35)}`}`,descriptionForModel:"Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."}}function getHaikuOption(){return getDefaultHaikuModel()===getModelStrings2().haiku45?getHaiku45Option():getHaiku35Option()}function getMaxOpusOption(fastMode=!1){return{value:"opus",label:"Opus",description:`Opus 4.8 · Most capable for complex work${fastMode?getOpus46PricingSuffix(!0):""}`}}function getMaxSonnet46_1MOption(){let is3P=getAPIProvider()!=="firstParty";return{value:"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 with 1M context${isClaudeAISubscriber()?" · Billed as extra usage":""}${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`}}function getMaxOpus46_1MOption(fastMode=!1){return{value:"opus[1m]",label:"Opus (1M context)",description:`Opus 4.8 with 1M context${isClaudeAISubscriber()?" · Billed as extra usage":""}${getOpus46PricingSuffix(fastMode)}`}}function getMergedOpus1MOption(fastMode=!1){let is3P=getAPIProvider()!=="firstParty";return{value:is3P?getModelStrings2().opus46+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`${is3P?"Opus 4.6":"Opus 4.8"} with 1M context · Most capable for complex work${!is3P&&fastMode?getOpus46PricingSuffix(fastMode):""}`,descriptionForModel:`${is3P?"Opus 4.6":"Opus 4.8"} with 1M context - most capable for complex work`}}function getOpusPlanOption(){return{value:"opusplan",label:"Opus Plan Mode",description:"Use Opus 4.8 in plan mode, Sonnet 4.6 otherwise"}}function getCodexPlanOption(){return{value:"gpt-5.5",label:"gpt-5.5",description:"GPT-5.5 on the Codex backend with high reasoning"}}function getCodexSparkOption(){return{value:"gpt-5.3-codex-spark",label:"gpt-5.3-codex-spark",description:"GPT-5.3 Codex Spark on the Codex backend for fast tool loops"}}function getCodexModelOptions(){return[{value:"gpt-5.5",label:"gpt-5.5",description:"GPT-5.5 with high reasoning"},{value:"gpt-5.4",label:"gpt-5.4",description:"GPT-5.4 with high reasoning"},{value:"gpt-5.3-codex",label:"gpt-5.3-codex",description:"GPT-5.3 Codex with high reasoning"},{value:"gpt-5.3-codex-spark",label:"gpt-5.3-codex-spark",description:"GPT-5.3 Codex Spark for fast tool loops"},{value:"codexspark",label:"codexspark",description:"GPT-5.3 Codex Spark alias for fast tool loops"},{value:"gpt-5.2-codex",label:"gpt-5.2-codex",description:"GPT-5.2 Codex with high reasoning"},{value:"gpt-5.1-codex-max",label:"gpt-5.1-codex-max",description:"GPT-5.1 Codex Max for deep reasoning"},{value:"gpt-5.1-codex-mini",label:"gpt-5.1-codex-mini",description:"GPT-5.1 Codex Mini - faster, cheaper"},{value:"gpt-5.5-mini",label:"gpt-5.5-mini",description:"GPT-5.5 Mini - faster, cheaper"},{value:"gpt-5.4-mini",label:"gpt-5.4-mini",description:"GPT-5.4 Mini - faster, cheaper"}]}function getCopilotModelOptions(){return getAllCopilotModels().map((m)=>({value:m.id,label:m.name,description:`${m.family}${m.reasoning?" · Reasoning":""}${m.tool_call?" · Tool call":""} · ${Math.round(m.limit.context/1000)}K context`}))}function getModelOptionsBase(fastMode=!1){let profileEnvApplied=process.env.CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED==="1",profileModelOptions=[],activeProfileId;if(profileEnvApplied){let activeProfile2=getActiveProviderProfile();if(activeProfile2){activeProfileId=activeProfile2.id;let models=getProfileModelOptions(activeProfile2);profileModelOptions.push(...models)}}let inactiveProfileOptions=profileEnvApplied?getInactiveProviderProfileOptions(activeProfileId):[];if(getAPIProvider()==="github")return[getDefaultOptionForUser(fastMode),...getCopilotModelOptions(),...inactiveProfileOptions];if(getAPIProvider()==="openai"&&isOllamaProvider()){let defaultOption=getDefaultOptionForUser(fastMode),ollamaModels=getCachedOllamaModelOptions();if(ollamaModels.length>0)return[defaultOption,...ollamaModels,...inactiveProfileOptions];let currentModel=getUserSpecifiedModelSetting()??getInitialMainLoopModel();if(currentModel!=null)return[defaultOption,{value:currentModel,label:currentModel,description:"Currently configured Ollama model"},...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}if(isNvidiaNimProvider()){let defaultOption=getDefaultOptionForUser(fastMode),nvidiaModels=getCachedNvidiaNimModelOptions();if(nvidiaModels.length>0)return[defaultOption,...nvidiaModels,...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}if(isMiniMaxProvider()){let defaultOption=getDefaultOptionForUser(fastMode),minimaxModels=getCachedMiniMaxModelOptions();if(minimaxModels.length>0)return[defaultOption,...minimaxModels,...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}if(isXiaomiMimoProvider()){let defaultOption=getDefaultOptionForUser(fastMode),xiaomiMimoModels=getCachedXiaomiMimoModelOptions();if(xiaomiMimoModels.length>0)return[defaultOption,...xiaomiMimoModels,...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}let activeProfile=getActiveProviderProfile(),activeRouteId=resolveActiveRouteIdFromEnv(process.env,{activeProfileProvider:activeProfile?.provider,activeProfileBaseUrl:activeProfile?.baseUrl});if(getTransportKindForRoute(activeRouteId??"")==="anthropic-proxy"){let directEnvOption=profileModelOptions.length===0&&process.env.ANTHROPIC_MODEL?[{value:process.env.ANTHROPIC_MODEL,label:process.env.ANTHROPIC_MODEL,description:"Custom Anthropic-compatible endpoint"}]:[];return[getDefaultOptionForUser(fastMode),...profileModelOptions,...directEnvOption,...inactiveProfileOptions]}if(process.env.USER_TYPE==="ant"){let antModelOptions=getAntModels().map((m)=>({value:m.alias,label:m.label,description:m.description??`[internal] ${m.label} (${m.model})`}));return[getDefaultOptionForUser(),...antModelOptions,getMergedOpus1MOption(fastMode),getSonnet46Option(),getSonnet46_1MOption(),getHaiku45Option(),...inactiveProfileOptions]}if(isClaudeAISubscriber()){if(isMaxSubscriber()||isTeamPremiumSubscriber()){let premiumOptions=[getDefaultOptionForUser(fastMode)];if(!isOpus1mMergeEnabled()&&checkOpus1mAccess())premiumOptions.push(getMaxOpus46_1MOption(fastMode));if(premiumOptions.push(MaxSonnet46Option),checkSonnet1mAccess())premiumOptions.push(getMaxSonnet46_1MOption());return premiumOptions.push(MaxHaiku45Option),premiumOptions.push(...inactiveProfileOptions),premiumOptions}let standardOptions=[getDefaultOptionForUser(fastMode)];if(checkSonnet1mAccess())standardOptions.push(getMaxSonnet46_1MOption());if(isOpus1mMergeEnabled())standardOptions.push(getMergedOpus1MOption(fastMode));else if(standardOptions.push(getMaxOpusOption(fastMode)),checkOpus1mAccess())standardOptions.push(getMaxOpus46_1MOption(fastMode));return standardOptions.push(MaxHaiku45Option),standardOptions.push(...inactiveProfileOptions),standardOptions}let activeRouteCatalogOptions=getActiveOpenAIRouteCatalogOptions(),openAIModelOptionsScope=getAdditionalModelOptionsCacheScope();if(activeRouteCatalogOptions.length>0||openAIModelOptionsScope?.startsWith("openai:")){let activeOpenAIOptions=activeProfile?getActiveOpenAIModelOptionsCache():[],scopedOptions=openAIModelOptionsScope?.startsWith("openai:")?getScopedAdditionalModelOptions():[],sourceOptions=activeOpenAIOptions.length>0?activeOpenAIOptions:scopedOptions;return[getDefaultOptionForUser(fastMode),...mergeModelOptionsByNormalizedValue(sourceOptions,activeRouteCatalogOptions),...inactiveProfileOptions]}if(getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()){let payg1POptions=[getDefaultOptionForUser(fastMode)];if(checkSonnet1mAccess())payg1POptions.push(getSonnet46_1MOption());if(isOpus1mMergeEnabled())payg1POptions.push(getMergedOpus1MOption(fastMode));else if(payg1POptions.push(getOpus48Option(fastMode)),payg1POptions.push(getOpus47Option(fastMode)),payg1POptions.push(getOpus46Option(fastMode)),checkOpus1mAccess())payg1POptions.push(getOpus46_1MOption(fastMode));return payg1POptions.push(getHaiku45Option()),payg1POptions.push(...profileModelOptions),payg1POptions.push(...inactiveProfileOptions),payg1POptions}let payg3pOptions=[getDefaultOptionForUser(fastMode)];if(getAPIProvider()==="openai"||getAPIProvider()==="codex")payg3pOptions.push(...getCodexModelOptions());let customSonnet=getCustomSonnetOption();if(customSonnet!==void 0)payg3pOptions.push(customSonnet);else if(payg3pOptions.push(getSonnet46Option()),checkSonnet1mAccess())payg3pOptions.push(getSonnet46_1MOption());let customOpus=getCustomOpusOption();if(customOpus!==void 0)payg3pOptions.push(customOpus);else if(payg3pOptions.push(getOpus41Option()),payg3pOptions.push(getOpus47Option(fastMode)),payg3pOptions.push(getOpus46Option(fastMode)),checkOpus1mAccess())payg3pOptions.push(getOpus46_1MOption(fastMode));let customHaiku=getCustomHaikuOption();if(customHaiku!==void 0)payg3pOptions.push(customHaiku);else payg3pOptions.push(getHaikuOption());return payg3pOptions.push(...profileModelOptions),payg3pOptions.push(...inactiveProfileOptions),payg3pOptions}function getInactiveProviderProfileOptions(activeProfileId){let profiles=getProviderProfiles(),options2=[];for(let profile of profiles){if(profile.id===activeProfileId)continue;let baseOptions=getProfileModelOptions(profile);for(let baseOption of baseOptions){let modelValue=typeof baseOption.value==="string"?baseOption.value:"";if(!modelValue)continue;options2.push({value:encodeSwitchProfileValue(profile.id,modelValue),label:`${modelValue} · ${profile.name}`,description:`Switch to ${profile.name} (${profile.baseUrl})`,switchToProfileId:profile.id})}}return options2}function getModelFamilyInfo(model){let canonical=getCanonicalName(model);if(canonical.includes("claude-sonnet-4-6")||canonical.includes("claude-sonnet-4-5")||canonical.includes("claude-sonnet-4-")||canonical.includes("claude-3-7-sonnet")||canonical.includes("claude-3-5-sonnet")){let currentName=getMarketingNameForModel(getDefaultSonnetModel());if(currentName)return{alias:"Sonnet",currentVersionName:currentName}}if(canonical.includes("claude-opus-4")){let currentName=getMarketingNameForModel(getDefaultOpusModel());if(currentName)return{alias:"Opus",currentVersionName:currentName}}if(canonical.includes("claude-haiku")||canonical.includes("claude-3-5-haiku")){let currentName=getMarketingNameForModel(getDefaultHaikuModel());if(currentName)return{alias:"Haiku",currentVersionName:currentName}}return null}function getKnownModelOption(model){let marketingName=getMarketingNameForModel(model);if(!marketingName)return null;let familyInfo=getModelFamilyInfo(model);if(!familyInfo)return{value:model,label:marketingName,description:model};if(marketingName!==familyInfo.currentVersionName)return{value:model,label:marketingName,description:`Newer version available · select ${familyInfo.alias} for ${familyInfo.currentVersionName}`};return{value:model,label:marketingName,description:model}}function normalizeRouteModelOptionKey(model){return model.trim().split("?",1)[0]?.trim().toLowerCase()??""}function getActiveOpenAIRouteId(){let openAIFlag=process.env.CLAUDE_CODE_USE_OPENAI?.trim().toLowerCase();if(!openAIFlag||["0","false","no","off"].includes(openAIFlag))return null;let scope=getAdditionalModelOptionsCacheScope();if(scope?.startsWith("openai:")){let partitionIndex=scope.lastIndexOf(":");if(partitionIndex>7){let baseUrl=scope.slice(7,partitionIndex);return resolveRouteIdFromBaseUrl(baseUrl)}}return resolveRouteIdFromBaseUrl(resolveProviderRequest().baseUrl)}function mergeModelOptionsByNormalizedValue(primaryOptions,additionalOptions){let merged=[],seen=new Set;for(let option of[...primaryOptions,...additionalOptions]){if(typeof option.value!=="string")continue;let value=option.value.trim(),key=normalizeRouteModelOptionKey(value);if(!key||seen.has(key))continue;seen.add(key),merged.push({...option,value})}return merged}function getActiveOpenAIRouteCatalogOptions(){let routeId=getActiveOpenAIRouteId();if(!routeId)return[];return getCatalogEntriesForRoute(routeId).flatMap((entry)=>{let value=entry.apiName.trim();if(!value)return[];return[{value,label:entry.label??value,description:entry.apiName}]})}function getRouteCatalogModelOption(value){if(typeof value!=="string")return null;let routeId=getActiveOpenAIRouteId();if(!routeId)return null;let normalizedValue=normalizeRouteModelOptionKey(value);if(!normalizedValue)return null;let catalogEntry3=getCatalogEntriesForRoute(routeId).find((entry)=>normalizeRouteModelOptionKey(entry.apiName)===normalizedValue||normalizeRouteModelOptionKey(entry.id)===normalizedValue||(entry.aliases??[]).some((alias)=>normalizeRouteModelOptionKey(alias)===normalizedValue));if(!catalogEntry3)return null;return{value:catalogEntry3.apiName,label:catalogEntry3.label??catalogEntry3.apiName,description:catalogEntry3.apiName}}function optionMatchesModel(option,model){if(option.value===model)return!0;let catalogOption=getRouteCatalogModelOption(model);return catalogOption!==null&&option.value===catalogOption.value}function getModelOptions(fastMode=!1){if(getAPIProvider()==="github")return filterModelOptionsByAllowlist(getModelOptionsBase(fastMode));let options2=getModelOptionsBase(fastMode),envCustomModel=process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;if(envCustomModel&&!options2.some((existing)=>optionMatchesModel(existing,envCustomModel)))options2.push({value:envCustomModel,label:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME??envCustomModel,description:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION??`Custom model (${envCustomModel})`});for(let opt of getScopedAdditionalModelOptions()){let catalogOption=getRouteCatalogModelOption(opt.value),nextOption=catalogOption?{...opt,...catalogOption}:opt;if(!options2.some((existing)=>optionMatchesModel(existing,nextOption.value)))options2.push(nextOption)}let customModel=null,currentMainLoopModel=getUserSpecifiedModelSetting(),initialMainLoopModel=getInitialMainLoopModel();if(currentMainLoopModel!==void 0&¤tMainLoopModel!==null)customModel=currentMainLoopModel;else if(initialMainLoopModel!==null)customModel=initialMainLoopModel;if(customModel===null||options2.some((opt)=>optionMatchesModel(opt,customModel)))return filterModelOptionsByAllowlist(options2);else if(customModel==="opusplan")return filterModelOptionsByAllowlist([...options2,getOpusPlanOption()]);else if(customModel==="gpt-5.5")return filterModelOptionsByAllowlist([...options2,getCodexPlanOption()]);else if(customModel==="gpt-5.3-codex-spark")return filterModelOptionsByAllowlist([...options2,getCodexSparkOption()]);else if(customModel==="opus"&&getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl())return filterModelOptionsByAllowlist([...options2,getMaxOpusOption(fastMode)]);else if(customModel==="opus[1m]"&&getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl())return filterModelOptionsByAllowlist([...options2,getMergedOpus1MOption(fastMode)]);else{let catalogOption=getRouteCatalogModelOption(customModel);if(catalogOption)return options2.push(catalogOption),filterModelOptionsByAllowlist(options2);let knownOption=getKnownModelOption(customModel);if(knownOption)options2.push(knownOption);else options2.push({value:customModel,label:customModel,description:"Custom model"});return filterModelOptionsByAllowlist(options2)}}function filterModelOptionsByAllowlist(options2){let filtered=!(getSettings_DEPRECATED()||{}).availableModels?options2:options2.filter((opt)=>{if(opt.value===null)return!0;let effectiveModel=opt.switchToProfileId!==void 0?parseSwitchProfileValue(opt.value)?.model??opt.value:opt.value;return isModelAllowed(effectiveModel)}),seen=new Set;return filtered.filter((opt)=>{let key=String(opt.value);if(seen.has(key))return!1;return seen.add(key),!0})}var SWITCH_PROFILE_VALUE_PREFIX="__switch_profile__:",MaxSonnet46Option,MaxHaiku45Option;var init_modelOptions=__esm(()=>{init_state();init_integrations();init_routeMetadata();init_providerConfig();init_auth5();init_modelStrings();init_modelCost();init_settings3();init_check1mAccess();init_providers();init_modelAllowlist();init_model();init_context();init_config();init_providerProfiles();init_ollamaModels();init_nvidiaNimModels();init_minimaxModels();init_xiaomi_mimoModels();init_antModels();init_copilotModels();MaxSonnet46Option={value:"sonnet",label:"Sonnet",description:"Sonnet 4.6 · Best for everyday tasks"},MaxHaiku45Option={value:"haiku",label:"Haiku",description:"Haiku 4.5 · Fastest for quick answers"}});function getEffortNotificationText(effortValue,model){if(!modelSupportsEffort(model))return;let level=getDisplayedEffortLevel(model,effortValue);return`${effortLevelToSymbol(level)} ${level} · /effort`}function effortLevelToSymbol(level){switch(level){case"low":return EFFORT_LOW;case"medium":return EFFORT_MEDIUM;case"high":return EFFORT_HIGH;case"max":return EFFORT_MAX;default:return EFFORT_HIGH}}var init_EffortIndicator=__esm(()=>{init_figures2();init_effort()});function normalizeModelPickerValue(value){return typeof value==="string"&&value.trim()?value.trim().toLowerCase():null}function optionMatchesPickerValue(option,value){let optionKey=normalizeModelPickerValue(option.value),valueKey=normalizeModelPickerValue(value);return optionKey!==null&&valueKey!==null&&optionKey===valueKey}function resolvePickerOptionValue(options2,value){let optionValue=options2.find((option)=>optionMatchesPickerValue(option,value))?.value;return typeof optionValue==="string"?optionValue:void 0}function mapDiscoveryToneToColor(tone){switch(tone){case"error":return"error";case"warning":return"warning";case"success":return"success";case"info":default:return"subtle"}}function ModelPicker(t0){let $2=import_react_compiler_runtime128.c(84),{initial,sessionModel,onSelect,onCancel,isStandaloneCommand,showFastModeNotice,headerText,skipSettingsWrite,optionsOverride,discoveryState,onRefresh,allowProfileSwitch}=t0,setAppState=useSetAppState(),exitState=useExitOnCtrlCDWithKeybindings(),initialValue=initial===null?NO_PREFERENCE:initial,isFastMode=useAppState(_temp59),[hasToggledEffort,setHasToggledEffort]=import_react101.useState(!1),effortValue=useAppState(_temp217),t1;if($2[0]!==effortValue)t1=effortValue!==void 0?convertEffortValueToLevel(effortValue):void 0,$2[0]=effortValue,$2[1]=t1;else t1=$2[1];let[effort,setEffort]=import_react101.useState(t1),t2=isFastMode??!1,t3;if($2[2]!==t2)t3=getModelOptions(t2),$2[2]=t2,$2[3]=t3;else t3=$2[3];let modelOptionsBase=optionsOverride??t3,modelOptions=allowProfileSwitch?modelOptionsBase:modelOptionsBase.filter((opt)=>opt.switchToProfileId===void 0),t4;bb0:{if(initial!==null&&isModelAllowed(initial)&&!modelOptions.some((opt)=>optionMatchesPickerValue(opt,initial))){let t52;if($2[4]!==initial)t52=modelDisplayString(initial),$2[4]=initial,$2[5]=t52;else t52=$2[5];let t62;if($2[6]!==initial||$2[7]!==t52)t62={value:initial,label:t52,description:"Current model"},$2[6]=initial,$2[7]=t52,$2[8]=t62;else t62=$2[8];let t72;if($2[9]!==modelOptions||$2[10]!==t62)t72=[...modelOptions,t62],$2[9]=modelOptions,$2[10]=t62,$2[11]=t72;else t72=$2[11];t4=t72;break bb0}t4=modelOptions}let optionsWithInitial=t4,t5;if($2[12]!==optionsWithInitial)t5=optionsWithInitial.map(_temp312),$2[12]=optionsWithInitial,$2[13]=t5;else t5=$2[13];let selectOptions=t5,t6;if($2[14]!==initialValue||$2[15]!==selectOptions)t6=selectOptions.find((_)=>optionMatchesPickerValue(_,initialValue))?.value??selectOptions[0]?.value??void 0,$2[14]=initialValue,$2[15]=selectOptions,$2[16]=t6;else t6=$2[16];let initialFocusValue=t6,[focusedValue,setFocusedValue]=import_react101.useState(initialFocusValue??initialValue),visibleCount=Math.min(10,selectOptions.length),hiddenCount=Math.max(0,selectOptions.length-visibleCount),t7;if($2[17]!==focusedValue||$2[18]!==selectOptions)t7=selectOptions.find((opt_1)=>opt_1.value===focusedValue)?.label,$2[17]=focusedValue,$2[18]=selectOptions,$2[19]=t7;else t7=$2[19];let focusedModelName=t7,focusedSupportsEffort,t8;if($2[20]!==focusedValue){let focusedModel=resolveOptionModel(focusedValue);focusedSupportsEffort=focusedModel?modelSupportsEffort(focusedModel):!1,t8=focusedModel?modelSupportsMaxEffort(focusedModel):!1,$2[20]=focusedValue,$2[21]=focusedSupportsEffort,$2[22]=t8}else focusedSupportsEffort=$2[21],t8=$2[22];let focusedSupportsMax=t8,focusedAvailableLevels=(()=>{let focusedModel=resolveOptionModel(focusedValue);return focusedModel?getAvailableEffortLevels(focusedModel):[]})(),t9;if($2[23]!==focusedValue)t9=getDefaultEffortLevelForOption(focusedValue),$2[23]=focusedValue,$2[24]=t9;else t9=$2[24];let focusedDefaultEffort=t9,displayEffort=focusedAvailableLevels.includes(effort)?effort:"high",t10;if($2[25]!==effortValue||$2[26]!==hasToggledEffort||$2[83]!==selectOptions)t10=(value)=>{let selectedValue=resolvePickerOptionValue(selectOptions,value)??value;if(setFocusedValue(selectedValue),!hasToggledEffort&&effortValue===void 0)setEffort(getDefaultEffortLevelForOption(selectedValue))},$2[25]=effortValue,$2[26]=hasToggledEffort,$2[83]=selectOptions,$2[27]=t10;else t10=$2[27];let handleFocus=t10,t11;if($2[28]!==focusedDefaultEffort||$2[29]!==focusedSupportsEffort||$2[30]!==focusedSupportsMax||$2[31]!==focusedAvailableLevels)t11=(direction)=>{if(!focusedSupportsEffort)return;setEffort((prev)=>cycleEffortLevel(prev??focusedDefaultEffort,direction,focusedAvailableLevels)),setHasToggledEffort(!0)},$2[28]=focusedDefaultEffort,$2[29]=focusedSupportsEffort,$2[30]=focusedSupportsMax,$2[31]=focusedAvailableLevels,$2[32]=t11;else t11=$2[32];let handleCycleEffort=t11,t12={"modelPicker:decreaseEffort":()=>handleCycleEffort("left"),"modelPicker:increaseEffort":()=>handleCycleEffort("right"),...onRefresh?{"modelPicker:refresh":()=>onRefresh()}:{}},t13;if($2[34]===Symbol.for("react.memo_cache_sentinel"))t13={context:"ModelPicker"},$2[34]=t13;else t13=$2[34];useKeybindings(t12,t13);let t14;if($2[35]!==effort||$2[36]!==hasToggledEffort||$2[37]!==onSelect||$2[38]!==setAppState||$2[39]!==skipSettingsWrite||$2[46]!==focusedAvailableLevels||$2[47]!==focusedDefaultEffort||$2[48]!==selectOptions)t14=function(value_0){let selectedValue=resolvePickerOptionValue(selectOptions,value_0)??value_0,selectedModel=resolveOptionModel(selectedValue);if(selectedValue!==NO_PREFERENCE&&selectedModel&&!isModelAllowed(selectedModel)){onSelect(selectedValue===NO_PREFERENCE?null:selectedValue,void 0);return}let clampedEffort=focusedAvailableLevels.includes(effort)?effort:focusedDefaultEffort;if(logEvent("tengu_model_command_menu_effort",{effort:clampedEffort}),!skipSettingsWrite){let effortLevel=resolvePickerEffortPersistence(clampedEffort,getDefaultEffortLevelForOption(selectedValue),getSettingsForSource("userSettings")?.effortLevel,hasToggledEffort),persistable=toPersistableEffort(effortLevel);if(persistable!==void 0)updateSettingsForSource("userSettings",{effortLevel:persistable});setAppState((prev_0)=>({...prev_0,effortValue:effortLevel}))}let selectedEffort=hasToggledEffort&&selectedModel&&modelSupportsEffort(selectedModel)?clampedEffort:void 0;if(selectedValue===NO_PREFERENCE){onSelect(null,selectedEffort);return}let selectedSwitchProfileId=resolveSelectedSwitchProfileId(selectOptions,selectedValue);onSelect(selectedValue,selectedEffort,selectedSwitchProfileId)},$2[35]=effort,$2[36]=hasToggledEffort,$2[37]=onSelect,$2[38]=setAppState,$2[39]=skipSettingsWrite,$2[46]=focusedAvailableLevels,$2[47]=focusedDefaultEffort,$2[48]=selectOptions,$2[40]=t14;else t14=$2[40];let handleSelect=t14,t15;if($2[41]===Symbol.for("react.memo_cache_sentinel"))t15=jsxDEV(ThemedText,{color:"remember",bold:!0,children:"Select model"},void 0,!1,void 0,this),$2[41]=t15;else t15=$2[41];let t16=headerText??"Switch between Claude models. Applies to this session and future Claudio sessions. For other/previous model names, specify with --model.",t17;if($2[42]!==t16)t17=jsxDEV(ThemedText,{dimColor:!0,children:t16},void 0,!1,void 0,this),$2[42]=t16,$2[43]=t17;else t17=$2[43];let t18;if($2[44]!==sessionModel)t18=sessionModel&&jsxDEV(ThemedText,{dimColor:!0,children:["Currently using ",modelDisplayString(sessionModel)," for this session (set by plan mode). Selecting a model will undo this."]},void 0,!0,void 0,this),$2[44]=sessionModel,$2[45]=t18;else t18=$2[45];let refreshHint=onRefresh?jsxDEV(ConfigurableShortcutHint,{action:"modelPicker:refresh",context:"ModelPicker",fallback:"r",description:"refresh models"},void 0,!1,void 0,this):null,discoveryLine=discoveryState?jsxDEV(ThemedText,{color:mapDiscoveryToneToColor(discoveryState.tone),children:[discoveryState.message,refreshHint?jsxDEV(ThemedText,{color:"subtle",children:[" "," ","· ",refreshHint]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this):refreshHint?jsxDEV(ThemedText,{dimColor:!0,children:refreshHint},void 0,!1,void 0,this):null,t19=jsxDEV(ThemedBox_default,{marginBottom:1,flexDirection:"column",children:[t15,t17,t18,discoveryLine]},void 0,!0,void 0,this),t20=onCancel??_temp412,t21;if($2[49]!==handleFocus||$2[50]!==handleSelect||$2[51]!==initialFocusValue||$2[52]!==selectOptions||$2[53]!==t20||$2[54]!==visibleCount)t21=jsxDEV(ThemedBox_default,{flexDirection:"column",children:jsxDEV(Select,{defaultValue:initialFocusValue,defaultFocusValue:initialFocusValue,options:selectOptions,onChange:handleSelect,onFocus:handleFocus,onCancel:t20,visibleOptionCount:visibleCount},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[49]=handleFocus,$2[50]=handleSelect,$2[51]=initialFocusValue,$2[52]=selectOptions,$2[53]=t20,$2[54]=visibleCount,$2[56]=t21;else t21=$2[56];let t22;if($2[57]!==hiddenCount)t22=hiddenCount>0&&jsxDEV(ThemedBox_default,{paddingLeft:3,children:jsxDEV(ThemedText,{dimColor:!0,children:["and ",hiddenCount," more…"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[57]=hiddenCount,$2[58]=t22;else t22=$2[58];let t23;if($2[59]!==t21||$2[60]!==t22)t23=jsxDEV(ThemedBox_default,{flexDirection:"column",marginBottom:1,children:[t21,t22]},void 0,!0,void 0,this),$2[59]=t21,$2[60]=t22,$2[61]=t23;else t23=$2[61];let t24;if($2[62]!==displayEffort||$2[63]!==focusedDefaultEffort||$2[64]!==focusedModelName||$2[65]!==focusedSupportsEffort)t24=jsxDEV(ThemedBox_default,{marginBottom:1,flexDirection:"column",children:focusedSupportsEffort?jsxDEV(ThemedText,{dimColor:!0,children:[jsxDEV(EffortLevelIndicator,{effort:displayEffort},void 0,!1,void 0,this)," ",capitalize_default(displayEffort)," effort",displayEffort===focusedDefaultEffort?" (default)":""," ",jsxDEV(ThemedText,{color:"subtle",children:"← → to adjust"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{color:"subtle",children:[jsxDEV(EffortLevelIndicator,{effort:void 0},void 0,!1,void 0,this)," Effort not supported",focusedModelName?` for ${focusedModelName}`:""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[62]=displayEffort,$2[63]=focusedDefaultEffort,$2[64]=focusedModelName,$2[65]=focusedSupportsEffort,$2[66]=t24;else t24=$2[66];let t25;if($2[67]!==showFastModeNotice)t25=isFastModeEnabled()?showFastModeNotice?jsxDEV(ThemedBox_default,{marginBottom:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Fast mode is ",jsxDEV(ThemedText,{bold:!0,children:"ON"},void 0,!1,void 0,this)," and available with"," ",FAST_MODE_MODEL_DISPLAY," only (/fast). Switching to other models turn off fast mode."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):isFastModeAvailable()&&!isFastModeCooldown()?jsxDEV(ThemedBox_default,{marginBottom:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Use ",jsxDEV(ThemedText,{bold:!0,children:"/fast"},void 0,!1,void 0,this)," to turn on Fast mode (",FAST_MODE_MODEL_DISPLAY," only)."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):null:null,$2[67]=showFastModeNotice,$2[68]=t25;else t25=$2[68];let t26;if($2[69]!==t19||$2[70]!==t23||$2[71]!==t24||$2[72]!==t25)t26=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t19,t23,t24,t25]},void 0,!0,void 0,this),$2[69]=t19,$2[70]=t23,$2[71]=t24,$2[72]=t25,$2[73]=t26;else t26=$2[73];let t27;if($2[74]!==exitState||$2[75]!==isStandaloneCommand||$2[76]!==refreshHint)t27=isStandaloneCommand&&jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),refreshHint,jsxDEV(ConfigurableShortcutHint,{action:"select:cancel",context:"Select",fallback:"Esc",description:"exit"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[74]=exitState,$2[75]=isStandaloneCommand,$2[76]=refreshHint,$2[82]=t27;else t27=$2[82];let t28;if($2[77]!==t26||$2[78]!==t27)t28=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t26,t27]},void 0,!0,void 0,this),$2[77]=t26,$2[78]=t27,$2[79]=t28;else t28=$2[79];let content=t28;if(!isStandaloneCommand)return content;let t29;if($2[80]!==content)t29=jsxDEV(Pane,{color:"permission",children:content},void 0,!1,void 0,this),$2[80]=content,$2[81]=t29;else t29=$2[81];return t29}function _temp412(){}function _temp312(opt_0){return{...opt_0,value:opt_0.value===null?NO_PREFERENCE:opt_0.value}}function _temp217(s_0){return s_0.effortValue}function _temp59(s){return isFastModeEnabled()?s.fastMode:!1}function isGenuineSwitchProfileValue(value){return resolveSelectedSwitchProfileId(getModelOptions(),value)!==void 0}function resolveOptionModel(value){if(!value)return;if(value===NO_PREFERENCE)return getDefaultMainLoopModel();let switched=isGenuineSwitchProfileValue(value)?parseSwitchProfileValue(value):null;return parseUserSpecifiedModel(switched?switched.model:value)}function EffortLevelIndicator(t0){let $2=import_react_compiler_runtime128.c(5),{effort}=t0,t1=effort?"claude":"subtle",t2=effort??"low",t3;if($2[0]!==t2)t3=effortLevelToSymbol(t2),$2[0]=t2,$2[1]=t3;else t3=$2[1];let t4;if($2[2]!==t1||$2[3]!==t3)t4=jsxDEV(ThemedText,{color:t1,children:t3},void 0,!1,void 0,this),$2[2]=t1,$2[3]=t3,$2[4]=t4;else t4=$2[4];return t4}function cycleEffortLevel(current,direction,levels){let idx=levels.indexOf(current),currentIndex=idx!==-1?idx:levels.indexOf("high");if(direction==="right")return levels[(currentIndex+1)%levels.length];else return levels[(currentIndex-1+levels.length)%levels.length]}function getDefaultEffortLevelForOption(value){let resolved=resolveOptionModel(value)??getDefaultMainLoopModel(),defaultValue=getDefaultEffortForModel(resolved);return defaultValue!==void 0?convertEffortValueToLevel(defaultValue):"high"}var import_react_compiler_runtime128,import_react101,NO_PREFERENCE="__NO_PREFERENCE__";var init_ModelPicker=__esm(()=>{init_capitalize();init_useExitOnCtrlCDWithKeybindings();init_fastMode();init_ink2();init_useKeybinding();init_AppState();init_effort();init_modelAllowlist();init_model();init_modelOptions();init_settings3();init_ConfigurableShortcutHint();init_CustomSelect();init_Byline();init_KeyboardShortcutHint();init_Pane();init_EffortIndicator();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime128=__toESM(require_dist4(),1),import_react101=__toESM(require_react_production(),1)});function isBilledAsExtraUsage(model,isFastMode,isOpus1mMerged){if(!isClaudeAISubscriber())return!1;if(isFastMode)return!0;if(model===null||!has1mContext(model))return!1;let m=model.toLowerCase().replace(/\[1m\]$/,"").trim(),isOpus=m==="opus"||m.includes("opus-4-6")||m.includes("opus-4-7")||m.includes("opus-4-8"),isSonnet46=m==="sonnet"||m.includes("sonnet-4-6");if(isOpus&&isOpus1mMerged)return!1;return isOpus||isSonnet46}var init_extraUsage=__esm(()=>{init_auth5();init_context()});var exports_ClaudeMdExternalIncludesDialog={};__export(exports_ClaudeMdExternalIncludesDialog,{ClaudeMdExternalIncludesDialog:()=>ClaudeMdExternalIncludesDialog});import{join as join118}from"path";function acceptProject(current){return{...current,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0}}function acceptUser(current){return{...current,hasClaudeMdExternalIncludesApprovedForUser:!0,hasClaudeMdExternalIncludesWarningShownForUser:!0}}function declineProject(current){return{...current,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0}}function declineUser(current){return{...current,hasClaudeMdExternalIncludesApprovedForUser:!1,hasClaudeMdExternalIncludesWarningShownForUser:!0}}function getUserClaudeMdDisplayPath(){return getDisplayPath(join118(getClaudeConfigHomeDir(),"CLAUDE.md"))}function ClaudeMdExternalIncludesDialog(t0){let $2=import_react_compiler_runtime129.c(18),{onDone,isStandaloneDialog,externalIncludes,scope}=t0;import_react102.default.useEffect(_temp60,[]);let handleSelection=import_react102.default.useCallback((value)=>{if(value==="no")logEvent("tengu_claude_md_external_includes_dialog_declined",{}),saveCurrentProjectConfig(scope==="User"?declineUser:declineProject);else logEvent("tengu_claude_md_external_includes_dialog_accepted",{}),saveCurrentProjectConfig(scope==="User"?acceptUser:acceptProject);onDone()},[onDone,scope]),handleEscape=import_react102.default.useCallback(()=>handleSelection("no"),[handleSelection]),title=scope==="User"?"Allow user CLAUDE.md file imports?":"Allow external CLAUDE.md file imports?",description=scope==="User"?jsxDEV(ThemedText,{children:["Your user CLAUDE.md (",getUserClaudeMdDisplayPath(),") imports files outside the current working directory."]},void 0,!0,void 0,this):jsxDEV(ThemedText,{children:"This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories."},void 0,!1,void 0,this);return jsxDEV(Dialog,{title,color:"warning",onCancel:handleEscape,hideBorder:!isStandaloneDialog,hideInputGuide:!isStandaloneDialog,children:[description,externalIncludes&&externalIncludes.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{dimColor:!0,children:"External imports:"},void 0,!1,void 0,this),externalIncludes.map((include,i3)=>jsxDEV(ThemedText,{dimColor:!0,children:[" ",include.path]},i3,!0,void 0,this))]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["Important: Only use Claude Code with files you trust. Accessing untrusted files may pose security risks"," ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/security"},void 0,!1,void 0,this)," "]},void 0,!0,void 0,this),jsxDEV(Select,{options:[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],onChange:(value)=>handleSelection(value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function _temp60(){logEvent("tengu_claude_md_includes_dialog_shown",{})}var import_react_compiler_runtime129,import_react102;var init_ClaudeMdExternalIncludesDialog=__esm(()=>{init_ink2();init_config();init_envUtils();init_file();init_CustomSelect();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime129=__toESM(require_dist4(),1),import_react102=__toESM(require_react_production(),1)});function ChannelDowngradeDialog(t0){let $2=import_react_compiler_runtime130.c(17),{currentVersion,onChoice}=t0,t1;if($2[0]!==onChoice)t1=function(value){onChoice(value)},$2[0]=onChoice,$2[1]=t1;else t1=$2[1];let handleSelect=t1,t2;if($2[2]!==onChoice)t2=function(){onChoice("cancel")},$2[2]=onChoice,$2[3]=t2;else t2=$2[3];let handleCancel=t2,t3;if($2[4]!==currentVersion)t3=jsxDEV(ThemedText,{children:["The stable channel may have an older version than what you're currently running (",currentVersion,")."]},void 0,!0,void 0,this),$2[4]=currentVersion,$2[5]=t3;else t3=$2[5];let t4;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{dimColor:!0,children:"How would you like to handle this?"},void 0,!1,void 0,this),$2[6]=t4;else t4=$2[6];let t5;if($2[7]===Symbol.for("react.memo_cache_sentinel"))t5={label:"Allow possible downgrade to stable version",value:"downgrade"},$2[7]=t5;else t5=$2[7];let t6=`Stay on current version (${currentVersion}) until stable catches up`,t7;if($2[8]!==t6)t7=[t5,{label:t6,value:"stay"}],$2[8]=t6,$2[9]=t7;else t7=$2[9];let t8;if($2[10]!==handleSelect||$2[11]!==t7)t8=jsxDEV(Select,{options:t7,onChange:handleSelect},void 0,!1,void 0,this),$2[10]=handleSelect,$2[11]=t7,$2[12]=t8;else t8=$2[12];let t9;if($2[13]!==handleCancel||$2[14]!==t3||$2[15]!==t8)t9=jsxDEV(Dialog,{title:"Switch to Stable Channel",onCancel:handleCancel,color:"permission",hideBorder:!0,hideInputGuide:!0,children:[t3,t4,t8]},void 0,!0,void 0,this),$2[13]=handleCancel,$2[14]=t3,$2[15]=t8,$2[16]=t9;else t9=$2[16];return t9}var import_react_compiler_runtime130;var init_ChannelDowngradeDialog=__esm(()=>{init_ink2();init_CustomSelect();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime130=__toESM(require_dist4(),1)});function mapConfigsToOptions(styles5){return Object.entries(styles5).map(([style,config3])=>({label:config3?.name??DEFAULT_OUTPUT_STYLE_LABEL,value:style,description:config3?.description??DEFAULT_OUTPUT_STYLE_DESCRIPTION}))}function OutputStylePicker(t0){let $2=import_react_compiler_runtime131.c(16),{initialStyle,onComplete,onCancel,isStandaloneCommand}=t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=[],$2[0]=t1;else t1=$2[0];let[styleOptions,setStyleOptions]=import_react103.useState(t1),[isLoading,setIsLoading]=import_react103.useState(!0),t2,t3;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t2=()=>{getAllOutputStyles(getCwd()).then((allStyles)=>{let options2=mapConfigsToOptions(allStyles);setStyleOptions(options2),setIsLoading(!1)}).catch(()=>{let builtInOptions=mapConfigsToOptions(OUTPUT_STYLE_CONFIG);setStyleOptions(builtInOptions),setIsLoading(!1)})},t3=[],$2[1]=t2,$2[2]=t3;else t2=$2[1],t3=$2[2];import_react103.useEffect(t2,t3);let t4;if($2[3]!==onComplete)t4=(style)=>{onComplete(style)},$2[3]=onComplete,$2[4]=t4;else t4=$2[4];let handleStyleSelect=t4,t5=!isStandaloneCommand,t6=!isStandaloneCommand,t7;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:"This changes how Claudio communicates with you"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[5]=t7;else t7=$2[5];let t8;if($2[6]!==handleStyleSelect||$2[7]!==initialStyle||$2[8]!==isLoading||$2[9]!==styleOptions)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t7,isLoading?jsxDEV(ThemedText,{dimColor:!0,children:"Loading output styles…"},void 0,!1,void 0,this):jsxDEV(Select,{options:styleOptions,onChange:handleStyleSelect,visibleOptionCount:10,defaultValue:initialStyle},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[6]=handleStyleSelect,$2[7]=initialStyle,$2[8]=isLoading,$2[9]=styleOptions,$2[10]=t8;else t8=$2[10];let t9;if($2[11]!==onCancel||$2[12]!==t5||$2[13]!==t6||$2[14]!==t8)t9=jsxDEV(Dialog,{title:"Preferred output style",onCancel,hideInputGuide:t5,hideBorder:t6,children:t8},void 0,!1,void 0,this),$2[11]=onCancel,$2[12]=t5,$2[13]=t6,$2[14]=t8,$2[15]=t9;else t9=$2[15];return t9}var import_react_compiler_runtime131,import_react103,DEFAULT_OUTPUT_STYLE_LABEL="Default",DEFAULT_OUTPUT_STYLE_DESCRIPTION;var init_OutputStylePicker=__esm(()=>{init_outputStyles();init_ink2();init_cwd();init_select();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime131=__toESM(require_dist4(),1),import_react103=__toESM(require_react_production(),1),DEFAULT_OUTPUT_STYLE_DESCRIPTION=`${PRODUCT_DISPLAY_NAME} completes coding tasks efficiently and provides concise responses`});function LanguagePicker(t0){let $2=import_react_compiler_runtime132.c(13),{initialLanguage,onComplete,onCancel}=t0,[language,setLanguage]=import_react104.useState(initialLanguage),[cursorOffset,setCursorOffset]=import_react104.useState((initialLanguage??"").length),t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1={context:"Settings"},$2[0]=t1;else t1=$2[0];useKeybinding("confirm:no",onCancel,t1);let t2;if($2[1]!==language||$2[2]!==onComplete)t2=function(){let trimmed=language?.trim();onComplete(trimmed||void 0)},$2[1]=language,$2[2]=onComplete,$2[3]=t2;else t2=$2[3];let handleSubmit=t2,t3;if($2[4]===Symbol.for("react.memo_cache_sentinel"))t3=jsxDEV(ThemedText,{children:"Enter your preferred response and voice language:"},void 0,!1,void 0,this),$2[4]=t3;else t3=$2[4];let t4;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{children:figures_default.pointer},void 0,!1,void 0,this),$2[5]=t4;else t4=$2[5];let t5=language??"",t6;if($2[6]!==cursorOffset||$2[7]!==handleSubmit||$2[8]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,children:[t4,jsxDEV(TextInput,{value:t5,onChange:setLanguage,onSubmit:handleSubmit,focus:!0,showCursor:!0,placeholder:`e.g., Japanese, 日本語, Español${figures_default.ellipsis}`,columns:60,cursorOffset,onChangeCursorOffset:setCursorOffset},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[6]=cursorOffset,$2[7]=handleSubmit,$2[8]=t5,$2[9]=t6;else t6=$2[9];let t7;if($2[10]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedText,{dimColor:!0,children:"Leave empty for default (English)"},void 0,!1,void 0,this),$2[10]=t7;else t7=$2[10];let t8;if($2[11]!==t6)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t3,t6,t7]},void 0,!0,void 0,this),$2[11]=t6,$2[12]=t8;else t8=$2[12];return t8}var import_react_compiler_runtime132,import_react104;var init_LanguagePicker=__esm(()=>{init_figures();init_ink2();init_useKeybinding();init_TextInput();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime132=__toESM(require_dist4(),1),import_react104=__toESM(require_react_production(),1)});function SearchBox(t0){let $2=import_react_compiler_runtime133.c(17),{query:query3,placeholder:t1,isFocused,isTerminalFocused,prefix:t2,width,cursorOffset,borderless:t3}=t0,placeholder=t1===void 0?"Search…":t1,prefix=t2===void 0?"⌕":t2,borderless=t3===void 0?!1:t3,offset=cursorOffset??query3.length,t4=borderless?void 0:"round",t5=isFocused?"suggestion":void 0,t6=!isFocused,t7=borderless?0:1,t8=!isFocused,t9;if($2[0]!==isFocused||$2[1]!==isTerminalFocused||$2[2]!==offset||$2[3]!==placeholder||$2[4]!==query3)t9=isFocused?jsxDEV($Fragment,{children:query3?isTerminalFocused?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:query3.slice(0,offset)},void 0,!1,void 0,this),jsxDEV(ThemedText,{inverse:!0,children:offset<query3.length?query3[offset]:" "},void 0,!1,void 0,this),offset<query3.length&&jsxDEV(ThemedText,{children:query3.slice(offset+1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{children:query3},void 0,!1,void 0,this):isTerminalFocused?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{inverse:!0,children:placeholder.charAt(0)},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:placeholder.slice(1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this):query3?jsxDEV(ThemedText,{children:query3},void 0,!1,void 0,this):jsxDEV(ThemedText,{children:placeholder},void 0,!1,void 0,this),$2[0]=isFocused,$2[1]=isTerminalFocused,$2[2]=offset,$2[3]=placeholder,$2[4]=query3,$2[5]=t9;else t9=$2[5];let t10;if($2[6]!==prefix||$2[7]!==t8||$2[8]!==t9)t10=jsxDEV(ThemedText,{dimColor:t8,children:[prefix," ",t9]},void 0,!0,void 0,this),$2[6]=prefix,$2[7]=t8,$2[8]=t9,$2[9]=t10;else t10=$2[9];let t11;if($2[10]!==t10||$2[11]!==t4||$2[12]!==t5||$2[13]!==t6||$2[14]!==t7||$2[15]!==width)t11=jsxDEV(ThemedBox_default,{flexShrink:0,borderStyle:t4,borderColor:t5,borderDimColor:t6,paddingX:t7,width,children:t10},void 0,!1,void 0,this),$2[10]=t10,$2[11]=t4,$2[12]=t5,$2[13]=t6,$2[14]=t7,$2[15]=width,$2[16]=t11;else t11=$2[16];return t11}var import_react_compiler_runtime133;var init_SearchBox=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime133=__toESM(require_dist4(),1)});function isKillKey(e){if(e.ctrl&&(e.key==="k"||e.key==="u"||e.key==="w"))return!0;if(e.meta&&e.key==="backspace")return!0;return!1}function isYankKey(e){return(e.ctrl||e.meta)&&e.key==="y"}function useSearchInput({isActive,onExit:onExit2,onCancel,onExitUp,columns,passthroughCtrlKeys=[],initialQuery="",backspaceExitsOnEmpty=!0}){let{columns:terminalColumns}=useTerminalSize(),effectiveColumns=columns??terminalColumns,[query3,setQueryState]=import_react105.useState(initialQuery),[cursorOffset,setCursorOffset]=import_react105.useState(initialQuery.length),setQuery=import_react105.useCallback((q)=>{setQueryState(q),setCursorOffset(q.length)},[]),handleKeyDown=(e)=>{if(!isActive)return;let cursor=Cursor.fromText(query3,effectiveColumns,cursorOffset);if(e.ctrl&&passthroughCtrlKeys.includes(e.key.toLowerCase()))return;if(!isKillKey(e))resetKillAccumulation();if(!isYankKey(e))resetYankState();if(e.key==="return"||e.key==="down"){e.preventDefault(),onExit2();return}if(e.key==="up"){if(e.preventDefault(),onExitUp)onExitUp();return}if(e.key==="escape"){if(e.preventDefault(),onCancel)onCancel();else if(query3.length>0)setQueryState(""),setCursorOffset(0);else onExit2();return}if(e.key==="backspace"){if(e.preventDefault(),e.meta){let{cursor:newCursor2,killed}=cursor.deleteWordBefore();pushToKillRing(killed,"prepend"),setQueryState(newCursor2.text),setCursorOffset(newCursor2.offset);return}if(query3.length===0){if(backspaceExitsOnEmpty)(onCancel??onExit2)();return}let newCursor=cursor.backspace();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}if(e.key==="delete"){e.preventDefault();let newCursor=cursor.del();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}if(e.key==="left"&&(e.ctrl||e.meta||e.fn)){e.preventDefault();let newCursor=cursor.prevWord();setCursorOffset(newCursor.offset);return}if(e.key==="right"&&(e.ctrl||e.meta||e.fn)){e.preventDefault();let newCursor=cursor.nextWord();setCursorOffset(newCursor.offset);return}if(e.key==="left"){e.preventDefault();let newCursor=cursor.left();setCursorOffset(newCursor.offset);return}if(e.key==="right"){e.preventDefault();let newCursor=cursor.right();setCursorOffset(newCursor.offset);return}if(e.key==="home"){e.preventDefault(),setCursorOffset(0);return}if(e.key==="end"){e.preventDefault(),setCursorOffset(query3.length);return}if(e.ctrl){switch(e.preventDefault(),e.key.toLowerCase()){case"a":setCursorOffset(0);return;case"e":setCursorOffset(query3.length);return;case"b":setCursorOffset(cursor.left().offset);return;case"f":setCursorOffset(cursor.right().offset);return;case"d":{if(query3.length===0){(onCancel??onExit2)();return}let newCursor=cursor.del();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"h":{if(query3.length===0){if(backspaceExitsOnEmpty)(onCancel??onExit2)();return}let newCursor=cursor.backspace();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"k":{let{cursor:newCursor,killed}=cursor.deleteToLineEnd();pushToKillRing(killed,"append"),setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"u":{let{cursor:newCursor,killed}=cursor.deleteToLineStart();pushToKillRing(killed,"prepend"),setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"w":{let{cursor:newCursor,killed}=cursor.deleteWordBefore();pushToKillRing(killed,"prepend"),setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"y":{let text2=getLastKill();if(text2.length>0){let startOffset=cursor.offset,newCursor=cursor.insert(text2);recordYank(startOffset,text2.length),setQueryState(newCursor.text),setCursorOffset(newCursor.offset)}return}case"g":case"c":if(onCancel){onCancel();return}}return}if(e.meta){switch(e.preventDefault(),e.key.toLowerCase()){case"b":setCursorOffset(cursor.prevWord().offset);return;case"f":setCursorOffset(cursor.nextWord().offset);return;case"d":{let newCursor=cursor.deleteWordAfter();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"y":{let popResult=yankPop();if(popResult){let{text:text2,start,length}=popResult,before=query3.slice(0,start),after=query3.slice(start+length),newText=before+text2+after,newOffset=start+text2.length;updateYankLength(text2.length),setQueryState(newText),setCursorOffset(newOffset)}return}}return}if(e.key==="tab")return;if(e.key.length>=1&&!UNHANDLED_SPECIAL_KEYS.has(e.key)){e.preventDefault();let newCursor=cursor.insert(e.key);setQueryState(newCursor.text),setCursorOffset(newCursor.offset)}};return use_input_default((_input,_key,event)=>{handleKeyDown(new KeyboardEvent(event.keypress))},{isActive}),{query:query3,setQuery,cursorOffset,handleKeyDown}}var import_react105,UNHANDLED_SPECIAL_KEYS;var init_useSearchInput=__esm(()=>{init_keyboard_event();init_ink2();init_Cursor();init_useTerminalSize();import_react105=__toESM(require_react_production(),1);UNHANDLED_SPECIAL_KEYS=new Set(["pageup","pagedown","insert","wheelup","wheeldown","mouse","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12"])});function getDefaultPermissionModeOptions(showAutoInDefaultModePicker){let priorityOrder=["default","plan"],allModes=PERMISSION_MODES,excluded=["bypassPermissions","fullAccess"];if(!showAutoInDefaultModePicker)excluded.push("auto");return[...priorityOrder,...allModes.filter((mode)=>!priorityOrder.includes(mode)&&!excluded.includes(mode))]}var init_defaultPermissionModeOptions=__esm(()=>{init_PermissionMode()});function Config({onClose,context,setTabsHidden,onIsSearchModeChange,contentHeight}){let{headerFocused,focusHeader}=useTabHeaderFocus(),insideModal=useIsInsideModal(),[,setTheme]=useTheme(),themeSetting=useThemeSetting(),[globalConfig2,setGlobalConfig]=import_react106.useState(getGlobalConfig()),initialConfig=React57.useRef(getGlobalConfig()),[settingsData,setSettingsData]=import_react106.useState(getInitialSettings()),initialSettingsData=React57.useRef(getInitialSettings()),[currentOutputStyle,setCurrentOutputStyle]=import_react106.useState(settingsData?.outputStyle||DEFAULT_OUTPUT_STYLE_NAME),initialOutputStyle=React57.useRef(currentOutputStyle),[currentLanguage,setCurrentLanguage]=import_react106.useState(settingsData?.language),initialLanguage=React57.useRef(currentLanguage),[selectedIndex,setSelectedIndex]=import_react106.useState(0),[scrollOffset,setScrollOffset]=import_react106.useState(0),[isSearchMode,setIsSearchMode]=import_react106.useState(!0),isTerminalFocused=useTerminalFocus(),{rows}=useTerminalSize(),paneCap=contentHeight??Math.min(Math.floor(rows*0.8),30),maxVisible=Math.max(5,paneCap-10),mainLoopModel=useAppState((s)=>s.mainLoopModel),verbose=useAppState((s_0)=>s_0.verbose),thinkingEnabled=useAppState((s_1)=>s_1.thinkingEnabled),isFastMode=useAppState((s_2)=>isFastModeEnabled()?s_2.fastMode:!1),promptSuggestionEnabled=useAppState((s_3)=>s_3.promptSuggestionEnabled),showAutoInDefaultModePicker=hasAutoModeOptInAnySource()||getAutoModeEnabledState()==="enabled",showDefaultViewPicker=!1,setAppState=useSetAppState(),[changes,setChanges]=import_react106.useState({}),initialThinkingEnabled=React57.useRef(thinkingEnabled),[initialLocalSettings]=import_react106.useState(()=>getSettingsForSource("localSettings")),[initialUserSettings]=import_react106.useState(()=>getSettingsForSource("userSettings")),initialThemeSetting=React57.useRef(themeSetting),store=useAppStateStore(),[initialAppState]=import_react106.useState(()=>{let s_4=store.getState();return{mainLoopModel:s_4.mainLoopModel,mainLoopModelForSession:s_4.mainLoopModelForSession,verbose:s_4.verbose,thinkingEnabled:s_4.thinkingEnabled,fastMode:s_4.fastMode,promptSuggestionEnabled:s_4.promptSuggestionEnabled,isBriefOnly:s_4.isBriefOnly,replBridgeEnabled:s_4.replBridgeEnabled,replBridgeOutboundOnly:s_4.replBridgeOutboundOnly,settings:s_4.settings}}),[initialUserMsgOptIn]=import_react106.useState(()=>getUserMsgOptIn()),isDirty2=React57.useRef(!1),[showThinkingWarning,setShowThinkingWarning]=import_react106.useState(!1),[showSubmenu,setShowSubmenu]=import_react106.useState(null),{query:searchQuery,setQuery:setSearchQuery,cursorOffset:searchCursorOffset}=useSearchInput({isActive:isSearchMode&&showSubmenu===null&&!headerFocused,onExit:()=>setIsSearchMode(!1),onExitUp:focusHeader,passthroughCtrlKeys:["c","d"]}),ownsEsc=isSearchMode&&!headerFocused;React57.useEffect(()=>{onIsSearchModeChange?.(ownsEsc)},[ownsEsc,onIsSearchModeChange]);let isConnectedToIde=hasAccessToIDEExtensionDiffFeature(context.options.mcpClients),isFileCheckpointingAvailable=!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING),memoryFiles=React57.use(getMemoryFiles(!0));function getPendingExternalIncludesScope(){let cfg=getCurrentProjectConfig();if(!cfg.hasClaudeMdExternalIncludesApproved&&!cfg.hasClaudeMdExternalIncludesWarningShown&&hasExternalClaudeMdIncludes(memoryFiles,["Project","Local"]))return"Project";if(!cfg.hasClaudeMdExternalIncludesApprovedForUser&&!cfg.hasClaudeMdExternalIncludesWarningShownForUser&&hasExternalClaudeMdIncludes(memoryFiles,["User"]))return"User";return null}let pendingScope=getPendingExternalIncludesScope(),shouldShowExternalIncludesToggle=pendingScope!==null,autoUpdaterDisabledReason=getAutoUpdaterDisabledReason();function onChangeMainModelConfig(value){logEvent("tengu_config_model_changed",{from_model:mainLoopModel,to_model:value}),setAppState((prev)=>({...prev,mainLoopModel:value,mainLoopModelForSession:null})),setChanges((prev_0)=>{let valStr=modelDisplayString(value)+(isBilledAsExtraUsage(value,!1,isOpus1mMergeEnabled())?" · Billed as extra usage":"");if("model"in prev_0){let{model,...rest}=prev_0;return{...rest,model:valStr}}return{...prev_0,model:valStr}})}function onChangeVerbose(value_0){saveGlobalConfig((current)=>({...current,verbose:value_0})),setGlobalConfig({...getGlobalConfig(),verbose:value_0}),setAppState((prev_1)=>({...prev_1,verbose:value_0})),setChanges((prev_2)=>{if("verbose"in prev_2){let{verbose:verbose_0,...rest_0}=prev_2;return rest_0}return{...prev_2,verbose:value_0}})}let settingsItems=[{id:"autoCompactEnabled",label:"Auto-compact",value:globalConfig2.autoCompactEnabled,type:"boolean",onChange(autoCompactEnabled){saveGlobalConfig((current_0)=>({...current_0,autoCompactEnabled})),setGlobalConfig({...getGlobalConfig(),autoCompactEnabled}),logEvent("tengu_auto_compact_setting_changed",{enabled:autoCompactEnabled})}},{id:"maxMessagesCompactionThreshold",label:"Message-count compaction",value:normalizeMaxMessagesCompactionThreshold(globalConfig2.maxMessagesCompactionThreshold),options:[...MAX_MESSAGES_COMPACTION_THRESHOLDS],type:"enum",onChange(maxMessagesCompactionThreshold){let normalizedThreshold=normalizeMaxMessagesCompactionThreshold(maxMessagesCompactionThreshold);saveGlobalConfig((current)=>({...current,maxMessagesCompactionThreshold:normalizedThreshold})),setGlobalConfig({...getGlobalConfig(),maxMessagesCompactionThreshold:normalizedThreshold}),logEvent("tengu_max_messages_compaction_threshold_changed",{threshold:normalizedThreshold})}},{id:"toolHistoryCompressionEnabled",label:"Tool history compression",value:globalConfig2.toolHistoryCompressionEnabled,type:"boolean",onChange(toolHistoryCompressionEnabled){saveGlobalConfig((current)=>({...current,toolHistoryCompressionEnabled})),setGlobalConfig({...getGlobalConfig(),toolHistoryCompressionEnabled}),logEvent("tengu_tool_history_compression_setting_changed",{enabled:toolHistoryCompressionEnabled})}},{id:"contextCollapseEnabled",label:"Context collapse (lossy)",value:globalConfig2.contextCollapseEnabled,type:"boolean",onChange(contextCollapseEnabled){saveGlobalConfig((current_cc)=>({...current_cc,contextCollapseEnabled})),setGlobalConfig({...getGlobalConfig(),contextCollapseEnabled});try{(init_contextCollapse(),__toCommonJS(exports_contextCollapse)).initContextCollapse()}catch(error41){logError(`Failed to refresh context collapse state: ${error41}`)}logEvent("tengu_context_collapse_setting_changed",{enabled:contextCollapseEnabled})}},{id:"showCacheStats",label:"Cache stats display",value:globalConfig2.showCacheStats,options:["off","compact","full"],type:"enum",onChange(mode){let showCacheStats=mode==="off"||mode==="compact"||mode==="full"?mode:"compact";saveGlobalConfig((current_cs)=>({...current_cs,showCacheStats})),setGlobalConfig({...getGlobalConfig(),showCacheStats}),logEvent("tengu_show_cache_stats_setting_changed",{mode:showCacheStats})}},{id:"spinnerTipsEnabled",label:"Show tips",value:settingsData?.spinnerTipsEnabled??!0,type:"boolean",onChange(spinnerTipsEnabled){updateSettingsForSource("localSettings",{spinnerTipsEnabled}),setSettingsData((prev_3)=>({...prev_3,spinnerTipsEnabled})),logEvent("tengu_tips_setting_changed",{enabled:spinnerTipsEnabled})}},{id:"prefersReducedMotion",label:"Reduce motion",value:settingsData?.prefersReducedMotion??!1,type:"boolean",onChange(prefersReducedMotion){updateSettingsForSource("localSettings",{prefersReducedMotion}),setSettingsData((prev_4)=>({...prev_4,prefersReducedMotion})),setAppState((prev_5)=>({...prev_5,settings:{...prev_5.settings,prefersReducedMotion}})),logEvent("tengu_reduce_motion_setting_changed",{enabled:prefersReducedMotion})}},{id:"thinkingEnabled",label:"Thinking mode",value:thinkingEnabled??!0,type:"boolean",onChange(enabled2){setAppState((prev_6)=>({...prev_6,thinkingEnabled:enabled2})),updateSettingsForSource("userSettings",{alwaysThinkingEnabled:enabled2?void 0:!1}),logEvent("tengu_thinking_toggled",{enabled:enabled2})}},...isFastModeEnabled()&&isFastModeAvailable()?[{id:"fastMode",label:`Fast mode (${FAST_MODE_MODEL_DISPLAY} only)`,value:!!isFastMode,type:"boolean",onChange(enabled_0){if(clearFastModeCooldown(),updateSettingsForSource("userSettings",{fastMode:enabled_0?!0:void 0}),enabled_0)setAppState((prev_7)=>({...prev_7,mainLoopModel:getFastModeModel(),mainLoopModelForSession:null,fastMode:!0})),setChanges((prev_8)=>({...prev_8,model:getFastModeModel(),"Fast mode":"ON"}));else setAppState((prev_9)=>({...prev_9,fastMode:!1})),setChanges((prev_10)=>({...prev_10,"Fast mode":"OFF"}))}}]:[],...getFeatureValue_CACHED_MAY_BE_STALE("tengu_chomp_inflection",!1)?[{id:"promptSuggestionEnabled",label:"Prompt suggestions",value:promptSuggestionEnabled,type:"boolean",onChange(enabled_1){setAppState((prev_11)=>({...prev_11,promptSuggestionEnabled:enabled_1})),updateSettingsForSource("userSettings",{promptSuggestionEnabled:enabled_1?void 0:!1})}}]:[],...isFileCheckpointingAvailable?[{id:"fileCheckpointingEnabled",label:"Rewind code (checkpoints)",value:globalConfig2.fileCheckpointingEnabled,type:"boolean",onChange(enabled_3){saveGlobalConfig((current_2)=>({...current_2,fileCheckpointingEnabled:enabled_3})),setGlobalConfig({...getGlobalConfig(),fileCheckpointingEnabled:enabled_3}),logEvent("tengu_file_history_snapshots_setting_changed",{enabled:enabled_3})}}]:[],{id:"verbose",label:"Verbose output",value:verbose,type:"boolean",onChange:onChangeVerbose},{id:"terminalProgressBarEnabled",label:"Terminal progress bar",value:globalConfig2.terminalProgressBarEnabled,type:"boolean",onChange(terminalProgressBarEnabled){saveGlobalConfig((current_3)=>({...current_3,terminalProgressBarEnabled})),setGlobalConfig({...getGlobalConfig(),terminalProgressBarEnabled}),logEvent("tengu_terminal_progress_bar_setting_changed",{enabled:terminalProgressBarEnabled})}},{id:"defaultStatusLineEnabled",label:"Default status line",value:globalConfig2.defaultStatusLineEnabled??!0,type:"boolean",onChange(defaultStatusLineEnabled){saveGlobalConfig((current)=>({...current,defaultStatusLineEnabled})),setGlobalConfig({...getGlobalConfig(),defaultStatusLineEnabled}),logEvent("tengu_default_status_line_setting_changed",{enabled:defaultStatusLineEnabled})}},...getFeatureValue_CACHED_MAY_BE_STALE("tengu_terminal_sidebar",!1)?[{id:"showStatusInTerminalTab",label:"Show status in terminal tab",value:globalConfig2.showStatusInTerminalTab??!1,type:"boolean",onChange(showStatusInTerminalTab){saveGlobalConfig((current_4)=>({...current_4,showStatusInTerminalTab})),setGlobalConfig({...getGlobalConfig(),showStatusInTerminalTab}),logEvent("tengu_terminal_tab_status_setting_changed",{enabled:showStatusInTerminalTab})}}]:[],{id:"showTurnDuration",label:"Show turn duration",value:globalConfig2.showTurnDuration,type:"boolean",onChange(showTurnDuration){saveGlobalConfig((current_5)=>({...current_5,showTurnDuration})),setGlobalConfig({...getGlobalConfig(),showTurnDuration}),logEvent("tengu_show_turn_duration_setting_changed",{enabled:showTurnDuration})}},{id:"defaultPermissionMode",label:"Default permission mode",value:settingsData?.permissions?.defaultMode||"default",options:getDefaultPermissionModeOptions(showAutoInDefaultModePicker),type:"enum",onChange(mode){let parsedMode=permissionModeFromString(mode),validatedMode=isExternalPermissionMode(parsedMode)?toExternalPermissionMode(parsedMode):parsedMode,result=updateSettingsForSource("userSettings",{permissions:{...settingsData?.permissions,defaultMode:validatedMode}});if(result.error){logError(result.error);return}setSettingsData((prev_12)=>({...prev_12,permissions:{...prev_12?.permissions,defaultMode:validatedMode}})),setChanges((prev_13)=>({...prev_13,defaultPermissionMode:mode})),logEvent("tengu_config_changed",{setting:"defaultPermissionMode",value:mode})}},...showAutoInDefaultModePicker?[{id:"useAutoModeDuringPlan",label:"Use auto mode during plan",value:settingsData?.useAutoModeDuringPlan??!0,type:"boolean",onChange(useAutoModeDuringPlan){updateSettingsForSource("userSettings",{useAutoModeDuringPlan}),setSettingsData((prev_14)=>({...prev_14,useAutoModeDuringPlan})),setAppState((prev_15)=>{let next=transitionPlanAutoMode(prev_15.toolPermissionContext);if(next===prev_15.toolPermissionContext)return prev_15;return{...prev_15,toolPermissionContext:next}}),setChanges((prev_16)=>({...prev_16,"Use auto mode during plan":useAutoModeDuringPlan}))}}]:[],{id:"respectGitignore",label:"Respect .gitignore in file picker",value:globalConfig2.respectGitignore,type:"boolean",onChange(respectGitignore){saveGlobalConfig((current_6)=>({...current_6,respectGitignore})),setGlobalConfig({...getGlobalConfig(),respectGitignore}),logEvent("tengu_respect_gitignore_setting_changed",{enabled:respectGitignore})}},{id:"copyFullResponse",label:"Always copy full response (skip /copy picker)",value:globalConfig2.copyFullResponse,type:"boolean",onChange(copyFullResponse){saveGlobalConfig((current_7)=>({...current_7,copyFullResponse})),setGlobalConfig({...getGlobalConfig(),copyFullResponse}),logEvent("tengu_config_changed",{setting:"copyFullResponse",value:String(copyFullResponse)})}},...isFullscreenEnvEnabled()?[{id:"copyOnSelect",label:"Copy on select",value:globalConfig2.copyOnSelect??!0,type:"boolean",onChange(copyOnSelect){saveGlobalConfig((current_8)=>({...current_8,copyOnSelect})),setGlobalConfig({...getGlobalConfig(),copyOnSelect}),logEvent("tengu_config_changed",{setting:"copyOnSelect",value:String(copyOnSelect)})}}]:[],{id:"flickerFreeMode",label:"Flicker-free mode",value:globalConfig2.flickerFreeMode??process.env.USER_TYPE==="ant",type:"boolean",onChange(flickerFreeMode){saveGlobalConfig((current)=>({...current,flickerFreeMode})),setGlobalConfig({...getGlobalConfig(),flickerFreeMode}),logEvent("tengu_config_changed",{setting:"flickerFreeMode",value:String(flickerFreeMode)})}},autoUpdaterDisabledReason?{id:"autoUpdatesChannel",label:"Auto-update channel",value:"disabled",type:"managedEnum",onChange(){}}:{id:"autoUpdatesChannel",label:"Auto-update channel",value:settingsData?.autoUpdatesChannel??"latest",type:"managedEnum",onChange(){}},{id:"theme",label:"Theme",value:themeSetting,type:"managedEnum",onChange:setTheme},{id:"notifChannel",label:"Notifications",value:globalConfig2.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","ghostty","notifications_disabled"],type:"enum",onChange(notifChannel){saveGlobalConfig((current_9)=>({...current_9,preferredNotifChannel:notifChannel})),setGlobalConfig({...getGlobalConfig(),preferredNotifChannel:notifChannel})}},{id:"outputStyle",label:"Output style",value:currentOutputStyle,type:"managedEnum",onChange:()=>{}},{id:"language",label:"Language",value:currentLanguage??"Default (English)",type:"managedEnum",onChange:()=>{}},{id:"editorMode",label:"Editor mode",value:globalConfig2.editorMode==="emacs"?"normal":globalConfig2.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(value_1){saveGlobalConfig((current_13)=>({...current_13,editorMode:value_1})),setGlobalConfig({...getGlobalConfig(),editorMode:value_1}),logEvent("tengu_editor_mode_changed",{mode:value_1,source:"config_panel"})}},{id:"prStatusFooterEnabled",label:"Show PR status footer",value:globalConfig2.prStatusFooterEnabled??!0,type:"boolean",onChange(enabled_4){saveGlobalConfig((current_14)=>{if(current_14.prStatusFooterEnabled===enabled_4)return current_14;return{...current_14,prStatusFooterEnabled:enabled_4}}),setGlobalConfig({...getGlobalConfig(),prStatusFooterEnabled:enabled_4}),logEvent("tengu_pr_status_footer_setting_changed",{enabled:enabled_4})}},{id:"model",label:"Model",value:mainLoopModel===null?"Default (recommended)":mainLoopModel,type:"managedEnum",onChange:onChangeMainModelConfig},{id:"compactModel",label:"Compaction model",value:compactModelDisplayString(globalConfig2.compactModel),type:"managedEnum",onChange(){}},...isConnectedToIde?[{id:"diffTool",label:"Diff tool",value:globalConfig2.diffTool??"auto",options:["terminal","auto"],type:"enum",onChange(diffTool){saveGlobalConfig((current_15)=>({...current_15,diffTool})),setGlobalConfig({...getGlobalConfig(),diffTool}),logEvent("tengu_diff_tool_changed",{tool:diffTool,source:"config_panel"})}}]:[],...!isSupportedTerminal()?[{id:"autoConnectIde",label:"Auto-connect to IDE (external terminal)",value:globalConfig2.autoConnectIde??!1,type:"boolean",onChange(autoConnectIde){saveGlobalConfig((current_16)=>({...current_16,autoConnectIde})),setGlobalConfig({...getGlobalConfig(),autoConnectIde}),logEvent("tengu_auto_connect_ide_changed",{enabled:autoConnectIde,source:"config_panel"})}}]:[],...isSupportedTerminal()?[{id:"autoInstallIdeExtension",label:"Auto-install IDE extension",value:globalConfig2.autoInstallIdeExtension??!0,type:"boolean",onChange(autoInstallIdeExtension){saveGlobalConfig((current_17)=>({...current_17,autoInstallIdeExtension})),setGlobalConfig({...getGlobalConfig(),autoInstallIdeExtension}),logEvent("tengu_auto_install_ide_extension_changed",{enabled:autoInstallIdeExtension,source:"config_panel"})}}]:[],{id:"claudeInChromeDefaultEnabled",label:"Claude in Chrome enabled by default",value:globalConfig2.claudeInChromeDefaultEnabled??!0,type:"boolean",onChange(enabled_5){saveGlobalConfig((current_18)=>({...current_18,claudeInChromeDefaultEnabled:enabled_5})),setGlobalConfig({...getGlobalConfig(),claudeInChromeDefaultEnabled:enabled_5}),logEvent("tengu_claude_in_chrome_setting_changed",{enabled:enabled_5})}},...isAgentSwarmsEnabled()?(()=>{let cliOverride=getCliTeammateModeOverride();return[{id:"teammateMode",label:cliOverride?`Teammate mode [overridden: ${cliOverride}]`:"Teammate mode",value:globalConfig2.teammateMode??"auto",options:["auto","tmux","in-process"],type:"enum",onChange(mode_0){if(mode_0!=="auto"&&mode_0!=="tmux"&&mode_0!=="in-process")return;clearCliTeammateModeOverride(mode_0),saveGlobalConfig((current_19)=>({...current_19,teammateMode:mode_0})),setGlobalConfig({...getGlobalConfig(),teammateMode:mode_0}),logEvent("tengu_teammate_mode_changed",{mode:mode_0})}},{id:"teammateDefaultModel",label:"Default teammate model",value:teammateModelDisplayString(globalConfig2.teammateDefaultModel),type:"managedEnum",onChange(){}}]})():[],...shouldShowExternalIncludesToggle?[{id:"showExternalIncludesDialog",label:pendingScope==="User"?"User CLAUDE.md external includes":"External CLAUDE.md includes",value:(()=>{return getCurrentProjectConfig()[pendingScope==="User"?"hasClaudeMdExternalIncludesApprovedForUser":"hasClaudeMdExternalIncludesApproved"]?"true":"false"})(),type:"managedEnum",onChange(){}}]:[],...process.env.ANTHROPIC_API_KEY&&!isRunningOnHomespace()?[{id:"apiKey",label:jsxDEV(ThemedText,{children:["Use custom API key:"," ",jsxDEV(ThemedText,{bold:!0,children:normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),searchText:"Use custom API key",value:Boolean(process.env.ANTHROPIC_API_KEY&&globalConfig2.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY))),type:"boolean",onChange(useCustomKey){saveGlobalConfig((current_22)=>{let updated={...current_22};if(!updated.customApiKeyResponses)updated.customApiKeyResponses={approved:[],rejected:[]};if(!updated.customApiKeyResponses.approved)updated.customApiKeyResponses={...updated.customApiKeyResponses,approved:[]};if(!updated.customApiKeyResponses.rejected)updated.customApiKeyResponses={...updated.customApiKeyResponses,rejected:[]};if(process.env.ANTHROPIC_API_KEY){let truncatedKey=normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);if(useCustomKey)updated.customApiKeyResponses={...updated.customApiKeyResponses,approved:[...(updated.customApiKeyResponses.approved??[]).filter((k)=>k!==truncatedKey),truncatedKey],rejected:(updated.customApiKeyResponses.rejected??[]).filter((k_0)=>k_0!==truncatedKey)};else updated.customApiKeyResponses={...updated.customApiKeyResponses,approved:(updated.customApiKeyResponses.approved??[]).filter((k_1)=>k_1!==truncatedKey),rejected:[...(updated.customApiKeyResponses.rejected??[]).filter((k_2)=>k_2!==truncatedKey),truncatedKey]}}return updated}),setGlobalConfig(getGlobalConfig())}}]:[]],filteredSettingsItems=React57.useMemo(()=>{if(!searchQuery)return settingsItems;let lowerQuery=searchQuery.toLowerCase();return settingsItems.filter((setting)=>{if(setting.id.toLowerCase().includes(lowerQuery))return!0;return("searchText"in setting?setting.searchText:setting.label).toLowerCase().includes(lowerQuery)})},[settingsItems,searchQuery]);React57.useEffect(()=>{if(selectedIndex>=filteredSettingsItems.length){let newIndex=Math.max(0,filteredSettingsItems.length-1);setSelectedIndex(newIndex),setScrollOffset(Math.max(0,newIndex-maxVisible+1));return}setScrollOffset((prev_21)=>{if(selectedIndex<prev_21)return selectedIndex;if(selectedIndex>=prev_21+maxVisible)return selectedIndex-maxVisible+1;return prev_21})},[filteredSettingsItems.length,selectedIndex,maxVisible]);let adjustScrollOffset=import_react106.useCallback((newIndex_0)=>{setScrollOffset((prev_22)=>{if(newIndex_0<prev_22)return newIndex_0;if(newIndex_0>=prev_22+maxVisible)return newIndex_0-maxVisible+1;return prev_22})},[maxVisible]),handleSaveAndClose=import_react106.useCallback(()=>{if(showSubmenu!==null)return;let formattedChanges=Object.entries(changes).map(([key,value_2])=>{return logEvent("tengu_config_changed",{key,value:value_2}),`Set ${key} to ${source_default.bold(value_2)}`}),effectiveApiKey=isRunningOnHomespace()?void 0:process.env.ANTHROPIC_API_KEY,initialUsingCustomKey=Boolean(effectiveApiKey&&initialConfig.current.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(effectiveApiKey))),currentUsingCustomKey=Boolean(effectiveApiKey&&globalConfig2.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(effectiveApiKey)));if(initialUsingCustomKey!==currentUsingCustomKey)formattedChanges.push(`${currentUsingCustomKey?"Enabled":"Disabled"} custom API key`),logEvent("tengu_config_changed",{key:"env.ANTHROPIC_API_KEY",value:currentUsingCustomKey});if(globalConfig2.theme!==initialConfig.current.theme)formattedChanges.push(`Set theme to ${source_default.bold(globalConfig2.theme)}`);if(globalConfig2.preferredNotifChannel!==initialConfig.current.preferredNotifChannel)formattedChanges.push(`Set notifications to ${source_default.bold(globalConfig2.preferredNotifChannel)}`);if(currentOutputStyle!==initialOutputStyle.current)formattedChanges.push(`Set output style to ${source_default.bold(currentOutputStyle)}`);if(currentLanguage!==initialLanguage.current)formattedChanges.push(`Set response language to ${source_default.bold(currentLanguage??"Default (English)")}`);if(globalConfig2.editorMode!==initialConfig.current.editorMode)formattedChanges.push(`Set editor mode to ${source_default.bold(globalConfig2.editorMode||"emacs")}`);if(globalConfig2.diffTool!==initialConfig.current.diffTool)formattedChanges.push(`Set diff tool to ${source_default.bold(globalConfig2.diffTool)}`);if(globalConfig2.autoConnectIde!==initialConfig.current.autoConnectIde)formattedChanges.push(`${globalConfig2.autoConnectIde?"Enabled":"Disabled"} auto-connect to IDE`);if(globalConfig2.autoInstallIdeExtension!==initialConfig.current.autoInstallIdeExtension)formattedChanges.push(`${globalConfig2.autoInstallIdeExtension?"Enabled":"Disabled"} auto-install IDE extension`);if(globalConfig2.autoCompactEnabled!==initialConfig.current.autoCompactEnabled)formattedChanges.push(`${globalConfig2.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(globalConfig2.maxMessagesCompactionThreshold!==initialConfig.current.maxMessagesCompactionThreshold){let threshold=normalizeMaxMessagesCompactionThreshold(globalConfig2.maxMessagesCompactionThreshold);formattedChanges.push(threshold==="off"?"Disabled message-count compaction":`Set message-count compaction to ${threshold}`)}if(globalConfig2.toolHistoryCompressionEnabled!==initialConfig.current.toolHistoryCompressionEnabled)formattedChanges.push(`${globalConfig2.toolHistoryCompressionEnabled?"Enabled":"Disabled"} tool history compression`);if(globalConfig2.contextCollapseEnabled!==initialConfig.current.contextCollapseEnabled)formattedChanges.push(`${globalConfig2.contextCollapseEnabled?"Enabled":"Disabled"} context collapse (lossy)`);if(globalConfig2.respectGitignore!==initialConfig.current.respectGitignore)formattedChanges.push(`${globalConfig2.respectGitignore?"Enabled":"Disabled"} respect .gitignore in file picker`);if(globalConfig2.copyFullResponse!==initialConfig.current.copyFullResponse)formattedChanges.push(`${globalConfig2.copyFullResponse?"Enabled":"Disabled"} always copy full response`);if(globalConfig2.copyOnSelect!==initialConfig.current.copyOnSelect)formattedChanges.push(`${globalConfig2.copyOnSelect?"Enabled":"Disabled"} copy on select`);if(globalConfig2.terminalProgressBarEnabled!==initialConfig.current.terminalProgressBarEnabled)formattedChanges.push(`${globalConfig2.terminalProgressBarEnabled?"Enabled":"Disabled"} terminal progress bar`);if(globalConfig2.defaultStatusLineEnabled!==initialConfig.current.defaultStatusLineEnabled)formattedChanges.push(`${globalConfig2.defaultStatusLineEnabled??!0?"Enabled":"Disabled"} default status line`);if(globalConfig2.showStatusInTerminalTab!==initialConfig.current.showStatusInTerminalTab)formattedChanges.push(`${globalConfig2.showStatusInTerminalTab?"Enabled":"Disabled"} terminal tab status`);if(globalConfig2.showTurnDuration!==initialConfig.current.showTurnDuration)formattedChanges.push(`${globalConfig2.showTurnDuration?"Enabled":"Disabled"} turn duration`);if(globalConfig2.remoteControlAtStartup!==initialConfig.current.remoteControlAtStartup){let remoteLabel=globalConfig2.remoteControlAtStartup===void 0?"Reset Remote Control to default":`${globalConfig2.remoteControlAtStartup?"Enabled":"Disabled"} Remote Control for all sessions`;formattedChanges.push(remoteLabel)}if(settingsData?.autoUpdatesChannel!==initialSettingsData.current?.autoUpdatesChannel)formattedChanges.push(`Set auto-update channel to ${source_default.bold(settingsData?.autoUpdatesChannel??"latest")}`);if(formattedChanges.length>0)onClose(formattedChanges.join(`
|
|
5095
|
+
`))}async function getCacheSharingParams(context,forkContextMessages){let appState=context.getAppState(),defaultSysPrompt=await getSystemPrompt(context.options.tools,context.options.mainLoopModel,Array.from(appState.toolPermissionContext.additionalWorkingDirectories.keys()),context.options.mcpClients),systemPrompt=buildEffectiveSystemPrompt({mainThreadAgentDefinition:void 0,toolUseContext:context,customSystemPrompt:context.options.customSystemPrompt,defaultSystemPrompt:defaultSysPrompt,appendSystemPrompt:context.options.appendSystemPrompt}),[userContext,systemContext]=await Promise.all([getUserContext(),getSystemContext()]);return{systemPrompt,userContext,systemContext,toolUseContext:context,forkContextMessages}}var reactiveCompact2=null,call13=async(args,context)=>{let{abortController}=context,{messages}=context;if(messages=getMessagesAfterCompactBoundary(messages),messages.length===0)throw Error("No messages to compact");let customInstructions=args.trim();try{if(!customInstructions){context.onCompactProgress?.({type:"hooks_start",hookType:"pre_compact"}),context.onCompactProgress?.({type:"compact_start"});try{let sessionMemoryResult=await trySessionMemoryCompaction(messages,context.agentId);if(sessionMemoryResult)return getUserContext.cache.clear?.(),runPostCompactCleanup(),notifyCompaction(context.options.querySource??"compact",context.agentId),markPostCompaction(),suppressCompactWarning(),{type:"compact",compactionResult:sessionMemoryResult,displayText:buildDisplayText(context)}}finally{context.onCompactProgress?.({type:"compact_end"})}}if(reactiveCompact2?.isReactiveOnlyMode())return await compactViaReactive(messages,context,customInstructions,reactiveCompact2);let messagesForCompact=(await microcompactMessages(messages,context)).messages,result=await compactConversation(messagesForCompact,context,await getCacheSharingParams(context,messagesForCompact),!1,customInstructions,!1);return setLastSummarizedMessageId(void 0),suppressCompactWarning(),getUserContext.cache.clear?.(),runPostCompactCleanup(),{type:"compact",compactionResult:result,displayText:buildDisplayText(context,result.userDisplayMessage)}}catch(error41){if(abortController.signal.aborted)throw Error("Compaction canceled.");else if(hasExactErrorMessage(error41,ERROR_MESSAGE_NOT_ENOUGH_MESSAGES))throw Error(ERROR_MESSAGE_NOT_ENOUGH_MESSAGES);else if(hasExactErrorMessage(error41,ERROR_MESSAGE_INCOMPLETE_RESPONSE))throw Error(ERROR_MESSAGE_INCOMPLETE_RESPONSE);else throw logError(error41),Error(`Error during compaction: ${error41}`)}};var init_compact2=__esm(()=>{init_source2();init_state();init_prompts4();init_context2();init_shortcutFormat();init_promptCacheBreakDetection();init_compact();init_compactWarningState();init_microCompact();init_postCompactCleanup();init_sessionMemoryCompact();init_sessionMemoryUtils();init_errors();init_hooks4();init_log2();init_messages3();init_contextWindowUpgradeCheck();init_systemPrompt()});var compact,compact_default;var init_compact3=__esm(()=>{init_envUtils();compact={type:"local",name:"compact",description:"Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]",isEnabled:()=>!isEnvTruthy(process.env.DISABLE_COMPACT),supportsNonInteractive:!0,argumentHint:"<optional custom summarization instructions>",load:()=>Promise.resolve().then(() => (init_compact2(),exports_compact))},compact_default=compact});function Tabs(t0){let $2=import_react_compiler_runtime126.c(25),{title,color:color3,defaultTab,children,hidden:hidden2,useFullWidth,selectedTab:controlledSelectedTab,onTabChange,banner,disableNavigation,initialHeaderFocused:t1,contentHeight,navFromContent:t2}=t0,initialHeaderFocused=t1===void 0?!0:t1,navFromContent=t2===void 0?!1:t2,{columns:terminalWidth}=useTerminalSize(),tabs=children.map(_temp57),defaultTabIndex=defaultTab?tabs.findIndex((tab)=>defaultTab===tab[0]):0,isControlled=controlledSelectedTab!==void 0,[internalSelectedTab,setInternalSelectedTab]=import_react99.useState(defaultTabIndex!==-1?defaultTabIndex:0),controlledTabIndex=isControlled?tabs.findIndex((tab_0)=>tab_0[0]===controlledSelectedTab):-1,selectedTabIndex=isControlled?controlledTabIndex!==-1?controlledTabIndex:0:internalSelectedTab,modalScrollRef=useModalScrollRef(),[headerFocused,setHeaderFocused]=import_react99.useState(initialHeaderFocused),t3;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t3=()=>setHeaderFocused(!0),$2[0]=t3;else t3=$2[0];let focusHeader=t3,t4;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t4=()=>setHeaderFocused(!1),$2[1]=t4;else t4=$2[1];let blurHeader=t4,[optInCount,setOptInCount]=import_react99.useState(0),t5;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t5=()=>{return setOptInCount(_temp215),()=>setOptInCount(_temp310)},$2[2]=t5;else t5=$2[2];let registerOptIn=t5,optedIn=optInCount>0,handleTabChange=(offset)=>{let newIndex=(selectedTabIndex+tabs.length+offset)%tabs.length,newTabId=tabs[newIndex]?.[0];if(isControlled&&onTabChange&&newTabId)onTabChange(newTabId);else setInternalSelectedTab(newIndex);setHeaderFocused(!0)},t6=!hidden2&&!disableNavigation&&headerFocused,t7;if($2[3]!==t6)t7={context:"Tabs",isActive:t6},$2[3]=t6,$2[4]=t7;else t7=$2[4];useKeybindings({"tabs:next":()=>handleTabChange(1),"tabs:previous":()=>handleTabChange(-1)},t7);let t8;if($2[5]!==headerFocused||$2[6]!==hidden2||$2[7]!==optedIn)t8=(e)=>{if(!headerFocused||!optedIn||hidden2)return;if(e.key==="down")e.preventDefault(),setHeaderFocused(!1)},$2[5]=headerFocused,$2[6]=hidden2,$2[7]=optedIn,$2[8]=t8;else t8=$2[8];let handleKeyDown=t8,t9=navFromContent&&!headerFocused&&optedIn&&!hidden2&&!disableNavigation,t10;if($2[9]!==t9)t10={context:"Tabs",isActive:t9},$2[9]=t9,$2[10]=t10;else t10=$2[10];useKeybindings({"tabs:next":()=>{handleTabChange(1),setHeaderFocused(!0)},"tabs:previous":()=>{handleTabChange(-1),setHeaderFocused(!0)}},t10);let titleWidth=title?stringWidth(title)+1:0,tabsWidth=tabs.reduce(_temp47,0),usedWidth=titleWidth+tabsWidth,spacerWidth=useFullWidth?Math.max(0,terminalWidth-usedWidth):0,contentWidth=useFullWidth?terminalWidth:void 0,T0=ThemedBox_default,t11="column",t12=0,t13=!0,t14=modalScrollRef?0:void 0,t15=!hidden2&&jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,flexShrink:modalScrollRef?0:void 0,children:[title!==void 0&&jsxDEV(ThemedText,{bold:!0,color:color3,children:title},void 0,!1,void 0,this),tabs.map((t16,i3)=>{let[id,title_0]=t16,isCurrent=selectedTabIndex===i3,hasColorCursor=color3&&isCurrent&&headerFocused;return jsxDEV(ThemedText,{backgroundColor:hasColorCursor?color3:void 0,color:hasColorCursor?"inverseText":void 0,inverse:isCurrent&&!hasColorCursor,bold:isCurrent,children:[" ",title_0," "]},id,!0,void 0,this)}),spacerWidth>0&&jsxDEV(ThemedText,{children:" ".repeat(spacerWidth)},void 0,!1,void 0,this)]},`${selectedTabIndex}-${headerFocused?"focused":"blurred"}`,!0,void 0,this),t17;if($2[11]!==children||$2[12]!==contentHeight||$2[13]!==contentWidth||$2[14]!==hidden2||$2[15]!==modalScrollRef||$2[16]!==selectedTabIndex)t17=modalScrollRef?jsxDEV(ThemedBox_default,{width:contentWidth,marginTop:hidden2?0:1,flexShrink:0,children:jsxDEV(ScrollBox_default,{ref:modalScrollRef,flexDirection:"column",flexShrink:0,children},selectedTabIndex,!1,void 0,this)},void 0,!1,void 0,this):jsxDEV(ThemedBox_default,{width:contentWidth,marginTop:hidden2?0:1,height:contentHeight,overflowY:contentHeight!==void 0?"hidden":void 0,children},void 0,!1,void 0,this),$2[11]=children,$2[12]=contentHeight,$2[13]=contentWidth,$2[14]=hidden2,$2[15]=modalScrollRef,$2[16]=selectedTabIndex,$2[17]=t17;else t17=$2[17];let t18;if($2[18]!==T0||$2[19]!==banner||$2[20]!==handleKeyDown||$2[21]!==t14||$2[22]!==t15||$2[23]!==t17)t18=jsxDEV(T0,{flexDirection:t11,tabIndex:t12,autoFocus:t13,onKeyDown:handleKeyDown,flexShrink:t14,children:[t15,banner,t17]},void 0,!0,void 0,this),$2[18]=T0,$2[19]=banner,$2[20]=handleKeyDown,$2[21]=t14,$2[22]=t15,$2[23]=t17,$2[24]=t18;else t18=$2[24];return jsxDEV(TabsContext.Provider,{value:{selectedTab:tabs[selectedTabIndex][0],width:contentWidth,headerFocused,focusHeader,blurHeader,registerOptIn},children:t18},void 0,!1,void 0,this)}function _temp47(sum,t0){let[,tabTitle]=t0;return sum+(tabTitle?stringWidth(tabTitle):0)+2+1}function _temp310(n_0){return n_0-1}function _temp215(n2){return n2+1}function _temp57(child){return[child.props.id??child.props.title,child.props.title]}function Tab(t0){let $2=import_react_compiler_runtime126.c(4),{title,id,children}=t0,{selectedTab,width}=import_react99.useContext(TabsContext),insideModal=useIsInsideModal();if(selectedTab!==(id??title))return null;let t1=insideModal?0:void 0,t2;if($2[0]!==children||$2[1]!==t1||$2[2]!==width)t2=jsxDEV(ThemedBox_default,{width,flexShrink:t1,children},void 0,!1,void 0,this),$2[0]=children,$2[1]=t1,$2[2]=width,$2[3]=t2;else t2=$2[3];return t2}function useTabsWidth(){let{width}=import_react99.useContext(TabsContext);return width}function useTabHeaderFocus(){let $2=import_react_compiler_runtime126.c(6),{headerFocused,focusHeader,blurHeader,registerOptIn}=import_react99.useContext(TabsContext),t0;if($2[0]!==registerOptIn)t0=[registerOptIn],$2[0]=registerOptIn,$2[1]=t0;else t0=$2[1];import_react99.useEffect(registerOptIn,t0);let t1;if($2[2]!==blurHeader||$2[3]!==focusHeader||$2[4]!==headerFocused)t1={headerFocused,focusHeader,blurHeader},$2[2]=blurHeader,$2[3]=focusHeader,$2[4]=headerFocused,$2[5]=t1;else t1=$2[5];return t1}var import_react_compiler_runtime126,import_react99,TabsContext;var init_Tabs=__esm(()=>{init_modalContext();init_useTerminalSize();init_ScrollBox();init_stringWidth();init_ink2();init_useKeybinding();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime126=__toESM(require_dist4(),1),import_react99=__toESM(require_react_production(),1),TabsContext=import_react99.createContext({selectedTab:void 0,width:void 0,headerFocused:!1,focusHeader:()=>{},blurHeader:()=>{},registerOptIn:()=>()=>{}})});function buildPrimarySection(){let sessionId=getSessionId(),nameValue=getCurrentSessionTitle(sessionId)??jsxDEV(ThemedText,{dimColor:!0,children:"/rename to add a name"},void 0,!1,void 0,this);return[{label:"Version",value:"0.25.1"},{label:"Session name",value:nameValue},{label:"Session ID",value:sessionId},{label:"cwd",value:getCwd()},...buildAccountProperties(),...buildAPIProviderProperties()]}function buildSecondarySection({mainLoopModel,mcp,theme,context}){return[{label:"Model",value:getModelDisplayLabel(mainLoopModel)},...buildIDEProperties(mcp.clients,context.options.ideInstallationStatus,theme),...buildMcpProperties(mcp.clients,theme),...buildSandboxProperties(),...buildSettingSourcesProperties()]}async function buildDiagnostics(){return[...await buildInstallationDiagnostics(),...await buildInstallationHealthDiagnostics(),...await buildMemoryDiagnostics()]}function PropertyValue(t0){let $2=import_react_compiler_runtime127.c(8),{value}=t0;if(Array.isArray(value)){let t1;if($2[0]!==value){let t22;if($2[2]!==value.length)t22=(item,i3)=>jsxDEV(ThemedText,{children:[item,i3<value.length-1?",":""]},i3,!0,void 0,this),$2[2]=value.length,$2[3]=t22;else t22=$2[3];t1=value.map(t22),$2[0]=value,$2[1]=t1}else t1=$2[1];let t2;if($2[4]!==t1)t2=jsxDEV(ThemedBox_default,{flexWrap:"wrap",columnGap:1,flexShrink:99,children:t1},void 0,!1,void 0,this),$2[4]=t1,$2[5]=t2;else t2=$2[5];return t2}if(typeof value==="string"){let t1;if($2[6]!==value)t1=jsxDEV(ThemedText,{children:value},void 0,!1,void 0,this),$2[6]=value,$2[7]=t1;else t1=$2[7];return t1}return value}function Status(t0){let $2=import_react_compiler_runtime127.c(20),{context,diagnosticsPromise}=t0,mainLoopModel=useAppState(_temp58),mcp=useAppState(_temp216),[theme]=useTheme(),t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=buildPrimarySection(),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==context||$2[2]!==mainLoopModel||$2[3]!==mcp||$2[4]!==theme)t2=buildSecondarySection({mainLoopModel,mcp,theme,context}),$2[1]=context,$2[2]=mainLoopModel,$2[3]=mcp,$2[4]=theme,$2[5]=t2;else t2=$2[5];let t3;if($2[6]!==t2)t3=[t1,t2],$2[6]=t2,$2[7]=t3;else t3=$2[7];let sections=t3,grow=useIsInsideModal()?1:void 0,t4;if($2[8]!==sections)t4=sections.map(_temp410),$2[8]=sections,$2[9]=t4;else t4=$2[9];let t5;if($2[10]!==diagnosticsPromise)t5=jsxDEV(import_react100.Suspense,{fallback:null,children:jsxDEV(Diagnostics,{promise:diagnosticsPromise},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[10]=diagnosticsPromise,$2[11]=t5;else t5=$2[11];let t6;if($2[12]!==grow||$2[13]!==t4||$2[14]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,flexGrow:grow,children:[t4,t5]},void 0,!0,void 0,this),$2[12]=grow,$2[13]=t4,$2[14]=t5,$2[15]=t6;else t6=$2[15];let t7;if($2[16]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[16]=t7;else t7=$2[16];let t8;if($2[17]!==grow||$2[18]!==t6)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",flexGrow:grow,children:[t6,t7]},void 0,!0,void 0,this),$2[17]=grow,$2[18]=t6,$2[19]=t8;else t8=$2[19];return t8}function _temp410(properties,i3){return properties.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:properties.map(_temp311)},i3,!1,void 0,this)}function _temp311(t0,j){let{label,value}=t0;return jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,flexShrink:0,children:[label!==void 0&&jsxDEV(ThemedText,{bold:!0,children:[label,":"]},void 0,!0,void 0,this),jsxDEV(PropertyValue,{value},void 0,!1,void 0,this)]},j,!0,void 0,this)}function _temp216(s_0){return s_0.mcp}function _temp58(s){return s.mainLoopModel}function Diagnostics(t0){let $2=import_react_compiler_runtime127.c(5),{promise:promise3}=t0,diagnostics=import_react100.use(promise3);if(diagnostics.length===0)return null;let t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{bold:!0,children:"System Diagnostics"},void 0,!1,void 0,this),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==diagnostics)t2=diagnostics.map(_temp55),$2[1]=diagnostics,$2[2]=t2;else t2=$2[2];let t3;if($2[3]!==t2)t3=jsxDEV(ThemedBox_default,{flexDirection:"column",paddingBottom:1,children:[t1,t2]},void 0,!0,void 0,this),$2[3]=t2,$2[4]=t3;else t3=$2[4];return t3}function _temp55(diagnostic,i3){return jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,paddingX:1,children:[jsxDEV(ThemedText,{color:"error",children:figures_default.warning},void 0,!1,void 0,this),typeof diagnostic==="string"?jsxDEV(ThemedText,{wrap:"wrap",children:diagnostic},void 0,!1,void 0,this):diagnostic]},i3,!0,void 0,this)}var import_react_compiler_runtime127,import_react100;var init_Status=__esm(()=>{init_figures();init_state();init_modalContext();init_ink2();init_AppState();init_cwd();init_sessionStorage();init_status();init_ConfigurableShortcutHint();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime127=__toESM(require_dist4(),1),import_react100=__toESM(require_react_production(),1)});async function maybeRemoveApiKeyFromMacOSKeychainThrows(){if(process.platform==="darwin"){let storageServiceName=getMacOsKeychainStorageServiceName();if((await execa(`security delete-generic-password -a $USER -s "${storageServiceName}"`,{shell:!0,reject:!1})).exitCode!==0)throw Error("Failed to delete keychain entry")}}function normalizeApiKeyForConfig(apiKey){return apiKey.slice(-20)}var init_authPortable=__esm(()=>{init_execa();init_macOsKeychainHelpers()});function isBridgeEnabled(){return!1}async function isBridgeEnabledBlocking(){return!1}function isEnvLessBridgeEnabled(){return!1}function isCseShimEnabled(){return!0}function checkBridgeMinVersion(){return null}var init_bridgeEnabled=__esm(()=>{init_growthbook();init_auth5();init_envUtils()});function ThemePicker({onThemeSelect,showIntroText=!1,helpText="",showHelpTextBelow=!1,hideEscToCancel=!1,skipExitHandling=!1,onCancel:onCancelProp}){let[theme]=useTheme(),themeSetting=useThemeSetting(),{columns}=useTerminalSize(),colorModuleUnavailableReason=React54.useMemo(()=>getColorModuleUnavailableReason(),[]),syntaxTheme=colorModuleUnavailableReason===null?getSyntaxTheme5(theme):null,{setPreviewTheme,savePreview,cancelPreview}=usePreviewTheme(),syntaxHighlightingDisabled=useAppState((s)=>s.settings.syntaxHighlightingDisabled??!1),setAppState=useSetAppState();useRegisterKeybindingContext("ThemePicker",!0);let syntaxToggleShortcut=useShortcutDisplay("theme:toggleSyntaxHighlighting","ThemePicker","ctrl+t"),toggleSyntax=React54.useCallback(()=>{if(colorModuleUnavailableReason===null){let newValue=!syntaxHighlightingDisabled;updateSettingsForSource("userSettings",{syntaxHighlightingDisabled:newValue}),setAppState((prev)=>({...prev,settings:{...prev.settings,syntaxHighlightingDisabled:newValue}}))}},[colorModuleUnavailableReason,syntaxHighlightingDisabled,setAppState]);useKeybinding("theme:toggleSyntaxHighlighting",toggleSyntax,{context:"ThemePicker"});let exitState=useExitOnCtrlCDWithKeybindings(skipExitHandling?()=>{}:void 0),themeOptions=React54.useMemo(()=>[...[],{label:"Dark mode",value:"dark"},{label:"Light mode",value:"light"},{label:"Dark mode (colorblind-friendly)",value:"dark-daltonized"},{label:"Light mode (colorblind-friendly)",value:"light-daltonized"},{label:"Dark mode (ANSI colors only)",value:"dark-ansi"},{label:"Light mode (ANSI colors only)",value:"light-ansi"}],[]),handleRowFocus=React54.useCallback((setting)=>{setPreviewTheme(setting)},[setPreviewTheme]),handleSelect=React54.useCallback((setting)=>{savePreview(),onThemeSelect(setting)},[savePreview,onThemeSelect]),handleCancel=React54.useCallback(()=>{if(cancelPreview(),skipExitHandling)onCancelProp?.();else gracefulShutdown(0)},[cancelPreview,onCancelProp,skipExitHandling]),syntaxHint=colorModuleUnavailableReason==="env"?`Syntax highlighting disabled (via CLAUDE_CODE_SYNTAX_HIGHLIGHT=${process.env.CLAUDE_CODE_SYNTAX_HIGHLIGHT})`:syntaxHighlightingDisabled?`Syntax highlighting disabled (${syntaxToggleShortcut} to enable)`:syntaxTheme?`Syntax theme: ${syntaxTheme.theme}${syntaxTheme.source?` (from ${syntaxTheme.source})`:""} (${syntaxToggleShortcut} to disable)`:`Syntax highlighting enabled (${syntaxToggleShortcut} to disable)`,content=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[showIntroText?jsxDEV(ThemedText,{children:"Let's get started."},void 0,!1,void 0,this):jsxDEV(ThemedText,{bold:!0,color:"permission",children:"Theme"},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Choose the text style that looks best with your terminal"},void 0,!1,void 0,this),helpText&&!showHelpTextBelow?jsxDEV(ThemedText,{dimColor:!0,children:helpText},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),jsxDEV(Select,{options:themeOptions,onFocus:handleRowFocus,onChange:handleSelect,onCancel:handleCancel,visibleOptionCount:themeOptions.length,defaultValue:themeSetting,defaultFocusValue:themeSetting},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",width:"100%",children:[jsxDEV(ThemedBox_default,{flexDirection:"column",borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,borderStyle:"dashed",borderColor:"subtle",children:jsxDEV(StructuredDiffView,{patch:DEMO_PATCH,dim:!1,filePath:"demo.js",firstLine:null,width:columns},void 0,!1,void 0,this)},theme,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",syntaxHint]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(!showIntroText)return jsxDEV($Fragment,{children:[jsxDEV(ThemedBox_default,{flexDirection:"column",children:content},void 0,!1,void 0,this),showHelpTextBelow&&helpText?jsxDEV(ThemedBox_default,{marginLeft:3,children:jsxDEV(ThemedText,{dimColor:!0,children:helpText},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,!hideEscToCancel?jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"Esc",action:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this);return content}var React54,StructuredDiffView,DEMO_PATCH;var init_ThemePicker=__esm(()=>{init_useExitOnCtrlCDWithKeybindings();init_useTerminalSize();init_ink2();init_KeybindingContext();init_useKeybinding();init_useShortcutDisplay();init_AppState();init_gracefulShutdown();init_settings3();init_CustomSelect();init_Byline();init_KeyboardShortcutHint();init_colorDiff();init_StructuredDiff();init_reactJsxDevRuntimeProductionShim();React54=__toESM(require_react_production(),1),StructuredDiffView=StructuredDiff,DEMO_PATCH={oldStart:1,newStart:1,oldLines:3,newLines:3,lines:[" function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Claudio!");'," }"]}});function isOllamaProvider(){if(process.env.OLLAMA_BASE_URL)return!0;if(!process.env.OPENAI_BASE_URL)return!1;let baseUrl=process.env.OPENAI_BASE_URL;try{if(new URL(baseUrl).port==="11434")return!0}catch{}return!1}async function fetchOllamaModels(){let apiUrl=getOllamaApiBaseUrl();if(!apiUrl)return[];let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),5000);try{let response=await fetch(`${apiUrl}/api/tags`,{method:"GET",signal:controller.signal});if(!response.ok)return[];return((await response.json()).models??[]).filter((m)=>Boolean(m.name)).map((m)=>{let paramSize=m.details?.parameter_size??"",quant=m.details?.quantization_level??"",sizeGB=m.size?`${(m.size/1e9).toFixed(1)}GB`:"",parts=[paramSize,quant,sizeGB].filter(Boolean).join(" · ");return{value:m.name,label:m.name,description:parts?`Ollama · ${parts}`:"Ollama model"}})}catch{return[]}finally{clearTimeout(timeout)}}function prefetchOllamaModels(){if(!isOllamaProvider())return;if(cachedOllamaOptions&&cachedOllamaOptions.length>0)return;if(fetchPromise)return;fetchPromise=fetchOllamaModels().then((options2)=>{return cachedOllamaOptions=options2,options2}).finally(()=>{fetchPromise=null})}function getCachedOllamaModelOptions(){return cachedOllamaOptions??[]}var cachedOllamaOptions=null,fetchPromise=null;var init_ollamaModels=__esm(()=>{init_providerDiscovery()});function isNvidiaNimProvider(){if(isEnvTruthy(process.env.NVIDIA_NIM))return!0;let baseUrl=process.env.OPENAI_BASE_URL??"";if(baseUrl.includes("nvidia")||baseUrl.includes("integrate.api.nvidia"))return!0;return getAPIProvider()==="nvidia-nim"}function getNvidiaNimModels(){return[{value:"nvidia/cosmos-reason2-8b",label:"Cosmos Reason 2 8B",description:"Reasoning"},{value:"microsoft/phi-4-mini-flash-reasoning",label:"Phi 4 Mini Flash Reasoning",description:"Reasoning"},{value:"qwen/qwen3-next-80b-a3b-thinking",label:"Qwen 3 Next 80B Thinking",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-qwen-32b",label:"DeepSeek R1 Qwen 32B",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-qwen-14b",label:"DeepSeek R1 Qwen 14B",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-qwen-7b",label:"DeepSeek R1 Qwen 7B",description:"Reasoning"},{value:"deepseek-ai/deepseek-r1-distill-llama-8b",label:"DeepSeek R1 Llama 8B",description:"Reasoning"},{value:"qwen/qwq-32b",label:"QwQ 32B Reasoning",description:"Reasoning"},{value:"meta/codellama-70b",label:"CodeLlama 70B",description:"Code"},{value:"bigcode/starcoder2-15b",label:"StarCoder2 15B",description:"Code"},{value:"bigcode/starcoder2-7b",label:"StarCoder2 7B",description:"Code"},{value:"mistralai/codestral-22b-instruct-v0.1",label:"Codestral 22B",description:"Code"},{value:"mistralai/mamba-codestral-7b-v0.1",label:"Mamba Codestral 7B",description:"Code"},{value:"deepseek-ai/deepseek-coder-6.7b-instruct",label:"DeepSeek Coder 6.7B",description:"Code"},{value:"google/codegemma-7b",label:"CodeGemma 7B",description:"Code"},{value:"google/codegemma-1.1-7b",label:"CodeGemma 1.1 7B",description:"Code"},{value:"qwen/qwen2.5-coder-32b-instruct",label:"Qwen 2.5 Coder 32B",description:"Code"},{value:"qwen/qwen2.5-coder-7b-instruct",label:"Qwen 2.5 Coder 7B",description:"Code"},{value:"qwen/qwen3-coder-480b-a35b-instruct",label:"Qwen 3 Coder 480B",description:"Code"},{value:"ibm/granite-34b-code-instruct",label:"Granite 34B Code",description:"Code"},{value:"ibm/granite-8b-code-instruct",label:"Granite 8B Code",description:"Code"},{value:"nvidia/llama-3.1-nemotron-70b-instruct",label:"Nemotron 70B Instruct",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-51b-instruct",label:"Nemotron 51B Instruct",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-ultra-253b-v1",label:"Nemotron Ultra 253B",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.3-nemotron-super-49b-v1",label:"Nemotron Super 49B v1",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.3-nemotron-super-49b-v1.5",label:"Nemotron Super 49B v1.5",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-4-340b-instruct",label:"Nemotron 4 340B",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-3-super-120b-a12b",label:"Nemotron 3 Super 120B",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-3-nano-30b-a3b",label:"Nemotron 3 Nano 30B",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-nano-3-30b-a3b",label:"Nemotron Nano 3 30B",description:"NVIDIA Flagship"},{value:"nvidia/nvidia-nemotron-nano-9b-v2",label:"Nemotron Nano 9B v2",description:"NVIDIA Flagship"},{value:"nvidia/nemotron-mini-4b-instruct",label:"Nemotron Mini 4B",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-nano-8b-v1",label:"Nemotron Nano 8B",description:"NVIDIA Flagship"},{value:"nvidia/llama-3.1-nemotron-nano-4b-v1.1",label:"Nemotron Nano 4B v1.1",description:"NVIDIA Flagship"},{value:"nvidia/llama3-chatqa-1.5-70b",label:"Llama3 ChatQA 1.5 70B",description:"Chat"},{value:"nvidia/llama3-chatqa-1.5-8b",label:"Llama3 ChatQA 1.5 8B",description:"Chat"},{value:"meta/llama-3.1-405b-instruct",label:"Llama 3.1 405B",description:"Meta Llama"},{value:"meta/llama-3.1-70b-instruct",label:"Llama 3.1 70B",description:"Meta Llama"},{value:"meta/llama-3.1-8b-instruct",label:"Llama 3.1 8B",description:"Meta Llama"},{value:"meta/llama-3.2-90b-vision-instruct",label:"Llama 3.2 90B Vision",description:"Meta Llama"},{value:"meta/llama-3.2-11b-vision-instruct",label:"Llama 3.2 11B Vision",description:"Meta Llama"},{value:"meta/llama-3.2-3b-instruct",label:"Llama 3.2 3B",description:"Meta Llama"},{value:"meta/llama-3.2-1b-instruct",label:"Llama 3.2 1B",description:"Meta Llama"},{value:"meta/llama-3.3-70b-instruct",label:"Llama 3.3 70B",description:"Meta Llama"},{value:"meta/llama-4-maverick-17b-128e-instruct",label:"Llama 4 Maverick 17B",description:"Meta Llama"},{value:"meta/llama-4-scout-17b-16e-instruct",label:"Llama 4 Scout 17B",description:"Meta Llama"},{value:"google/gemma-4-31b-it",label:"Gemma 4 31B",description:"Google Gemma"},{value:"google/gemma-3-27b-it",label:"Gemma 3 27B",description:"Google Gemma"},{value:"google/gemma-3-12b-it",label:"Gemma 3 12B",description:"Google Gemma"},{value:"google/gemma-3-4b-it",label:"Gemma 3 4B",description:"Google Gemma"},{value:"google/gemma-3-1b-it",label:"Gemma 3 1B",description:"Google Gemma"},{value:"google/gemma-3n-e4b-it",label:"Gemma 3N E4B",description:"Google Gemma"},{value:"google/gemma-3n-e2b-it",label:"Gemma 3N E2B",description:"Google Gemma"},{value:"google/gemma-2-27b-it",label:"Gemma 2 27B",description:"Google Gemma"},{value:"google/gemma-2-9b-it",label:"Gemma 2 9B",description:"Google Gemma"},{value:"google/gemma-2-2b-it",label:"Gemma 2 2B",description:"Google Gemma"},{value:"mistralai/mistral-large-3-675b-instruct-2512",label:"Mistral Large 3 675B",description:"Mistral"},{value:"mistralai/mistral-large-2-instruct",label:"Mistral Large 2",description:"Mistral"},{value:"mistralai/mistral-large",label:"Mistral Large",description:"Mistral"},{value:"mistralai/mistral-medium-3.5-128b",label:"Mistral Medium 3.5 128B",description:"Mistral"},{value:"mistralai/mistral-medium-3-instruct",label:"Mistral Medium 3",description:"Mistral"},{value:"mistralai/mistral-small-4-119b-2603",label:"Mistral Small 4 119B",description:"Mistral"},{value:"mistralai/mistral-small-3.1-24b-instruct-2503",label:"Mistral Small 3.1 24B",description:"Mistral"},{value:"mistralai/mistral-small-24b-instruct",label:"Mistral Small 24B",description:"Mistral"},{value:"mistralai/mistral-7b-instruct-v0.3",label:"Mistral 7B v0.3",description:"Mistral"},{value:"mistralai/mistral-7b-instruct-v0.2",label:"Mistral 7B v0.2",description:"Mistral"},{value:"mistralai/mixtral-8x22b-instruct-v0.1",label:"Mixtral 8x22B Instruct",description:"Mistral"},{value:"mistralai/mixtral-8x7b-instruct-v0.1",label:"Mixtral 8x7B",description:"Mistral"},{value:"mistralai/mistral-nemotron",label:"Mistral Nemotron",description:"Mistral"},{value:"mistralai/mathstral-7b-v0.1",label:"Mathstral 7B",description:"Math"},{value:"mistralai/ministral-14b-instruct-2512",label:"Ministral 14B",description:"Mistral"},{value:"mistralai/devstral-2-123b-instruct-2512",label:"Devstral 2 123B",description:"Code"},{value:"mistralai/magistral-small-2506",label:"Magistral Small",description:"Mistral"},{value:"microsoft/phi-4-multimodal-instruct",label:"Phi 4 Multimodal",description:"Multimodal"},{value:"microsoft/phi-4-mini-instruct",label:"Phi 4 Mini",description:"Phi"},{value:"microsoft/phi-3.5-mini-instruct",label:"Phi 3.5 Mini",description:"Phi"},{value:"microsoft/phi-3-small-128k-instruct",label:"Phi 3 Small 128K",description:"Phi"},{value:"microsoft/phi-3-small-8k-instruct",label:"Phi 3 Small 8K",description:"Phi"},{value:"microsoft/phi-3-medium-128k-instruct",label:"Phi 3 Medium 128K",description:"Phi"},{value:"microsoft/phi-3-medium-4k-instruct",label:"Phi 3 Medium 4K",description:"Phi"},{value:"microsoft/phi-3-mini-128k-instruct",label:"Phi 3 Mini 128K",description:"Phi"},{value:"microsoft/phi-3-mini-4k-instruct",label:"Phi 3 Mini 4K",description:"Phi"},{value:"qwen/qwen3.5-397b-a17b",label:"Qwen 3.5 397B",description:"Qwen"},{value:"qwen/qwen3.5-122b-a10b",label:"Qwen 3.5 122B",description:"Qwen"},{value:"qwen/qwen3-next-80b-a3b-instruct",label:"Qwen 3 Next 80B",description:"Qwen"},{value:"qwen/qwen2.5-7b-instruct",label:"Qwen 2.5 7B",description:"Qwen"},{value:"qwen/qwen2-7b-instruct",label:"Qwen 2 7B",description:"Qwen"},{value:"qwen/qwen3-32b",label:"Qwen 3 32B",description:"Qwen"},{value:"qwen/qwen3-8b",label:"Qwen 3 8B",description:"Qwen"},{value:"deepseek-ai/deepseek-v4-pro",label:"DeepSeek V4 Pro",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v4-flash",label:"DeepSeek V4 Flash",description:"DeepSeek"},{value:"deepseek-ai/deepseek-r1",label:"DeepSeek R1",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3",label:"DeepSeek V3",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3.2",label:"DeepSeek V3.2",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3.1-terminus",label:"DeepSeek V3.1 Terminus",description:"DeepSeek"},{value:"deepseek-ai/deepseek-v3.1",label:"DeepSeek V3.1",description:"DeepSeek"},{value:"ibm/granite-3.3-8b-instruct",label:"Granite 3.3 8B",description:"IBM Granite"},{value:"ibm/granite-3.0-8b-instruct",label:"Granite 3.0 8B",description:"IBM Granite"},{value:"ibm/granite-3.0-3b-a800m-instruct",label:"Granite 3.0 3B",description:"IBM Granite"},{value:"bytedance/seed-oss-36b-instruct",label:"Seed OSS 36B Instruct",description:"Other"},{value:"databricks/dbrx-instruct",label:"DBRX Instruct",description:"Other"},{value:"01-ai/yi-large",label:"Yi Large",description:"Other"},{value:"ai21labs/jamba-1.5-large-instruct",label:"Jamba 1.5 Large",description:"Other"},{value:"ai21labs/jamba-1.5-mini-instruct",label:"Jamba 1.5 Mini",description:"Other"},{value:"writer/palmyra-creative-122b",label:"Palmyra Creative 122B",description:"Other"},{value:"writer/palmyra-fin-70b-32k",label:"Palmyra Fin 70B 32K",description:"Other"},{value:"writer/palmyra-med-70b",label:"Palmyra Med 70B",description:"Other"},{value:"writer/palmyra-med-70b-32k",label:"Palmyra Med 70B 32K",description:"Other"},{value:"z-ai/glm-5.1",label:"GLM-5.1",description:"Z-AI"},{value:"z-ai/glm5",label:"GLM-5",description:"Z-AI"},{value:"z-ai/glm4.7",label:"GLM-4.7",description:"Z-AI"},{value:"minimaxai/minimax-m2.7",label:"MiniMax M2.7",description:"MiniMax"},{value:"minimaxai/minimax-m2.5",label:"MiniMax M2.5",description:"MiniMax"},{value:"moonshotai/kimi-k2.6",label:"Kimi K2.6",description:"Moonshot"},{value:"moonshotai/kimi-k2.5",label:"Kimi K2.5",description:"Moonshot"},{value:"moonshotai/kimi-k2-instruct",label:"Kimi K2 Instruct",description:"Moonshot"},{value:"moonshotai/kimi-k2-thinking",label:"Kimi K2 Thinking",description:"Moonshot"},{value:"moonshotai/kimi-k2.5-thinking",label:"Kimi K2.5 Thinking",description:"Moonshot"},{value:"moonshotai/kimi-k2-instruct-0905",label:"Kimi K2 Instruct 0905",description:"Moonshot"}]}function getCachedNvidiaNimModelOptions(){if(!cachedNvidiaNimOptions)cachedNvidiaNimOptions=getNvidiaNimModels();return cachedNvidiaNimOptions}function getNvidiaNimDiscoveryCacheKeyForEnv(processEnv=process.env){let request=resolveProviderRequest({model:processEnv.OPENAI_MODEL,baseUrl:processEnv.OPENAI_BASE_URL,processEnv}),routeCredential=resolveRouteCredentialValue({routeId:"nvidia-nim",baseUrl:request.baseUrl,processEnv}),apiKey=firstUsableCredential(routeCredential);return getDiscoveryCacheKey("nvidia-nim",{baseUrl:request.baseUrl,apiKey,headers:parseCustomHeadersEnv(processEnv.ANTHROPIC_CUSTOM_HEADERS)})}async function getDiscoveredNvidiaNimModelIds(){try{let cacheKey=getNvidiaNimDiscoveryCacheKeyForEnv(process.env);return(await getCachedModels(cacheKey,Number.MAX_SAFE_INTEGER,{includeStale:!0}))?.models.map((entry)=>entry.apiName)??[]}catch{return[]}}var cachedNvidiaNimOptions=null;var init_nvidiaNimModels=__esm(()=>{init_providers();init_envUtils();init_discoveryCache();init_discoveryService();init_routeMetadata();init_providerConfig();init_providerCustomHeaders()});function isMiniMaxProvider(){if(isEnvTruthy(process.env.MINIMAX_API_KEY))return!0;if(getMiniMaxBaseUrlOverride(process.env)!==void 0)return!0;return getAPIProvider()==="minimax"}function getMiniMaxModels(){return[{value:"MiniMax-M2",label:"MiniMax M2",description:"MoE model - 131K context - Chat/Code/Reasoning"},{value:"MiniMax-M2.1",label:"MiniMax M2.1",description:"Enhanced - 200K context - Vision"},{value:"MiniMax-M2.5",label:"MiniMax M2.5",description:"Flagship - 256K context - Vision/Function-calling"},{value:"MiniMax-M2.7",label:"MiniMax M2.7",description:"Flagship - 256K context - Chat/Code/Reasoning"},{value:"MiniMax-M2.7-highspeed",label:"MiniMax M2.7 Highspeed",description:"Fast flagship - 256K context - Chat/Code/Reasoning"},{value:"MiniMax-M3",label:"MiniMax M3",description:"Next-gen - 1M context - Coding/Agentic/Reasoning"},{value:"MiniMax-Text-01",label:"MiniMax Text 01",description:"Text-focused - 512K context - FREE"},{value:"MiniMax-Text-01-Preview",label:"MiniMax Text 01 Preview",description:"Preview - 256K context - FREE"},{value:"MiniMax-Vision-01",label:"MiniMax Vision 01",description:"Vision model - 32K context"},{value:"MiniMax-Vision-01-Fast",label:"MiniMax Vision 01 Fast",description:"Fast vision - 16K context - FREE"},{value:"abab6.5s-chat",label:"ABAB 6.5S Chat",description:"Legacy free - 16K context"},{value:"abab6.5-chat",label:"ABAB 6.5 Chat",description:"Legacy free - 32K context"},{value:"abab6.5g-chat",label:"ABAB 6.5G Chat",description:"Generation 6.5 - 32K context"},{value:"abab6-chat",label:"ABAB 6 Chat",description:"Legacy - 8K context"}]}function getCachedMiniMaxModelOptions(){if(!cachedMiniMaxOptions)cachedMiniMaxOptions=getMiniMaxModels();return cachedMiniMaxOptions}var cachedMiniMaxOptions=null;var init_minimaxModels=__esm(()=>{init_providers();init_routeMetadata();init_envUtils()});function isXiaomiMimoProvider(){if(isEnvTruthy(process.env.MIMO_API_KEY))return!0;let baseUrl=process.env.OPENAI_BASE_URL??"";if(baseUrl.includes("xiaomimimo")||baseUrl.includes("mimo-v2"))return!0;return getAPIProvider()==="xiaomi-mimo"}function getXiaomiMimoModels(){return[{value:"mimo-v2.5-pro",label:"MiMo V2.5 Pro",description:"Flagship - 1M context - 128K output - Chat/Code/Reasoning"},{value:"mimo-v2.5",label:"MiMo V2.5",description:"General - 1M context - 128K output - Vision/Chat/Code"},{value:"mimo-v2-flash",label:"MiMo V2 Flash",description:"Fast - 256K context - 64K output - Chat/Code/Reasoning"}]}function getCachedXiaomiMimoModelOptions(){if(!cachedXiaomiMimoOptions)cachedXiaomiMimoOptions=getXiaomiMimoModels();return cachedXiaomiMimoOptions}var cachedXiaomiMimoOptions=null;var init_xiaomi_mimoModels=__esm(()=>{init_providers();init_envUtils()});function getAllCopilotModels(){return Object.values(COPILOT_MODELS)}var COPILOT_MODELS;var init_copilotModels=__esm(()=>{COPILOT_MODELS={"gpt-5.5":{id:"gpt-5.5",name:"GPT-5.5",family:"gpt",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.5-mini":{id:"gpt-5.5-mini",name:"GPT-5.5 mini",family:"gpt-mini",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",family:"gpt",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 mini",family:"gpt-mini",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3-Codex",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2-Codex",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",family:"gpt",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:264000,output:32768}},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1-Codex",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1-Codex-max",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1-Codex-mini",family:"gpt-codex",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:400000,output:32768}},"gpt-4o":{id:"gpt-4o",name:"GPT-4o",family:"gpt",attachment:!0,reasoning:!1,tool_call:!0,temperature:!0,knowledge:"2023-10",release_date:"2024-05-01",last_updated:"2024-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:16384}},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",family:"gpt",attachment:!1,reasoning:!1,tool_call:!0,temperature:!0,knowledge:"2024-06",release_date:"2024-06-01",last_updated:"2024-06-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"claude-opus-4.6":{id:"claude-opus-4.6",name:"Claude Opus 4.6",family:"claude-opus",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:144000,output:32768}},"claude-opus-4.5":{id:"claude-opus-4.5",name:"Claude Opus 4.5",family:"claude-opus",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:160000,output:32768}},"claude-sonnet-4.6":{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",family:"claude-sonnet",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:200000,output:32768}},"claude-sonnet-4.5":{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",family:"claude-sonnet",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:144000,output:32768}},"claude-haiku-4.5":{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",family:"claude-haiku",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:144000,output:32768}},"gemini-3.1-pro-preview":{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",family:"gemini-pro",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image","audio"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",family:"gemini-flash",attachment:!0,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",family:"gemini-pro",attachment:!0,reasoning:!1,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text","image"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}},"grok-code-fast-1":{id:"grok-code-fast-1",name:"Grok Code Fast 1",family:"grok",attachment:!1,reasoning:!0,tool_call:!0,temperature:!0,knowledge:"2025-05",release_date:"2025-05-01",last_updated:"2025-05-01",modalities:{input:["text"],output:["text"]},open_weights:!1,cost:{input:0,output:0},limit:{context:128000,output:32768}}}});function parseSwitchProfileValue(value){if(typeof value!=="string"||!value.startsWith(SWITCH_PROFILE_VALUE_PREFIX))return null;let tail=value.slice(SWITCH_PROFILE_VALUE_PREFIX.length),sep29=tail.indexOf(":");if(sep29<=0||sep29===tail.length-1)return null;return{profileId:tail.slice(0,sep29),model:tail.slice(sep29+1)}}function encodeSwitchProfileValue(profileId,model){return`${SWITCH_PROFILE_VALUE_PREFIX}${profileId}:${model}`}function resolveSelectedSwitchProfileId(options2,selectedValue){let matches=options2.filter((option)=>option.value===selectedValue);return matches.length===1?matches[0].switchToProfileId:void 0}function getScopedAdditionalModelOptions(){let config3=getGlobalConfig(),activeScope=getAdditionalModelOptionsCacheScope();if(!activeScope)return[];if(config3.additionalModelOptionsCacheScope!==void 0)return config3.additionalModelOptionsCacheScope===activeScope?config3.additionalModelOptionsCache??[]:[];return activeScope==="firstParty"?config3.additionalModelOptionsCache??[]:[]}function getDefaultOptionForUser(fastMode=!1){let is3P=!isFirstPartyAnthropicProvider(),currentDefaultModel=isCustomAnthropicProvider()&&process.env.ANTHROPIC_MODEL?process.env.ANTHROPIC_MODEL:getDefaultMainLoopModelSetting();if(process.env.USER_TYPE==="ant"&&!is3P){let currentModel=renderDefaultModelSetting(currentDefaultModel);return{value:null,label:"Default (recommended)",description:`Use the default model for Ants (currently ${currentModel})`,descriptionForModel:`Default model (currently ${currentModel})`}}if(is3P)return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${renderDefaultModelSetting(currentDefaultModel)})`};if(isClaudeAISubscriber())return{value:null,label:"Default (recommended)",description:getClaudeAiUserDefaultModelDescription(fastMode)};return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${renderDefaultModelSetting(currentDefaultModel)})${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`}}function getCustomSonnetOption(){let is3P=getAPIProvider()!=="firstParty",customSonnetModel=process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;if(is3P&&customSonnetModel){let is1m=has1mContext(customSonnetModel);return{value:"sonnet",label:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME??customSonnetModel,description:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${is1m?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${is1m?" with 1M context":""}`} (${customSonnetModel})`}}}function getSonnet46Option(){let is3P=getAPIProvider()!=="firstParty";return{value:is3P?getModelStrings2().sonnet46:"sonnet",label:"Sonnet",description:`Sonnet 4.6 · Best for everyday tasks${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`,descriptionForModel:"Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"}}function getCustomOpusOption(){let is3P=getAPIProvider()!=="firstParty",customOpusModel=process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;if(is3P&&customOpusModel){let is1m=has1mContext(customOpusModel);return{value:"opus",label:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME??customOpusModel,description:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${is1m?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${is1m?" with 1M context":""}`} (${customOpusModel})`}}}function getOpus41Option(){return{value:"opus",label:"Opus 4.1",description:"Opus 4.1 · Legacy",descriptionForModel:"Opus 4.1 - legacy version"}}function getOpus48Option(fastMode=!1){return{value:getAPIProvider()!=="firstParty"?getModelStrings2().opus48:"opus",label:"Opus",description:`Opus 4.8 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:"Opus 4.8 - most capable for complex work"}}function getOpus47Option(fastMode=!1){return{value:getAPIProvider()!=="firstParty"?getModelStrings2().opus47:"opus",label:"Opus",description:`Opus 4.7 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:"Opus 4.7 - most capable for complex work"}}function getOpus46Option(fastMode=!1){return{value:getAPIProvider()!=="firstParty"?getModelStrings2().opus46:"opus",label:"Opus",description:`Opus 4.6 · Most capable for complex work${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:"Opus 4.6 - most capable for complex work"}}function getSonnet46_1MOption(){let is3P=getAPIProvider()!=="firstParty";return{value:is3P?getModelStrings2().sonnet46+"[1m]":"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 for long sessions${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`,descriptionForModel:"Sonnet 4.6 with 1M context window - for long sessions with large codebases"}}function getOpus46_1MOption(fastMode=!1){let is3P=getAPIProvider()!=="firstParty",opusName=is3P?"Opus 4.6":"Opus 4.8";return{value:is3P?getModelStrings2().opus46+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`${opusName} for long sessions${getOpus46PricingSuffix(fastMode)}`,descriptionForModel:`${opusName} with 1M context window - for long sessions with large codebases`}}function getCustomHaikuOption(){let is3P=getAPIProvider()!=="firstParty",customHaikuModel=process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;if(is3P&&customHaikuModel)return{value:"haiku",label:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME??customHaikuModel,description:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model",descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model"} (${customHaikuModel})`}}function getHaiku45Option(){return{value:"haiku",label:"Haiku",description:`Haiku 4.5 · Fastest for quick answers${getAPIProvider()!=="firstParty"?"":` · ${formatModelPricing(COST_HAIKU_45)}`}`,descriptionForModel:"Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."}}function getHaiku35Option(){return{value:"haiku",label:"Haiku",description:`Haiku 3.5 for simple tasks${getAPIProvider()!=="firstParty"?"":` · ${formatModelPricing(COST_HAIKU_35)}`}`,descriptionForModel:"Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."}}function getHaikuOption(){return getDefaultHaikuModel()===getModelStrings2().haiku45?getHaiku45Option():getHaiku35Option()}function getMaxOpusOption(fastMode=!1){return{value:"opus",label:"Opus",description:`Opus 4.8 · Most capable for complex work${fastMode?getOpus46PricingSuffix(!0):""}`}}function getMaxSonnet46_1MOption(){let is3P=getAPIProvider()!=="firstParty";return{value:"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 with 1M context${isClaudeAISubscriber()?" · Billed as extra usage":""}${is3P?"":` · ${formatModelPricing(COST_TIER_3_15)}`}`}}function getMaxOpus46_1MOption(fastMode=!1){return{value:"opus[1m]",label:"Opus (1M context)",description:`Opus 4.8 with 1M context${isClaudeAISubscriber()?" · Billed as extra usage":""}${getOpus46PricingSuffix(fastMode)}`}}function getMergedOpus1MOption(fastMode=!1){let is3P=getAPIProvider()!=="firstParty";return{value:is3P?getModelStrings2().opus46+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`${is3P?"Opus 4.6":"Opus 4.8"} with 1M context · Most capable for complex work${!is3P&&fastMode?getOpus46PricingSuffix(fastMode):""}`,descriptionForModel:`${is3P?"Opus 4.6":"Opus 4.8"} with 1M context - most capable for complex work`}}function getOpusPlanOption(){return{value:"opusplan",label:"Opus Plan Mode",description:"Use Opus 4.8 in plan mode, Sonnet 4.6 otherwise"}}function getCodexPlanOption(){return{value:"gpt-5.5",label:"gpt-5.5",description:"GPT-5.5 on the Codex backend with high reasoning"}}function getCodexSparkOption(){return{value:"gpt-5.3-codex-spark",label:"gpt-5.3-codex-spark",description:"GPT-5.3 Codex Spark on the Codex backend for fast tool loops"}}function getCodexModelOptions(){return[{value:"gpt-5.5",label:"gpt-5.5",description:"GPT-5.5 with high reasoning"},{value:"gpt-5.4",label:"gpt-5.4",description:"GPT-5.4 with high reasoning"},{value:"gpt-5.3-codex",label:"gpt-5.3-codex",description:"GPT-5.3 Codex with high reasoning"},{value:"gpt-5.3-codex-spark",label:"gpt-5.3-codex-spark",description:"GPT-5.3 Codex Spark for fast tool loops"},{value:"codexspark",label:"codexspark",description:"GPT-5.3 Codex Spark alias for fast tool loops"},{value:"gpt-5.2-codex",label:"gpt-5.2-codex",description:"GPT-5.2 Codex with high reasoning"},{value:"gpt-5.1-codex-max",label:"gpt-5.1-codex-max",description:"GPT-5.1 Codex Max for deep reasoning"},{value:"gpt-5.1-codex-mini",label:"gpt-5.1-codex-mini",description:"GPT-5.1 Codex Mini - faster, cheaper"},{value:"gpt-5.5-mini",label:"gpt-5.5-mini",description:"GPT-5.5 Mini - faster, cheaper"},{value:"gpt-5.4-mini",label:"gpt-5.4-mini",description:"GPT-5.4 Mini - faster, cheaper"}]}function getCopilotModelOptions(){return getAllCopilotModels().map((m)=>({value:m.id,label:m.name,description:`${m.family}${m.reasoning?" · Reasoning":""}${m.tool_call?" · Tool call":""} · ${Math.round(m.limit.context/1000)}K context`}))}function getModelOptionsBase(fastMode=!1){let profileEnvApplied=process.env.CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED==="1",profileModelOptions=[],activeProfileId;if(profileEnvApplied){let activeProfile2=getActiveProviderProfile();if(activeProfile2){activeProfileId=activeProfile2.id;let models=getProfileModelOptions(activeProfile2);profileModelOptions.push(...models)}}let inactiveProfileOptions=profileEnvApplied?getInactiveProviderProfileOptions(activeProfileId):[];if(getAPIProvider()==="github")return[getDefaultOptionForUser(fastMode),...getCopilotModelOptions(),...inactiveProfileOptions];if(getAPIProvider()==="openai"&&isOllamaProvider()){let defaultOption=getDefaultOptionForUser(fastMode),ollamaModels=getCachedOllamaModelOptions();if(ollamaModels.length>0)return[defaultOption,...ollamaModels,...inactiveProfileOptions];let currentModel=getUserSpecifiedModelSetting()??getInitialMainLoopModel();if(currentModel!=null)return[defaultOption,{value:currentModel,label:currentModel,description:"Currently configured Ollama model"},...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}if(isNvidiaNimProvider()){let defaultOption=getDefaultOptionForUser(fastMode),nvidiaModels=getCachedNvidiaNimModelOptions();if(nvidiaModels.length>0)return[defaultOption,...nvidiaModels,...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}if(isMiniMaxProvider()){let defaultOption=getDefaultOptionForUser(fastMode),minimaxModels=getCachedMiniMaxModelOptions();if(minimaxModels.length>0)return[defaultOption,...minimaxModels,...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}if(isXiaomiMimoProvider()){let defaultOption=getDefaultOptionForUser(fastMode),xiaomiMimoModels=getCachedXiaomiMimoModelOptions();if(xiaomiMimoModels.length>0)return[defaultOption,...xiaomiMimoModels,...inactiveProfileOptions];return[defaultOption,...inactiveProfileOptions]}let activeProfile=getActiveProviderProfile(),activeRouteId=resolveActiveRouteIdFromEnv(process.env,{activeProfileProvider:activeProfile?.provider,activeProfileBaseUrl:activeProfile?.baseUrl});if(getTransportKindForRoute(activeRouteId??"")==="anthropic-proxy"){let directEnvOption=profileModelOptions.length===0&&process.env.ANTHROPIC_MODEL?[{value:process.env.ANTHROPIC_MODEL,label:process.env.ANTHROPIC_MODEL,description:"Custom Anthropic-compatible endpoint"}]:[];return[getDefaultOptionForUser(fastMode),...profileModelOptions,...directEnvOption,...inactiveProfileOptions]}if(process.env.USER_TYPE==="ant"){let antModelOptions=getAntModels().map((m)=>({value:m.alias,label:m.label,description:m.description??`[internal] ${m.label} (${m.model})`}));return[getDefaultOptionForUser(),...antModelOptions,getMergedOpus1MOption(fastMode),getSonnet46Option(),getSonnet46_1MOption(),getHaiku45Option(),...inactiveProfileOptions]}if(isClaudeAISubscriber()){if(isMaxSubscriber()||isTeamPremiumSubscriber()){let premiumOptions=[getDefaultOptionForUser(fastMode)];if(!isOpus1mMergeEnabled()&&checkOpus1mAccess())premiumOptions.push(getMaxOpus46_1MOption(fastMode));if(premiumOptions.push(MaxSonnet46Option),checkSonnet1mAccess())premiumOptions.push(getMaxSonnet46_1MOption());return premiumOptions.push(MaxHaiku45Option),premiumOptions.push(...inactiveProfileOptions),premiumOptions}let standardOptions=[getDefaultOptionForUser(fastMode)];if(checkSonnet1mAccess())standardOptions.push(getMaxSonnet46_1MOption());if(isOpus1mMergeEnabled())standardOptions.push(getMergedOpus1MOption(fastMode));else if(standardOptions.push(getMaxOpusOption(fastMode)),checkOpus1mAccess())standardOptions.push(getMaxOpus46_1MOption(fastMode));return standardOptions.push(MaxHaiku45Option),standardOptions.push(...inactiveProfileOptions),standardOptions}let activeRouteCatalogOptions=getActiveOpenAIRouteCatalogOptions(),openAIModelOptionsScope=getAdditionalModelOptionsCacheScope();if(activeRouteCatalogOptions.length>0||openAIModelOptionsScope?.startsWith("openai:")){let activeOpenAIOptions=activeProfile?getActiveOpenAIModelOptionsCache():[],scopedOptions=openAIModelOptionsScope?.startsWith("openai:")?getScopedAdditionalModelOptions():[],sourceOptions=activeOpenAIOptions.length>0?activeOpenAIOptions:scopedOptions;return[getDefaultOptionForUser(fastMode),...mergeModelOptionsByNormalizedValue(sourceOptions,activeRouteCatalogOptions),...inactiveProfileOptions]}if(getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()){let payg1POptions=[getDefaultOptionForUser(fastMode)];if(checkSonnet1mAccess())payg1POptions.push(getSonnet46_1MOption());if(isOpus1mMergeEnabled())payg1POptions.push(getMergedOpus1MOption(fastMode));else if(payg1POptions.push(getOpus48Option(fastMode)),payg1POptions.push(getOpus47Option(fastMode)),payg1POptions.push(getOpus46Option(fastMode)),checkOpus1mAccess())payg1POptions.push(getOpus46_1MOption(fastMode));return payg1POptions.push(getHaiku45Option()),payg1POptions.push(...profileModelOptions),payg1POptions.push(...inactiveProfileOptions),payg1POptions}let payg3pOptions=[getDefaultOptionForUser(fastMode)];if(getAPIProvider()==="openai"||getAPIProvider()==="codex")payg3pOptions.push(...getCodexModelOptions());let customSonnet=getCustomSonnetOption();if(customSonnet!==void 0)payg3pOptions.push(customSonnet);else if(payg3pOptions.push(getSonnet46Option()),checkSonnet1mAccess())payg3pOptions.push(getSonnet46_1MOption());let customOpus=getCustomOpusOption();if(customOpus!==void 0)payg3pOptions.push(customOpus);else if(payg3pOptions.push(getOpus41Option()),payg3pOptions.push(getOpus47Option(fastMode)),payg3pOptions.push(getOpus46Option(fastMode)),checkOpus1mAccess())payg3pOptions.push(getOpus46_1MOption(fastMode));let customHaiku=getCustomHaikuOption();if(customHaiku!==void 0)payg3pOptions.push(customHaiku);else payg3pOptions.push(getHaikuOption());return payg3pOptions.push(...profileModelOptions),payg3pOptions.push(...inactiveProfileOptions),payg3pOptions}function getInactiveProviderProfileOptions(activeProfileId){let profiles=getProviderProfiles(),options2=[];for(let profile of profiles){if(profile.id===activeProfileId)continue;let baseOptions=getProfileModelOptions(profile);for(let baseOption of baseOptions){let modelValue=typeof baseOption.value==="string"?baseOption.value:"";if(!modelValue)continue;options2.push({value:encodeSwitchProfileValue(profile.id,modelValue),label:`${modelValue} · ${profile.name}`,description:`Switch to ${profile.name} (${profile.baseUrl})`,switchToProfileId:profile.id})}}return options2}function getModelFamilyInfo(model){let canonical=getCanonicalName(model);if(canonical.includes("claude-sonnet-4-6")||canonical.includes("claude-sonnet-4-5")||canonical.includes("claude-sonnet-4-")||canonical.includes("claude-3-7-sonnet")||canonical.includes("claude-3-5-sonnet")){let currentName=getMarketingNameForModel(getDefaultSonnetModel());if(currentName)return{alias:"Sonnet",currentVersionName:currentName}}if(canonical.includes("claude-opus-4")){let currentName=getMarketingNameForModel(getDefaultOpusModel());if(currentName)return{alias:"Opus",currentVersionName:currentName}}if(canonical.includes("claude-haiku")||canonical.includes("claude-3-5-haiku")){let currentName=getMarketingNameForModel(getDefaultHaikuModel());if(currentName)return{alias:"Haiku",currentVersionName:currentName}}return null}function getKnownModelOption(model){let marketingName=getMarketingNameForModel(model);if(!marketingName)return null;let familyInfo=getModelFamilyInfo(model);if(!familyInfo)return{value:model,label:marketingName,description:model};if(marketingName!==familyInfo.currentVersionName)return{value:model,label:marketingName,description:`Newer version available · select ${familyInfo.alias} for ${familyInfo.currentVersionName}`};return{value:model,label:marketingName,description:model}}function normalizeRouteModelOptionKey(model){return model.trim().split("?",1)[0]?.trim().toLowerCase()??""}function getActiveOpenAIRouteId(){let openAIFlag=process.env.CLAUDE_CODE_USE_OPENAI?.trim().toLowerCase();if(!openAIFlag||["0","false","no","off"].includes(openAIFlag))return null;let scope=getAdditionalModelOptionsCacheScope();if(scope?.startsWith("openai:")){let partitionIndex=scope.lastIndexOf(":");if(partitionIndex>7){let baseUrl=scope.slice(7,partitionIndex);return resolveRouteIdFromBaseUrl(baseUrl)}}return resolveRouteIdFromBaseUrl(resolveProviderRequest().baseUrl)}function mergeModelOptionsByNormalizedValue(primaryOptions,additionalOptions){let merged=[],seen=new Set;for(let option of[...primaryOptions,...additionalOptions]){if(typeof option.value!=="string")continue;let value=option.value.trim(),key=normalizeRouteModelOptionKey(value);if(!key||seen.has(key))continue;seen.add(key),merged.push({...option,value})}return merged}function getActiveOpenAIRouteCatalogOptions(){let routeId=getActiveOpenAIRouteId();if(!routeId)return[];return getCatalogEntriesForRoute(routeId).flatMap((entry)=>{let value=entry.apiName.trim();if(!value)return[];return[{value,label:entry.label??value,description:entry.apiName}]})}function getRouteCatalogModelOption(value){if(typeof value!=="string")return null;let routeId=getActiveOpenAIRouteId();if(!routeId)return null;let normalizedValue=normalizeRouteModelOptionKey(value);if(!normalizedValue)return null;let catalogEntry3=getCatalogEntriesForRoute(routeId).find((entry)=>normalizeRouteModelOptionKey(entry.apiName)===normalizedValue||normalizeRouteModelOptionKey(entry.id)===normalizedValue||(entry.aliases??[]).some((alias)=>normalizeRouteModelOptionKey(alias)===normalizedValue));if(!catalogEntry3)return null;return{value:catalogEntry3.apiName,label:catalogEntry3.label??catalogEntry3.apiName,description:catalogEntry3.apiName}}function optionMatchesModel(option,model){if(option.value===model)return!0;let catalogOption=getRouteCatalogModelOption(model);return catalogOption!==null&&option.value===catalogOption.value}function getModelOptions(fastMode=!1){if(getAPIProvider()==="github")return filterModelOptionsByAllowlist(getModelOptionsBase(fastMode));let options2=getModelOptionsBase(fastMode),envCustomModel=process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;if(envCustomModel&&!options2.some((existing)=>optionMatchesModel(existing,envCustomModel)))options2.push({value:envCustomModel,label:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME??envCustomModel,description:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION??`Custom model (${envCustomModel})`});for(let opt of getScopedAdditionalModelOptions()){let catalogOption=getRouteCatalogModelOption(opt.value),nextOption=catalogOption?{...opt,...catalogOption}:opt;if(!options2.some((existing)=>optionMatchesModel(existing,nextOption.value)))options2.push(nextOption)}let customModel=null,currentMainLoopModel=getUserSpecifiedModelSetting(),initialMainLoopModel=getInitialMainLoopModel();if(currentMainLoopModel!==void 0&¤tMainLoopModel!==null)customModel=currentMainLoopModel;else if(initialMainLoopModel!==null)customModel=initialMainLoopModel;if(customModel===null||options2.some((opt)=>optionMatchesModel(opt,customModel)))return filterModelOptionsByAllowlist(options2);else if(customModel==="opusplan")return filterModelOptionsByAllowlist([...options2,getOpusPlanOption()]);else if(customModel==="gpt-5.5")return filterModelOptionsByAllowlist([...options2,getCodexPlanOption()]);else if(customModel==="gpt-5.3-codex-spark")return filterModelOptionsByAllowlist([...options2,getCodexSparkOption()]);else if(customModel==="opus"&&getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl())return filterModelOptionsByAllowlist([...options2,getMaxOpusOption(fastMode)]);else if(customModel==="opus[1m]"&&getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl())return filterModelOptionsByAllowlist([...options2,getMergedOpus1MOption(fastMode)]);else{let catalogOption=getRouteCatalogModelOption(customModel);if(catalogOption)return options2.push(catalogOption),filterModelOptionsByAllowlist(options2);let knownOption=getKnownModelOption(customModel);if(knownOption)options2.push(knownOption);else options2.push({value:customModel,label:customModel,description:"Custom model"});return filterModelOptionsByAllowlist(options2)}}function filterModelOptionsByAllowlist(options2){let filtered=!(getSettings_DEPRECATED()||{}).availableModels?options2:options2.filter((opt)=>{if(opt.value===null)return!0;let effectiveModel=opt.switchToProfileId!==void 0?parseSwitchProfileValue(opt.value)?.model??opt.value:opt.value;return isModelAllowed(effectiveModel)}),seen=new Set;return filtered.filter((opt)=>{let key=String(opt.value);if(seen.has(key))return!1;return seen.add(key),!0})}var SWITCH_PROFILE_VALUE_PREFIX="__switch_profile__:",MaxSonnet46Option,MaxHaiku45Option;var init_modelOptions=__esm(()=>{init_state();init_integrations();init_routeMetadata();init_providerConfig();init_auth5();init_modelStrings();init_modelCost();init_settings3();init_check1mAccess();init_providers();init_modelAllowlist();init_model();init_context();init_config();init_providerProfiles();init_ollamaModels();init_nvidiaNimModels();init_minimaxModels();init_xiaomi_mimoModels();init_antModels();init_copilotModels();MaxSonnet46Option={value:"sonnet",label:"Sonnet",description:"Sonnet 4.6 · Best for everyday tasks"},MaxHaiku45Option={value:"haiku",label:"Haiku",description:"Haiku 4.5 · Fastest for quick answers"}});function getEffortNotificationText(effortValue,model){if(!modelSupportsEffort(model))return;let level=getDisplayedEffortLevel(model,effortValue);return`${effortLevelToSymbol(level)} ${level} · /effort`}function effortLevelToSymbol(level){switch(level){case"low":return EFFORT_LOW;case"medium":return EFFORT_MEDIUM;case"high":return EFFORT_HIGH;case"max":return EFFORT_MAX;default:return EFFORT_HIGH}}var init_EffortIndicator=__esm(()=>{init_figures2();init_effort()});function normalizeModelPickerValue(value){return typeof value==="string"&&value.trim()?value.trim().toLowerCase():null}function optionMatchesPickerValue(option,value){let optionKey=normalizeModelPickerValue(option.value),valueKey=normalizeModelPickerValue(value);return optionKey!==null&&valueKey!==null&&optionKey===valueKey}function resolvePickerOptionValue(options2,value){let optionValue=options2.find((option)=>optionMatchesPickerValue(option,value))?.value;return typeof optionValue==="string"?optionValue:void 0}function mapDiscoveryToneToColor(tone){switch(tone){case"error":return"error";case"warning":return"warning";case"success":return"success";case"info":default:return"subtle"}}function ModelPicker(t0){let $2=import_react_compiler_runtime128.c(84),{initial,sessionModel,onSelect,onCancel,isStandaloneCommand,showFastModeNotice,headerText,skipSettingsWrite,optionsOverride,discoveryState,onRefresh,allowProfileSwitch}=t0,setAppState=useSetAppState(),exitState=useExitOnCtrlCDWithKeybindings(),initialValue=initial===null?NO_PREFERENCE:initial,isFastMode=useAppState(_temp59),[hasToggledEffort,setHasToggledEffort]=import_react101.useState(!1),effortValue=useAppState(_temp217),t1;if($2[0]!==effortValue)t1=effortValue!==void 0?convertEffortValueToLevel(effortValue):void 0,$2[0]=effortValue,$2[1]=t1;else t1=$2[1];let[effort,setEffort]=import_react101.useState(t1),t2=isFastMode??!1,t3;if($2[2]!==t2)t3=getModelOptions(t2),$2[2]=t2,$2[3]=t3;else t3=$2[3];let modelOptionsBase=optionsOverride??t3,modelOptions=allowProfileSwitch?modelOptionsBase:modelOptionsBase.filter((opt)=>opt.switchToProfileId===void 0),t4;bb0:{if(initial!==null&&isModelAllowed(initial)&&!modelOptions.some((opt)=>optionMatchesPickerValue(opt,initial))){let t52;if($2[4]!==initial)t52=modelDisplayString(initial),$2[4]=initial,$2[5]=t52;else t52=$2[5];let t62;if($2[6]!==initial||$2[7]!==t52)t62={value:initial,label:t52,description:"Current model"},$2[6]=initial,$2[7]=t52,$2[8]=t62;else t62=$2[8];let t72;if($2[9]!==modelOptions||$2[10]!==t62)t72=[...modelOptions,t62],$2[9]=modelOptions,$2[10]=t62,$2[11]=t72;else t72=$2[11];t4=t72;break bb0}t4=modelOptions}let optionsWithInitial=t4,t5;if($2[12]!==optionsWithInitial)t5=optionsWithInitial.map(_temp312),$2[12]=optionsWithInitial,$2[13]=t5;else t5=$2[13];let selectOptions=t5,t6;if($2[14]!==initialValue||$2[15]!==selectOptions)t6=selectOptions.find((_)=>optionMatchesPickerValue(_,initialValue))?.value??selectOptions[0]?.value??void 0,$2[14]=initialValue,$2[15]=selectOptions,$2[16]=t6;else t6=$2[16];let initialFocusValue=t6,[focusedValue,setFocusedValue]=import_react101.useState(initialFocusValue??initialValue),visibleCount=Math.min(10,selectOptions.length),hiddenCount=Math.max(0,selectOptions.length-visibleCount),t7;if($2[17]!==focusedValue||$2[18]!==selectOptions)t7=selectOptions.find((opt_1)=>opt_1.value===focusedValue)?.label,$2[17]=focusedValue,$2[18]=selectOptions,$2[19]=t7;else t7=$2[19];let focusedModelName=t7,focusedSupportsEffort,t8;if($2[20]!==focusedValue){let focusedModel=resolveOptionModel(focusedValue);focusedSupportsEffort=focusedModel?modelSupportsEffort(focusedModel):!1,t8=focusedModel?modelSupportsMaxEffort(focusedModel):!1,$2[20]=focusedValue,$2[21]=focusedSupportsEffort,$2[22]=t8}else focusedSupportsEffort=$2[21],t8=$2[22];let focusedSupportsMax=t8,focusedAvailableLevels=(()=>{let focusedModel=resolveOptionModel(focusedValue);return focusedModel?getAvailableEffortLevels(focusedModel):[]})(),t9;if($2[23]!==focusedValue)t9=getDefaultEffortLevelForOption(focusedValue),$2[23]=focusedValue,$2[24]=t9;else t9=$2[24];let focusedDefaultEffort=t9,displayEffort=focusedAvailableLevels.includes(effort)?effort:"high",t10;if($2[25]!==effortValue||$2[26]!==hasToggledEffort||$2[83]!==selectOptions)t10=(value)=>{let selectedValue=resolvePickerOptionValue(selectOptions,value)??value;if(setFocusedValue(selectedValue),!hasToggledEffort&&effortValue===void 0)setEffort(getDefaultEffortLevelForOption(selectedValue))},$2[25]=effortValue,$2[26]=hasToggledEffort,$2[83]=selectOptions,$2[27]=t10;else t10=$2[27];let handleFocus=t10,t11;if($2[28]!==focusedDefaultEffort||$2[29]!==focusedSupportsEffort||$2[30]!==focusedSupportsMax||$2[31]!==focusedAvailableLevels)t11=(direction)=>{if(!focusedSupportsEffort)return;setEffort((prev)=>cycleEffortLevel(prev??focusedDefaultEffort,direction,focusedAvailableLevels)),setHasToggledEffort(!0)},$2[28]=focusedDefaultEffort,$2[29]=focusedSupportsEffort,$2[30]=focusedSupportsMax,$2[31]=focusedAvailableLevels,$2[32]=t11;else t11=$2[32];let handleCycleEffort=t11,t12={"modelPicker:decreaseEffort":()=>handleCycleEffort("left"),"modelPicker:increaseEffort":()=>handleCycleEffort("right"),...onRefresh?{"modelPicker:refresh":()=>onRefresh()}:{}},t13;if($2[34]===Symbol.for("react.memo_cache_sentinel"))t13={context:"ModelPicker"},$2[34]=t13;else t13=$2[34];useKeybindings(t12,t13);let t14;if($2[35]!==effort||$2[36]!==hasToggledEffort||$2[37]!==onSelect||$2[38]!==setAppState||$2[39]!==skipSettingsWrite||$2[46]!==focusedAvailableLevels||$2[47]!==focusedDefaultEffort||$2[48]!==selectOptions)t14=function(value_0){let selectedValue=resolvePickerOptionValue(selectOptions,value_0)??value_0,selectedModel=resolveOptionModel(selectedValue);if(selectedValue!==NO_PREFERENCE&&selectedModel&&!isModelAllowed(selectedModel)){onSelect(selectedValue===NO_PREFERENCE?null:selectedValue,void 0);return}let clampedEffort=focusedAvailableLevels.includes(effort)?effort:focusedDefaultEffort;if(logEvent("tengu_model_command_menu_effort",{effort:clampedEffort}),!skipSettingsWrite){let effortLevel=resolvePickerEffortPersistence(clampedEffort,getDefaultEffortLevelForOption(selectedValue),getSettingsForSource("userSettings")?.effortLevel,hasToggledEffort),persistable=toPersistableEffort(effortLevel);if(persistable!==void 0)updateSettingsForSource("userSettings",{effortLevel:persistable});setAppState((prev_0)=>({...prev_0,effortValue:effortLevel}))}let selectedEffort=hasToggledEffort&&selectedModel&&modelSupportsEffort(selectedModel)?clampedEffort:void 0;if(selectedValue===NO_PREFERENCE){onSelect(null,selectedEffort);return}let selectedSwitchProfileId=resolveSelectedSwitchProfileId(selectOptions,selectedValue);onSelect(selectedValue,selectedEffort,selectedSwitchProfileId)},$2[35]=effort,$2[36]=hasToggledEffort,$2[37]=onSelect,$2[38]=setAppState,$2[39]=skipSettingsWrite,$2[46]=focusedAvailableLevels,$2[47]=focusedDefaultEffort,$2[48]=selectOptions,$2[40]=t14;else t14=$2[40];let handleSelect=t14,t15;if($2[41]===Symbol.for("react.memo_cache_sentinel"))t15=jsxDEV(ThemedText,{color:"remember",bold:!0,children:"Select model"},void 0,!1,void 0,this),$2[41]=t15;else t15=$2[41];let t16=headerText??"Switch between Claude models. Applies to this session and future Claudio sessions. For other/previous model names, specify with --model.",t17;if($2[42]!==t16)t17=jsxDEV(ThemedText,{dimColor:!0,children:t16},void 0,!1,void 0,this),$2[42]=t16,$2[43]=t17;else t17=$2[43];let t18;if($2[44]!==sessionModel)t18=sessionModel&&jsxDEV(ThemedText,{dimColor:!0,children:["Currently using ",modelDisplayString(sessionModel)," for this session (set by plan mode). Selecting a model will undo this."]},void 0,!0,void 0,this),$2[44]=sessionModel,$2[45]=t18;else t18=$2[45];let refreshHint=onRefresh?jsxDEV(ConfigurableShortcutHint,{action:"modelPicker:refresh",context:"ModelPicker",fallback:"r",description:"refresh models"},void 0,!1,void 0,this):null,discoveryLine=discoveryState?jsxDEV(ThemedText,{color:mapDiscoveryToneToColor(discoveryState.tone),children:[discoveryState.message,refreshHint?jsxDEV(ThemedText,{color:"subtle",children:[" "," ","· ",refreshHint]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this):refreshHint?jsxDEV(ThemedText,{dimColor:!0,children:refreshHint},void 0,!1,void 0,this):null,t19=jsxDEV(ThemedBox_default,{marginBottom:1,flexDirection:"column",children:[t15,t17,t18,discoveryLine]},void 0,!0,void 0,this),t20=onCancel??_temp412,t21;if($2[49]!==handleFocus||$2[50]!==handleSelect||$2[51]!==initialFocusValue||$2[52]!==selectOptions||$2[53]!==t20||$2[54]!==visibleCount)t21=jsxDEV(ThemedBox_default,{flexDirection:"column",children:jsxDEV(Select,{defaultValue:initialFocusValue,defaultFocusValue:initialFocusValue,options:selectOptions,onChange:handleSelect,onFocus:handleFocus,onCancel:t20,visibleOptionCount:visibleCount},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[49]=handleFocus,$2[50]=handleSelect,$2[51]=initialFocusValue,$2[52]=selectOptions,$2[53]=t20,$2[54]=visibleCount,$2[56]=t21;else t21=$2[56];let t22;if($2[57]!==hiddenCount)t22=hiddenCount>0&&jsxDEV(ThemedBox_default,{paddingLeft:3,children:jsxDEV(ThemedText,{dimColor:!0,children:["and ",hiddenCount," more…"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[57]=hiddenCount,$2[58]=t22;else t22=$2[58];let t23;if($2[59]!==t21||$2[60]!==t22)t23=jsxDEV(ThemedBox_default,{flexDirection:"column",marginBottom:1,children:[t21,t22]},void 0,!0,void 0,this),$2[59]=t21,$2[60]=t22,$2[61]=t23;else t23=$2[61];let t24;if($2[62]!==displayEffort||$2[63]!==focusedDefaultEffort||$2[64]!==focusedModelName||$2[65]!==focusedSupportsEffort)t24=jsxDEV(ThemedBox_default,{marginBottom:1,flexDirection:"column",children:focusedSupportsEffort?jsxDEV(ThemedText,{dimColor:!0,children:[jsxDEV(EffortLevelIndicator,{effort:displayEffort},void 0,!1,void 0,this)," ",capitalize_default(displayEffort)," effort",displayEffort===focusedDefaultEffort?" (default)":""," ",jsxDEV(ThemedText,{color:"subtle",children:"← → to adjust"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{color:"subtle",children:[jsxDEV(EffortLevelIndicator,{effort:void 0},void 0,!1,void 0,this)," Effort not supported",focusedModelName?` for ${focusedModelName}`:""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[62]=displayEffort,$2[63]=focusedDefaultEffort,$2[64]=focusedModelName,$2[65]=focusedSupportsEffort,$2[66]=t24;else t24=$2[66];let t25;if($2[67]!==showFastModeNotice)t25=isFastModeEnabled()?showFastModeNotice?jsxDEV(ThemedBox_default,{marginBottom:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Fast mode is ",jsxDEV(ThemedText,{bold:!0,children:"ON"},void 0,!1,void 0,this)," and available with"," ",FAST_MODE_MODEL_DISPLAY," only (/fast). Switching to other models turn off fast mode."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):isFastModeAvailable()&&!isFastModeCooldown()?jsxDEV(ThemedBox_default,{marginBottom:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Use ",jsxDEV(ThemedText,{bold:!0,children:"/fast"},void 0,!1,void 0,this)," to turn on Fast mode (",FAST_MODE_MODEL_DISPLAY," only)."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):null:null,$2[67]=showFastModeNotice,$2[68]=t25;else t25=$2[68];let t26;if($2[69]!==t19||$2[70]!==t23||$2[71]!==t24||$2[72]!==t25)t26=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t19,t23,t24,t25]},void 0,!0,void 0,this),$2[69]=t19,$2[70]=t23,$2[71]=t24,$2[72]=t25,$2[73]=t26;else t26=$2[73];let t27;if($2[74]!==exitState||$2[75]!==isStandaloneCommand||$2[76]!==refreshHint)t27=isStandaloneCommand&&jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),refreshHint,jsxDEV(ConfigurableShortcutHint,{action:"select:cancel",context:"Select",fallback:"Esc",description:"exit"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[74]=exitState,$2[75]=isStandaloneCommand,$2[76]=refreshHint,$2[82]=t27;else t27=$2[82];let t28;if($2[77]!==t26||$2[78]!==t27)t28=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t26,t27]},void 0,!0,void 0,this),$2[77]=t26,$2[78]=t27,$2[79]=t28;else t28=$2[79];let content=t28;if(!isStandaloneCommand)return content;let t29;if($2[80]!==content)t29=jsxDEV(Pane,{color:"permission",children:content},void 0,!1,void 0,this),$2[80]=content,$2[81]=t29;else t29=$2[81];return t29}function _temp412(){}function _temp312(opt_0){return{...opt_0,value:opt_0.value===null?NO_PREFERENCE:opt_0.value}}function _temp217(s_0){return s_0.effortValue}function _temp59(s){return isFastModeEnabled()?s.fastMode:!1}function isGenuineSwitchProfileValue(value){return resolveSelectedSwitchProfileId(getModelOptions(),value)!==void 0}function resolveOptionModel(value){if(!value)return;if(value===NO_PREFERENCE)return getDefaultMainLoopModel();let switched=isGenuineSwitchProfileValue(value)?parseSwitchProfileValue(value):null;return parseUserSpecifiedModel(switched?switched.model:value)}function EffortLevelIndicator(t0){let $2=import_react_compiler_runtime128.c(5),{effort}=t0,t1=effort?"claude":"subtle",t2=effort??"low",t3;if($2[0]!==t2)t3=effortLevelToSymbol(t2),$2[0]=t2,$2[1]=t3;else t3=$2[1];let t4;if($2[2]!==t1||$2[3]!==t3)t4=jsxDEV(ThemedText,{color:t1,children:t3},void 0,!1,void 0,this),$2[2]=t1,$2[3]=t3,$2[4]=t4;else t4=$2[4];return t4}function cycleEffortLevel(current,direction,levels){let idx=levels.indexOf(current),currentIndex=idx!==-1?idx:levels.indexOf("high");if(direction==="right")return levels[(currentIndex+1)%levels.length];else return levels[(currentIndex-1+levels.length)%levels.length]}function getDefaultEffortLevelForOption(value){let resolved=resolveOptionModel(value)??getDefaultMainLoopModel(),defaultValue=getDefaultEffortForModel(resolved);return defaultValue!==void 0?convertEffortValueToLevel(defaultValue):"high"}var import_react_compiler_runtime128,import_react101,NO_PREFERENCE="__NO_PREFERENCE__";var init_ModelPicker=__esm(()=>{init_capitalize();init_useExitOnCtrlCDWithKeybindings();init_fastMode();init_ink2();init_useKeybinding();init_AppState();init_effort();init_modelAllowlist();init_model();init_modelOptions();init_settings3();init_ConfigurableShortcutHint();init_CustomSelect();init_Byline();init_KeyboardShortcutHint();init_Pane();init_EffortIndicator();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime128=__toESM(require_dist4(),1),import_react101=__toESM(require_react_production(),1)});function isBilledAsExtraUsage(model,isFastMode,isOpus1mMerged){if(!isClaudeAISubscriber())return!1;if(isFastMode)return!0;if(model===null||!has1mContext(model))return!1;let m=model.toLowerCase().replace(/\[1m\]$/,"").trim(),isOpus=m==="opus"||m.includes("opus-4-6")||m.includes("opus-4-7")||m.includes("opus-4-8"),isSonnet46=m==="sonnet"||m.includes("sonnet-4-6");if(isOpus&&isOpus1mMerged)return!1;return isOpus||isSonnet46}var init_extraUsage=__esm(()=>{init_auth5();init_context()});var exports_ClaudeMdExternalIncludesDialog={};__export(exports_ClaudeMdExternalIncludesDialog,{ClaudeMdExternalIncludesDialog:()=>ClaudeMdExternalIncludesDialog});import{join as join118}from"path";function acceptProject(current){return{...current,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0}}function acceptUser(current){return{...current,hasClaudeMdExternalIncludesApprovedForUser:!0,hasClaudeMdExternalIncludesWarningShownForUser:!0}}function declineProject(current){return{...current,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0}}function declineUser(current){return{...current,hasClaudeMdExternalIncludesApprovedForUser:!1,hasClaudeMdExternalIncludesWarningShownForUser:!0}}function getUserClaudeMdDisplayPath(){return getDisplayPath(join118(getClaudeConfigHomeDir(),"CLAUDE.md"))}function ClaudeMdExternalIncludesDialog(t0){let $2=import_react_compiler_runtime129.c(18),{onDone,isStandaloneDialog,externalIncludes,scope}=t0;import_react102.default.useEffect(_temp60,[]);let handleSelection=import_react102.default.useCallback((value)=>{if(value==="no")logEvent("tengu_claude_md_external_includes_dialog_declined",{}),saveCurrentProjectConfig(scope==="User"?declineUser:declineProject);else logEvent("tengu_claude_md_external_includes_dialog_accepted",{}),saveCurrentProjectConfig(scope==="User"?acceptUser:acceptProject);onDone()},[onDone,scope]),handleEscape=import_react102.default.useCallback(()=>handleSelection("no"),[handleSelection]),title=scope==="User"?"Allow user CLAUDE.md file imports?":"Allow external CLAUDE.md file imports?",description=scope==="User"?jsxDEV(ThemedText,{children:["Your user CLAUDE.md (",getUserClaudeMdDisplayPath(),") imports files outside the current working directory."]},void 0,!0,void 0,this):jsxDEV(ThemedText,{children:"This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories."},void 0,!1,void 0,this);return jsxDEV(Dialog,{title,color:"warning",onCancel:handleEscape,hideBorder:!isStandaloneDialog,hideInputGuide:!isStandaloneDialog,children:[description,externalIncludes&&externalIncludes.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{dimColor:!0,children:"External imports:"},void 0,!1,void 0,this),externalIncludes.map((include,i3)=>jsxDEV(ThemedText,{dimColor:!0,children:[" ",include.path]},i3,!0,void 0,this))]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["Important: Only use Claude Code with files you trust. Accessing untrusted files may pose security risks"," ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/security"},void 0,!1,void 0,this)," "]},void 0,!0,void 0,this),jsxDEV(Select,{options:[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],onChange:(value)=>handleSelection(value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function _temp60(){logEvent("tengu_claude_md_includes_dialog_shown",{})}var import_react_compiler_runtime129,import_react102;var init_ClaudeMdExternalIncludesDialog=__esm(()=>{init_ink2();init_config();init_envUtils();init_file();init_CustomSelect();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime129=__toESM(require_dist4(),1),import_react102=__toESM(require_react_production(),1)});function ChannelDowngradeDialog(t0){let $2=import_react_compiler_runtime130.c(17),{currentVersion,onChoice}=t0,t1;if($2[0]!==onChoice)t1=function(value){onChoice(value)},$2[0]=onChoice,$2[1]=t1;else t1=$2[1];let handleSelect=t1,t2;if($2[2]!==onChoice)t2=function(){onChoice("cancel")},$2[2]=onChoice,$2[3]=t2;else t2=$2[3];let handleCancel=t2,t3;if($2[4]!==currentVersion)t3=jsxDEV(ThemedText,{children:["The stable channel may have an older version than what you're currently running (",currentVersion,")."]},void 0,!0,void 0,this),$2[4]=currentVersion,$2[5]=t3;else t3=$2[5];let t4;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{dimColor:!0,children:"How would you like to handle this?"},void 0,!1,void 0,this),$2[6]=t4;else t4=$2[6];let t5;if($2[7]===Symbol.for("react.memo_cache_sentinel"))t5={label:"Allow possible downgrade to stable version",value:"downgrade"},$2[7]=t5;else t5=$2[7];let t6=`Stay on current version (${currentVersion}) until stable catches up`,t7;if($2[8]!==t6)t7=[t5,{label:t6,value:"stay"}],$2[8]=t6,$2[9]=t7;else t7=$2[9];let t8;if($2[10]!==handleSelect||$2[11]!==t7)t8=jsxDEV(Select,{options:t7,onChange:handleSelect},void 0,!1,void 0,this),$2[10]=handleSelect,$2[11]=t7,$2[12]=t8;else t8=$2[12];let t9;if($2[13]!==handleCancel||$2[14]!==t3||$2[15]!==t8)t9=jsxDEV(Dialog,{title:"Switch to Stable Channel",onCancel:handleCancel,color:"permission",hideBorder:!0,hideInputGuide:!0,children:[t3,t4,t8]},void 0,!0,void 0,this),$2[13]=handleCancel,$2[14]=t3,$2[15]=t8,$2[16]=t9;else t9=$2[16];return t9}var import_react_compiler_runtime130;var init_ChannelDowngradeDialog=__esm(()=>{init_ink2();init_CustomSelect();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime130=__toESM(require_dist4(),1)});function mapConfigsToOptions(styles5){return Object.entries(styles5).map(([style,config3])=>({label:config3?.name??DEFAULT_OUTPUT_STYLE_LABEL,value:style,description:config3?.description??DEFAULT_OUTPUT_STYLE_DESCRIPTION}))}function OutputStylePicker(t0){let $2=import_react_compiler_runtime131.c(16),{initialStyle,onComplete,onCancel,isStandaloneCommand}=t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=[],$2[0]=t1;else t1=$2[0];let[styleOptions,setStyleOptions]=import_react103.useState(t1),[isLoading,setIsLoading]=import_react103.useState(!0),t2,t3;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t2=()=>{getAllOutputStyles(getCwd()).then((allStyles)=>{let options2=mapConfigsToOptions(allStyles);setStyleOptions(options2),setIsLoading(!1)}).catch(()=>{let builtInOptions=mapConfigsToOptions(OUTPUT_STYLE_CONFIG);setStyleOptions(builtInOptions),setIsLoading(!1)})},t3=[],$2[1]=t2,$2[2]=t3;else t2=$2[1],t3=$2[2];import_react103.useEffect(t2,t3);let t4;if($2[3]!==onComplete)t4=(style)=>{onComplete(style)},$2[3]=onComplete,$2[4]=t4;else t4=$2[4];let handleStyleSelect=t4,t5=!isStandaloneCommand,t6=!isStandaloneCommand,t7;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:"This changes how Claudio communicates with you"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[5]=t7;else t7=$2[5];let t8;if($2[6]!==handleStyleSelect||$2[7]!==initialStyle||$2[8]!==isLoading||$2[9]!==styleOptions)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t7,isLoading?jsxDEV(ThemedText,{dimColor:!0,children:"Loading output styles…"},void 0,!1,void 0,this):jsxDEV(Select,{options:styleOptions,onChange:handleStyleSelect,visibleOptionCount:10,defaultValue:initialStyle},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[6]=handleStyleSelect,$2[7]=initialStyle,$2[8]=isLoading,$2[9]=styleOptions,$2[10]=t8;else t8=$2[10];let t9;if($2[11]!==onCancel||$2[12]!==t5||$2[13]!==t6||$2[14]!==t8)t9=jsxDEV(Dialog,{title:"Preferred output style",onCancel,hideInputGuide:t5,hideBorder:t6,children:t8},void 0,!1,void 0,this),$2[11]=onCancel,$2[12]=t5,$2[13]=t6,$2[14]=t8,$2[15]=t9;else t9=$2[15];return t9}var import_react_compiler_runtime131,import_react103,DEFAULT_OUTPUT_STYLE_LABEL="Default",DEFAULT_OUTPUT_STYLE_DESCRIPTION;var init_OutputStylePicker=__esm(()=>{init_outputStyles();init_ink2();init_cwd();init_select();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime131=__toESM(require_dist4(),1),import_react103=__toESM(require_react_production(),1),DEFAULT_OUTPUT_STYLE_DESCRIPTION=`${PRODUCT_DISPLAY_NAME} completes coding tasks efficiently and provides concise responses`});function LanguagePicker(t0){let $2=import_react_compiler_runtime132.c(13),{initialLanguage,onComplete,onCancel}=t0,[language,setLanguage]=import_react104.useState(initialLanguage),[cursorOffset,setCursorOffset]=import_react104.useState((initialLanguage??"").length),t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1={context:"Settings"},$2[0]=t1;else t1=$2[0];useKeybinding("confirm:no",onCancel,t1);let t2;if($2[1]!==language||$2[2]!==onComplete)t2=function(){let trimmed=language?.trim();onComplete(trimmed||void 0)},$2[1]=language,$2[2]=onComplete,$2[3]=t2;else t2=$2[3];let handleSubmit=t2,t3;if($2[4]===Symbol.for("react.memo_cache_sentinel"))t3=jsxDEV(ThemedText,{children:"Enter your preferred response and voice language:"},void 0,!1,void 0,this),$2[4]=t3;else t3=$2[4];let t4;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{children:figures_default.pointer},void 0,!1,void 0,this),$2[5]=t4;else t4=$2[5];let t5=language??"",t6;if($2[6]!==cursorOffset||$2[7]!==handleSubmit||$2[8]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,children:[t4,jsxDEV(TextInput,{value:t5,onChange:setLanguage,onSubmit:handleSubmit,focus:!0,showCursor:!0,placeholder:`e.g., Japanese, 日本語, Español${figures_default.ellipsis}`,columns:60,cursorOffset,onChangeCursorOffset:setCursorOffset},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[6]=cursorOffset,$2[7]=handleSubmit,$2[8]=t5,$2[9]=t6;else t6=$2[9];let t7;if($2[10]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedText,{dimColor:!0,children:"Leave empty for default (English)"},void 0,!1,void 0,this),$2[10]=t7;else t7=$2[10];let t8;if($2[11]!==t6)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t3,t6,t7]},void 0,!0,void 0,this),$2[11]=t6,$2[12]=t8;else t8=$2[12];return t8}var import_react_compiler_runtime132,import_react104;var init_LanguagePicker=__esm(()=>{init_figures();init_ink2();init_useKeybinding();init_TextInput();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime132=__toESM(require_dist4(),1),import_react104=__toESM(require_react_production(),1)});function SearchBox(t0){let $2=import_react_compiler_runtime133.c(17),{query:query3,placeholder:t1,isFocused,isTerminalFocused,prefix:t2,width,cursorOffset,borderless:t3}=t0,placeholder=t1===void 0?"Search…":t1,prefix=t2===void 0?"⌕":t2,borderless=t3===void 0?!1:t3,offset=cursorOffset??query3.length,t4=borderless?void 0:"round",t5=isFocused?"suggestion":void 0,t6=!isFocused,t7=borderless?0:1,t8=!isFocused,t9;if($2[0]!==isFocused||$2[1]!==isTerminalFocused||$2[2]!==offset||$2[3]!==placeholder||$2[4]!==query3)t9=isFocused?jsxDEV($Fragment,{children:query3?isTerminalFocused?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:query3.slice(0,offset)},void 0,!1,void 0,this),jsxDEV(ThemedText,{inverse:!0,children:offset<query3.length?query3[offset]:" "},void 0,!1,void 0,this),offset<query3.length&&jsxDEV(ThemedText,{children:query3.slice(offset+1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{children:query3},void 0,!1,void 0,this):isTerminalFocused?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{inverse:!0,children:placeholder.charAt(0)},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:placeholder.slice(1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this):query3?jsxDEV(ThemedText,{children:query3},void 0,!1,void 0,this):jsxDEV(ThemedText,{children:placeholder},void 0,!1,void 0,this),$2[0]=isFocused,$2[1]=isTerminalFocused,$2[2]=offset,$2[3]=placeholder,$2[4]=query3,$2[5]=t9;else t9=$2[5];let t10;if($2[6]!==prefix||$2[7]!==t8||$2[8]!==t9)t10=jsxDEV(ThemedText,{dimColor:t8,children:[prefix," ",t9]},void 0,!0,void 0,this),$2[6]=prefix,$2[7]=t8,$2[8]=t9,$2[9]=t10;else t10=$2[9];let t11;if($2[10]!==t10||$2[11]!==t4||$2[12]!==t5||$2[13]!==t6||$2[14]!==t7||$2[15]!==width)t11=jsxDEV(ThemedBox_default,{flexShrink:0,borderStyle:t4,borderColor:t5,borderDimColor:t6,paddingX:t7,width,children:t10},void 0,!1,void 0,this),$2[10]=t10,$2[11]=t4,$2[12]=t5,$2[13]=t6,$2[14]=t7,$2[15]=width,$2[16]=t11;else t11=$2[16];return t11}var import_react_compiler_runtime133;var init_SearchBox=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime133=__toESM(require_dist4(),1)});function isKillKey(e){if(e.ctrl&&(e.key==="k"||e.key==="u"||e.key==="w"))return!0;if(e.meta&&e.key==="backspace")return!0;return!1}function isYankKey(e){return(e.ctrl||e.meta)&&e.key==="y"}function useSearchInput({isActive,onExit:onExit2,onCancel,onExitUp,columns,passthroughCtrlKeys=[],initialQuery="",backspaceExitsOnEmpty=!0}){let{columns:terminalColumns}=useTerminalSize(),effectiveColumns=columns??terminalColumns,[query3,setQueryState]=import_react105.useState(initialQuery),[cursorOffset,setCursorOffset]=import_react105.useState(initialQuery.length),setQuery=import_react105.useCallback((q)=>{setQueryState(q),setCursorOffset(q.length)},[]),handleKeyDown=(e)=>{if(!isActive)return;let cursor=Cursor.fromText(query3,effectiveColumns,cursorOffset);if(e.ctrl&&passthroughCtrlKeys.includes(e.key.toLowerCase()))return;if(!isKillKey(e))resetKillAccumulation();if(!isYankKey(e))resetYankState();if(e.key==="return"||e.key==="down"){e.preventDefault(),onExit2();return}if(e.key==="up"){if(e.preventDefault(),onExitUp)onExitUp();return}if(e.key==="escape"){if(e.preventDefault(),onCancel)onCancel();else if(query3.length>0)setQueryState(""),setCursorOffset(0);else onExit2();return}if(e.key==="backspace"){if(e.preventDefault(),e.meta){let{cursor:newCursor2,killed}=cursor.deleteWordBefore();pushToKillRing(killed,"prepend"),setQueryState(newCursor2.text),setCursorOffset(newCursor2.offset);return}if(query3.length===0){if(backspaceExitsOnEmpty)(onCancel??onExit2)();return}let newCursor=cursor.backspace();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}if(e.key==="delete"){e.preventDefault();let newCursor=cursor.del();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}if(e.key==="left"&&(e.ctrl||e.meta||e.fn)){e.preventDefault();let newCursor=cursor.prevWord();setCursorOffset(newCursor.offset);return}if(e.key==="right"&&(e.ctrl||e.meta||e.fn)){e.preventDefault();let newCursor=cursor.nextWord();setCursorOffset(newCursor.offset);return}if(e.key==="left"){e.preventDefault();let newCursor=cursor.left();setCursorOffset(newCursor.offset);return}if(e.key==="right"){e.preventDefault();let newCursor=cursor.right();setCursorOffset(newCursor.offset);return}if(e.key==="home"){e.preventDefault(),setCursorOffset(0);return}if(e.key==="end"){e.preventDefault(),setCursorOffset(query3.length);return}if(e.ctrl){switch(e.preventDefault(),e.key.toLowerCase()){case"a":setCursorOffset(0);return;case"e":setCursorOffset(query3.length);return;case"b":setCursorOffset(cursor.left().offset);return;case"f":setCursorOffset(cursor.right().offset);return;case"d":{if(query3.length===0){(onCancel??onExit2)();return}let newCursor=cursor.del();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"h":{if(query3.length===0){if(backspaceExitsOnEmpty)(onCancel??onExit2)();return}let newCursor=cursor.backspace();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"k":{let{cursor:newCursor,killed}=cursor.deleteToLineEnd();pushToKillRing(killed,"append"),setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"u":{let{cursor:newCursor,killed}=cursor.deleteToLineStart();pushToKillRing(killed,"prepend"),setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"w":{let{cursor:newCursor,killed}=cursor.deleteWordBefore();pushToKillRing(killed,"prepend"),setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"y":{let text2=getLastKill();if(text2.length>0){let startOffset=cursor.offset,newCursor=cursor.insert(text2);recordYank(startOffset,text2.length),setQueryState(newCursor.text),setCursorOffset(newCursor.offset)}return}case"g":case"c":if(onCancel){onCancel();return}}return}if(e.meta){switch(e.preventDefault(),e.key.toLowerCase()){case"b":setCursorOffset(cursor.prevWord().offset);return;case"f":setCursorOffset(cursor.nextWord().offset);return;case"d":{let newCursor=cursor.deleteWordAfter();setQueryState(newCursor.text),setCursorOffset(newCursor.offset);return}case"y":{let popResult=yankPop();if(popResult){let{text:text2,start,length}=popResult,before=query3.slice(0,start),after=query3.slice(start+length),newText=before+text2+after,newOffset=start+text2.length;updateYankLength(text2.length),setQueryState(newText),setCursorOffset(newOffset)}return}}return}if(e.key==="tab")return;if(e.key.length>=1&&!UNHANDLED_SPECIAL_KEYS.has(e.key)){e.preventDefault();let newCursor=cursor.insert(e.key);setQueryState(newCursor.text),setCursorOffset(newCursor.offset)}};return use_input_default((_input,_key,event)=>{handleKeyDown(new KeyboardEvent(event.keypress))},{isActive}),{query:query3,setQuery,cursorOffset,handleKeyDown}}var import_react105,UNHANDLED_SPECIAL_KEYS;var init_useSearchInput=__esm(()=>{init_keyboard_event();init_ink2();init_Cursor();init_useTerminalSize();import_react105=__toESM(require_react_production(),1);UNHANDLED_SPECIAL_KEYS=new Set(["pageup","pagedown","insert","wheelup","wheeldown","mouse","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12"])});function getDefaultPermissionModeOptions(showAutoInDefaultModePicker){let priorityOrder=["default","plan"],allModes=PERMISSION_MODES,excluded=["bypassPermissions","fullAccess"];if(!showAutoInDefaultModePicker)excluded.push("auto");return[...priorityOrder,...allModes.filter((mode)=>!priorityOrder.includes(mode)&&!excluded.includes(mode))]}var init_defaultPermissionModeOptions=__esm(()=>{init_PermissionMode()});function Config({onClose,context,setTabsHidden,onIsSearchModeChange,contentHeight}){let{headerFocused,focusHeader}=useTabHeaderFocus(),insideModal=useIsInsideModal(),[,setTheme]=useTheme(),themeSetting=useThemeSetting(),[globalConfig2,setGlobalConfig]=import_react106.useState(getGlobalConfig()),initialConfig=React57.useRef(getGlobalConfig()),[settingsData,setSettingsData]=import_react106.useState(getInitialSettings()),initialSettingsData=React57.useRef(getInitialSettings()),[currentOutputStyle,setCurrentOutputStyle]=import_react106.useState(settingsData?.outputStyle||DEFAULT_OUTPUT_STYLE_NAME),initialOutputStyle=React57.useRef(currentOutputStyle),[currentLanguage,setCurrentLanguage]=import_react106.useState(settingsData?.language),initialLanguage=React57.useRef(currentLanguage),[selectedIndex,setSelectedIndex]=import_react106.useState(0),[scrollOffset,setScrollOffset]=import_react106.useState(0),[isSearchMode,setIsSearchMode]=import_react106.useState(!0),isTerminalFocused=useTerminalFocus(),{rows}=useTerminalSize(),paneCap=contentHeight??Math.min(Math.floor(rows*0.8),30),maxVisible=Math.max(5,paneCap-10),mainLoopModel=useAppState((s)=>s.mainLoopModel),verbose=useAppState((s_0)=>s_0.verbose),thinkingEnabled=useAppState((s_1)=>s_1.thinkingEnabled),isFastMode=useAppState((s_2)=>isFastModeEnabled()?s_2.fastMode:!1),promptSuggestionEnabled=useAppState((s_3)=>s_3.promptSuggestionEnabled),showAutoInDefaultModePicker=hasAutoModeOptInAnySource()||getAutoModeEnabledState()==="enabled",showDefaultViewPicker=!1,setAppState=useSetAppState(),[changes,setChanges]=import_react106.useState({}),initialThinkingEnabled=React57.useRef(thinkingEnabled),[initialLocalSettings]=import_react106.useState(()=>getSettingsForSource("localSettings")),[initialUserSettings]=import_react106.useState(()=>getSettingsForSource("userSettings")),initialThemeSetting=React57.useRef(themeSetting),store=useAppStateStore(),[initialAppState]=import_react106.useState(()=>{let s_4=store.getState();return{mainLoopModel:s_4.mainLoopModel,mainLoopModelForSession:s_4.mainLoopModelForSession,verbose:s_4.verbose,thinkingEnabled:s_4.thinkingEnabled,fastMode:s_4.fastMode,promptSuggestionEnabled:s_4.promptSuggestionEnabled,isBriefOnly:s_4.isBriefOnly,replBridgeEnabled:s_4.replBridgeEnabled,replBridgeOutboundOnly:s_4.replBridgeOutboundOnly,settings:s_4.settings}}),[initialUserMsgOptIn]=import_react106.useState(()=>getUserMsgOptIn()),isDirty2=React57.useRef(!1),[showThinkingWarning,setShowThinkingWarning]=import_react106.useState(!1),[showSubmenu,setShowSubmenu]=import_react106.useState(null),{query:searchQuery,setQuery:setSearchQuery,cursorOffset:searchCursorOffset}=useSearchInput({isActive:isSearchMode&&showSubmenu===null&&!headerFocused,onExit:()=>setIsSearchMode(!1),onExitUp:focusHeader,passthroughCtrlKeys:["c","d"]}),ownsEsc=isSearchMode&&!headerFocused;React57.useEffect(()=>{onIsSearchModeChange?.(ownsEsc)},[ownsEsc,onIsSearchModeChange]);let isConnectedToIde=hasAccessToIDEExtensionDiffFeature(context.options.mcpClients),isFileCheckpointingAvailable=!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING),memoryFiles=React57.use(getMemoryFiles(!0));function getPendingExternalIncludesScope(){let cfg=getCurrentProjectConfig();if(!cfg.hasClaudeMdExternalIncludesApproved&&!cfg.hasClaudeMdExternalIncludesWarningShown&&hasExternalClaudeMdIncludes(memoryFiles,["Project","Local"]))return"Project";if(!cfg.hasClaudeMdExternalIncludesApprovedForUser&&!cfg.hasClaudeMdExternalIncludesWarningShownForUser&&hasExternalClaudeMdIncludes(memoryFiles,["User"]))return"User";return null}let pendingScope=getPendingExternalIncludesScope(),shouldShowExternalIncludesToggle=pendingScope!==null,autoUpdaterDisabledReason=getAutoUpdaterDisabledReason();function onChangeMainModelConfig(value){logEvent("tengu_config_model_changed",{from_model:mainLoopModel,to_model:value}),setAppState((prev)=>({...prev,mainLoopModel:value,mainLoopModelForSession:null})),setChanges((prev_0)=>{let valStr=modelDisplayString(value)+(isBilledAsExtraUsage(value,!1,isOpus1mMergeEnabled())?" · Billed as extra usage":"");if("model"in prev_0){let{model,...rest}=prev_0;return{...rest,model:valStr}}return{...prev_0,model:valStr}})}function onChangeVerbose(value_0){saveGlobalConfig((current)=>({...current,verbose:value_0})),setGlobalConfig({...getGlobalConfig(),verbose:value_0}),setAppState((prev_1)=>({...prev_1,verbose:value_0})),setChanges((prev_2)=>{if("verbose"in prev_2){let{verbose:verbose_0,...rest_0}=prev_2;return rest_0}return{...prev_2,verbose:value_0}})}let settingsItems=[{id:"autoCompactEnabled",label:"Auto-compact",value:globalConfig2.autoCompactEnabled,type:"boolean",onChange(autoCompactEnabled){saveGlobalConfig((current_0)=>({...current_0,autoCompactEnabled})),setGlobalConfig({...getGlobalConfig(),autoCompactEnabled}),logEvent("tengu_auto_compact_setting_changed",{enabled:autoCompactEnabled})}},{id:"maxMessagesCompactionThreshold",label:"Message-count compaction",value:normalizeMaxMessagesCompactionThreshold(globalConfig2.maxMessagesCompactionThreshold),options:[...MAX_MESSAGES_COMPACTION_THRESHOLDS],type:"enum",onChange(maxMessagesCompactionThreshold){let normalizedThreshold=normalizeMaxMessagesCompactionThreshold(maxMessagesCompactionThreshold);saveGlobalConfig((current)=>({...current,maxMessagesCompactionThreshold:normalizedThreshold})),setGlobalConfig({...getGlobalConfig(),maxMessagesCompactionThreshold:normalizedThreshold}),logEvent("tengu_max_messages_compaction_threshold_changed",{threshold:normalizedThreshold})}},{id:"toolHistoryCompressionEnabled",label:"Tool history compression",value:globalConfig2.toolHistoryCompressionEnabled,type:"boolean",onChange(toolHistoryCompressionEnabled){saveGlobalConfig((current)=>({...current,toolHistoryCompressionEnabled})),setGlobalConfig({...getGlobalConfig(),toolHistoryCompressionEnabled}),logEvent("tengu_tool_history_compression_setting_changed",{enabled:toolHistoryCompressionEnabled})}},{id:"contextCollapseEnabled",label:"Context collapse (lossy)",value:globalConfig2.contextCollapseEnabled,type:"boolean",onChange(contextCollapseEnabled){saveGlobalConfig((current_cc)=>({...current_cc,contextCollapseEnabled})),setGlobalConfig({...getGlobalConfig(),contextCollapseEnabled});try{(init_contextCollapse(),__toCommonJS(exports_contextCollapse)).initContextCollapse()}catch(error41){logError(`Failed to refresh context collapse state: ${error41}`)}logEvent("tengu_context_collapse_setting_changed",{enabled:contextCollapseEnabled})}},{id:"showCacheStats",label:"Cache stats display",value:globalConfig2.showCacheStats,options:["off","compact","full"],type:"enum",onChange(mode){let showCacheStats=mode==="off"||mode==="compact"||mode==="full"?mode:"compact";saveGlobalConfig((current_cs)=>({...current_cs,showCacheStats})),setGlobalConfig({...getGlobalConfig(),showCacheStats}),logEvent("tengu_show_cache_stats_setting_changed",{mode:showCacheStats})}},{id:"spinnerTipsEnabled",label:"Show tips",value:settingsData?.spinnerTipsEnabled??!0,type:"boolean",onChange(spinnerTipsEnabled){updateSettingsForSource("localSettings",{spinnerTipsEnabled}),setSettingsData((prev_3)=>({...prev_3,spinnerTipsEnabled})),logEvent("tengu_tips_setting_changed",{enabled:spinnerTipsEnabled})}},{id:"prefersReducedMotion",label:"Reduce motion",value:settingsData?.prefersReducedMotion??!1,type:"boolean",onChange(prefersReducedMotion){updateSettingsForSource("localSettings",{prefersReducedMotion}),setSettingsData((prev_4)=>({...prev_4,prefersReducedMotion})),setAppState((prev_5)=>({...prev_5,settings:{...prev_5.settings,prefersReducedMotion}})),logEvent("tengu_reduce_motion_setting_changed",{enabled:prefersReducedMotion})}},{id:"thinkingEnabled",label:"Thinking mode",value:thinkingEnabled??!0,type:"boolean",onChange(enabled2){setAppState((prev_6)=>({...prev_6,thinkingEnabled:enabled2})),updateSettingsForSource("userSettings",{alwaysThinkingEnabled:enabled2?void 0:!1}),logEvent("tengu_thinking_toggled",{enabled:enabled2})}},...isFastModeEnabled()&&isFastModeAvailable()?[{id:"fastMode",label:`Fast mode (${FAST_MODE_MODEL_DISPLAY} only)`,value:!!isFastMode,type:"boolean",onChange(enabled_0){if(clearFastModeCooldown(),updateSettingsForSource("userSettings",{fastMode:enabled_0?!0:void 0}),enabled_0)setAppState((prev_7)=>({...prev_7,mainLoopModel:getFastModeModel(),mainLoopModelForSession:null,fastMode:!0})),setChanges((prev_8)=>({...prev_8,model:getFastModeModel(),"Fast mode":"ON"}));else setAppState((prev_9)=>({...prev_9,fastMode:!1})),setChanges((prev_10)=>({...prev_10,"Fast mode":"OFF"}))}}]:[],...getFeatureValue_CACHED_MAY_BE_STALE("tengu_chomp_inflection",!1)?[{id:"promptSuggestionEnabled",label:"Prompt suggestions",value:promptSuggestionEnabled,type:"boolean",onChange(enabled_1){setAppState((prev_11)=>({...prev_11,promptSuggestionEnabled:enabled_1})),updateSettingsForSource("userSettings",{promptSuggestionEnabled:enabled_1?void 0:!1})}}]:[],...isFileCheckpointingAvailable?[{id:"fileCheckpointingEnabled",label:"Rewind code (checkpoints)",value:globalConfig2.fileCheckpointingEnabled,type:"boolean",onChange(enabled_3){saveGlobalConfig((current_2)=>({...current_2,fileCheckpointingEnabled:enabled_3})),setGlobalConfig({...getGlobalConfig(),fileCheckpointingEnabled:enabled_3}),logEvent("tengu_file_history_snapshots_setting_changed",{enabled:enabled_3})}}]:[],{id:"verbose",label:"Verbose output",value:verbose,type:"boolean",onChange:onChangeVerbose},{id:"terminalProgressBarEnabled",label:"Terminal progress bar",value:globalConfig2.terminalProgressBarEnabled,type:"boolean",onChange(terminalProgressBarEnabled){saveGlobalConfig((current_3)=>({...current_3,terminalProgressBarEnabled})),setGlobalConfig({...getGlobalConfig(),terminalProgressBarEnabled}),logEvent("tengu_terminal_progress_bar_setting_changed",{enabled:terminalProgressBarEnabled})}},{id:"defaultStatusLineEnabled",label:"Default status line",value:globalConfig2.defaultStatusLineEnabled??!0,type:"boolean",onChange(defaultStatusLineEnabled){saveGlobalConfig((current)=>({...current,defaultStatusLineEnabled})),setGlobalConfig({...getGlobalConfig(),defaultStatusLineEnabled}),logEvent("tengu_default_status_line_setting_changed",{enabled:defaultStatusLineEnabled})}},...getFeatureValue_CACHED_MAY_BE_STALE("tengu_terminal_sidebar",!1)?[{id:"showStatusInTerminalTab",label:"Show status in terminal tab",value:globalConfig2.showStatusInTerminalTab??!1,type:"boolean",onChange(showStatusInTerminalTab){saveGlobalConfig((current_4)=>({...current_4,showStatusInTerminalTab})),setGlobalConfig({...getGlobalConfig(),showStatusInTerminalTab}),logEvent("tengu_terminal_tab_status_setting_changed",{enabled:showStatusInTerminalTab})}}]:[],{id:"showTurnDuration",label:"Show turn duration",value:globalConfig2.showTurnDuration,type:"boolean",onChange(showTurnDuration){saveGlobalConfig((current_5)=>({...current_5,showTurnDuration})),setGlobalConfig({...getGlobalConfig(),showTurnDuration}),logEvent("tengu_show_turn_duration_setting_changed",{enabled:showTurnDuration})}},{id:"defaultPermissionMode",label:"Default permission mode",value:settingsData?.permissions?.defaultMode||"default",options:getDefaultPermissionModeOptions(showAutoInDefaultModePicker),type:"enum",onChange(mode){let parsedMode=permissionModeFromString(mode),validatedMode=isExternalPermissionMode(parsedMode)?toExternalPermissionMode(parsedMode):parsedMode,result=updateSettingsForSource("userSettings",{permissions:{...settingsData?.permissions,defaultMode:validatedMode}});if(result.error){logError(result.error);return}setSettingsData((prev_12)=>({...prev_12,permissions:{...prev_12?.permissions,defaultMode:validatedMode}})),setChanges((prev_13)=>({...prev_13,defaultPermissionMode:mode})),logEvent("tengu_config_changed",{setting:"defaultPermissionMode",value:mode})}},...showAutoInDefaultModePicker?[{id:"useAutoModeDuringPlan",label:"Use auto mode during plan",value:settingsData?.useAutoModeDuringPlan??!0,type:"boolean",onChange(useAutoModeDuringPlan){updateSettingsForSource("userSettings",{useAutoModeDuringPlan}),setSettingsData((prev_14)=>({...prev_14,useAutoModeDuringPlan})),setAppState((prev_15)=>{let next=transitionPlanAutoMode(prev_15.toolPermissionContext);if(next===prev_15.toolPermissionContext)return prev_15;return{...prev_15,toolPermissionContext:next}}),setChanges((prev_16)=>({...prev_16,"Use auto mode during plan":useAutoModeDuringPlan}))}}]:[],{id:"respectGitignore",label:"Respect .gitignore in file picker",value:globalConfig2.respectGitignore,type:"boolean",onChange(respectGitignore){saveGlobalConfig((current_6)=>({...current_6,respectGitignore})),setGlobalConfig({...getGlobalConfig(),respectGitignore}),logEvent("tengu_respect_gitignore_setting_changed",{enabled:respectGitignore})}},{id:"copyFullResponse",label:"Always copy full response (skip /copy picker)",value:globalConfig2.copyFullResponse,type:"boolean",onChange(copyFullResponse){saveGlobalConfig((current_7)=>({...current_7,copyFullResponse})),setGlobalConfig({...getGlobalConfig(),copyFullResponse}),logEvent("tengu_config_changed",{setting:"copyFullResponse",value:String(copyFullResponse)})}},...isFullscreenEnvEnabled()?[{id:"copyOnSelect",label:"Copy on select",value:globalConfig2.copyOnSelect??!0,type:"boolean",onChange(copyOnSelect){saveGlobalConfig((current_8)=>({...current_8,copyOnSelect})),setGlobalConfig({...getGlobalConfig(),copyOnSelect}),logEvent("tengu_config_changed",{setting:"copyOnSelect",value:String(copyOnSelect)})}}]:[],{id:"flickerFreeMode",label:"Flicker-free mode",value:globalConfig2.flickerFreeMode??process.env.USER_TYPE==="ant",type:"boolean",onChange(flickerFreeMode){saveGlobalConfig((current)=>({...current,flickerFreeMode})),setGlobalConfig({...getGlobalConfig(),flickerFreeMode}),logEvent("tengu_config_changed",{setting:"flickerFreeMode",value:String(flickerFreeMode)})}},autoUpdaterDisabledReason?{id:"autoUpdatesChannel",label:"Auto-update channel",value:"disabled",type:"managedEnum",onChange(){}}:{id:"autoUpdatesChannel",label:"Auto-update channel",value:settingsData?.autoUpdatesChannel??"latest",type:"managedEnum",onChange(){}},{id:"theme",label:"Theme",value:themeSetting,type:"managedEnum",onChange:setTheme},{id:"notifChannel",label:"Notifications",value:globalConfig2.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","ghostty","notifications_disabled"],type:"enum",onChange(notifChannel){saveGlobalConfig((current_9)=>({...current_9,preferredNotifChannel:notifChannel})),setGlobalConfig({...getGlobalConfig(),preferredNotifChannel:notifChannel})}},{id:"outputStyle",label:"Output style",value:currentOutputStyle,type:"managedEnum",onChange:()=>{}},{id:"language",label:"Language",value:currentLanguage??"Default (English)",type:"managedEnum",onChange:()=>{}},{id:"editorMode",label:"Editor mode",value:globalConfig2.editorMode==="emacs"?"normal":globalConfig2.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(value_1){saveGlobalConfig((current_13)=>({...current_13,editorMode:value_1})),setGlobalConfig({...getGlobalConfig(),editorMode:value_1}),logEvent("tengu_editor_mode_changed",{mode:value_1,source:"config_panel"})}},{id:"prStatusFooterEnabled",label:"Show PR status footer",value:globalConfig2.prStatusFooterEnabled??!0,type:"boolean",onChange(enabled_4){saveGlobalConfig((current_14)=>{if(current_14.prStatusFooterEnabled===enabled_4)return current_14;return{...current_14,prStatusFooterEnabled:enabled_4}}),setGlobalConfig({...getGlobalConfig(),prStatusFooterEnabled:enabled_4}),logEvent("tengu_pr_status_footer_setting_changed",{enabled:enabled_4})}},{id:"model",label:"Model",value:mainLoopModel===null?"Default (recommended)":mainLoopModel,type:"managedEnum",onChange:onChangeMainModelConfig},{id:"compactModel",label:"Compaction model",value:compactModelDisplayString(globalConfig2.compactModel),type:"managedEnum",onChange(){}},...isConnectedToIde?[{id:"diffTool",label:"Diff tool",value:globalConfig2.diffTool??"auto",options:["terminal","auto"],type:"enum",onChange(diffTool){saveGlobalConfig((current_15)=>({...current_15,diffTool})),setGlobalConfig({...getGlobalConfig(),diffTool}),logEvent("tengu_diff_tool_changed",{tool:diffTool,source:"config_panel"})}}]:[],...!isSupportedTerminal()?[{id:"autoConnectIde",label:"Auto-connect to IDE (external terminal)",value:globalConfig2.autoConnectIde??!1,type:"boolean",onChange(autoConnectIde){saveGlobalConfig((current_16)=>({...current_16,autoConnectIde})),setGlobalConfig({...getGlobalConfig(),autoConnectIde}),logEvent("tengu_auto_connect_ide_changed",{enabled:autoConnectIde,source:"config_panel"})}}]:[],...isSupportedTerminal()?[{id:"autoInstallIdeExtension",label:"Auto-install IDE extension",value:globalConfig2.autoInstallIdeExtension??!0,type:"boolean",onChange(autoInstallIdeExtension){saveGlobalConfig((current_17)=>({...current_17,autoInstallIdeExtension})),setGlobalConfig({...getGlobalConfig(),autoInstallIdeExtension}),logEvent("tengu_auto_install_ide_extension_changed",{enabled:autoInstallIdeExtension,source:"config_panel"})}}]:[],{id:"claudeInChromeDefaultEnabled",label:"Claude in Chrome enabled by default",value:globalConfig2.claudeInChromeDefaultEnabled??!0,type:"boolean",onChange(enabled_5){saveGlobalConfig((current_18)=>({...current_18,claudeInChromeDefaultEnabled:enabled_5})),setGlobalConfig({...getGlobalConfig(),claudeInChromeDefaultEnabled:enabled_5}),logEvent("tengu_claude_in_chrome_setting_changed",{enabled:enabled_5})}},...isAgentSwarmsEnabled()?(()=>{let cliOverride=getCliTeammateModeOverride();return[{id:"teammateMode",label:cliOverride?`Teammate mode [overridden: ${cliOverride}]`:"Teammate mode",value:globalConfig2.teammateMode??"auto",options:["auto","tmux","in-process"],type:"enum",onChange(mode_0){if(mode_0!=="auto"&&mode_0!=="tmux"&&mode_0!=="in-process")return;clearCliTeammateModeOverride(mode_0),saveGlobalConfig((current_19)=>({...current_19,teammateMode:mode_0})),setGlobalConfig({...getGlobalConfig(),teammateMode:mode_0}),logEvent("tengu_teammate_mode_changed",{mode:mode_0})}},{id:"teammateDefaultModel",label:"Default teammate model",value:teammateModelDisplayString(globalConfig2.teammateDefaultModel),type:"managedEnum",onChange(){}}]})():[],...shouldShowExternalIncludesToggle?[{id:"showExternalIncludesDialog",label:pendingScope==="User"?"User CLAUDE.md external includes":"External CLAUDE.md includes",value:(()=>{return getCurrentProjectConfig()[pendingScope==="User"?"hasClaudeMdExternalIncludesApprovedForUser":"hasClaudeMdExternalIncludesApproved"]?"true":"false"})(),type:"managedEnum",onChange(){}}]:[],...process.env.ANTHROPIC_API_KEY&&!isRunningOnHomespace()?[{id:"apiKey",label:jsxDEV(ThemedText,{children:["Use custom API key:"," ",jsxDEV(ThemedText,{bold:!0,children:normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),searchText:"Use custom API key",value:Boolean(process.env.ANTHROPIC_API_KEY&&globalConfig2.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY))),type:"boolean",onChange(useCustomKey){saveGlobalConfig((current_22)=>{let updated={...current_22};if(!updated.customApiKeyResponses)updated.customApiKeyResponses={approved:[],rejected:[]};if(!updated.customApiKeyResponses.approved)updated.customApiKeyResponses={...updated.customApiKeyResponses,approved:[]};if(!updated.customApiKeyResponses.rejected)updated.customApiKeyResponses={...updated.customApiKeyResponses,rejected:[]};if(process.env.ANTHROPIC_API_KEY){let truncatedKey=normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);if(useCustomKey)updated.customApiKeyResponses={...updated.customApiKeyResponses,approved:[...(updated.customApiKeyResponses.approved??[]).filter((k)=>k!==truncatedKey),truncatedKey],rejected:(updated.customApiKeyResponses.rejected??[]).filter((k_0)=>k_0!==truncatedKey)};else updated.customApiKeyResponses={...updated.customApiKeyResponses,approved:(updated.customApiKeyResponses.approved??[]).filter((k_1)=>k_1!==truncatedKey),rejected:[...(updated.customApiKeyResponses.rejected??[]).filter((k_2)=>k_2!==truncatedKey),truncatedKey]}}return updated}),setGlobalConfig(getGlobalConfig())}}]:[]],filteredSettingsItems=React57.useMemo(()=>{if(!searchQuery)return settingsItems;let lowerQuery=searchQuery.toLowerCase();return settingsItems.filter((setting)=>{if(setting.id.toLowerCase().includes(lowerQuery))return!0;return("searchText"in setting?setting.searchText:setting.label).toLowerCase().includes(lowerQuery)})},[settingsItems,searchQuery]);React57.useEffect(()=>{if(selectedIndex>=filteredSettingsItems.length){let newIndex=Math.max(0,filteredSettingsItems.length-1);setSelectedIndex(newIndex),setScrollOffset(Math.max(0,newIndex-maxVisible+1));return}setScrollOffset((prev_21)=>{if(selectedIndex<prev_21)return selectedIndex;if(selectedIndex>=prev_21+maxVisible)return selectedIndex-maxVisible+1;return prev_21})},[filteredSettingsItems.length,selectedIndex,maxVisible]);let adjustScrollOffset=import_react106.useCallback((newIndex_0)=>{setScrollOffset((prev_22)=>{if(newIndex_0<prev_22)return newIndex_0;if(newIndex_0>=prev_22+maxVisible)return newIndex_0-maxVisible+1;return prev_22})},[maxVisible]),handleSaveAndClose=import_react106.useCallback(()=>{if(showSubmenu!==null)return;let formattedChanges=Object.entries(changes).map(([key,value_2])=>{return logEvent("tengu_config_changed",{key,value:value_2}),`Set ${key} to ${source_default.bold(value_2)}`}),effectiveApiKey=isRunningOnHomespace()?void 0:process.env.ANTHROPIC_API_KEY,initialUsingCustomKey=Boolean(effectiveApiKey&&initialConfig.current.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(effectiveApiKey))),currentUsingCustomKey=Boolean(effectiveApiKey&&globalConfig2.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(effectiveApiKey)));if(initialUsingCustomKey!==currentUsingCustomKey)formattedChanges.push(`${currentUsingCustomKey?"Enabled":"Disabled"} custom API key`),logEvent("tengu_config_changed",{key:"env.ANTHROPIC_API_KEY",value:currentUsingCustomKey});if(globalConfig2.theme!==initialConfig.current.theme)formattedChanges.push(`Set theme to ${source_default.bold(globalConfig2.theme)}`);if(globalConfig2.preferredNotifChannel!==initialConfig.current.preferredNotifChannel)formattedChanges.push(`Set notifications to ${source_default.bold(globalConfig2.preferredNotifChannel)}`);if(currentOutputStyle!==initialOutputStyle.current)formattedChanges.push(`Set output style to ${source_default.bold(currentOutputStyle)}`);if(currentLanguage!==initialLanguage.current)formattedChanges.push(`Set response language to ${source_default.bold(currentLanguage??"Default (English)")}`);if(globalConfig2.editorMode!==initialConfig.current.editorMode)formattedChanges.push(`Set editor mode to ${source_default.bold(globalConfig2.editorMode||"emacs")}`);if(globalConfig2.diffTool!==initialConfig.current.diffTool)formattedChanges.push(`Set diff tool to ${source_default.bold(globalConfig2.diffTool)}`);if(globalConfig2.autoConnectIde!==initialConfig.current.autoConnectIde)formattedChanges.push(`${globalConfig2.autoConnectIde?"Enabled":"Disabled"} auto-connect to IDE`);if(globalConfig2.autoInstallIdeExtension!==initialConfig.current.autoInstallIdeExtension)formattedChanges.push(`${globalConfig2.autoInstallIdeExtension?"Enabled":"Disabled"} auto-install IDE extension`);if(globalConfig2.autoCompactEnabled!==initialConfig.current.autoCompactEnabled)formattedChanges.push(`${globalConfig2.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(globalConfig2.maxMessagesCompactionThreshold!==initialConfig.current.maxMessagesCompactionThreshold){let threshold=normalizeMaxMessagesCompactionThreshold(globalConfig2.maxMessagesCompactionThreshold);formattedChanges.push(threshold==="off"?"Disabled message-count compaction":`Set message-count compaction to ${threshold}`)}if(globalConfig2.toolHistoryCompressionEnabled!==initialConfig.current.toolHistoryCompressionEnabled)formattedChanges.push(`${globalConfig2.toolHistoryCompressionEnabled?"Enabled":"Disabled"} tool history compression`);if(globalConfig2.contextCollapseEnabled!==initialConfig.current.contextCollapseEnabled)formattedChanges.push(`${globalConfig2.contextCollapseEnabled?"Enabled":"Disabled"} context collapse (lossy)`);if(globalConfig2.respectGitignore!==initialConfig.current.respectGitignore)formattedChanges.push(`${globalConfig2.respectGitignore?"Enabled":"Disabled"} respect .gitignore in file picker`);if(globalConfig2.copyFullResponse!==initialConfig.current.copyFullResponse)formattedChanges.push(`${globalConfig2.copyFullResponse?"Enabled":"Disabled"} always copy full response`);if(globalConfig2.copyOnSelect!==initialConfig.current.copyOnSelect)formattedChanges.push(`${globalConfig2.copyOnSelect?"Enabled":"Disabled"} copy on select`);if(globalConfig2.terminalProgressBarEnabled!==initialConfig.current.terminalProgressBarEnabled)formattedChanges.push(`${globalConfig2.terminalProgressBarEnabled?"Enabled":"Disabled"} terminal progress bar`);if(globalConfig2.defaultStatusLineEnabled!==initialConfig.current.defaultStatusLineEnabled)formattedChanges.push(`${globalConfig2.defaultStatusLineEnabled??!0?"Enabled":"Disabled"} default status line`);if(globalConfig2.showStatusInTerminalTab!==initialConfig.current.showStatusInTerminalTab)formattedChanges.push(`${globalConfig2.showStatusInTerminalTab?"Enabled":"Disabled"} terminal tab status`);if(globalConfig2.showTurnDuration!==initialConfig.current.showTurnDuration)formattedChanges.push(`${globalConfig2.showTurnDuration?"Enabled":"Disabled"} turn duration`);if(globalConfig2.remoteControlAtStartup!==initialConfig.current.remoteControlAtStartup){let remoteLabel=globalConfig2.remoteControlAtStartup===void 0?"Reset Remote Control to default":`${globalConfig2.remoteControlAtStartup?"Enabled":"Disabled"} Remote Control for all sessions`;formattedChanges.push(remoteLabel)}if(settingsData?.autoUpdatesChannel!==initialSettingsData.current?.autoUpdatesChannel)formattedChanges.push(`Set auto-update channel to ${source_default.bold(settingsData?.autoUpdatesChannel??"latest")}`);if(formattedChanges.length>0)onClose(formattedChanges.join(`
|
|
5096
5096
|
`));else onClose("Config dialog dismissed",{display:"system"})},[showSubmenu,changes,globalConfig2,mainLoopModel,currentOutputStyle,currentLanguage,settingsData?.autoUpdatesChannel,isFastModeEnabled()?settingsData?.fastMode:void 0,onClose]),revertChanges=import_react106.useCallback(()=>{if(themeSetting!==initialThemeSetting.current)setTheme(initialThemeSetting.current);saveGlobalConfig(()=>initialConfig.current);try{(init_contextCollapse(),__toCommonJS(exports_contextCollapse)).initContextCollapse()}catch(error41){logError(`Failed to refresh context collapse state on cancel: ${error41}`)}let il=initialLocalSettings;updateSettingsForSource("localSettings",{spinnerTipsEnabled:il?.spinnerTipsEnabled,prefersReducedMotion:il?.prefersReducedMotion,defaultView:il?.defaultView,outputStyle:il?.outputStyle});let iu=initialUserSettings;updateSettingsForSource("userSettings",{alwaysThinkingEnabled:iu?.alwaysThinkingEnabled,fastMode:iu?.fastMode,promptSuggestionEnabled:iu?.promptSuggestionEnabled,autoUpdatesChannel:iu?.autoUpdatesChannel,minimumVersion:iu?.minimumVersion,language:iu?.language,...{useAutoModeDuringPlan:iu?.useAutoModeDuringPlan},syntaxHighlightingDisabled:iu?.syntaxHighlightingDisabled,permissions:iu?.permissions===void 0?void 0:{...iu.permissions,defaultMode:iu.permissions.defaultMode}});let ia=initialAppState;if(setAppState((prev_23)=>({...prev_23,mainLoopModel:ia.mainLoopModel,mainLoopModelForSession:ia.mainLoopModelForSession,verbose:ia.verbose,thinkingEnabled:ia.thinkingEnabled,fastMode:ia.fastMode,promptSuggestionEnabled:ia.promptSuggestionEnabled,isBriefOnly:ia.isBriefOnly,replBridgeEnabled:ia.replBridgeEnabled,replBridgeOutboundOnly:ia.replBridgeOutboundOnly,settings:ia.settings,toolPermissionContext:transitionPlanAutoMode(prev_23.toolPermissionContext)})),getUserMsgOptIn()!==initialUserMsgOptIn)setUserMsgOptIn(initialUserMsgOptIn)},[themeSetting,setTheme,initialLocalSettings,initialUserSettings,initialAppState,initialUserMsgOptIn,setAppState]),handleEscape=import_react106.useCallback(()=>{if(showSubmenu!==null)return;if(isDirty2.current)revertChanges();onClose("Config dialog dismissed",{display:"system"})},[showSubmenu,revertChanges,onClose]);useKeybinding("confirm:no",handleEscape,{context:"Settings",isActive:showSubmenu===null&&!isSearchMode&&!headerFocused}),useKeybinding("settings:close",handleSaveAndClose,{context:"Settings",isActive:showSubmenu===null&&!isSearchMode&&!headerFocused});let toggleSetting=import_react106.useCallback(()=>{let setting_0=filteredSettingsItems[selectedIndex];if(!setting_0||!setting_0.onChange)return;if(setting_0.type==="boolean"){if(isDirty2.current=!0,setting_0.onChange(!setting_0.value),setting_0.id==="thinkingEnabled"){if(!setting_0.value===initialThinkingEnabled.current)setShowThinkingWarning(!1);else if(context.messages.some((m_0)=>m_0.type==="assistant"))setShowThinkingWarning(!0)}return}if(setting_0.id==="theme"||setting_0.id==="model"||setting_0.id==="compactModel"||setting_0.id==="teammateDefaultModel"||setting_0.id==="showExternalIncludesDialog"||setting_0.id==="outputStyle"||setting_0.id==="language")switch(setting_0.id){case"theme":setShowSubmenu("Theme"),setTabsHidden(!0);return;case"model":setShowSubmenu("Model"),setTabsHidden(!0);return;case"compactModel":setShowSubmenu("CompactModel"),setTabsHidden(!0);return;case"teammateDefaultModel":setShowSubmenu("TeammateModel"),setTabsHidden(!0);return;case"showExternalIncludesDialog":setShowSubmenu("ExternalIncludes"),setTabsHidden(!0);return;case"outputStyle":setShowSubmenu("OutputStyle"),setTabsHidden(!0);return;case"language":setShowSubmenu("Language"),setTabsHidden(!0);return}if(setting_0.id==="autoUpdatesChannel"){if(autoUpdaterDisabledReason){setShowSubmenu("EnableAutoUpdates"),setTabsHidden(!0);return}if((settingsData?.autoUpdatesChannel??"latest")==="latest")setShowSubmenu("ChannelDowngrade"),setTabsHidden(!0);else isDirty2.current=!0,updateSettingsForSource("userSettings",{autoUpdatesChannel:"latest",minimumVersion:void 0}),setSettingsData((prev_24)=>({...prev_24,autoUpdatesChannel:"latest",minimumVersion:void 0})),logEvent("tengu_autoupdate_channel_changed",{channel:"latest"});return}if(setting_0.type==="enum"){isDirty2.current=!0;let nextIndex=(setting_0.options.indexOf(setting_0.value)+1)%setting_0.options.length;setting_0.onChange(setting_0.options[nextIndex]);return}},[autoUpdaterDisabledReason,filteredSettingsItems,selectedIndex,settingsData?.autoUpdatesChannel,setTabsHidden]),moveSelection=(delta)=>{setShowThinkingWarning(!1);let newIndex_1=Math.max(0,Math.min(filteredSettingsItems.length-1,selectedIndex+delta));setSelectedIndex(newIndex_1),adjustScrollOffset(newIndex_1)};useKeybindings({"select:previous":()=>{if(selectedIndex===0)setShowThinkingWarning(!1),setIsSearchMode(!0),setScrollOffset(0);else moveSelection(-1)},"select:next":()=>moveSelection(1),"scroll:lineUp":()=>moveSelection(-1),"scroll:lineDown":()=>moveSelection(1),"select:accept":toggleSetting,"settings:search":()=>{setIsSearchMode(!0),setSearchQuery("")}},{context:"Settings",isActive:showSubmenu===null&&!isSearchMode&&!headerFocused});let handleKeyDown=import_react106.useCallback((e)=>{if(showSubmenu!==null)return;if(headerFocused)return;if(isSearchMode){if(e.key==="escape"){if(e.preventDefault(),searchQuery.length>0)setSearchQuery("");else setIsSearchMode(!1);return}if(e.key==="return"||e.key==="down"||e.key==="wheeldown")e.preventDefault(),setIsSearchMode(!1),setSelectedIndex(0),setScrollOffset(0);return}if(e.key==="left"||e.key==="right"||e.key==="tab"){e.preventDefault(),toggleSetting();return}if(e.ctrl||e.meta)return;if(e.key==="j"||e.key==="k"||e.key==="/")return;if(e.key.length===1&&e.key!==" ")e.preventDefault(),setIsSearchMode(!0),setSearchQuery(e.key)},[showSubmenu,headerFocused,isSearchMode,searchQuery,setSearchQuery,toggleSetting]);return jsxDEV(ThemedBox_default,{flexDirection:"column",width:"100%",tabIndex:0,autoFocus:!0,onKeyDown:handleKeyDown,children:showSubmenu==="Theme"?jsxDEV($Fragment,{children:[jsxDEV(ThemePicker,{onThemeSelect:(setting_1)=>{isDirty2.current=!0,setTheme(setting_1),setShowSubmenu(null),setTabsHidden(!1)},onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)},hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{children:jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="Model"?jsxDEV($Fragment,{children:[jsxDEV(ModelPicker,{initial:mainLoopModel,onSelect:(model_0,_effort)=>{isDirty2.current=!0,onChangeMainModelConfig(model_0),setShowSubmenu(null),setTabsHidden(!1)},onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)},showFastModeNotice:isFastModeEnabled()?isFastMode&&isFastModeSupportedByModel(mainLoopModel)&&isFastModeAvailable():!1},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="TeammateModel"?jsxDEV($Fragment,{children:[jsxDEV(ModelPicker,{initial:globalConfig2.teammateDefaultModel??null,skipSettingsWrite:!0,headerText:"Default model for newly spawned teammates. The leader can override via the tool call's model parameter.",onSelect:(model_1,_effort_0)=>{if(setShowSubmenu(null),setTabsHidden(!1),globalConfig2.teammateDefaultModel===void 0&&model_1===null)return;isDirty2.current=!0,saveGlobalConfig((current_23)=>current_23.teammateDefaultModel===model_1?current_23:{...current_23,teammateDefaultModel:model_1}),setGlobalConfig({...getGlobalConfig(),teammateDefaultModel:model_1}),setChanges((prev_25)=>({...prev_25,teammateDefaultModel:teammateModelDisplayString(model_1)})),logEvent("tengu_teammate_default_model_changed",{model:model_1})},onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)}},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="CompactModel"?jsxDEV($Fragment,{children:[jsxDEV(ModelPicker,{initial:globalConfig2.compactModel??null,skipSettingsWrite:!0,headerText:"Model used for conversation compaction. Defaults to the main model when unset.",onSelect:(model_2,_effort_1)=>{if(setShowSubmenu(null),setTabsHidden(!1),(globalConfig2.compactModel??null)===model_2)return;isDirty2.current=!0,saveGlobalConfig((current_24)=>{if(model_2===null){let{compactModel,...rest}=current_24;return rest}return{...current_24,compactModel:model_2}}),setGlobalConfig(getGlobalConfig()),setChanges((prev_26)=>({...prev_26,compactModel:compactModelDisplayString(model_2??void 0)})),logEvent("tengu_compact_model_changed",{model:model_2})},onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)}},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="ExternalIncludes"&&pendingScope?jsxDEV($Fragment,{children:[jsxDEV(ClaudeMdExternalIncludesDialog,{onDone:()=>{setShowSubmenu(null),setTabsHidden(!1)},externalIncludes:getExternalClaudeMdIncludes(memoryFiles,pendingScope==="User"?["User"]:["Project","Local"]),scope:pendingScope},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"disable external includes"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="OutputStyle"?jsxDEV($Fragment,{children:[jsxDEV(OutputStylePicker,{initialStyle:currentOutputStyle,onComplete:(style)=>{isDirty2.current=!0,setCurrentOutputStyle(style??DEFAULT_OUTPUT_STYLE_NAME),setShowSubmenu(null),setTabsHidden(!1),updateSettingsForSource("localSettings",{outputStyle:style}),logEvent("tengu_output_style_changed",{style:style??DEFAULT_OUTPUT_STYLE_NAME,source:"config_panel",settings_source:"localSettings"})},onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)}},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="Language"?jsxDEV($Fragment,{children:[jsxDEV(LanguagePicker,{initialLanguage:currentLanguage,onComplete:(language)=>{isDirty2.current=!0,setCurrentLanguage(language),setShowSubmenu(null),setTabsHidden(!1),updateSettingsForSource("userSettings",{language}),logEvent("tengu_language_changed",{language:language??"default",source:"config_panel"})},onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)}},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):showSubmenu==="EnableAutoUpdates"?jsxDEV(Dialog,{title:"Enable Auto-Updates",onCancel:()=>{setShowSubmenu(null),setTabsHidden(!1)},hideBorder:!0,hideInputGuide:!0,children:autoUpdaterDisabledReason?.type!=="config"?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:autoUpdaterDisabledReason?.type==="env"?"Auto-updates are controlled by an environment variable and cannot be changed here.":"Auto-updates are disabled in development builds."},void 0,!1,void 0,this),autoUpdaterDisabledReason?.type==="env"&&jsxDEV(ThemedText,{dimColor:!0,children:["Unset ",autoUpdaterDisabledReason.envVar," to re-enable auto-updates."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):jsxDEV(Select,{options:[{label:"Enable with latest channel",value:"latest"},{label:"Enable with stable channel",value:"stable"}],onChange:(channel2)=>{isDirty2.current=!0,setShowSubmenu(null),setTabsHidden(!1),saveGlobalConfig((current_24)=>({...current_24,autoUpdates:!0})),setGlobalConfig({...getGlobalConfig(),autoUpdates:!0}),updateSettingsForSource("userSettings",{autoUpdatesChannel:channel2,minimumVersion:void 0}),setSettingsData((prev_26)=>({...prev_26,autoUpdatesChannel:channel2,minimumVersion:void 0})),logEvent("tengu_autoupdate_enabled",{channel:channel2})}},void 0,!1,void 0,this)},void 0,!1,void 0,this):showSubmenu==="ChannelDowngrade"?jsxDEV(ChannelDowngradeDialog,{currentVersion:"99.0.0",onChoice:(choice)=>{if(setShowSubmenu(null),setTabsHidden(!1),choice==="cancel")return;isDirty2.current=!0;let newSettings={autoUpdatesChannel:"stable"};if(choice==="stay")newSettings.minimumVersion="99.0.0";updateSettingsForSource("userSettings",newSettings),setSettingsData((prev_27)=>({...prev_27,...newSettings})),logEvent("tengu_autoupdate_channel_changed",{channel:"stable",minimum_version_set:choice==="stay"})}},void 0,!1,void 0,this):jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,marginY:insideModal?void 0:1,children:[jsxDEV(SearchBox,{query:searchQuery,isFocused:isSearchMode&&!headerFocused,isTerminalFocused,cursorOffset:searchCursorOffset,placeholder:"Search settings…"},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",children:filteredSettingsItems.length===0?jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:['No settings match "',searchQuery,'"']},void 0,!0,void 0,this):jsxDEV($Fragment,{children:[scrollOffset>0&&jsxDEV(ThemedText,{dimColor:!0,children:[figures_default.arrowUp," ",scrollOffset," more above"]},void 0,!0,void 0,this),filteredSettingsItems.slice(scrollOffset,scrollOffset+maxVisible).map((setting_2,i3)=>{let isSelected=scrollOffset+i3===selectedIndex&&!headerFocused&&!isSearchMode;return jsxDEV(React57.Fragment,{children:jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedBox_default,{width:44,children:jsxDEV(ThemedText,{color:isSelected?"suggestion":void 0,children:[isSelected?figures_default.pointer:" "," ",setting_2.label]},void 0,!0,void 0,this)},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{children:setting_2.type==="boolean"?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{color:isSelected?"suggestion":void 0,children:setting_2.value.toString()},void 0,!1,void 0,this),showThinkingWarning&&setting_2.id==="thinkingEnabled"&&jsxDEV(ThemedText,{color:"warning",children:[" ","Changing thinking mode mid-conversation will increase latency and may reduce quality."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):setting_2.id==="theme"?jsxDEV(ThemedText,{color:isSelected?"suggestion":void 0,children:THEME_LABELS[setting_2.value.toString()]??setting_2.value.toString()},void 0,!1,void 0,this):setting_2.id==="notifChannel"?jsxDEV(ThemedText,{color:isSelected?"suggestion":void 0,children:jsxDEV(NotifChannelLabel,{value:setting_2.value.toString()},void 0,!1,void 0,this)},void 0,!1,void 0,this):setting_2.id==="defaultPermissionMode"?jsxDEV(ThemedText,{color:setting_2.value==="fullAccess"?getModeColor("fullAccess"):isSelected?"suggestion":void 0,children:permissionModeTitle(setting_2.value)},void 0,!1,void 0,this):setting_2.id==="autoUpdatesChannel"&&autoUpdaterDisabledReason?jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{color:isSelected?"suggestion":void 0,children:"disabled"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["(",formatAutoUpdaterDisabledReason(autoUpdaterDisabledReason),")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{color:isSelected?"suggestion":void 0,children:setting_2.value.toString()},void 0,!1,void 0,this)},isSelected?"selected":"unselected",!1,void 0,this)]},void 0,!0,void 0,this)},setting_2.id,!1,void 0,this)}),scrollOffset+maxVisible<filteredSettingsItems.length&&jsxDEV(ThemedText,{dimColor:!0,children:[figures_default.arrowDown," ",filteredSettingsItems.length-scrollOffset-maxVisible," ","more below"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),headerFocused?jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"←/→ tab",action:"switch"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"↓",action:"return"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"close"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):isSearchMode?jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(ThemedText,{children:"Type to filter"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"Enter/↓",action:"select"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"↑",action:"tabs"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"clear"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(ConfigurableShortcutHint,{action:"select:accept",context:"Settings",fallback:"Space",description:"change"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"settings:close",context:"Settings",fallback:"Enter",description:"save"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"settings:search",context:"Settings",fallback:"/",description:"search"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function teammateModelDisplayString(value){if(value===void 0)return modelDisplayString(getHardcodedTeammateModelFallback());if(value===null)return"Default (leader's model)";return modelDisplayString(value)}function compactModelDisplayString(value){if(value===void 0)return"Default (main model)";return modelDisplayString(value)}function NotifChannelLabel(t0){let $2=import_react_compiler_runtime134.c(4),{value}=t0;switch(value){case"auto":return"Auto";case"iterm2":{let t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{children:["iTerm2 ",jsxDEV(ThemedText,{dimColor:!0,children:"(OSC 9)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[0]=t1;else t1=$2[0];return t1}case"terminal_bell":{let t1;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{children:["Terminal Bell ",jsxDEV(ThemedText,{dimColor:!0,children:"(\\a)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[1]=t1;else t1=$2[1];return t1}case"kitty":{let t1;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{children:["Kitty ",jsxDEV(ThemedText,{dimColor:!0,children:"(OSC 99)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[2]=t1;else t1=$2[2];return t1}case"ghostty":{let t1;if($2[3]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{children:["Ghostty ",jsxDEV(ThemedText,{dimColor:!0,children:"(OSC 777)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[3]=t1;else t1=$2[3];return t1}case"iterm2_with_bell":return"iTerm2 w/ Bell";case"notifications_disabled":return"Disabled";default:return value}}var import_react_compiler_runtime134,React57,import_react106,THEME_LABELS;var init_Config=__esm(()=>{init_ink2();init_useKeybinding();init_figures();init_config();init_authPortable();init_config();init_source2();init_PermissionMode();init_permissionSetup();init_log2();init_bridgeEnabled();init_ThemePicker();init_AppState();init_ModelPicker();init_model();init_extraUsage();init_ClaudeMdExternalIncludesDialog();init_ChannelDowngradeDialog();init_Dialog();init_CustomSelect();init_OutputStylePicker();init_LanguagePicker();init_claudemd();init_KeyboardShortcutHint();init_ConfigurableShortcutHint();init_Byline();init_Tabs();init_modalContext();init_SearchBox();init_ide();init_settings3();init_state();init_outputStyles();init_envUtils();init_growthbook();init_agentSwarmsEnabled();init_teammateModeSnapshot();init_teammateModel();init_useSearchInput();init_useTerminalSize();init_fastMode();init_fullscreen();init_defaultPermissionModeOptions();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime134=__toESM(require_dist4(),1),React57=__toESM(require_react_production(),1),import_react106=__toESM(require_react_production(),1);THEME_LABELS={auto:"Auto (match terminal)",dark:"Dark mode",light:"Light mode","dark-daltonized":"Dark mode (colorblind-friendly)","light-daltonized":"Light mode (colorblind-friendly)","dark-ansi":"Dark mode (ANSI colors only)","light-ansi":"Light mode (ANSI colors only)"}});var exports_usage={};__export(exports_usage,{call:()=>call14});var call14=async(onDone,context)=>{return jsxDEV(Settings,{onClose:onDone,context,defaultTab:"Usage"},void 0,!1,void 0,this)};var init_usage=__esm(()=>{init_Settings();init_reactJsxDevRuntimeProductionShim()});function resolveActiveUsageId(processEnv=process.env,options2){let providerCategory=options2?.providerCategory;if(providerCategory==="firstParty"||providerCategory==="foundry"||providerCategory==="codex")return providerCategory;return resolveActiveRouteIdFromEnv(processEnv,{activeProfileProvider:options2?.activeProfileProvider,activeProfileBaseUrl:options2?.activeProfileBaseUrl})??providerCategory??"firstParty"}function getUsageTarget(activeId,registry2){if(activeId==="firstParty"){let vendor2=registry2.getVendor("anthropic");if(vendor2)return{kind:"vendor",descriptor:vendor2}}let gateway=registry2.getGateway(activeId);if(gateway)return{kind:"gateway",descriptor:gateway};let vendor=registry2.getVendor(activeId);if(vendor)return{kind:"vendor",descriptor:vendor};return}function getTargetLabel(activeId,target){return target?.descriptor.label??RUNTIME_USAGE_LABELS[activeId]??"this provider"}function getUsageDescriptor(activeId,registry2={getGateway,getVendor}){if(registry2.getGateway===getGateway&®istry2.getVendor===getVendor)ensureIntegrationsLoaded();let initialTarget=getUsageTarget(activeId,registry2),activeLabel=getTargetLabel(activeId,initialTarget),resolvedTarget=initialTarget,usage=initialTarget?.descriptor.usage??DEFAULT_UNSUPPORTED_USAGE,seen=new Set;while(resolvedTarget){let currentUsage=resolvedTarget.descriptor.usage??DEFAULT_UNSUPPORTED_USAGE,visitKey=`${resolvedTarget.kind}:${resolvedTarget.descriptor.id}`;if(seen.has(visitKey)){usage=DEFAULT_UNSUPPORTED_USAGE;break}if(seen.add(visitKey),currentUsage.delegateToVendorId){let delegatedVendor=registry2.getVendor(currentUsage.delegateToVendorId);if(!delegatedVendor){usage=DEFAULT_UNSUPPORTED_USAGE;break}resolvedTarget={kind:"vendor",descriptor:delegatedVendor},usage=delegatedVendor.usage??DEFAULT_UNSUPPORTED_USAGE;continue}if(currentUsage.delegateToGatewayId){let delegatedGateway=registry2.getGateway(currentUsage.delegateToGatewayId);if(!delegatedGateway){usage=DEFAULT_UNSUPPORTED_USAGE;break}resolvedTarget={kind:"gateway",descriptor:delegatedGateway},usage=delegatedGateway.usage??DEFAULT_UNSUPPORTED_USAGE;continue}usage=currentUsage;break}return{activeId,activeKind:initialTarget?.kind,activeLabel,resolvedId:resolvedTarget?.descriptor.id,resolvedKind:resolvedTarget?.kind,resolvedLabel:getTargetLabel(activeId,resolvedTarget),usage,supported:usage.supported}}var DEFAULT_UNSUPPORTED_USAGE,RUNTIME_USAGE_LABELS,usage_default;var init_usage2=__esm(()=>{init_integrations();init_integrations();init_routeMetadata();DEFAULT_UNSUPPORTED_USAGE={supported:!1},RUNTIME_USAGE_LABELS={firstParty:"Anthropic",foundry:"Microsoft Foundry",codex:"Codex"};usage_default={type:"local-jsx",name:"usage",description:"Show plan usage limits",load:()=>Promise.resolve().then(() => (init_usage(),exports_usage))}});async function fetchUtilization(){if(!isFirstPartyAnthropicProvider())return{};if(!isClaudeAISubscriber()||!hasProfileScope())return{};let tokens=getClaudeAIOAuthTokens();if(tokens&&isOAuthTokenExpired(tokens.expiresAt))return null;let authResult=getAuthHeaders();if(authResult.error)throw Error(`Auth error: ${authResult.error}`);let headers={"Content-Type":"application/json","User-Agent":getClaudeCodeUserAgent(),...authResult.headers},url3=`${getOauthConfig().BASE_API_URL}/api/oauth/usage`;return(await axios_default.get(url3,{headers,timeout:5000})).data}var init_usage3=__esm(()=>{init_axios2();init_oauth();init_auth5();init_http2();init_providers();init_client2()});function isRecord6(value){return typeof value==="object"&&value!==null}function asString(value){return typeof value==="string"&&value.trim()?value.trim():void 0}function asNumber2(value){return typeof value==="number"&&Number.isFinite(value)?value:void 0}function asBoolean(value){return typeof value==="boolean"?value:void 0}function toIsoFromUnixSeconds(value){let seconds=asNumber2(value);if(seconds===void 0)return;return new Date(seconds*1000).toISOString()}function normalizeWindow(value){if(!isRecord6(value))return;let usedPercent=asNumber2(value.used_percent)??asNumber2(value.usedPercent);if(usedPercent===void 0)return;let windowMinutes=asNumber2(value.window_minutes)??asNumber2(value.windowDurationMins)??(()=>{let seconds=asNumber2(value.limit_window_seconds);return seconds===void 0?void 0:Math.round(seconds/60)})(),resetsAt=toIsoFromUnixSeconds(value.resets_at)??toIsoFromUnixSeconds(value.resetsAt)??toIsoFromUnixSeconds(value.reset_at);return{usedPercent,windowMinutes,resetsAt}}function normalizeCredits(value){if(!isRecord6(value))return;let hasCredits=asBoolean(value.has_credits)??asBoolean(value.hasCredits)??!1,unlimited=asBoolean(value.unlimited)??!1,balance=asString(value.balance);if(!hasCredits&&!unlimited&&!balance)return;return{hasCredits,unlimited,balance}}function normalizeSnapshot(value,fallbackLimitName){if(!isRecord6(value))return;let limitName=asString(value.limit_name)??asString(value.limitName)??asString(value.limit_id)??asString(value.limitId)??fallbackLimitName,primary=normalizeWindow(value.primary)??normalizeWindow(value.primary_window),secondary=normalizeWindow(value.secondary)??normalizeWindow(value.secondary_window),credits=normalizeCredits(value.credits);if(!primary&&!secondary&&!credits)return;return{limitName,primary,secondary,credits}}function normalizeSnapshotsFromCollection(value,defaultLimitName="codex"){if(Array.isArray(value))return value.map((item,index)=>normalizeSnapshot(item,index===0?defaultLimitName:`${defaultLimitName}-${index+1}`)).filter((item)=>item!==void 0);if(!isRecord6(value))return[];return Object.entries(value).map(([key,entry])=>normalizeSnapshot(entry,key)).filter((item)=>item!==void 0)}function normalizeLiveUsagePayload(payload){let planType=asString(payload.plan_type)??asString(payload.planType),snapshots=[],codexCredits=normalizeCredits(payload.credits),codexSnapshot=normalizeSnapshot(payload.rate_limit,"codex");if(codexSnapshot)codexSnapshot.credits??=codexCredits,snapshots.push(codexSnapshot);else if(codexCredits)snapshots.push({limitName:"codex",credits:codexCredits});let codeReviewSnapshot=normalizeSnapshot(payload.code_review_rate_limit,"code review");if(codeReviewSnapshot)snapshots.push(codeReviewSnapshot);return snapshots.push(...normalizeSnapshotsFromCollection(payload.additional_rate_limits??payload.additionalRateLimits,"additional")),{planType,snapshots}}function normalizeCodexUsagePayload(payload){if(Array.isArray(payload))return{snapshots:normalizeSnapshotsFromCollection(payload)};if(!isRecord6(payload))return{snapshots:[]};if("rate_limit"in payload||"code_review_rate_limit"in payload||"additional_rate_limits"in payload||"credits"in payload)return normalizeLiveUsagePayload(payload);let collection=payload.rate_limits??payload.rateLimits??payload.rate_limits_by_limit_id??payload.rateLimitsByLimitId;if(collection!==void 0)return{planType:asString(payload.plan_type)??asString(payload.planType),snapshots:normalizeSnapshotsFromCollection(collection)};let snapshot2=normalizeSnapshot(payload,"codex");return{planType:asString(payload.plan_type)??asString(payload.planType),snapshots:snapshot2?[snapshot2]:[]}}function capitalizeFirst(value){if(!value)return value;return value[0].toUpperCase()+value.slice(1)}function formatWindowDuration(windowMinutes,fallback){if(windowMinutes===void 0||windowMinutes<=0)return fallback;if(windowMinutes===10080)return"weekly";if(windowMinutes%1440===0)return`${windowMinutes/1440}d`;if(windowMinutes%60===0)return`${windowMinutes/60}h`;return`${windowMinutes}m`}function formatCreditBalance(rawBalance){let balance=rawBalance?.trim();if(!balance)return;let intValue=Number.parseInt(balance,10);if(Number.isFinite(intValue)&&`${intValue}`===balance&&intValue>0)return`${intValue}`;let floatValue=Number.parseFloat(balance);if(Number.isFinite(floatValue)&&floatValue>0)return`${Math.round(floatValue)}`;return}function buildCreditsRow(credits){if(!credits?.hasCredits)return;if(credits.unlimited)return{kind:"text",label:"Credits",value:"Unlimited"};let displayBalance=formatCreditBalance(credits.balance);if(!displayBalance)return;return{kind:"text",label:"Credits",value:`${displayBalance} credits`}}function buildCodexUsageRows(snapshots){let rows=[];for(let snapshot2 of snapshots){let limitBucketLabel=snapshot2.limitName.trim()||"codex",creditsRow=buildCreditsRow(snapshot2.credits);if(!(snapshot2.primary!==void 0||snapshot2.secondary!==void 0||creditsRow!==void 0))continue;let showLimitPrefix=limitBucketLabel.toLowerCase()!=="codex",windowCount=Number(snapshot2.primary!==void 0)+Number(snapshot2.secondary!==void 0),combineNonCodexSingleLimit=showLimitPrefix&&windowCount===1;if(showLimitPrefix&&!combineNonCodexSingleLimit)rows.push({kind:"text",label:`${capitalizeFirst(limitBucketLabel)} limit`,value:""});if(snapshot2.primary){let durationLabel=capitalizeFirst(formatWindowDuration(snapshot2.primary.windowMinutes,"5h"));rows.push({kind:"window",label:combineNonCodexSingleLimit?`${capitalizeFirst(limitBucketLabel)} ${durationLabel} limit`:`${durationLabel} limit`,usedPercent:snapshot2.primary.usedPercent,resetsAt:snapshot2.primary.resetsAt})}if(snapshot2.secondary){let durationLabel=capitalizeFirst(formatWindowDuration(snapshot2.secondary.windowMinutes,"weekly"));rows.push({kind:"window",label:combineNonCodexSingleLimit?`${capitalizeFirst(limitBucketLabel)} ${durationLabel} limit`:`${durationLabel} limit`,usedPercent:snapshot2.secondary.usedPercent,resetsAt:snapshot2.secondary.resetsAt})}if(creditsRow)rows.push(creditsRow)}return rows}function formatCodexPlanType(planType){if(!planType)return;return planType.split(/[_\s-]+/).filter(Boolean).map((part)=>capitalizeFirst(part.toLowerCase())).join(" ")}function getCodexUsageUrl(baseUrl=DEFAULT_CODEX_BASE_URL){return new URL("/backend-api/wham/usage",baseUrl).toString()}async function fetchCodexUsage(){let refreshResult=await refreshCodexAccessTokenIfNeeded().catch(async(error41)=>{return logForDebugging(`[codex] access token refresh failed before usage fetch: ${error41 instanceof Error?error41.message:String(error41)}`,{level:"warn"}),{refreshed:!1,credentials:await readCodexCredentialsAsync()}}),request=resolveProviderRequest({model:process.env.OPENAI_MODEL,baseUrl:process.env.OPENAI_BASE_URL});if(!isCodexBaseUrl(request.baseUrl))throw Error("Codex usage is only available with the official ChatGPT Codex backend.");let credentials=resolveRuntimeCodexCredentials({storedCredentials:refreshResult.credentials});if(!credentials.apiKey){let oauthHint=isBareMode()?"":", choose Codex OAuth in /provider",authHint=credentials.authPath?`${oauthHint} or place a Codex auth.json at ${credentials.authPath}`:oauthHint;throw Error(`Codex auth is required. Set CODEX_API_KEY${authHint}.`)}if(!credentials.accountId)throw Error("Codex auth is missing chatgpt_account_id. Re-login with Codex OAuth, the Codex CLI, or set CHATGPT_ACCOUNT_ID/CODEX_ACCOUNT_ID.");let{signal,cleanup}=createCombinedAbortSignal(void 0,{timeoutMs:5000});try{let response=await fetch(getCodexUsageUrl(request.baseUrl),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${credentials.apiKey}`,"chatgpt-account-id":credentials.accountId,originator:"openclaude"},signal});if(!response.ok){let errorBody=await response.text().catch(()=>"unknown error");throw Error(`Codex usage error ${response.status}: ${errorBody}`)}return normalizeCodexUsagePayload(await response.json())}finally{cleanup()}}var init_codexUsage=__esm(()=>{init_codexCredentials();init_combinedAbortSignal();init_debug();init_envUtils();init_providerConfig()});function CodexUsageLimitBar({label,usedPercent,resetsAt,maxWidth}){let normalizedUsedPercent=Math.max(0,Math.min(100,usedPercent)),usedText=`${Math.floor(normalizedUsedPercent)}% used`,resetText=resetsAt?`Resets ${formatResetText(resetsAt,!0,!0)}`:void 0;if(maxWidth>=62)return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,children:[jsxDEV(ProgressBar,{ratio:normalizedUsedPercent/100,width:50,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:usedText},void 0,!1,void 0,this)]},void 0,!0,void 0,this),resetText?jsxDEV(ThemedText,{dimColor:!0,children:resetText},void 0,!1,void 0,this):null]},void 0,!0,void 0,this);return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this),resetText?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["· ",resetText]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),jsxDEV(ProgressBar,{ratio:normalizedUsedPercent/100,width:maxWidth,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:usedText},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function CodexUsageTextRow({label,value}){if(!value)return jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this);return jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" · ",value]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function CodexUsage(){let[usage,setUsage]=import_react107.useState(null),[error41,setError]=import_react107.useState(null),[isLoading,setIsLoading]=import_react107.useState(!0),{columns}=useTerminalSize(),availableWidth=columns-2,maxWidth=Math.min(availableWidth,80),loadUsage=React58.useCallback(async()=>{setIsLoading(!0),setError(null);try{setUsage(await fetchCodexUsage())}catch(err2){logError(err2),setError(err2 instanceof Error?err2.message:"Failed to load Codex usage")}finally{setIsLoading(!1)}},[]);if(import_react107.useEffect(()=>{loadUsage()},[loadUsage]),useKeybinding("settings:retry",()=>{loadUsage()},{context:"Settings",isActive:!!error41&&!isLoading}),error41)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"error",children:["Error: ",error41]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(ConfigurableShortcutHint,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!usage)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Loading Codex usage data…"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let rows=buildCodexUsageRows(usage.snapshots),planType=formatCodexPlanType(usage.planType);return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,width:"100%",children:[planType?jsxDEV(ThemedText,{dimColor:!0,children:["Plan: ",planType]},void 0,!0,void 0,this):null,rows.length===0?jsxDEV(ThemedText,{dimColor:!0,children:"Codex usage data is not available for this account."},void 0,!1,void 0,this):null,rows.map((row,index)=>row.kind==="window"?jsxDEV(CodexUsageLimitBar,{label:row.label,usedPercent:row.usedPercent,resetsAt:row.resetsAt,maxWidth},`${row.label}-${index}`,!1,void 0,this):jsxDEV(CodexUsageTextRow,{label:row.label,value:row.value},`${row.label}-${index}`,!1,void 0,this)),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var React58,import_react107;var init_CodexUsage=__esm(()=>{init_useTerminalSize();init_ink2();init_useKeybinding();init_codexUsage();init_format();init_log2();init_ConfigurableShortcutHint();init_Byline();init_ProgressBar();init_reactJsxDevRuntimeProductionShim();React58=__toESM(require_react_production(),1),import_react107=__toESM(require_react_production(),1)});function isRecord7(value){return typeof value==="object"&&value!==null}function asString2(value){return typeof value==="string"&&value.trim()?value.trim():void 0}function asNumber3(value){if(typeof value==="number"&&Number.isFinite(value))return value;if(typeof value==="string"&&value.trim()){let parsed=Number.parseFloat(value);if(Number.isFinite(parsed))return parsed}return}function clampPercent(value){return Math.max(0,Math.min(100,Math.round(value)))}function toIsoDate(value){if(typeof value==="string"){let parsed=Date.parse(value);return Number.isNaN(parsed)?void 0:new Date(parsed).toISOString()}return}function normalizeWindow2(raw){if(!isRecord7(raw))return;let type=asString2(raw.type)??"unknown",percentUsed=asNumber3(raw.percentUsed);if(percentUsed===void 0)return;let label=WINDOW_TYPE_LABELS[type]??type,resetsAt=toIsoDate(raw.resetsAt);return{label,type,usedPercent:clampPercent(percentUsed),resetsAt}}function normalizeLimitsArray(limits){if(!Array.isArray(limits))return[];return limits.map(normalizeWindow2).filter((w)=>w!==void 0)}function normalizeClinePassUsagePayload(payload){if(!isRecord7(payload))return{availability:"unknown",windows:[],message:DEFAULT_CLINEPASS_UNAVAILABLE_MESSAGE};let data=isRecord7(payload.data)?payload.data:payload,limits=isRecord7(data)&&Array.isArray(data.limits)?data.limits:[],windows2=normalizeLimitsArray(limits);if(windows2.length===0)return{availability:"unknown",windows:[],message:DEFAULT_CLINEPASS_UNAVAILABLE_MESSAGE};return{availability:"available",planName:asString2(payload.planName??payload.plan_name??data.planName??data.plan_name),windows:windows2}}function buildClinePassUsageRows(windows2){let rows=[];for(let window2 of windows2)rows.push({kind:"window",label:window2.label,usedPercent:window2.usedPercent,resetsAt:window2.resetsAt});return rows}var WINDOW_TYPE_LABELS;var init_parse5=__esm(()=>{WINDOW_TYPE_LABELS={five_hour:"5-Hour Limit",weekly:"Weekly Limit",monthly:"Monthly Limit"}});function trimTrailingSlash3(value){return value.replace(/\/+$/,"")}function buildUnavailableResult(message){return{availability:"unknown",windows:[],message}}function getClinePassUsageUrl(){return`${trimTrailingSlash3(DEFAULT_CLINEPASS_BASE_URL)}/api/v1/users/me/plan/usage-limits`}async function fetchClinePassUsage(){let apiKey=process.env.CLINE_API_KEY;if(!apiKey)throw Error("ClinePass auth is required. Set CLINE_API_KEY.");let usageUrl=getClinePassUsageUrl(),response,{signal,cleanup}=createCombinedAbortSignal(void 0,{timeoutMs:1e4});try{try{response=await fetch(usageUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${apiKey}`,"Content-Type":"application/json","User-Agent":getClaudeCodeUserAgent()},signal})}catch(error41){throw logForDebugging(`[clinepass] usage request failed for ${usageUrl}: ${error41 instanceof Error?error41.message:String(error41)}`,{level:"warn"}),error41 instanceof Error?error41:Error(String(error41))}if(!response.ok){let errorBody=await response.text().catch(()=>"");return logForDebugging(`[clinepass] usage endpoint returned status ${response.status}: ${errorBody}`,{level:"warn"}),buildUnavailableResult(DEFAULT_CLINEPASS_UNAVAILABLE_MESSAGE)}return normalizeClinePassUsagePayload(await response.json())}finally{cleanup()}}var init_fetch2=__esm(()=>{init_combinedAbortSignal();init_debug();init_parse5()});var init_clinepassUsage=__esm(()=>{init_parse5();init_fetch2()});function formatCountdownDuration(ms){let totalMinutes=Math.max(1,Math.ceil(ms/60000)),days=Math.floor(totalMinutes/1440),hours=Math.floor(totalMinutes%1440/60),minutes=totalMinutes%60;if(days>0)return hours>0?`${days}d ${hours}h`:`${days}d`;if(hours>0)return minutes>0?`${hours}h ${minutes}m`:`${hours}h`;return`${minutes}m`}function formatResetCountdown(resetsAt,nowMs){if(!resetsAt)return;let resetMs=Date.parse(resetsAt);if(!Number.isFinite(resetMs))return;let remainingMs=resetMs-nowMs;if(remainingMs<=0)return"Resetting now";return`Resets in ${formatCountdownDuration(remainingMs)}`}function ClinePassUsageLimitBar({label,usedPercent,resetsAt,maxWidth,nowMs}){let normalizedUsedPercent=Math.max(0,Math.min(100,usedPercent)),usedText=`${Math.floor(normalizedUsedPercent)}% used`,resetText=formatResetCountdown(resetsAt,nowMs);return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this),resetText?jsxDEV(ThemedText,{dimColor:!0,children:[" · ",resetText]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,children:[jsxDEV(ProgressBar,{ratio:normalizedUsedPercent/100,width:Math.min(PROGRESS_BAR_WIDTH,Math.max(1,maxWidth)),fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:usedText},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function ClinePassUsage(){let[usage,setUsage]=import_react108.useState(null),[error41,setError]=import_react108.useState(null),[isLoading,setIsLoading]=import_react108.useState(!0),[nowMs,setNowMs]=import_react108.useState(()=>Date.now()),{columns}=useTerminalSize(),availableWidth=columns-2,maxWidth=Math.min(availableWidth,80),loadUsage=React59.useCallback(async()=>{setIsLoading(!0),setError(null);try{setUsage(await fetchClinePassUsage())}catch(err2){logError(err2),setError(err2 instanceof Error?err2.message:"Failed to load ClinePass usage")}finally{setIsLoading(!1)}},[]);if(import_react108.useEffect(()=>{loadUsage()},[loadUsage]),import_react108.useEffect(()=>{let interval=setInterval(()=>{setNowMs(Date.now())},RESET_COUNTDOWN_REFRESH_MS);return()=>clearInterval(interval)},[]),useKeybinding("settings:retry",()=>{loadUsage()},{context:"Settings",isActive:!!error41&&!isLoading}),error41)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"error",children:["Error: ",error41]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(ConfigurableShortcutHint,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!usage)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Loading ClinePass usage data…"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let rows=usage.availability==="available"?buildClinePassUsageRows(usage.windows):[];return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,width:"100%",children:[usage.planName?jsxDEV(ThemedText,{dimColor:!0,children:["Plan: ",usage.planName]},void 0,!0,void 0,this):null,usage.availability==="unknown"?jsxDEV(ThemedText,{dimColor:!0,children:usage.message},void 0,!1,void 0,this):rows.length===0?jsxDEV(ThemedText,{dimColor:!0,children:"No ClinePass usage windows were returned for this account."},void 0,!1,void 0,this):null,rows.map((row,index)=>jsxDEV(ClinePassUsageLimitBar,{label:row.label,usedPercent:row.usedPercent,resetsAt:row.resetsAt,maxWidth,nowMs},`${row.label}-${index}`,!1,void 0,this)),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var React59,import_react108,RESET_COUNTDOWN_REFRESH_MS=30000,PROGRESS_BAR_WIDTH=40;var init_ClinePassUsage=__esm(()=>{init_useTerminalSize();init_ink2();init_useKeybinding();init_clinepassUsage();init_log2();init_ConfigurableShortcutHint();init_Byline();init_ProgressBar();init_reactJsxDevRuntimeProductionShim();React59=__toESM(require_react_production(),1),import_react108=__toESM(require_react_production(),1)});var DEFAULT_MINIMAX_BASE_URL="https://api.minimax.io/v1",DEFAULT_MINIMAX_UNAVAILABLE_MESSAGE="Usage details are not available for this MiniMax account. This plan or MiniMax endpoint may not expose quota status.";function isRecord8(value){return typeof value==="object"&&value!==null}function asString3(value){return typeof value==="string"&&value.trim()?value.trim():void 0}function asNumber4(value){if(typeof value==="number"&&Number.isFinite(value))return value;if(typeof value==="string"&&value.trim()){let parsed=Number.parseFloat(value);if(Number.isFinite(parsed))return parsed}return}function clampPercent2(value){return Math.max(0,Math.min(100,Math.round(value)))}function toIsoDate2(value){if(typeof value==="string"){let parsed=Date.parse(value);return Number.isNaN(parsed)?value:new Date(parsed).toISOString()}let numeric=asNumber4(value);if(numeric===void 0)return;let ms=numeric>1000000000000?numeric:numeric*1000;return new Date(ms).toISOString()}function toResetIsoDate(value,key){let numeric=asNumber4(value);if(/remains?_time/i.test(key)&&numeric!==void 0){let ms=numeric>604800?numeric:numeric*1000;return new Date(Date.now()+ms).toISOString()}return toIsoDate2(value)}function readFirstNumber(value,keys2){for(let key of keys2){let found=asNumber4(value[key]);if(found!==void 0)return found}return}function readResetTime(value,keys2){for(let key of keys2)if(value[key]!==void 0)return toResetIsoDate(value[key],key);return}function containsAnyKey(value,keys2){return keys2.some((key)=>value[key]!==void 0)}function capitalizeFirst2(value){return value?value[0].toUpperCase()+value.slice(1):value}function formatBucketLabel(value){if(!value)return"MiniMax";let trimmed=value.trim();if(!trimmed)return"MiniMax";if(/[A-Z]/.test(trimmed))return trimmed;return trimmed.split(/[_\s-]+/).filter(Boolean).map((part)=>capitalizeFirst2(part.toLowerCase())).join(" ")}function formatPlanType(value){if(!value)return;return value.split(/[_\s-]+/).filter(Boolean).map((part)=>capitalizeFirst2(part.toLowerCase())).join(" ")}function normalizeWindowFromSpec(value,spec){let explicitUsedPercent=readFirstNumber(value,spec.percentKeys),explicitRemainingPercent=readFirstNumber(value,spec.remainingPercentKeys),total=readFirstNumber(value,spec.totalKeys),remaining=readFirstNumber(value,spec.remainingKeys),used=readFirstNumber(value,spec.usedKeys),derivedRemaining=total!==void 0&&used!==void 0?total-used:remaining,usedPercent;if(total!==void 0&&total>0&&used!==void 0)usedPercent=clampPercent2(used/total*100);else if(total!==void 0&&total>0&&remaining!==void 0)usedPercent=clampPercent2((total-remaining)/total*100);else if(explicitUsedPercent!==void 0)usedPercent=clampPercent2(explicitUsedPercent);else if(explicitRemainingPercent!==void 0)usedPercent=clampPercent2(100-explicitRemainingPercent);if(usedPercent===void 0)return;return{label:spec.label,usedPercent,remaining:derivedRemaining,total,resetsAt:readResetTime(value,spec.resetKeys)}}function normalizeGenericWindow(value){let label=asString3(value.label)??asString3(value.name)??asString3(value.window_name)??asString3(value.windowName)??"Limit";return normalizeWindowFromSpec(value,{label,percentKeys:["used_percent","usedPercent","utilization","usage_percentage","usagePercentage"],remainingPercentKeys:["usage_percent","usagePercent","remaining_percent","remainingPercent","percent_remaining","percentRemaining"],totalKeys:["total","quota","limit","max","entitlement"],remainingKeys:["remaining","remain","remains","left"],usedKeys:["used","usage","consumed"],resetKeys:["resets_at","reset_at","resetsAt","resetAt"]})}function looksLikeSnapshotRecord(value){if(containsAnyKey(value,SNAPSHOT_HINT_KEYS))return!0;return WINDOW_SPECS.some((spec)=>containsAnyKey(value,spec.totalKeys)||containsAnyKey(value,spec.remainingKeys)||containsAnyKey(value,spec.usedKeys)||containsAnyKey(value,spec.percentKeys))}function normalizeSnapshot2(value,fallbackName){if(!isRecord8(value))return;let windows2=WINDOW_SPECS.map((spec)=>normalizeWindowFromSpec(value,spec)).filter((window2)=>window2!==void 0);if(windows2.length===0){let generic=normalizeGenericWindow(value);if(generic)windows2.push(generic)}if(windows2.length===0)return;return{limitName:asString3(value.limit_name)??asString3(value.limitName)??asString3(value.model_name)??asString3(value.modelName)??asString3(value.name)??fallbackName,windows:windows2}}function normalizeSnapshotsFromValue(value,fallbackName="MiniMax"){if(Array.isArray(value))return value.map((entry,index)=>normalizeSnapshot2(entry,index===0?fallbackName:`${fallbackName}-${index+1}`)).filter((snapshot2)=>snapshot2!==void 0);if(!isRecord8(value))return[];if(looksLikeSnapshotRecord(value)){let snapshot2=normalizeSnapshot2(value,fallbackName);return snapshot2?[snapshot2]:[]}return Object.entries(value).map(([key,entry])=>normalizeSnapshot2(entry,key)).filter((snapshot2)=>snapshot2!==void 0)}function buildUnavailableResult2(message=DEFAULT_MINIMAX_UNAVAILABLE_MESSAGE,planType){return{availability:"unknown",planType,snapshots:[],message}}function normalizeMiniMaxUsagePayload(payload){if(!isRecord8(payload))return buildUnavailableResult2();let planType=formatPlanType(asString3(payload.plan_type)??asString3(payload.planType)??asString3(payload.subscription_type)??asString3(payload.subscriptionType)??asString3(payload.plan_name)??asString3(payload.planName)),snapshots=[payload.data,payload.result,payload.model_remains,payload.modelRemains,payload.remains,payload.usage,payload.quotas,payload.models,isRecord8(payload.data)?payload.data.model_remains:void 0,isRecord8(payload.data)?payload.data.modelRemains:void 0,isRecord8(payload.data)?payload.data.models:void 0,isRecord8(payload.data)?payload.data.quotas:void 0,isRecord8(payload.data)?payload.data.remains:void 0].flatMap((candidate)=>normalizeSnapshotsFromValue(candidate)).filter((snapshot2,index,all4)=>{let identity4=`${snapshot2.limitName}:${snapshot2.windows.map((window2)=>window2.label).join("|")}`;return all4.findIndex((candidate)=>`${candidate.limitName}:${candidate.windows.map((window2)=>window2.label).join("|")}`===identity4)===index});if(snapshots.length>0)return{availability:"available",planType,snapshots};let directSnapshots=normalizeSnapshotsFromValue(payload);if(directSnapshots.length>0)return{availability:"available",planType,snapshots:directSnapshots};return buildUnavailableResult2(void 0,planType)}function buildRemainingText(window2){if(window2.remaining===void 0||window2.total===void 0||window2.total<=0)return;return`${window2.remaining}/${window2.total} remaining`}function buildMiniMaxUsageRows(snapshots){let rows=[];for(let snapshot2 of snapshots){let bucketLabel=formatBucketLabel(snapshot2.limitName),showPrefix=bucketLabel.toLowerCase()!=="minimax",combineSingleWindow=showPrefix&&snapshot2.windows.length===1;if(showPrefix&&!combineSingleWindow)rows.push({kind:"text",label:`${bucketLabel} quota`,value:""});for(let window2 of snapshot2.windows)rows.push({kind:"window",label:combineSingleWindow?`${bucketLabel} ${window2.label}`:window2.label,usedPercent:window2.usedPercent,resetsAt:window2.resetsAt,extraSubtext:buildRemainingText(window2)})}return rows}var WINDOW_SPECS,SNAPSHOT_HINT_KEYS;var init_parse6=__esm(()=>{WINDOW_SPECS=[{label:"5h limit",percentKeys:["interval_used_percent","intervalUsedPercent"],remainingPercentKeys:["usage_percent","usagePercent","interval_remaining_percent","intervalRemainingPercent"],totalKeys:["current_interval_total_count","currentIntervalTotalCount","max_interval_usage_count","maxIntervalUsageCount","interval_quota","intervalQuota","interval_limit","intervalLimit"],remainingKeys:["current_interval_remaining_count","currentIntervalRemainingCount","current_interval_remains_count","currentIntervalRemainsCount","interval_remaining","intervalRemaining","remaining_interval_usage_count","remainingIntervalUsageCount"],usedKeys:["current_interval_usage_count","currentIntervalUsageCount","interval_used","intervalUsed","current_interval_used_count","currentIntervalUsedCount","used_interval_usage_count","usedIntervalUsageCount"],resetKeys:["end_time","endTime","interval_resets_at","intervalResetsAt","interval_reset_at","intervalResetAt","remains_time","remainsTime"]},{label:"Weekly limit",percentKeys:["weekly_used_percent","weeklyUsedPercent"],remainingPercentKeys:["weekly_remaining_percent","weeklyRemainingPercent"],totalKeys:["max_weekly_usage_count","maxWeeklyUsageCount","weekly_quota","weeklyQuota","weekly_limit","weeklyLimit"],remainingKeys:["weekly_remaining","weeklyRemaining","remaining_weekly_usage_count","remainingWeeklyUsageCount"],usedKeys:["current_weekly_usage_count","currentWeeklyUsageCount","weekly_used","weeklyUsed","used_weekly_usage_count","usedWeeklyUsageCount"],resetKeys:["weekly_resets_at","weeklyResetsAt","weekly_reset_at","weeklyResetAt"]},{label:"Daily limit",percentKeys:["daily_used_percent","dailyUsedPercent"],remainingPercentKeys:["daily_remaining_percent","dailyRemainingPercent"],totalKeys:["max_daily_usage_count","maxDailyUsageCount","daily_quota","dailyQuota","daily_limit","dailyLimit"],remainingKeys:["daily_remaining","dailyRemaining","remaining_daily_usage_count","remainingDailyUsageCount"],usedKeys:["current_daily_usage_count","currentDailyUsageCount","daily_used","dailyUsed","used_daily_usage_count","usedDailyUsageCount"],resetKeys:["daily_resets_at","dailyResetsAt","daily_reset_at","dailyResetAt"]}],SNAPSHOT_HINT_KEYS=["used_percent","usedPercent","utilization","usage_percentage","usagePercentage","total","quota","limit","max","entitlement","remaining","remain","remains","left","usage_percent","usagePercent","current_interval_total_count","current_interval_usage_count","current_interval_remaining_count","current_interval_remains_count","max_interval_usage_count","current_weekly_usage_count","max_weekly_usage_count","current_daily_usage_count","max_daily_usage_count"]});function trimTrailingSlash4(value){return value.replace(/\/+$/,"")}function resolveMiniMaxUsageBaseUrl(baseUrl=process.env.OPENAI_BASE_URL??process.env.OPENAI_API_BASE??DEFAULT_MINIMAX_BASE_URL){let trimmed=baseUrl.trim();return trimmed?trimTrailingSlash4(trimmed):DEFAULT_MINIMAX_BASE_URL}function resolveConfiguredMiniMaxUsageBaseUrl(baseUrl){let configuredBaseUrl=baseUrl??process.env.OPENAI_BASE_URL??process.env.OPENAI_API_BASE;if(!configuredBaseUrl?.trim())return{baseUrl:DEFAULT_MINIMAX_BASE_URL,usedDefault:!0};return{baseUrl:resolveMiniMaxUsageBaseUrl(configuredBaseUrl),usedDefault:!1}}function buildUnavailableResult3(message){return{availability:"unknown",snapshots:[],message}}function getMiniMaxUsageUrls(baseUrl){let{baseUrl:resolvedBaseUrl,usedDefault}=resolveConfiguredMiniMaxUsageBaseUrl(baseUrl);try{let base2=new URL(`${resolvedBaseUrl}/`);return[new URL("token_plan/remains",base2).toString(),new URL("api/openplatform/coding_plan/remains",base2).toString()]}catch{if(usedDefault){let fallbackBase=new URL(`${DEFAULT_MINIMAX_BASE_URL}/`);return[new URL("token_plan/remains",fallbackBase).toString(),new URL("api/openplatform/coding_plan/remains",fallbackBase).toString()]}throw Error(`MiniMax usage base URL is invalid: ${resolvedBaseUrl}`)}}async function fetchMiniMaxUsage(){let apiKey=process.env.MINIMAX_API_KEY||process.env.OPENAI_API_KEY;if(!apiKey)throw Error("MiniMax auth is required. Set MINIMAX_API_KEY or OPENAI_API_KEY.");let usageUrls=getMiniMaxUsageUrls(),nonFatalFailures=[],lastFatalError=null;for(let usageUrl of usageUrls){let response,{signal,cleanup}=createCombinedAbortSignal(void 0,{timeoutMs:5000});try{try{response=await fetch(usageUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${apiKey}`,"Content-Type":"application/json","User-Agent":getClaudeCodeUserAgent()},signal})}catch(error41){logForDebugging(`[minimax] usage request failed for ${usageUrl}: ${error41 instanceof Error?error41.message:String(error41)}`,{level:"warn"}),lastFatalError=error41 instanceof Error?error41:Error(String(error41));continue}if(!response.ok){let errorBody=await response.text().catch(()=>"");if([400,401,403,404].includes(response.status)){nonFatalFailures.push({status:response.status,body:errorBody});continue}lastFatalError=Error(`MiniMax usage error ${response.status}: ${errorBody||"unknown error"}`);continue}let normalized=normalizeMiniMaxUsagePayload(await response.json());if(normalized.availability==="available")return normalized}finally{cleanup()}}if(nonFatalFailures.length>0){let latest=nonFatalFailures[nonFatalFailures.length-1];return logForDebugging(`[minimax] usage endpoint returned non-fatal status ${latest.status}: ${latest.body}`,{level:"warn"}),buildUnavailableResult3(DEFAULT_MINIMAX_UNAVAILABLE_MESSAGE)}if(lastFatalError)throw lastFatalError;return buildUnavailableResult3(DEFAULT_MINIMAX_UNAVAILABLE_MESSAGE)}var init_fetch3=__esm(()=>{init_combinedAbortSignal();init_debug();init_parse6()});var init_minimaxUsage=__esm(()=>{init_parse6();init_fetch3()});function formatCountdownDuration2(ms){let totalMinutes=Math.max(1,Math.ceil(ms/60000)),days=Math.floor(totalMinutes/1440),hours=Math.floor(totalMinutes%1440/60),minutes=totalMinutes%60;if(days>0)return hours>0?`${days}d ${hours}h`:`${days}d`;if(hours>0)return minutes>0?`${hours}h ${minutes}m`:`${hours}h`;return`${minutes}m`}function formatResetCountdown2(resetsAt,nowMs){if(!resetsAt)return;let resetMs=Date.parse(resetsAt);if(!Number.isFinite(resetMs))return;let remainingMs=resetMs-nowMs;if(remainingMs<=0)return"Resetting now";return`Resets in ${formatCountdownDuration2(remainingMs)}`}function MiniMaxUsageLimitBar({label,usedPercent,resetsAt,extraSubtext,maxWidth,nowMs}){let normalizedUsedPercent=Math.max(0,Math.min(100,usedPercent)),usedText=`${Math.floor(normalizedUsedPercent)}% used`,resetText=formatResetCountdown2(resetsAt,nowMs),details=[usedText,extraSubtext].filter((part)=>Boolean(part));return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this),resetText?jsxDEV(ThemedText,{dimColor:!0,children:[" · ",resetText]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,children:[jsxDEV(ProgressBar,{ratio:normalizedUsedPercent/100,width:Math.min(PROGRESS_BAR_WIDTH2,Math.max(1,maxWidth)),fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),details.length>0?jsxDEV(ThemedText,{dimColor:!0,children:details.join(" · ")},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function MiniMaxUsageTextRow({label,value}){if(!value)return jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this);return jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{bold:!0,children:label},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" · ",value]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function MiniMaxUsage(){let[usage,setUsage]=import_react109.useState(null),[error41,setError]=import_react109.useState(null),[isLoading,setIsLoading]=import_react109.useState(!0),[nowMs,setNowMs]=import_react109.useState(()=>Date.now()),{columns}=useTerminalSize(),availableWidth=columns-2,maxWidth=Math.min(availableWidth,80),loadUsage=React60.useCallback(async()=>{setIsLoading(!0),setError(null);try{setUsage(await fetchMiniMaxUsage())}catch(err2){logError(err2),setError(err2 instanceof Error?err2.message:"Failed to load MiniMax usage")}finally{setIsLoading(!1)}},[]);if(import_react109.useEffect(()=>{loadUsage()},[loadUsage]),import_react109.useEffect(()=>{let interval=setInterval(()=>{setNowMs(Date.now())},RESET_COUNTDOWN_REFRESH_MS2);return()=>clearInterval(interval)},[]),useKeybinding("settings:retry",()=>{loadUsage()},{context:"Settings",isActive:!!error41&&!isLoading}),error41)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"error",children:["Error: ",error41]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(ConfigurableShortcutHint,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!usage)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Loading MiniMax usage data…"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let rows=usage.availability==="available"?buildMiniMaxUsageRows(usage.snapshots):[];return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,width:"100%",children:[usage.planType?jsxDEV(ThemedText,{dimColor:!0,children:["Plan: ",usage.planType]},void 0,!0,void 0,this):null,usage.availability==="unknown"?jsxDEV(ThemedText,{dimColor:!0,children:usage.message},void 0,!1,void 0,this):rows.length===0?jsxDEV(ThemedText,{dimColor:!0,children:"No MiniMax usage windows were returned for this account."},void 0,!1,void 0,this):null,rows.map((row,index)=>row.kind==="window"?jsxDEV(MiniMaxUsageLimitBar,{label:row.label,usedPercent:row.usedPercent,resetsAt:row.resetsAt,extraSubtext:row.extraSubtext,maxWidth,nowMs},`${row.label}-${index}`,!1,void 0,this):jsxDEV(MiniMaxUsageTextRow,{label:row.label,value:row.value},`${row.label}-${index}`,!1,void 0,this)),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var React60,import_react109,RESET_COUNTDOWN_REFRESH_MS2=30000,PROGRESS_BAR_WIDTH2=18;var init_MiniMaxUsage=__esm(()=>{init_useTerminalSize();init_ink2();init_useKeybinding();init_minimaxUsage();init_log2();init_ConfigurableShortcutHint();init_Byline();init_ProgressBar();init_reactJsxDevRuntimeProductionShim();React60=__toESM(require_react_production(),1),import_react109=__toESM(require_react_production(),1)});function UnsupportedUsage({providerLabel}){return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:["Usage details are not currently available for ",providerLabel,"."]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var init_UnsupportedUsage=__esm(()=>{init_ink2();init_ConfigurableShortcutHint();init_reactJsxDevRuntimeProductionShim()});function LimitBar(t0){let $2=import_react_compiler_runtime135.c(34),{title,limit,maxWidth,showTimeInReset:t1,extraSubtext}=t0,showTimeInReset=t1===void 0?!0:t1,{utilization,resets_at}=limit;if(utilization===null)return null;let usedText=`${Math.floor(utilization)}% used`,subtext;if(resets_at){let t2;if($2[0]!==resets_at||$2[1]!==showTimeInReset)t2=formatResetText(resets_at,!0,showTimeInReset),$2[0]=resets_at,$2[1]=showTimeInReset,$2[2]=t2;else t2=$2[2];subtext=`Resets ${t2}`}if(extraSubtext)if(subtext)subtext=`${extraSubtext} · ${subtext}`;else subtext=extraSubtext;if(maxWidth>=62){let t2;if($2[3]!==title)t2=jsxDEV(ThemedText,{bold:!0,children:title},void 0,!1,void 0,this),$2[3]=title,$2[4]=t2;else t2=$2[4];let t3=utilization/100,t4;if($2[5]!==t3)t4=jsxDEV(ProgressBar,{ratio:t3,width:50,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),$2[5]=t3,$2[6]=t4;else t4=$2[6];let t5;if($2[7]!==usedText)t5=jsxDEV(ThemedText,{children:usedText},void 0,!1,void 0,this),$2[7]=usedText,$2[8]=t5;else t5=$2[8];let t6;if($2[9]!==t4||$2[10]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"row",gap:1,children:[t4,t5]},void 0,!0,void 0,this),$2[9]=t4,$2[10]=t5,$2[11]=t6;else t6=$2[11];let t7;if($2[12]!==subtext)t7=subtext&&jsxDEV(ThemedText,{dimColor:!0,children:subtext},void 0,!1,void 0,this),$2[12]=subtext,$2[13]=t7;else t7=$2[13];let t8;if($2[14]!==t2||$2[15]!==t6||$2[16]!==t7)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t2,t6,t7]},void 0,!0,void 0,this),$2[14]=t2,$2[15]=t6,$2[16]=t7,$2[17]=t8;else t8=$2[17];return t8}else{let t2;if($2[18]!==title)t2=jsxDEV(ThemedText,{bold:!0,children:title},void 0,!1,void 0,this),$2[18]=title,$2[19]=t2;else t2=$2[19];let t3;if($2[20]!==subtext)t3=subtext&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["· ",subtext]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[20]=subtext,$2[21]=t3;else t3=$2[21];let t4;if($2[22]!==t2||$2[23]!==t3)t4=jsxDEV(ThemedText,{children:[t2,t3]},void 0,!0,void 0,this),$2[22]=t2,$2[23]=t3,$2[24]=t4;else t4=$2[24];let t5=utilization/100,t6;if($2[25]!==maxWidth||$2[26]!==t5)t6=jsxDEV(ProgressBar,{ratio:t5,width:maxWidth,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),$2[25]=maxWidth,$2[26]=t5,$2[27]=t6;else t6=$2[27];let t7;if($2[28]!==usedText)t7=jsxDEV(ThemedText,{children:usedText},void 0,!1,void 0,this),$2[28]=usedText,$2[29]=t7;else t7=$2[29];let t8;if($2[30]!==t4||$2[31]!==t6||$2[32]!==t7)t8=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t4,t6,t7]},void 0,!0,void 0,this),$2[30]=t4,$2[31]=t6,$2[32]=t7,$2[33]=t8;else t8=$2[33];return t8}}function AnthropicUsage(){let[utilization,setUtilization]=import_react110.useState(null),[error41,setError]=import_react110.useState(null),[isLoading,setIsLoading]=import_react110.useState(!0),{columns}=useTerminalSize(),availableWidth=columns-2,maxWidth=Math.min(availableWidth,80),loadUtilization=React61.useCallback(async()=>{setIsLoading(!0),setError(null);try{let data=await fetchUtilization();setUtilization(data)}catch(err2){logError(err2);let axiosError=err2,responseBody=axiosError.response?.data?jsonStringify(axiosError.response.data):void 0;setError(responseBody?`Failed to load usage data: ${responseBody}`:"Failed to load usage data")}finally{setIsLoading(!1)}},[]);if(import_react110.useEffect(()=>{loadUtilization()},[loadUtilization]),useKeybinding("settings:retry",()=>{loadUtilization()},{context:"Settings",isActive:!!error41&&!isLoading}),error41)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"error",children:["Error: ",error41]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(ConfigurableShortcutHint,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!utilization)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Loading usage data…"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let subscriptionType=getSubscriptionType(),showSonnetBar=subscriptionType==="max"||subscriptionType==="team"||subscriptionType===null,limits=[{title:"Current session",limit:utilization.five_hour},{title:"Current week (all models)",limit:utilization.seven_day},...showSonnetBar?[{title:"Current week (Sonnet only)",limit:utilization.seven_day_sonnet}]:[]];return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,width:"100%",children:[limits.some(({limit})=>limit)||jsxDEV(ThemedText,{dimColor:!0,children:"/usage is only available for subscription plans."},void 0,!1,void 0,this),limits.map(({title,limit:limit_0})=>limit_0&&jsxDEV(LimitBar,{title,limit:limit_0,maxWidth},title,!1,void 0,this)),utilization.extra_usage&&jsxDEV(ExtraUsageSection,{extraUsage:utilization.extra_usage,maxWidth},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Usage(){let provider=getAPIProvider(),activeProfile=getActiveProviderProfile(),usageDescriptor=getUsageDescriptor(resolveActiveUsageId(process.env,{activeProfileProvider:activeProfile?.provider,activeProfileBaseUrl:activeProfile?.baseUrl,providerCategory:provider}));if(provider==="codex")return jsxDEV(CodexUsage,{},void 0,!1,void 0,this);if(usageDescriptor.resolvedId==="minimax"&&usageDescriptor.supported)return jsxDEV(MiniMaxUsage,{},void 0,!1,void 0,this);if(usageDescriptor.resolvedId==="clinepass"&&usageDescriptor.supported)return jsxDEV(ClinePassUsage,{},void 0,!1,void 0,this);if(usageDescriptor.resolvedId==="anthropic"&&usageDescriptor.supported)return jsxDEV(AnthropicUsage,{},void 0,!1,void 0,this);return jsxDEV(UnsupportedUsage,{providerLabel:usageDescriptor.activeLabel},void 0,!1,void 0,this)}function ExtraUsageSection(t0){let $2=import_react_compiler_runtime135.c(20),{extraUsage,maxWidth}=t0,subscriptionType=getSubscriptionType();if(!(subscriptionType==="pro"||subscriptionType==="max"))return!1;if(!extraUsage.is_enabled){let t12;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t12=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:EXTRA_USAGE_SECTION_TITLE},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Extra usage not enabled"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[0]=t12;else t12=$2[0];return t12}if(extraUsage.monthly_limit===null){let t12;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t12=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:EXTRA_USAGE_SECTION_TITLE},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Unlimited"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[1]=t12;else t12=$2[1];return t12}if(typeof extraUsage.used_credits!=="number"||typeof extraUsage.utilization!=="number")return null;let t1=extraUsage.used_credits/100,t2;if($2[2]!==t1)t2=formatCost(t1,2),$2[2]=t1,$2[3]=t2;else t2=$2[3];let formattedUsedCredits=t2,t3=extraUsage.monthly_limit/100,t4;if($2[4]!==t3)t4=formatCost(t3,2),$2[4]=t3,$2[5]=t4;else t4=$2[5];let formattedMonthlyLimit=t4,T0,t5,t6,t7;if($2[6]!==extraUsage.utilization){let now2=new Date,oneMonthReset=new Date(now2.getFullYear(),now2.getMonth()+1,1);T0=LimitBar,t7=EXTRA_USAGE_SECTION_TITLE,t5=extraUsage.utilization,t6=oneMonthReset.toISOString(),$2[6]=extraUsage.utilization,$2[7]=T0,$2[8]=t5,$2[9]=t6,$2[10]=t7}else T0=$2[7],t5=$2[8],t6=$2[9],t7=$2[10];let t8;if($2[11]!==t5||$2[12]!==t6)t8={utilization:t5,resets_at:t6},$2[11]=t5,$2[12]=t6,$2[13]=t8;else t8=$2[13];let t9=`${formattedUsedCredits} / ${formattedMonthlyLimit} spent`,t10;if($2[14]!==T0||$2[15]!==maxWidth||$2[16]!==t7||$2[17]!==t8||$2[18]!==t9)t10=jsxDEV(T0,{title:t7,limit:t8,showTimeInReset:!1,extraSubtext:t9,maxWidth},void 0,!1,void 0,this),$2[14]=T0,$2[15]=maxWidth,$2[16]=t7,$2[17]=t8,$2[18]=t9,$2[19]=t10;else t10=$2[19];return t10}var import_react_compiler_runtime135,React61,import_react110,EXTRA_USAGE_SECTION_TITLE="Extra usage";var init_Usage=__esm(()=>{init_usage2();init_cost_tracker();init_auth5();init_providerProfiles();init_useTerminalSize();init_ink2();init_useKeybinding();init_usage3();init_format();init_log2();init_providers();init_slowOperations();init_ConfigurableShortcutHint();init_Byline();init_ProgressBar();init_CodexUsage();init_ClinePassUsage();init_MiniMaxUsage();init_UnsupportedUsage();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime135=__toESM(require_dist4(),1),React61=__toESM(require_react_production(),1),import_react110=__toESM(require_react_production(),1)});function Settings(t0){let $2=import_react_compiler_runtime136.c(25),{onClose,context,defaultTab}=t0,[selectedTab,setSelectedTab]=import_react111.useState(defaultTab),[tabsHidden,setTabsHidden]=import_react111.useState(!1),[configOwnsEsc,setConfigOwnsEsc]=import_react111.useState(!1),[gatesOwnsEsc,setGatesOwnsEsc]=import_react111.useState(!1),insideModal=useIsInsideModal(),{rows}=useModalOrTerminalSize(useTerminalSize()),contentHeight=insideModal?rows+1:Math.max(15,Math.min(Math.floor(rows*0.8),30)),[diagnosticsPromise]=import_react111.useState(_temp218);useExitOnCtrlCDWithKeybindings();let t1;if($2[0]!==onClose||$2[1]!==tabsHidden)t1=()=>{if(tabsHidden)return;onClose("Status dialog dismissed",{display:"system"})},$2[0]=onClose,$2[1]=tabsHidden,$2[2]=t1;else t1=$2[2];let handleEscape=t1,t2=!tabsHidden&&!(selectedTab==="Config"&&configOwnsEsc)&&!(selectedTab==="Gates"&&gatesOwnsEsc),t3;if($2[3]!==t2)t3={context:"Settings",isActive:t2},$2[3]=t2,$2[4]=t3;else t3=$2[4];useKeybinding("confirm:no",handleEscape,t3);let t4;if($2[5]!==context||$2[6]!==diagnosticsPromise)t4=jsxDEV(Tab,{title:"Status",children:jsxDEV(Status,{context,diagnosticsPromise},void 0,!1,void 0,this)},"status",!1,void 0,this),$2[5]=context,$2[6]=diagnosticsPromise,$2[7]=t4;else t4=$2[7];let t5;if($2[8]!==contentHeight||$2[9]!==context||$2[10]!==onClose)t5=jsxDEV(Tab,{title:"Config",children:jsxDEV(import_react111.Suspense,{fallback:null,children:jsxDEV(Config,{context,onClose,setTabsHidden,onIsSearchModeChange:setConfigOwnsEsc,contentHeight},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"config",!1,void 0,this),$2[8]=contentHeight,$2[9]=context,$2[10]=onClose,$2[11]=t5;else t5=$2[11];let t6;if($2[12]===Symbol.for("react.memo_cache_sentinel"))t6=jsxDEV(Tab,{title:"Usage",children:jsxDEV(Usage,{},void 0,!1,void 0,this)},"usage",!1,void 0,this),$2[12]=t6;else t6=$2[12];let t7;if($2[13]!==contentHeight)t7=[],$2[13]=contentHeight,$2[14]=t7;else t7=$2[14];let t8;if($2[15]!==t4||$2[16]!==t5||$2[17]!==t7)t8=[t4,t5,t6,...t7],$2[15]=t4,$2[16]=t5,$2[17]=t7,$2[18]=t8;else t8=$2[18];let tabs=t8,t9=defaultTab!=="Config"&&defaultTab!=="Gates",t10=tabsHidden||insideModal?void 0:contentHeight,t11;if($2[19]!==selectedTab||$2[20]!==t10||$2[21]!==t9||$2[22]!==tabs||$2[23]!==tabsHidden)t11=jsxDEV(Pane,{color:"permission",children:jsxDEV(Tabs,{color:"permission",selectedTab,onTabChange:setSelectedTab,hidden:tabsHidden,initialHeaderFocused:t9,contentHeight:t10,children:tabs},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[19]=selectedTab,$2[20]=t10,$2[21]=t9,$2[22]=tabs,$2[23]=tabsHidden,$2[24]=t11;else t11=$2[24];return t11}function _temp218(){return buildDiagnostics().catch(_temp61)}function _temp61(){return[]}var import_react_compiler_runtime136,import_react111;var init_Settings=__esm(()=>{init_useKeybinding();init_useExitOnCtrlCDWithKeybindings();init_useTerminalSize();init_modalContext();init_Pane();init_Tabs();init_Status();init_Config();init_Usage();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime136=__toESM(require_dist4(),1),import_react111=__toESM(require_react_production(),1)});var exports_config2={};__export(exports_config2,{call:()=>call15});var call15=async(onDone,context)=>{return jsxDEV(Settings,{onClose:onDone,context,defaultTab:"Config"},void 0,!1,void 0,this)};var init_config7=__esm(()=>{init_Settings();init_reactJsxDevRuntimeProductionShim()});var config3,config_default;var init_config8=__esm(()=>{config3={aliases:["settings"],type:"local-jsx",name:"config",description:"Open config panel",load:()=>Promise.resolve().then(() => (init_config7(),exports_config2))},config_default=config3});function generateContextSuggestions(data){let suggestions=[];return checkNearCapacity(data,suggestions),checkLargeToolResults(data,suggestions),checkReadResultBloat(data,suggestions),checkMemoryBloat(data,suggestions),checkAutoCompactDisabled(data,suggestions),suggestions.sort((a2,b)=>{if(a2.severity!==b.severity)return a2.severity==="warning"?-1:1;return(b.savingsTokens??0)-(a2.savingsTokens??0)}),suggestions}function checkNearCapacity(data,suggestions){if(data.percentage>=NEAR_CAPACITY_PERCENT)suggestions.push({severity:"warning",title:`Context is ${data.percentage}% full`,detail:data.isAutoCompactEnabled?"Autocompact will trigger soon, which discards older messages. Use /compact now to control what gets kept.":"Autocompact is disabled. Use /compact to free space, or enable autocompact in /config."})}function checkLargeToolResults(data,suggestions){if(!data.messageBreakdown)return;for(let tool of data.messageBreakdown.toolCallsByType){let totalToolTokens=tool.callTokens+tool.resultTokens,percent=totalToolTokens/data.rawMaxTokens*100;if(percent<LARGE_TOOL_RESULT_PERCENT||totalToolTokens<LARGE_TOOL_RESULT_TOKENS)continue;let suggestion=getLargeToolSuggestion(tool.name,totalToolTokens,percent);if(suggestion)suggestions.push(suggestion)}}function getLargeToolSuggestion(toolName,tokens,percent){let tokenStr=formatTokens(tokens);switch(toolName){case BASH_TOOL_NAME:return{severity:"warning",title:`Bash results using ${tokenStr} tokens (${percent.toFixed(0)}%)`,detail:"Pipe output through head, tail, or grep to reduce result size. Avoid cat on large files — use Read with offset/limit instead.",savingsTokens:Math.floor(tokens*0.5)};case FILE_READ_TOOL_NAME:return{severity:"info",title:`Read results using ${tokenStr} tokens (${percent.toFixed(0)}%)`,detail:"Use offset and limit parameters to read only the sections you need. Avoid re-reading entire files when you only need a few lines.",savingsTokens:Math.floor(tokens*0.3)};case GREP_TOOL_NAME:return{severity:"info",title:`Grep results using ${tokenStr} tokens (${percent.toFixed(0)}%)`,detail:"Add more specific patterns or use the glob or type parameter to narrow file types. Consider Glob for file discovery instead of Grep.",savingsTokens:Math.floor(tokens*0.3)};case WEB_FETCH_TOOL_NAME:return{severity:"info",title:`WebFetch results using ${tokenStr} tokens (${percent.toFixed(0)}%)`,detail:"Web page content can be very large. Consider extracting only the specific information needed.",savingsTokens:Math.floor(tokens*0.4)};default:if(percent>=20)return{severity:"info",title:`${toolName} using ${tokenStr} tokens (${percent.toFixed(0)}%)`,detail:"This tool is consuming a significant portion of context.",savingsTokens:Math.floor(tokens*0.2)};return null}}function checkReadResultBloat(data,suggestions){if(!data.messageBreakdown)return;let readTool=data.messageBreakdown.toolCallsByType.find((t)=>t.name===FILE_READ_TOOL_NAME);if(!readTool)return;let totalReadTokens=readTool.callTokens+readTool.resultTokens,totalReadPercent=totalReadTokens/data.rawMaxTokens*100,readPercent=readTool.resultTokens/data.rawMaxTokens*100;if(totalReadPercent>=LARGE_TOOL_RESULT_PERCENT&&totalReadTokens>=LARGE_TOOL_RESULT_TOKENS)return;if(readPercent>=READ_BLOAT_PERCENT&&readTool.resultTokens>=LARGE_TOOL_RESULT_TOKENS)suggestions.push({severity:"info",title:`File reads using ${formatTokens(readTool.resultTokens)} tokens (${readPercent.toFixed(0)}%)`,detail:"If you are re-reading files, consider referencing earlier reads. Use offset/limit for large files.",savingsTokens:Math.floor(readTool.resultTokens*0.3)})}function checkMemoryBloat(data,suggestions){let totalMemoryTokens=data.memoryFiles.reduce((sum,f)=>sum+f.tokens,0),memoryPercent=totalMemoryTokens/data.rawMaxTokens*100;if(memoryPercent>=MEMORY_HIGH_PERCENT&&totalMemoryTokens>=MEMORY_HIGH_TOKENS){let largestFiles=[...data.memoryFiles].sort((a2,b)=>b.tokens-a2.tokens).slice(0,3).map((f)=>{return`${getDisplayPath(f.path)} (${formatTokens(f.tokens)})`}).join(", ");suggestions.push({severity:"info",title:`Memory files using ${formatTokens(totalMemoryTokens)} tokens (${memoryPercent.toFixed(0)}%)`,detail:`Largest: ${largestFiles}. Use /memory to review and prune stale entries.`,savingsTokens:Math.floor(totalMemoryTokens*0.3)})}}function checkAutoCompactDisabled(data,suggestions){if(!data.isAutoCompactEnabled&&data.percentage>=50&&data.percentage<NEAR_CAPACITY_PERCENT)suggestions.push({severity:"info",title:"Autocompact is disabled",detail:"Without autocompact, you will hit context limits and lose the conversation. Enable it in /config or use /compact manually."})}var LARGE_TOOL_RESULT_PERCENT=15,LARGE_TOOL_RESULT_TOKENS=1e4,READ_BLOAT_PERCENT=5,NEAR_CAPACITY_PERCENT=80,MEMORY_HIGH_PERCENT=5,MEMORY_HIGH_TOKENS=5000;var init_contextSuggestions=__esm(()=>{init_prompt3();init_prompt();init_file();init_format()});function StatusIcon(t0){let $2=import_react_compiler_runtime137.c(5),{status,withSpace:t1}=t0,withSpace=t1===void 0?!1:t1,config4=STATUS_CONFIG[status],t2=!config4.color,t3=withSpace&&" ",t4;if($2[0]!==config4.color||$2[1]!==config4.icon||$2[2]!==t2||$2[3]!==t3)t4=jsxDEV(ThemedText,{color:config4.color,dimColor:t2,children:[config4.icon,t3]},void 0,!0,void 0,this),$2[0]=config4.color,$2[1]=config4.icon,$2[2]=t2,$2[3]=t3,$2[4]=t4;else t4=$2[4];return t4}var import_react_compiler_runtime137,STATUS_CONFIG;var init_StatusIcon=__esm(()=>{init_figures();init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime137=__toESM(require_dist4(),1),STATUS_CONFIG={success:{icon:figures_default.tick,color:"success"},error:{icon:figures_default.cross,color:"error"},warning:{icon:figures_default.warning,color:"warning"},info:{icon:figures_default.info,color:"suggestion"},pending:{icon:figures_default.circle,color:void 0},loading:{icon:"…",color:void 0}}});function ContextSuggestions(t0){let $2=import_react_compiler_runtime138.c(5),{suggestions}=t0;if(suggestions.length===0)return null;let t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedText,{bold:!0,children:"Suggestions"},void 0,!1,void 0,this),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==suggestions)t2=suggestions.map(_temp63),$2[1]=suggestions,$2[2]=t2;else t2=$2[2];let t3;if($2[3]!==t2)t3=jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[t1,t2]},void 0,!0,void 0,this),$2[3]=t2,$2[4]=t3;else t3=$2[4];return t3}function _temp63(suggestion,i3){return jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:i3===0?0:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:suggestion.severity,withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:suggestion.title},void 0,!1,void 0,this),suggestion.savingsTokens?jsxDEV(ThemedText,{dimColor:!0,children:[" ",figures_default.arrowRight," save ~",formatTokens(suggestion.savingsTokens)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:suggestion.detail},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},i3,!0,void 0,this)}var import_react_compiler_runtime138;var init_ContextSuggestions=__esm(()=>{init_figures();init_ink2();init_format();init_StatusIcon();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime138=__toESM(require_dist4(),1)});function CollapseStatus(){let $2=import_react_compiler_runtime139.c(2);{let t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel")){t1=Symbol.for("react.early_return_sentinel");bb0:{let{getStats:getStats2,isContextCollapseEnabled:isContextCollapseEnabled2}=(init_contextCollapse(),__toCommonJS(exports_contextCollapse));if(!isContextCollapseEnabled2()){t1=null;break bb0}let s=getStats2(),{health:h2}=s,parts=[];if(s.collapsedSpans>0)parts.push(`${s.collapsedSpans} ${plural(s.collapsedSpans,"span")} summarized (${s.collapsedMessages} msgs)`);if(s.stagedSpans>0)parts.push(`${s.stagedSpans} staged`);let summary=parts.length>0?parts.join(", "):h2.totalSpawns>0?`${h2.totalSpawns} ${plural(h2.totalSpawns,"spawn")}, nothing staged yet`:"waiting for first trigger",line2=null;if(h2.totalErrors>0)line2=jsxDEV(ThemedText,{color:"warning",children:["Collapse errors: ",h2.totalErrors,"/",h2.totalSpawns," spawns failed",h2.lastError?` (last: ${h2.lastError.slice(0,60)})`:""]},void 0,!0,void 0,this);else if(h2.emptySpawnWarningEmitted)line2=jsxDEV(ThemedText,{color:"warning",children:["Collapse idle: ",h2.totalEmptySpawns," consecutive empty runs"]},void 0,!0,void 0,this);t0=jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{dimColor:!0,children:["Context strategy: collapse (",summary,")"]},void 0,!0,void 0,this),line2]},void 0,!0,void 0,this)}$2[0]=t0,$2[1]=t1}else t0=$2[0],t1=$2[1];if(t1!==Symbol.for("react.early_return_sentinel"))return t1;return t0}return null}function groupBySource(items){let groups=new Map;for(let item of items){let key=getSourceDisplayName(item.source),existing=groups.get(key)||[];existing.push(item),groups.set(key,existing)}for(let[key,group]of groups.entries())groups.set(key,group.sort((a2,b)=>b.tokens-a2.tokens));let orderedGroups=new Map;for(let source of SOURCE_DISPLAY_ORDER){let group=groups.get(source);if(group)orderedGroups.set(source,group)}return orderedGroups}function ContextVisualization(t0){let $2=import_react_compiler_runtime139.c(87),{data}=t0,{categories,totalTokens,rawMaxTokens,percentage,gridRows,model,memoryFiles,mcpTools,deferredBuiltinTools:t1,systemTools,systemPromptSections,agents,skills,messageBreakdown}=data,T0,T1,t2,t3,t4,t5,t6,t7,t8,t9;if($2[0]!==categories||$2[1]!==gridRows||$2[2]!==mcpTools||$2[3]!==model||$2[4]!==percentage||$2[5]!==rawMaxTokens||$2[6]!==systemTools||$2[7]!==t1||$2[8]!==totalTokens){let deferredBuiltinTools=t1===void 0?[]:t1,visibleCategories=categories.filter(_temp65),t102;if($2[19]!==categories)t102=categories.some(_temp220),$2[19]=categories,$2[20]=t102;else t102=$2[20];let hasDeferredMcpTools=t102,hasDeferredBuiltinTools=deferredBuiltinTools.length>0,autocompactCategory=categories.find(_temp313);if(T1=ThemedBox_default,t6="column",t7=1,$2[21]===Symbol.for("react.memo_cache_sentinel"))t8=jsxDEV(ThemedText,{bold:!0,children:"Context Usage"},void 0,!1,void 0,this),$2[21]=t8;else t8=$2[21];let t112;if($2[22]!==gridRows)t112=gridRows.map(_temp510),$2[22]=gridRows,$2[23]=t112;else t112=$2[23];let t122;if($2[24]!==t112)t122=jsxDEV(ThemedBox_default,{flexDirection:"column",flexShrink:0,children:t112},void 0,!1,void 0,this),$2[24]=t112,$2[25]=t122;else t122=$2[25];let t132;if($2[26]!==totalTokens)t132=formatTokens(totalTokens),$2[26]=totalTokens,$2[27]=t132;else t132=$2[27];let t142;if($2[28]!==rawMaxTokens)t142=formatTokens(rawMaxTokens),$2[28]=rawMaxTokens,$2[29]=t142;else t142=$2[29];let t152;if($2[30]!==model||$2[31]!==percentage||$2[32]!==t132||$2[33]!==t142)t152=jsxDEV(ThemedText,{dimColor:!0,children:[model," · ",t132,"/",t142," ","tokens (",percentage,"%)"]},void 0,!0,void 0,this),$2[30]=model,$2[31]=percentage,$2[32]=t132,$2[33]=t142,$2[34]=t152;else t152=$2[34];let t162,t172,t182;if($2[35]===Symbol.for("react.memo_cache_sentinel"))t162=jsxDEV(CollapseStatus,{},void 0,!1,void 0,this),t172=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t182=jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:"Estimated usage by category"},void 0,!1,void 0,this),$2[35]=t162,$2[36]=t172,$2[37]=t182;else t162=$2[35],t172=$2[36],t182=$2[37];let t19;if($2[38]!==rawMaxTokens)t19=(cat_2,index)=>{let tokenDisplay=formatTokens(cat_2.tokens),percentDisplay=cat_2.isDeferred?"N/A":`${(cat_2.tokens/rawMaxTokens*100).toFixed(1)}%`,isReserved=cat_2.name===RESERVED_CATEGORY_NAME,displayName=cat_2.name,symbol2=cat_2.isDeferred?" ":isReserved?"⛝":"⛁";return jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{color:cat_2.color,children:symbol2},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:[" ",displayName,": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[tokenDisplay," tokens (",percentDisplay,")"]},void 0,!0,void 0,this)]},index,!0,void 0,this)},$2[38]=rawMaxTokens,$2[39]=t19;else t19=$2[39];let t20=visibleCategories.map(t19),t21;if($2[40]!==categories||$2[41]!==rawMaxTokens)t21=(categories.find(_temp64)?.tokens??0)>0&&jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"⛶"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" Free space: "},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(categories.find(_temp74)?.tokens||0)," ","(",((categories.find(_temp84)?.tokens||0)/rawMaxTokens*100).toFixed(1),"%)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[40]=categories,$2[41]=rawMaxTokens,$2[42]=t21;else t21=$2[42];let t22=autocompactCategory&&autocompactCategory.tokens>0&&jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{color:autocompactCategory.color,children:"⛝"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",autocompactCategory.name,": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(autocompactCategory.tokens)," tokens (",(autocompactCategory.tokens/rawMaxTokens*100).toFixed(1),"%)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t23;if($2[43]!==t152||$2[44]!==t20||$2[45]!==t21||$2[46]!==t22)t23=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:0,flexShrink:0,children:[t152,t162,t172,t182,t20,t21,t22]},void 0,!0,void 0,this),$2[43]=t152,$2[44]=t20,$2[45]=t21,$2[46]=t22,$2[47]=t23;else t23=$2[47];if($2[48]!==t122||$2[49]!==t23)t9=jsxDEV(ThemedBox_default,{flexDirection:"row",gap:2,children:[t122,t23]},void 0,!0,void 0,this),$2[48]=t122,$2[49]=t23,$2[50]=t9;else t9=$2[50];if(T0=ThemedBox_default,t2="column",t3=-1,$2[51]!==hasDeferredMcpTools||$2[52]!==mcpTools)t4=mcpTools.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{bold:!0,children:"MCP tools"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ","· /mcp",hasDeferredMcpTools?" (loaded on-demand)":""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),mcpTools.some(_temp93)&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Loaded"},void 0,!1,void 0,this),mcpTools.filter(_temp0).map(_temp1)]},void 0,!0,void 0,this),hasDeferredMcpTools&&mcpTools.some(_temp102)&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Available"},void 0,!1,void 0,this),mcpTools.filter(_temp112).map(_temp122)]},void 0,!0,void 0,this),!hasDeferredMcpTools&&mcpTools.map(_temp132)]},void 0,!0,void 0,this),$2[51]=hasDeferredMcpTools,$2[52]=mcpTools,$2[53]=t4;else t4=$2[53];t5=(systemTools&&systemTools.length>0||hasDeferredBuiltinTools)&&!1,$2[0]=categories,$2[1]=gridRows,$2[2]=mcpTools,$2[3]=model,$2[4]=percentage,$2[5]=rawMaxTokens,$2[6]=systemTools,$2[7]=t1,$2[8]=totalTokens,$2[9]=T0,$2[10]=T1,$2[11]=t2,$2[12]=t3,$2[13]=t4,$2[14]=t5,$2[15]=t6,$2[16]=t7,$2[17]=t8,$2[18]=t9}else T0=$2[9],T1=$2[10],t2=$2[11],t3=$2[12],t4=$2[13],t5=$2[14],t6=$2[15],t7=$2[16],t8=$2[17],t9=$2[18];let t10;if($2[54]!==systemPromptSections)t10=systemPromptSections&&systemPromptSections.length>0&&!1,$2[54]=systemPromptSections,$2[55]=t10;else t10=$2[55];let t11;if($2[56]!==agents)t11=agents.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{bold:!0,children:"Custom agents"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:" · /agents"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Array.from(groupBySource(agents).entries()).map(_temp222)]},void 0,!0,void 0,this),$2[56]=agents,$2[57]=t11;else t11=$2[57];let t12;if($2[58]!==memoryFiles)t12=memoryFiles.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{bold:!0,children:"Memory files"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:" · /memory"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),memoryFiles.map(_temp232)]},void 0,!0,void 0,this),$2[58]=memoryFiles,$2[59]=t12;else t12=$2[59];let t13;if($2[60]!==skills)t13=skills&&skills.tokens>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{bold:!0,children:"Skills"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:" · /skills"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Array.from(groupBySource(skills.skillFrontmatter).entries()).map(_temp252)]},void 0,!0,void 0,this),$2[60]=skills,$2[61]=t13;else t13=$2[61];let t14;if($2[62]!==messageBreakdown)t14=messageBreakdown&&!1,$2[62]=messageBreakdown,$2[63]=t14;else t14=$2[63];let t15;if($2[64]!==T0||$2[65]!==t10||$2[66]!==t11||$2[67]!==t12||$2[68]!==t13||$2[69]!==t14||$2[70]!==t2||$2[71]!==t3||$2[72]!==t4||$2[73]!==t5)t15=jsxDEV(T0,{flexDirection:t2,marginLeft:t3,children:[t4,t5,t10,t11,t12,t13,t14]},void 0,!0,void 0,this),$2[64]=T0,$2[65]=t10,$2[66]=t11,$2[67]=t12,$2[68]=t13,$2[69]=t14,$2[70]=t2,$2[71]=t3,$2[72]=t4,$2[73]=t5,$2[74]=t15;else t15=$2[74];let t16;if($2[75]!==data)t16=generateContextSuggestions(data),$2[75]=data,$2[76]=t16;else t16=$2[76];let t17;if($2[77]!==t16)t17=jsxDEV(ContextSuggestions,{suggestions:t16},void 0,!1,void 0,this),$2[77]=t16,$2[78]=t17;else t17=$2[78];let t18;if($2[79]!==T1||$2[80]!==t15||$2[81]!==t17||$2[82]!==t6||$2[83]!==t7||$2[84]!==t8||$2[85]!==t9)t18=jsxDEV(T1,{flexDirection:t6,paddingLeft:t7,children:[t8,t9,t15,t17]},void 0,!0,void 0,this),$2[79]=T1,$2[80]=t15,$2[81]=t17,$2[82]=t6,$2[83]=t7,$2[84]=t8,$2[85]=t9,$2[86]=t18;else t18=$2[86];return t18}function _temp252(t0){let[sourceDisplay_0,sourceSkills]=t0;return jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:sourceDisplay_0},void 0,!1,void 0,this),sourceSkills.map(_temp242)]},sourceDisplay_0,!0,void 0,this)}function _temp242(skill,i_8){return jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:["└ ",skill.name,": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(skill.tokens)," tokens"]},void 0,!0,void 0,this)]},i_8,!0,void 0,this)}function _temp232(file2,i_7){return jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:["└ ",getDisplayPath(file2.path),": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(file2.tokens)," tokens"]},void 0,!0,void 0,this)]},i_7,!0,void 0,this)}function _temp222(t0){let[sourceDisplay,sourceAgents]=t0;return jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:sourceDisplay},void 0,!1,void 0,this),sourceAgents.map(_temp219)]},sourceDisplay,!0,void 0,this)}function _temp219(agent,i_6){return jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:["└ ",agent.agentType,": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(agent.tokens)," tokens"]},void 0,!0,void 0,this)]},i_6,!0,void 0,this)}function _temp132(tool_1,i_1){return jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:["└ ",tool_1.name,": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(tool_1.tokens)," tokens"]},void 0,!0,void 0,this)]},i_1,!0,void 0,this)}function _temp122(tool_0,i_0){return jsxDEV(ThemedBox_default,{children:jsxDEV(ThemedText,{dimColor:!0,children:["└ ",tool_0.name]},void 0,!0,void 0,this)},i_0,!1,void 0,this)}function _temp112(t_1){return!t_1.isLoaded}function _temp102(t_2){return!t_2.isLoaded}function _temp1(tool,i3){return jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:["└ ",tool.name,": "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[formatTokens(tool.tokens)," tokens"]},void 0,!0,void 0,this)]},i3,!0,void 0,this)}function _temp0(t){return t.isLoaded}function _temp93(t_0){return t_0.isLoaded}function _temp84(c_0){return c_0.name==="Free space"}function _temp74(c5){return c5.name==="Free space"}function _temp64(c_1){return c_1.name==="Free space"}function _temp510(row,rowIndex){return jsxDEV(ThemedBox_default,{flexDirection:"row",marginLeft:-1,children:row.map(_temp413)},rowIndex,!1,void 0,this)}function _temp413(square,colIndex){if(square.categoryName==="Free space")return jsxDEV(ThemedText,{dimColor:!0,children:"⛶ "},colIndex,!1,void 0,this);if(square.categoryName===RESERVED_CATEGORY_NAME)return jsxDEV(ThemedText,{color:square.color,children:"⛝ "},colIndex,!1,void 0,this);return jsxDEV(ThemedText,{color:square.color,children:square.squareFullness>=0.7?"⛁ ":"⛀ "},colIndex,!1,void 0,this)}function _temp313(cat_1){return cat_1.name===RESERVED_CATEGORY_NAME}function _temp220(cat_0){return cat_0.isDeferred&&cat_0.name.includes("MCP")}function _temp65(cat){return cat.tokens>0&&cat.name!=="Free space"&&cat.name!==RESERVED_CATEGORY_NAME&&!cat.isDeferred}var import_react_compiler_runtime139,RESERVED_CATEGORY_NAME="Autocompact buffer",SOURCE_DISPLAY_ORDER;var init_ContextVisualization=__esm(()=>{init_ink2();init_contextSuggestions();init_file();init_format();init_constants2();init_ContextSuggestions();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime139=__toESM(require_dist4(),1);SOURCE_DISPLAY_ORDER=["Project","User","Managed","Plugin","SDK","Built-in"]});import{PassThrough as PassThrough3}from"stream";import{stripVTControlCharacters as stripAnsi8}from"node:util";function RenderOnceAndExit(t0){let $2=import_react_compiler_runtime140.c(5),{children}=t0,{exit}=use_app_default(),t1,t2;if($2[0]!==exit)t1=()=>{let timer=setTimeout(exit,0);return()=>clearTimeout(timer)},t2=[exit],$2[0]=exit,$2[1]=t1,$2[2]=t2;else t1=$2[1],t2=$2[2];import_react112.useLayoutEffect(t1,t2);let t3;if($2[3]!==children)t3=jsxDEV($Fragment,{children},void 0,!1,void 0,this),$2[3]=children,$2[4]=t3;else t3=$2[4];return t3}function extractFirstFrame(output){let startIndex=output.indexOf(SYNC_START);if(startIndex===-1)return output;let contentStart=startIndex+SYNC_START.length,endIndex=output.indexOf(SYNC_END,contentStart);if(endIndex===-1)return output;return output.slice(contentStart,endIndex)}function renderToAnsiString(node,columns){return new Promise(async(resolve40)=>{let output="",stream4=new PassThrough3;if(columns!==void 0)stream4.columns=columns;stream4.on("data",(chunk)=>{output+=chunk.toString()});let instance=await render(jsxDEV(RenderOnceAndExit,{children:node},void 0,!1,void 0,this),{stdout:stream4,patchConsole:!1});await Promise.race([instance.waitUntilExit(),new Promise((resolve41)=>setTimeout(resolve41,3000))]),await resolve40(extractFirstFrame(output))})}async function renderToString(node,columns){let output=await renderToAnsiString(node,columns);return stripAnsi8(output)}var import_react_compiler_runtime140,import_react112,SYNC_START="\x1B[?2026h",SYNC_END="\x1B[?2026l";var init_staticRender=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime140=__toESM(require_dist4(),1),import_react112=__toESM(require_react_production(),1)});var exports_context={};__export(exports_context,{call:()=>call16});function toApiView(messages){let view=getMessagesAfterCompactBoundary(messages);{let{projectView:projectView2}=__toCommonJS(exports_operations),{isContextCollapseEnabled:isContextCollapseEnabled2}=(init_contextCollapse(),__toCommonJS(exports_contextCollapse));if(isContextCollapseEnabled2())view=projectView2(view)}return view}async function call16(onDone,context){let{messages,getAppState,options:{mainLoopModel,tools}}=context,apiView=toApiView(messages),{messages:compactedMessages}=await microcompactMessages(apiView),terminalWidth=process.stdout.columns||80,appState=getAppState(),data=await analyzeContextUsage(compactedMessages,mainLoopModel,async()=>appState.toolPermissionContext,tools,appState.agentDefinitions,terminalWidth,context,void 0,apiView),output=await renderToAnsiString(jsxDEV(ContextVisualization,{data},void 0,!1,void 0,this));return onDone(output),null}var init_context3=__esm(()=>{init_ContextVisualization();init_microCompact();init_analyzeContext();init_messages3();init_staticRender();init_reactJsxDevRuntimeProductionShim()});var exports_context_noninteractive={};__export(exports_context_noninteractive,{collectContextData:()=>collectContextData,call:()=>call17});async function collectContextData(context){let{messages,getAppState,options:{mainLoopModel,tools,agentDefinitions,customSystemPrompt,appendSystemPrompt}}=context,apiView=getMessagesAfterCompactBoundary(messages);{let{projectView:projectView2}=__toCommonJS(exports_operations),{isContextCollapseEnabled:isContextCollapseEnabled2}=(init_contextCollapse(),__toCommonJS(exports_contextCollapse));if(isContextCollapseEnabled2())apiView=projectView2(apiView)}let{messages:compactedMessages}=await microcompactMessages(apiView),appState=getAppState();return analyzeContextUsage(compactedMessages,mainLoopModel,async()=>appState.toolPermissionContext,tools,agentDefinitions,void 0,{options:{customSystemPrompt,appendSystemPrompt}},void 0,apiView)}async function call17(_args,context){let data=await collectContextData(context);return{type:"text",value:formatContextAsMarkdownTable(data)}}function formatContextAsMarkdownTable(data){let{categories,totalTokens,rawMaxTokens,percentage,model,memoryFiles,mcpTools,agents,skills,messageBreakdown,systemTools,systemPromptSections}=data,output=`## Context Usage
|
|
5097
5097
|
|
|
5098
5098
|
`;output+=`**Model:** ${model}
|
|
@@ -5184,7 +5184,7 @@ ${sessionIds.map((id)=>`- ${id}`).join(`
|
|
|
5184
5184
|
`)}var init_ctx_noninteractive=__esm(()=>{init_source2();init_figures();init_autoCompact();init_microCompact();init_analyzeContext();init_context();init_format();init_messages3();init_model();init_state()});var ctx,ctx_viz_default;var init_ctx_viz=__esm(()=>{ctx={type:"local",name:"ctx",description:"Show context window usage and token breakdown",aliases:["ctx_viz","context-viz"],supportsNonInteractive:!0,load:()=>Promise.resolve().then(() => (init_ctx_noninteractive(),exports_ctx_noninteractive))},ctx_viz_default=ctx});function KeybindingWarnings(){let $2=import_react_compiler_runtime144.c(2);if(!isKeybindingCustomizationEnabled())return null;let t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel")){t1=Symbol.for("react.early_return_sentinel");bb0:{let warnings=getCachedKeybindingWarnings();if(warnings.length===0){t1=null;break bb0}let errors4=warnings.filter(_temp67),warns=warnings.filter(_temp225);t0=jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,marginBottom:1,children:[jsxDEV(ThemedText,{bold:!0,color:errors4.length>0?"error":"warning",children:"Keybinding Configuration Issues"},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"Location: "},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:getKeybindingsPath()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:1,flexDirection:"column",marginTop:1,children:[errors4.map(_temp315),warns.map(_temp414)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}$2[0]=t0,$2[1]=t1}else t0=$2[0],t1=$2[1];if(t1!==Symbol.for("react.early_return_sentinel"))return t1;return t0}function _temp414(warning,i_0){return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"└ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:"[Warning]"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",warning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),warning.suggestion&&jsxDEV(ThemedBox_default,{marginLeft:3,children:jsxDEV(ThemedText,{dimColor:!0,children:["→ ",warning.suggestion]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},`warning-${i_0}`,!0,void 0,this)}function _temp315(error41,i3){return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"└ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"[Error]"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",error41.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),error41.suggestion&&jsxDEV(ThemedBox_default,{marginLeft:3,children:jsxDEV(ThemedText,{dimColor:!0,children:["→ ",error41.suggestion]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},`error-${i3}`,!0,void 0,this)}function _temp225(w_0){return w_0.severity==="warning"}function _temp67(w){return w.severity==="error"}var import_react_compiler_runtime144;var init_KeybindingWarnings=__esm(()=>{init_ink2();init_loadUserBindings();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime144=__toESM(require_dist4(),1)});function McpConfigErrorSection(t0){let $2=import_react_compiler_runtime145.c(26),{scope,parsingErrors,warnings}=t0,hasErrors=parsingErrors.length>0,hasWarnings=warnings.length>0;if(!hasErrors&&!hasWarnings)return null;let t1;if($2[0]!==hasErrors||$2[1]!==hasWarnings)t1=(hasErrors||hasWarnings)&&jsxDEV(ThemedText,{color:hasErrors?"error":"warning",children:["[",hasErrors?"Failed to parse":"Contains warnings","]"," "]},void 0,!0,void 0,this),$2[0]=hasErrors,$2[1]=hasWarnings,$2[2]=t1;else t1=$2[2];let t2;if($2[3]!==scope)t2=getScopeLabel(scope),$2[3]=scope,$2[4]=t2;else t2=$2[4];let t3;if($2[5]!==t2)t3=jsxDEV(ThemedText,{children:t2},void 0,!1,void 0,this),$2[5]=t2,$2[6]=t3;else t3=$2[6];let t4;if($2[7]!==t1||$2[8]!==t3)t4=jsxDEV(ThemedBox_default,{children:[t1,t3]},void 0,!0,void 0,this),$2[7]=t1,$2[8]=t3,$2[9]=t4;else t4=$2[9];let t5;if($2[10]===Symbol.for("react.memo_cache_sentinel"))t5=jsxDEV(ThemedText,{dimColor:!0,children:"Location: "},void 0,!1,void 0,this),$2[10]=t5;else t5=$2[10];let t6;if($2[11]!==scope)t6=describeMcpConfigFilePath(scope),$2[11]=scope,$2[12]=t6;else t6=$2[12];let t7;if($2[13]!==t6)t7=jsxDEV(ThemedBox_default,{children:[t5,jsxDEV(ThemedText,{dimColor:!0,children:t6},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[13]=t6,$2[14]=t7;else t7=$2[14];let t8;if($2[15]!==parsingErrors)t8=parsingErrors.map(_temp68),$2[15]=parsingErrors,$2[16]=t8;else t8=$2[16];let t9;if($2[17]!==warnings)t9=warnings.map(_temp226),$2[17]=warnings,$2[18]=t9;else t9=$2[18];let t10;if($2[19]!==t8||$2[20]!==t9)t10=jsxDEV(ThemedBox_default,{marginLeft:1,flexDirection:"column",children:[t8,t9]},void 0,!0,void 0,this),$2[19]=t8,$2[20]=t9,$2[21]=t10;else t10=$2[21];let t11;if($2[22]!==t10||$2[23]!==t4||$2[24]!==t7)t11=jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[t4,t7,t10]},void 0,!0,void 0,this),$2[22]=t10,$2[23]=t4,$2[24]=t7,$2[25]=t11;else t11=$2[25];return t11}function _temp226(warning,i_0){let serverName_0=warning.mcpErrorMetadata?.serverName;return jsxDEV(ThemedBox_default,{children:jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"└ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:"[Warning]"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",serverName_0&&`[${serverName_0}] `,warning.path&&warning.path!==""?`${warning.path}: `:"",warning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},`warning-${i_0}`,!1,void 0,this)}function _temp68(error41,i3){let serverName=error41.mcpErrorMetadata?.serverName;return jsxDEV(ThemedBox_default,{children:jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"└ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"[Error]"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:[" ",serverName&&`[${serverName}] `,error41.path&&error41.path!==""?`${error41.path}: `:"",error41.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},`error-${i3}`,!1,void 0,this)}function McpParsingWarnings(){let $2=import_react_compiler_runtime145.c(6),t0;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t0={scope:"user",config:getMcpConfigsByScope("user")},$2[0]=t0;else t0=$2[0];let t1;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t1={scope:"project",config:getMcpConfigsByScope("project")},$2[1]=t1;else t1=$2[1];let t2;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t2={scope:"local",config:getMcpConfigsByScope("local")},$2[2]=t2;else t2=$2[2];let t3;if($2[3]===Symbol.for("react.memo_cache_sentinel"))t3=[t0,t1,t2,{scope:"enterprise",config:getMcpConfigsByScope("enterprise")}],$2[3]=t3;else t3=$2[3];let scopes=t3,hasParsingErrors=scopes.some(_temp316),hasWarnings=scopes.some(_temp415);if(!hasParsingErrors&&!hasWarnings)return null;let t4;if($2[4]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{bold:!0,children:"MCP Config Diagnostics"},void 0,!1,void 0,this),$2[4]=t4;else t4=$2[4];let t5;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t5=jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,marginBottom:1,children:[t4,jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["For help configuring MCP servers, see:"," ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/mcp",children:"https://code.claude.com/docs/en/mcp"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),scopes.map(_temp512)]},void 0,!0,void 0,this),$2[5]=t5;else t5=$2[5];return t5}function _temp512(t0){let{scope,config:config_1}=t0;return jsxDEV(McpConfigErrorSection,{scope,parsingErrors:filterErrors(config_1.errors,"fatal"),warnings:filterErrors(config_1.errors,"warning")},scope,!1,void 0,this)}function _temp415(t0){let{config:config_0}=t0;return filterErrors(config_0.errors,"warning").length>0}function _temp316(t0){let{config:config4}=t0;return filterErrors(config4.errors,"fatal").length>0}function filterErrors(errors4,severity){return errors4.filter((e)=>e.mcpErrorMetadata?.severity===severity)}var import_react_compiler_runtime145;var init_McpParsingWarnings=__esm(()=>{init_config2();init_utils4();init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime145=__toESM(require_dist4(),1)});function PressEnterToContinue(){let $2=import_react_compiler_runtime146.c(1),t0;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t0=jsxDEV(ThemedText,{color:"permission",children:["Press ",jsxDEV(ThemedText,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," to continue…"]},void 0,!0,void 0,this),$2[0]=t0;else t0=$2[0];return t0}var import_react_compiler_runtime146;var init_PressEnterToContinue=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime146=__toESM(require_dist4(),1)});function SandboxDoctorSection(){let $2=import_react_compiler_runtime147.c(2);if(!SandboxManager3.isSupportedPlatform())return null;if(!SandboxManager3.isSandboxEnabledInSettings())return null;let t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel")){t1=Symbol.for("react.early_return_sentinel");bb0:{let depCheck=SandboxManager3.checkDependencies(),hasErrors=depCheck.errors.length>0,hasWarnings=depCheck.warnings.length>0;if(!hasErrors&&!hasWarnings){t1=null;break bb0}t0=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Sandbox"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:["└ Status: ",jsxDEV(ThemedText,{color:hasErrors?"error":"warning",children:hasErrors?"Missing dependencies":"Available (with warnings)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),depCheck.errors.map(_temp69),depCheck.warnings.map(_temp227),hasErrors&&jsxDEV(ThemedText,{dimColor:!0,children:"└ Run /sandbox for install instructions"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}$2[0]=t0,$2[1]=t1}else t0=$2[0],t1=$2[1];if(t1!==Symbol.for("react.early_return_sentinel"))return t1;return t0}function _temp227(w,i_0){return jsxDEV(ThemedText,{color:"warning",children:["└ ",w]},i_0,!0,void 0,this)}function _temp69(e,i3){return jsxDEV(ThemedText,{color:"error",children:["└ ",e]},i3,!0,void 0,this)}var import_react_compiler_runtime147;var init_SandboxDoctorSection=__esm(()=>{init_ink2();init_sandbox_adapter();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime147=__toESM(require_dist4(),1)});function setWith(object4,path22,value,customizer){return customizer=typeof customizer=="function"?customizer:void 0,object4==null?object4:_baseSet_default(object4,path22,value,customizer)}var setWith_default;var init_setWith=__esm(()=>{init__baseSet();setWith_default=setWith});function treeify(obj,options2={}){let{showValues=!0,hideFunctions=!1,themeName="dark",treeCharColors={}}=options2,lines=[],visited=new WeakSet;function colorize2(text3,colorKey){if(!colorKey)return text3;return color(colorKey,themeName)(text3)}function growBranch(node,prefix,_isLast,depth=0){if(typeof node==="string"){lines.push(prefix+colorize2(node,treeCharColors.value));return}if(typeof node!=="object"||node===null){if(showValues){let valueStr=String(node);lines.push(prefix+colorize2(valueStr,treeCharColors.value))}return}if(visited.has(node)){lines.push(prefix+colorize2("[Circular]",treeCharColors.value));return}visited.add(node);let keys3=Object.keys(node).filter((key)=>{let value=node[key];if(hideFunctions&&typeof value==="function")return!1;return!0});keys3.forEach((key,index)=>{let value=node[key],isLastKey=index===keys3.length-1,nodePrefix=depth===0&&index===0?"":prefix,treeChar=isLastKey?DEFAULT_TREE_CHARS.lastBranch:DEFAULT_TREE_CHARS.branch,coloredTreeChar=colorize2(treeChar,treeCharColors.treeChar),coloredKey=key.trim()===""?"":colorize2(key,treeCharColors.key),line=nodePrefix+coloredTreeChar+(coloredKey?" "+coloredKey:""),shouldAddColon=key.trim()!=="";if(value&&typeof value==="object"&&visited.has(value)){let coloredValue=colorize2("[Circular]",treeCharColors.value);lines.push(line+(shouldAddColon?": ":line?" ":"")+coloredValue)}else if(value&&typeof value==="object"&&!Array.isArray(value)){lines.push(line);let continuationChar=isLastKey?DEFAULT_TREE_CHARS.empty:DEFAULT_TREE_CHARS.line,coloredContinuation=colorize2(continuationChar,treeCharColors.treeChar),nextPrefix=nodePrefix+coloredContinuation+" ";growBranch(value,nextPrefix,isLastKey,depth+1)}else if(Array.isArray(value))lines.push(line+(shouldAddColon?": ":line?" ":"")+"[Array("+value.length+")]");else if(showValues){let valueStr=typeof value==="function"?"[Function]":String(value),coloredValue=colorize2(valueStr,treeCharColors.value);line+=(shouldAddColon?": ":line?" ":"")+coloredValue,lines.push(line)}else lines.push(line)})}let keys2=Object.keys(obj);if(keys2.length===0)return colorize2("(empty)",treeCharColors.value);if(keys2.length===1&&keys2[0]!==void 0&&keys2[0].trim()===""&&typeof obj[keys2[0]]==="string"){let firstKey=keys2[0],coloredTreeChar=colorize2(DEFAULT_TREE_CHARS.lastBranch,treeCharColors.treeChar),coloredValue=colorize2(obj[firstKey],treeCharColors.value);return coloredTreeChar+" "+coloredValue}return growBranch(obj,"",!0),lines.join(`
|
|
5185
5185
|
`)}var DEFAULT_TREE_CHARS;var init_treeify=__esm(()=>{init_figures();init_color();DEFAULT_TREE_CHARS={branch:figures_default.lineUpDownRight,lastBranch:figures_default.lineUpRight,line:figures_default.lineVertical,empty:" "}});function buildNestedTree(errors4){let tree={};return errors4.forEach((error41)=>{if(!error41.path){tree[""]=error41.message;return}let pathParts=error41.path.split("."),modifiedPath=error41.path;if(error41.invalidValue!==null&&error41.invalidValue!==void 0&&pathParts.length>0){let newPathParts=[];for(let i3=0;i3<pathParts.length;i3++){let part=pathParts[i3];if(!part)continue;let numericPart=parseInt(part,10);if(!isNaN(numericPart)&&i3===pathParts.length-1){let displayValue;if(typeof error41.invalidValue==="string")displayValue=`"${error41.invalidValue}"`;else if(error41.invalidValue===null)displayValue="null";else if(error41.invalidValue===void 0)displayValue="undefined";else displayValue=String(error41.invalidValue);newPathParts.push(displayValue)}else newPathParts.push(part)}modifiedPath=newPathParts.join(".")}setWith_default(tree,modifiedPath,error41.message,Object)}),tree}function ValidationErrorsList(t0){let $2=import_react_compiler_runtime148.c(9),{errors:errors4}=t0,[themeName]=useTheme();if(errors4.length===0)return null;let T0,t1,t2;if($2[0]!==errors4||$2[1]!==themeName){let errorsByFile=errors4.reduce(_temp70,{}),sortedFiles=Object.keys(errorsByFile).sort();T0=ThemedBox_default,t1="column",t2=sortedFiles.map((file_0)=>{let fileErrors=errorsByFile[file_0]||[];fileErrors.sort(_temp228);let errorTree=buildNestedTree(fileErrors),suggestionPairs=new Map;fileErrors.forEach((error_0)=>{if(error_0.suggestion||error_0.docLink){let key=`${error_0.suggestion||""}|${error_0.docLink||""}`;if(!suggestionPairs.has(key))suggestionPairs.set(key,{suggestion:error_0.suggestion,docLink:error_0.docLink})}});let treeOutput=treeify(errorTree,{showValues:!0,themeName,treeCharColors:{treeChar:"inactive",key:"text",value:"inactive"}});return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{children:file_0},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:1,children:jsxDEV(ThemedText,{dimColor:!0,children:treeOutput},void 0,!1,void 0,this)},void 0,!1,void 0,this),suggestionPairs.size>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:Array.from(suggestionPairs.values()).map(_temp317)},void 0,!1,void 0,this)]},file_0,!0,void 0,this)}),$2[0]=errors4,$2[1]=themeName,$2[2]=T0,$2[3]=t1,$2[4]=t2}else T0=$2[2],t1=$2[3],t2=$2[4];let t3;if($2[5]!==T0||$2[6]!==t1||$2[7]!==t2)t3=jsxDEV(T0,{flexDirection:t1,children:t2},void 0,!1,void 0,this),$2[5]=T0,$2[6]=t1,$2[7]=t2,$2[8]=t3;else t3=$2[8];return t3}function _temp317(pair,index){return jsxDEV(ThemedBox_default,{flexDirection:"column",marginBottom:1,children:[pair.suggestion&&jsxDEV(ThemedText,{dimColor:!0,wrap:"wrap",children:pair.suggestion},void 0,!1,void 0,this),pair.docLink&&jsxDEV(ThemedText,{dimColor:!0,wrap:"wrap",children:["Learn more: ",pair.docLink]},void 0,!0,void 0,this)]},`suggestion-pair-${index}`,!0,void 0,this)}function _temp228(a2,b){if(!a2.path&&b.path)return-1;if(a2.path&&!b.path)return 1;return(a2.path||"").localeCompare(b.path||"")}function _temp70(acc,error41){let file2=error41.file||"(file not specified)";if(!acc[file2])acc[file2]=[];return acc[file2].push(error41),acc}var import_react_compiler_runtime148;var init_ValidationErrorsList=__esm(()=>{init_setWith();init_ink2();init_treeify();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime148=__toESM(require_dist4(),1)});function useSettingsErrors(){let $2=import_react_compiler_runtime149.c(6),{addNotification,removeNotification}=useNotifications(),[errors_0,setErrors]=import_react116.useState(_temp71),t0;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t0=()=>{let{errors:errors_1}=getSettingsWithAllErrors();setErrors(errors_1)},$2[0]=t0;else t0=$2[0];useSettingsChange(t0);let t1,t2;if($2[1]!==addNotification||$2[2]!==errors_0||$2[3]!==removeNotification)t1=()=>{if(getIsRemoteMode())return;if(errors_0.length>0){let message=`Found ${errors_0.length} settings ${errors_0.length===1?"issue":"issues"} · /doctor for details`;addNotification({key:SETTINGS_ERRORS_NOTIFICATION_KEY,text:message,color:"warning",priority:"high",timeoutMs:60000})}else removeNotification(SETTINGS_ERRORS_NOTIFICATION_KEY)},t2=[errors_0,addNotification,removeNotification],$2[1]=addNotification,$2[2]=errors_0,$2[3]=removeNotification,$2[4]=t1,$2[5]=t2;else t1=$2[4],t2=$2[5];return import_react116.useEffect(t1,t2),errors_0}function _temp71(){let{errors:errors4}=getSettingsWithAllErrors();return errors4}var import_react_compiler_runtime149,import_react116,SETTINGS_ERRORS_NOTIFICATION_KEY="settings-errors";var init_useSettingsErrors=__esm(()=>{init_notifications();init_state();init_allErrors();init_useSettingsChange();import_react_compiler_runtime149=__toESM(require_dist4(),1),import_react116=__toESM(require_react_production(),1)});function isSharedSettingSource(source){return source==="projectSettings"||source==="policySettings"||source==="command"}function formatSource(source){return permissionRuleSourceDisplayString(source)}function generateFixSuggestion(shadowType,shadowingRule,shadowedRule){let shadowingSource=formatSource(shadowingRule.source),shadowedSource=formatSource(shadowedRule.source),toolName=shadowingRule.ruleValue.toolName;if(shadowType==="deny")return`Remove the "${toolName}" deny rule from ${shadowingSource}, or remove the specific allow rule from ${shadowedSource}`;return`Remove the "${toolName}" ask rule from ${shadowingSource}, or remove the specific allow rule from ${shadowedSource}`}function isAllowRuleShadowedByAskRule(allowRule,askRules,options2){let{toolName,ruleContent}=allowRule.ruleValue;if(ruleContent===void 0)return{shadowed:!1};let shadowingAskRule=askRules.find((askRule)=>askRule.ruleValue.toolName===toolName&&askRule.ruleValue.ruleContent===void 0);if(!shadowingAskRule)return{shadowed:!1};if(toolName===BASH_TOOL_NAME&&options2.sandboxAutoAllowEnabled){if(!isSharedSettingSource(shadowingAskRule.source))return{shadowed:!1}}return{shadowed:!0,shadowedBy:shadowingAskRule,shadowType:"ask"}}function isAllowRuleShadowedByDenyRule(allowRule,denyRules){let{toolName,ruleContent}=allowRule.ruleValue;if(ruleContent===void 0)return{shadowed:!1};let shadowingDenyRule=denyRules.find((denyRule)=>denyRule.ruleValue.toolName===toolName&&denyRule.ruleValue.ruleContent===void 0);if(!shadowingDenyRule)return{shadowed:!1};return{shadowed:!0,shadowedBy:shadowingDenyRule,shadowType:"deny"}}function detectUnreachableRules(context2,options2){let unreachable=[],allowRules=getAllowRules(context2),askRules=getAskRules(context2),denyRules=getDenyRules(context2);for(let allowRule of allowRules){let denyResult=isAllowRuleShadowedByDenyRule(allowRule,denyRules);if(denyResult.shadowed){let shadowSource=formatSource(denyResult.shadowedBy.source);unreachable.push({rule:allowRule,reason:`Blocked by "${denyResult.shadowedBy.ruleValue.toolName}" deny rule (from ${shadowSource})`,shadowedBy:denyResult.shadowedBy,shadowType:"deny",fix:generateFixSuggestion("deny",denyResult.shadowedBy,allowRule)});continue}let askResult=isAllowRuleShadowedByAskRule(allowRule,askRules,options2);if(askResult.shadowed){let shadowSource=formatSource(askResult.shadowedBy.source);unreachable.push({rule:allowRule,reason:`Shadowed by "${askResult.shadowedBy.ruleValue.toolName}" ask rule (from ${shadowSource})`,shadowedBy:askResult.shadowedBy,shadowType:"ask",fix:generateFixSuggestion("ask",askResult.shadowedBy,allowRule)})}}return unreachable}var init_shadowedRuleDetection=__esm(()=>{init_permissions4()});function getAgentDescriptionsTotalTokens(agentDefinitions){if(!agentDefinitions)return 0;return agentDefinitions.activeAgents.filter((a2)=>a2.source!=="built-in").reduce((total,agent)=>{let description=`${agent.agentType}: ${agent.whenToUse}`;return total+roughTokenCountEstimation(description)},0)}var AGENT_DESCRIPTIONS_THRESHOLD=15000;var init_statusNoticeHelpers=__esm(()=>{init_tokenEstimation()});async function safeWarning(run){try{return await run()}catch{return null}}async function checkClaudeMdFiles(memoryFiles){let largeFiles=getLargeMemoryFiles(memoryFiles??await getMemoryFiles());if(largeFiles.length===0)return null;let details=largeFiles.sort((a2,b)=>b.content.length-a2.content.length).map((file2)=>`${file2.path}: ${file2.content.length.toLocaleString()} chars`);return{type:"claudemd_files",severity:"warning",message:largeFiles.length===1?`Large CLAUDE.md file detected (${largeFiles[0].content.length.toLocaleString()} chars > ${MAX_MEMORY_CHARACTER_COUNT.toLocaleString()})`:`${largeFiles.length} large CLAUDE.md files detected (each > ${MAX_MEMORY_CHARACTER_COUNT.toLocaleString()} chars)`,details,currentValue:largeFiles.length,threshold:MAX_MEMORY_CHARACTER_COUNT}}async function checkAgentDescriptions(agentInfo){if(!agentInfo)return null;let totalTokens=getAgentDescriptionsTotalTokens(agentInfo);if(totalTokens<=AGENT_DESCRIPTIONS_THRESHOLD)return null;let agentTokens=agentInfo.activeAgents.filter((a2)=>a2.source!=="built-in").map((agent)=>{let description=`${agent.agentType}: ${agent.whenToUse}`;return{name:agent.agentType,tokens:roughTokenCountEstimation(description)}}).sort((a2,b)=>b.tokens-a2.tokens),details=agentTokens.slice(0,5).map((agent)=>`${agent.name}: ~${agent.tokens.toLocaleString()} tokens`);if(agentTokens.length>5)details.push(`(${agentTokens.length-5} more custom agents)`);return{type:"agent_descriptions",severity:"warning",message:`Large agent descriptions (~${totalTokens.toLocaleString()} tokens > ${AGENT_DESCRIPTIONS_THRESHOLD.toLocaleString()})`,details,currentValue:totalTokens,threshold:AGENT_DESCRIPTIONS_THRESHOLD}}async function estimateMcpToolTokens(tools,getToolPermissionContext,agentInfo){let mcpTools=tools.filter((tool)=>tool.isMcp),estimates=await Promise.all(mcpTools.map(async(tool)=>{let description="";try{description=await tool.prompt({getToolPermissionContext,tools,agents:agentInfo?.activeAgents??[]})}catch{description=""}let definitionForEstimate;try{definitionForEstimate=JSON.stringify({name:tool.name,description,input_schema:tool.inputJSONSchema??{}})}catch{definitionForEstimate=JSON.stringify({name:tool.name,description,input_schema:{}})}return{name:tool.name,serverName:tool.mcpInfo?.serverName??tool.name.split("__")[1],tokens:roughTokenCountEstimation(definitionForEstimate),isLoaded:!0}})),model=getMainLoopModel(),{isToolSearchEnabled:isToolSearchEnabled2}=await Promise.resolve().then(() => (init_toolSearch(),exports_toolSearch)),{isDeferredTool:isDeferredTool2}=await Promise.resolve().then(() => (init_prompt7(),exports_prompt2)),isDeferred=!1;try{isDeferred=await isToolSearchEnabled2(model,tools,getToolPermissionContext,agentInfo?.activeAgents??[],"analyzeMcp")}catch{isDeferred=!1}let mcpToolDetails=estimates.map((detail,index)=>({...detail,isLoaded:!isDeferred||!isDeferredTool2(mcpTools[index])}));return{mcpToolTokens:mcpToolDetails.filter((detail)=>detail.isLoaded).reduce((total,detail)=>total+detail.tokens,0),mcpToolDetails}}function buildMcpToolsWarning(mcpToolTokens,mcpToolDetails,estimated){if(mcpToolTokens<=MCP_TOOLS_THRESHOLD)return null;let toolsByServer=new Map;for(let tool of mcpToolDetails){if(tool.isLoaded===!1)continue;let serverName=tool.serverName??tool.name.split("__")[1]??"unknown",current=toolsByServer.get(serverName)||{count:0,tokens:0};toolsByServer.set(serverName,{count:current.count+1,tokens:current.tokens+tool.tokens})}let sortedServers=Array.from(toolsByServer.entries()).sort((a2,b)=>b[1].tokens-a2[1].tokens),details=sortedServers.slice(0,5).map(([name,info])=>`${name}: ${info.count} tools (~${info.tokens.toLocaleString()} tokens)`);if(sortedServers.length>5)details.push(`(${sortedServers.length-5} more servers)`);return{type:"mcp_tools",severity:"warning",message:`Large MCP tools context (~${mcpToolTokens.toLocaleString()} tokens${estimated?" estimated":""} > ${MCP_TOOLS_THRESHOLD.toLocaleString()})`,details,currentValue:mcpToolTokens,threshold:MCP_TOOLS_THRESHOLD}}async function checkMcpTools(tools,getToolPermissionContext,agentInfo,tokenStrategy="api"){if(tools.filter((tool)=>tool.isMcp).length===0)return null;if(tokenStrategy==="estimate"){let{mcpToolTokens,mcpToolDetails}=await estimateMcpToolTokens(tools,getToolPermissionContext,agentInfo);return buildMcpToolsWarning(mcpToolTokens,mcpToolDetails,!0)}try{let model=getMainLoopModel(),{mcpToolTokens,mcpToolDetails}=await countMcpToolTokens(tools,getToolPermissionContext,agentInfo,model);return buildMcpToolsWarning(mcpToolTokens,mcpToolDetails,!1)}catch(_error){let{mcpToolTokens,mcpToolDetails}=await estimateMcpToolTokens(tools,getToolPermissionContext,agentInfo);return buildMcpToolsWarning(mcpToolTokens,mcpToolDetails,!0)}}async function checkUnreachableRules(getToolPermissionContext){let context2=await getToolPermissionContext(),sandboxAutoAllowEnabled=SandboxManager3.isSandboxingEnabled()&&SandboxManager3.isAutoAllowBashIfSandboxedEnabled(),unreachable=detectUnreachableRules(context2,{sandboxAutoAllowEnabled});if(unreachable.length===0)return null;let details=unreachable.flatMap((r)=>[`${permissionRuleValueToString(r.rule.ruleValue)}: ${r.reason}`,` Fix: ${r.fix}`]);return{type:"unreachable_rules",severity:"warning",message:`${unreachable.length} ${plural(unreachable.length,"unreachable permission rule")} detected`,details,currentValue:unreachable.length,threshold:0}}async function checkContextWarnings(tools,agentInfo,getToolPermissionContext,options2={}){let includeUnreachableRules=options2.includeUnreachableRules??!0,[claudeMdWarning,agentWarning,mcpWarning,unreachableRulesWarning]=await Promise.all([safeWarning(()=>checkClaudeMdFiles(options2.memoryFiles)),safeWarning(()=>checkAgentDescriptions(agentInfo)),safeWarning(()=>checkMcpTools(tools,getToolPermissionContext,agentInfo,options2.mcpTokenStrategy)),includeUnreachableRules?safeWarning(()=>checkUnreachableRules(getToolPermissionContext)):Promise.resolve(null)]);return{claudeMdWarning,agentWarning,mcpWarning,unreachableRulesWarning}}var MCP_TOOLS_THRESHOLD=25000;var init_doctorContextWarnings=__esm(()=>{init_tokenEstimation();init_analyzeContext();init_claudemd();init_model();init_permissionRuleParser();init_shadowedRuleDetection();init_sandbox_adapter();init_statusNoticeHelpers()});function parseContextTokenValue(value){let normalized=value?.trim().replace(/,/g,"");if(!normalized)return null;let match=normalized.match(/^(\d+(?:\.\d+)?)([kKmM]?)$/);if(!match)return null;let amount=Number(match[1]);if(!Number.isFinite(amount)||amount<=0)return null;let suffix=match[2].toLowerCase();if(suffix==="m")return Math.round(amount*1e6);if(suffix==="k")return Math.round(amount*1024);return Math.round(amount)}function normalizeOllamaModelName(modelName){return modelName?.trim().toLowerCase().split("?")[0]||null}function parseOllamaPsContextWarning(output,activeModelName){let normalizedActiveModel=normalizeOllamaModelName(activeModelName),lines=output.split(/\r?\n/).map((line)=>line.trim()).filter(Boolean);if(lines.length<2)return null;let contextColumnStart=lines[0].toLowerCase().indexOf("context");if(contextColumnStart===-1)return null;for(let line of lines.slice(1)){let modelName=line.split(/\s+/)[0]??"loaded model";if(normalizedActiveModel&&normalizeOllamaModelName(modelName)!==normalizedActiveModel)continue;let contextValue=line.slice(contextColumnStart).trim().split(/\s+/)[0],contextTokens=parseContextTokenValue(contextValue);if(contextTokens!==null&&contextTokens<MIN_RECOMMENDED_OLLAMA_CONTEXT_TOKENS)return{modelName,contextValue,contextTokens}}return null}async function checkOllamaPsContextWarning(activeModelName){let result=await execFileNoThrow("ollama",["ps"],{timeout:1000,preserveOutputOnError:!0,useCwd:!1});if(result.code!==0||!result.stdout.trim())return null;return parseOllamaPsContextWarning(result.stdout,activeModelName)}var MIN_RECOMMENDED_OLLAMA_CONTEXT_TOKENS=32768;var init_ollamaContext=__esm(()=>{init_execFileNoThrow()});function summarizeContextWarning(warning){switch(warning.type){case"mcp_tools":return{id:warning.type,message:warning.message,details:warning.details,summary:`MCP tools: ~${formatTokens(warning.currentValue)} tokens`};case"agent_descriptions":return{id:warning.type,message:warning.message,details:warning.details,summary:`Agent descriptions: ~${formatTokens(warning.currentValue)} tokens`};case"claudemd_files":return{id:warning.type,message:warning.message,details:warning.details,summary:`CLAUDE.md: ${warning.currentValue} large ${plural(warning.currentValue,"file")}`};case"unreachable_rules":return null}}function summarizeOllamaContextWarning(warning){return{id:"ollama_context_length",message:"Ollama context length is too small",details:[`${warning.modelName}: active CONTEXT is ${warning.contextValue}`,"Claudio requests 32768 tokens for Ollama chats. If `ollama ps` keeps showing a smaller CONTEXT after a new request, restart Ollama and verify with `ollama ps`."],summary:`Ollama CONTEXT: ${warning.contextValue} (Claudio requests 32K)`}}function isLoopbackOllamaEndpoint(baseUrl){return isDirectLocalOllamaEndpoint(baseUrl)}async function checkOllamaContextLength(baseUrl,activeModelName){if(!isLoopbackOllamaEndpoint(baseUrl))return null;let warning=await checkOllamaPsContextWarning(activeModelName);if(!warning)return null;return summarizeOllamaContextWarning(warning)}function buildLocalModelContextLoad(warnings,extraContributors=[]){let contributors=[warnings?.mcpWarning,warnings?.agentWarning,warnings?.claudeMdWarning].filter((warning)=>warning!=null).map(summarizeContextWarning).filter((contributor)=>contributor!==null).concat(extraContributors);if(contributors.length===0)return null;return{contributors,lines:contributors.map((contributor)=>contributor.summary)}}function readConfiguredBaseUrl(value){let trimmed=value?.trim();if(!trimmed||trimmed==="undefined"||trimmed==="null")return;return trimmed}function resolveActiveProviderBaseUrl(processEnv=process.env){if(isEnvTruthy(processEnv.CLAUDE_CODE_USE_FOUNDRY)||isEnvTruthy(processEnv.CLAUDE_CODE_USE_BEDROCK)||isEnvTruthy(processEnv.CLAUDE_CODE_USE_VERTEX))return;switch(resolveActiveRouteIdFromEnv(processEnv)){case"anthropic":return readConfiguredBaseUrl(processEnv.ANTHROPIC_BASE_URL);case"gemini":return readConfiguredBaseUrl(processEnv.GEMINI_BASE_URL)??readConfiguredBaseUrl(processEnv.OPENAI_API_BASE);case"mistral":return readConfiguredBaseUrl(processEnv.MISTRAL_BASE_URL)??readConfiguredBaseUrl(processEnv.OPENAI_API_BASE);case"bedrock":case"vertex":return;default:return readConfiguredBaseUrl(processEnv.OPENAI_BASE_URL)??readConfiguredBaseUrl(processEnv.OPENAI_API_BASE)}}function isActiveProviderLocalModel(processEnv=process.env){return isLocalProviderUrl(resolveActiveProviderBaseUrl(processEnv))}async function checkLocalModelContextLoad(tools,agentDefinitions,memoryFiles,getToolPermissionContext,baseUrl,activeModelName){let resolvedBaseUrl=baseUrl??resolveActiveProviderBaseUrl();if(!isLocalProviderUrl(resolvedBaseUrl))return null;let[warnings,ollamaContextContributor]=await Promise.all([checkContextWarnings(tools,agentDefinitions??null,getToolPermissionContext,{memoryFiles,mcpTokenStrategy:"estimate",includeUnreachableRules:!1}),checkOllamaContextLength(resolvedBaseUrl,activeModelName)]);return buildLocalModelContextLoad(warnings,ollamaContextContributor?[ollamaContextContributor]:[])}var init_statusNoticeLocalModel=__esm(()=>{init_routeMetadata();init_providerConfig();init_doctorContextWarnings();init_format();init_envUtils();init_ollamaContext()});async function loadDoctorDiagnostic(deps,handlers){try{let diagnostic=await deps.getDoctorDiagnostic();handlers.setDiagnostic(diagnostic),handlers.setDiagnosticLoadFailed(!1)}catch{handlers.setDiagnosticLoadFailed(!0)}}async function resolveDoctorDistTags(deps){try{return await((await deps.getDoctorDiagnostic()).installationType==="native"?deps.getGcsDistTags:deps.getNpmDistTags)()}catch{return FAILED_DIST_TAGS}}var FAILED_DIST_TAGS;var init_doctorDistTags=__esm(()=>{FAILED_DIST_TAGS={latest:null,stable:null}});var exports_Doctor={};__export(exports_Doctor,{Doctor:()=>Doctor});import{join as join119}from"path";function DistTagsDisplay(t0){let $2=import_react_compiler_runtime150.c(8),{promise:promise3}=t0,distTags=import_react117.use(promise3);if(!distTags.latest){let t12;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t12=jsxDEV(ThemedText,{dimColor:!0,children:"└ Failed to fetch versions"},void 0,!1,void 0,this),$2[0]=t12;else t12=$2[0];return t12}let t1;if($2[1]!==distTags.stable)t1=distTags.stable&&jsxDEV(ThemedText,{children:["└ Stable version: ",distTags.stable]},void 0,!0,void 0,this),$2[1]=distTags.stable,$2[2]=t1;else t1=$2[2];let t2;if($2[3]!==distTags.latest)t2=jsxDEV(ThemedText,{children:["└ Latest version: ",distTags.latest]},void 0,!0,void 0,this),$2[3]=distTags.latest,$2[4]=t2;else t2=$2[4];let t3;if($2[5]!==t1||$2[6]!==t2)t3=jsxDEV($Fragment,{children:[t1,t2]},void 0,!0,void 0,this),$2[5]=t1,$2[6]=t2,$2[7]=t3;else t3=$2[7];return t3}function Doctor(t0){let $2=import_react_compiler_runtime150.c(88),{onDone}=t0,agentDefinitions=useAppState(_temp76),mcpTools=useAppState(_temp229),toolPermissionContext=useAppState(_temp318),pluginsErrors=useAppState(_temp416);useExitOnCtrlCDWithKeybindings();let tools=import_react117.useMemo(()=>assembleToolPool(toolPermissionContext,mcpTools||[]),[toolPermissionContext,mcpTools]),[diagnostic,setDiagnostic]=import_react117.useState(null),[diagnosticLoadFailed,setDiagnosticLoadFailed]=import_react117.useState(!1),[agentInfo,setAgentInfo]=import_react117.useState(null),[contextWarnings,setContextWarnings]=import_react117.useState(null),[versionLockInfo,setVersionLockInfo]=import_react117.useState(null),validationErrors=useSettingsErrors(),distTagsPromise=import_react117.useMemo(()=>resolveDoctorDistTags({getDoctorDiagnostic,getNpmDistTags,getGcsDistTags}),[]),autoUpdatesChannel=getInitialSettings()?.autoUpdatesChannel??"latest",t3;if($2[3]!==validationErrors)t3=validationErrors.filter(_temp75),$2[3]=validationErrors,$2[4]=t3;else t3=$2[4];let errorsExcludingMcp=t3,t4;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t4=[{name:"BASH_MAX_OUTPUT_LENGTH",default:BASH_MAX_OUTPUT_DEFAULT,upperLimit:BASH_MAX_OUTPUT_UPPER_LIMIT},{name:"TASK_MAX_OUTPUT_LENGTH",default:TASK_MAX_OUTPUT_DEFAULT,upperLimit:TASK_MAX_OUTPUT_UPPER_LIMIT},{name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",...getModelMaxOutputTokens("claude-opus-4-6")}].map(_temp85).filter(_temp94),$2[5]=t4;else t4=$2[5];let envValidationErrors=t4;import_react117.useEffect(()=>{loadDoctorDiagnostic({getDoctorDiagnostic},{setDiagnostic,setDiagnosticLoadFailed}),(async()=>{let userAgentsDir=join119(getClaudeConfigHomeDir(),"agents"),projectAgentsDir=join119(getOriginalCwd(),".openclaude","agents"),{activeAgents,allAgents,failedFiles}=agentDefinitions,[userDirExists,projectDirExists]=await Promise.all([pathExists(userAgentsDir),pathExists(projectAgentsDir)]),agentInfoData={activeAgents:activeAgents.map(_temp02),userAgentsDir,projectAgentsDir,userDirExists,projectDirExists,failedFiles};setAgentInfo(agentInfoData);let warnings=await checkContextWarnings(tools,{activeAgents,allAgents,failedFiles},async()=>toolPermissionContext);if(setContextWarnings(warnings),isPidBasedLockingEnabled()){let locksDir=join119(getXDGStateHome(),"claude","locks"),staleLocksCleaned=cleanupStaleLocks(locksDir),locks=getAllLockInfo(locksDir);setVersionLockInfo({enabled:!0,locks,locksDir,staleLocksCleaned})}else setVersionLockInfo({enabled:!1,locks:[],locksDir:"",staleLocksCleaned:0})})()},[toolPermissionContext,tools,agentDefinitions]);let t7;if($2[11]!==onDone)t7=()=>{onDone("Claudio diagnostics dismissed",{display:"system"})},$2[11]=onDone,$2[12]=t7;else t7=$2[12];let handleDismiss=t7,t8;if($2[13]!==handleDismiss)t8={"confirm:yes":handleDismiss,"confirm:no":handleDismiss},$2[13]=handleDismiss,$2[14]=t8;else t8=$2[14];let t9;if($2[15]===Symbol.for("react.memo_cache_sentinel"))t9={context:"Confirmation"},$2[15]=t9;else t9=$2[15];if(useKeybindings(t8,t9),diagnosticLoadFailed&&!diagnostic)return jsxDEV(Pane,{children:jsxDEV(ThemedText,{color:"error",children:"Failed to load installation status."},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(!diagnostic){let t102;if($2[16]===Symbol.for("react.memo_cache_sentinel"))t102=jsxDEV(Pane,{children:jsxDEV(ThemedText,{dimColor:!0,children:"Checking installation status…"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[16]=t102;else t102=$2[16];return t102}let t10;if($2[17]===Symbol.for("react.memo_cache_sentinel"))t10=jsxDEV(ThemedText,{bold:!0,children:"Diagnostics"},void 0,!1,void 0,this),$2[17]=t10;else t10=$2[17];let t11;if($2[18]!==diagnostic.installationType||$2[19]!==diagnostic.version)t11=jsxDEV(ThemedText,{children:["└ Currently running: ",diagnostic.installationType," (",diagnostic.version,")"]},void 0,!0,void 0,this),$2[18]=diagnostic.installationType,$2[19]=diagnostic.version,$2[20]=t11;else t11=$2[20];let t12;if($2[21]!==diagnostic.packageManager)t12=diagnostic.packageManager&&jsxDEV(ThemedText,{children:["└ Package manager: ",diagnostic.packageManager]},void 0,!0,void 0,this),$2[21]=diagnostic.packageManager,$2[22]=t12;else t12=$2[22];let t13;if($2[23]!==diagnostic.installationPath)t13=jsxDEV(ThemedText,{children:["└ Path: ",diagnostic.installationPath]},void 0,!0,void 0,this),$2[23]=diagnostic.installationPath,$2[24]=t13;else t13=$2[24];let t14;if($2[25]!==diagnostic.invokedBinary)t14=jsxDEV(ThemedText,{children:["└ Invoked: ",diagnostic.invokedBinary]},void 0,!0,void 0,this),$2[25]=diagnostic.invokedBinary,$2[26]=t14;else t14=$2[26];let t15;if($2[27]!==diagnostic.configInstallMethod)t15=jsxDEV(ThemedText,{children:["└ Config install method: ",diagnostic.configInstallMethod]},void 0,!0,void 0,this),$2[27]=diagnostic.configInstallMethod,$2[28]=t15;else t15=$2[28];let t16=diagnostic.ripgrepStatus.working?"OK":"Not working",t17=diagnostic.ripgrepStatus.mode==="embedded"?"bundled":diagnostic.ripgrepStatus.mode==="builtin"?"vendor":diagnostic.ripgrepStatus.systemPath||"system",t18;if($2[29]!==t16||$2[30]!==t17)t18=jsxDEV(ThemedText,{children:["└ Search: ",t16," (",t17,")"]},void 0,!0,void 0,this),$2[29]=t16,$2[30]=t17,$2[31]=t18;else t18=$2[31];let t19;if($2[32]!==diagnostic.recommendation)t19=diagnostic.recommendation&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:["Recommendation: ",diagnostic.recommendation.split(`
|
|
5186
5186
|
`)[0]]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:diagnostic.recommendation.split(`
|
|
5187
|
-
`)[1]},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[32]=diagnostic.recommendation,$2[33]=t19;else t19=$2[33];let t20;if($2[34]!==diagnostic.multipleInstallations)t20=diagnostic.multipleInstallations.length>1&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:"Warning: Multiple installations found"},void 0,!1,void 0,this),diagnostic.multipleInstallations.map(_temp110)]},void 0,!0,void 0,this),$2[34]=diagnostic.multipleInstallations,$2[35]=t20;else t20=$2[35];let t21;if($2[36]!==diagnostic.warnings)t21=diagnostic.warnings.length>0&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{},void 0,!1,void 0,this),diagnostic.warnings.map(_temp103)]},void 0,!0,void 0,this),$2[36]=diagnostic.warnings,$2[37]=t21;else t21=$2[37];let t22;if($2[38]!==errorsExcludingMcp)t22=errorsExcludingMcp.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,marginBottom:1,children:[jsxDEV(ThemedText,{bold:!0,children:"Invalid Settings"},void 0,!1,void 0,this),jsxDEV(ValidationErrorsList,{errors:errorsExcludingMcp},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[38]=errorsExcludingMcp,$2[39]=t22;else t22=$2[39];let t23;if($2[40]!==t11||$2[41]!==t12||$2[42]!==t13||$2[43]!==t14||$2[44]!==t15||$2[45]!==t18||$2[46]!==t19||$2[47]!==t20||$2[48]!==t21||$2[49]!==t22)t23=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t10,t11,t12,t13,t14,t15,t18,t19,t20,t21,t22]},void 0,!0,void 0,this),$2[40]=t11,$2[41]=t12,$2[42]=t13,$2[43]=t14,$2[44]=t15,$2[45]=t18,$2[46]=t19,$2[47]=t20,$2[48]=t21,$2[49]=t22,$2[50]=t23;else t23=$2[50];let t24;if($2[51]===Symbol.for("react.memo_cache_sentinel"))t24=jsxDEV(ThemedText,{bold:!0,children:"Updates"},void 0,!1,void 0,this),$2[51]=t24;else t24=$2[51];let t25=diagnostic.packageManager?"Managed by package manager":diagnostic.autoUpdates,t26;if($2[52]!==t25)t26=jsxDEV(ThemedText,{children:["└ Auto-updates:"," ",t25]},void 0,!0,void 0,this),$2[52]=t25,$2[53]=t26;else t26=$2[53];let t27;if($2[54]!==diagnostic.hasUpdatePermissions)t27=diagnostic.hasUpdatePermissions!==null&&jsxDEV(ThemedText,{children:["└ Update permissions:"," ",diagnostic.hasUpdatePermissions?"Yes":"No (requires sudo)"]},void 0,!0,void 0,this),$2[54]=diagnostic.hasUpdatePermissions,$2[55]=t27;else t27=$2[55];let t28;if($2[56]!==autoUpdatesChannel)t28=jsxDEV(ThemedText,{children:["└ Auto-update channel: ",autoUpdatesChannel]},void 0,!0,void 0,this),$2[56]=autoUpdatesChannel,$2[57]=t28;else t28=$2[57];let t30=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t24,t26,t27,t28,jsxDEV(import_react117.Suspense,{fallback:null,children:jsxDEV(DistTagsDisplay,{promise:distTagsPromise},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t31,t32,t33,t34;if($2[61]===Symbol.for("react.memo_cache_sentinel"))t31=jsxDEV(SandboxDoctorSection,{},void 0,!1,void 0,this),t32=jsxDEV(McpParsingWarnings,{},void 0,!1,void 0,this),t33=jsxDEV(KeybindingWarnings,{},void 0,!1,void 0,this),t34=envValidationErrors.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Environment Variables"},void 0,!1,void 0,this),envValidationErrors.map(_temp113)]},void 0,!0,void 0,this),$2[61]=t31,$2[62]=t32,$2[63]=t33,$2[64]=t34;else t31=$2[61],t32=$2[62],t33=$2[63],t34=$2[64];let t35;if($2[65]!==versionLockInfo)t35=versionLockInfo?.enabled&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Version Locks"},void 0,!1,void 0,this),versionLockInfo.staleLocksCleaned>0&&jsxDEV(ThemedText,{dimColor:!0,children:["└ Cleaned ",versionLockInfo.staleLocksCleaned," stale lock(s)"]},void 0,!0,void 0,this),versionLockInfo.locks.length===0?jsxDEV(ThemedText,{dimColor:!0,children:"└ No active version locks"},void 0,!1,void 0,this):versionLockInfo.locks.map(_temp123)]},void 0,!0,void 0,this),$2[65]=versionLockInfo,$2[66]=t35;else t35=$2[66];let t36;if($2[67]!==agentInfo)t36=agentInfo?.failedFiles&&agentInfo.failedFiles.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,color:"error",children:"Agent Parse Errors"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:["└ Failed to parse ",agentInfo.failedFiles.length," agent file(s):"]},void 0,!0,void 0,this),agentInfo.failedFiles.map(_temp133)]},void 0,!0,void 0,this),$2[67]=agentInfo,$2[68]=t36;else t36=$2[68];let t37;if($2[69]!==pluginsErrors)t37=pluginsErrors.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,color:"error",children:"Plugin Errors"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:["└ ",pluginsErrors.length," plugin error(s) detected:"]},void 0,!0,void 0,this),pluginsErrors.map(_temp142)]},void 0,!0,void 0,this),$2[69]=pluginsErrors,$2[70]=t37;else t37=$2[70];let t38;if($2[71]!==contextWarnings)t38=contextWarnings?.unreachableRulesWarning&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,color:"warning",children:"Unreachable Permission Rules"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.unreachableRulesWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),contextWarnings.unreachableRulesWarning.details.map(_temp152)]},void 0,!0,void 0,this),$2[71]=contextWarnings,$2[72]=t38;else t38=$2[72];let localModelContextLoad=isActiveProviderLocalModel()?buildLocalModelContextLoad(contextWarnings):null,t39;if($2[73]!==contextWarnings||$2[74]!==localModelContextLoad)t39=!localModelContextLoad&&contextWarnings&&(contextWarnings.claudeMdWarning||contextWarnings.agentWarning||contextWarnings.mcpWarning)&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Context Usage Warnings"},void 0,!1,void 0,this),contextWarnings.claudeMdWarning&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.claudeMdWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:[" ","└ Files:"]},void 0,!0,void 0,this),contextWarnings.claudeMdWarning.details.map(_temp162)]},void 0,!0,void 0,this),contextWarnings.agentWarning&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.agentWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:[" ","└ Top contributors:"]},void 0,!0,void 0,this),contextWarnings.agentWarning.details.map(_temp172)]},void 0,!0,void 0,this),contextWarnings.mcpWarning&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.mcpWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:[" ","└ MCP servers:"]},void 0,!0,void 0,this),contextWarnings.mcpWarning.details.map(_temp182)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[73]=contextWarnings,$2[74]=localModelContextLoad,$2[75]=t39;else t39=$2[75];let t39b;if($2[76]!==localModelContextLoad)t39b=localModelContextLoad&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Local Model Context Load"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:"└ Large context loaded before turn one for this local provider:"},void 0,!1,void 0,this),localModelContextLoad.contributors.map(_temp192),jsxDEV(ThemedText,{dimColor:!0,children:"└ Disable unused MCP servers, agents, or oversized memory files to free context."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[76]=localModelContextLoad,$2[77]=t39b;else t39b=$2[77];let t40;if($2[78]===Symbol.for("react.memo_cache_sentinel"))t40=jsxDEV(ThemedBox_default,{children:jsxDEV(PressEnterToContinue,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[78]=t40;else t40=$2[78];let t41;if($2[79]!==t23||$2[80]!==t30||$2[81]!==t35||$2[82]!==t36||$2[83]!==t37||$2[84]!==t38||$2[85]!==t39||$2[86]!==t39b)t41=jsxDEV(Pane,{children:[t23,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t39b,t40]},void 0,!0,void 0,this),$2[79]=t23,$2[80]=t30,$2[81]=t35,$2[82]=t36,$2[83]=t37,$2[84]=t38,$2[85]=t39,$2[86]=t39b,$2[87]=t41;else t41=$2[87];return t41}function _temp192(contributor){return jsxDEV(import_react117.default.Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contributor.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),contributor.details.map(_temp202)]},contributor.id,!0,void 0,this)}function _temp202(detail,i3){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail]},i3,!0,void 0,this)}function _temp182(detail_2,i_8){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail_2]},i_8,!0,void 0,this)}function _temp172(detail_1,i_7){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail_1]},i_7,!0,void 0,this)}function _temp162(detail_0,i_6){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail_0]},i_6,!0,void 0,this)}function _temp152(detail,i_5){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail]},i_5,!0,void 0,this)}function _temp142(error_0,i_4){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",error_0.source||"unknown","plugin"in error_0&&error_0.plugin?` [${error_0.plugin}]`:"",":"," ",getPluginErrorMessage(error_0)]},i_4,!0,void 0,this)}function _temp133(file2,i_3){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",file2.path,": ",file2.error]},i_3,!0,void 0,this)}function _temp123(lock2,i_2){return jsxDEV(ThemedText,{children:["└ ",lock2.version,": PID ",lock2.pid," ",lock2.isProcessRunning?jsxDEV(ThemedText,{children:"(running)"},void 0,!1,void 0,this):jsxDEV(ThemedText,{color:"warning",children:"(stale)"},void 0,!1,void 0,this)]},i_2,!0,void 0,this)}function _temp113(validation,i_1){return jsxDEV(ThemedText,{children:["└ ",validation.name,":"," ",jsxDEV(ThemedText,{color:validation.status==="capped"?"warning":"error",children:validation.message},void 0,!1,void 0,this)]},i_1,!0,void 0,this)}function _temp103(warning,i_0){return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{color:"warning",children:["Warning: ",warning.issue]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:["Fix: ",warning.fix]},void 0,!0,void 0,this)]},i_0,!0,void 0,this)}function _temp110(install,i3){return jsxDEV(ThemedText,{children:["└ ",install.type," at ",install.path]},i3,!0,void 0,this)}function _temp02(a2){return{agentType:a2.agentType,source:a2.source}}function _temp94(v_0){return v_0.status!=="valid"}function _temp85(v){let value=process.env[v.name],result=validateBoundedIntEnvVar(v.name,value,v.default,v.upperLimit);return{name:v.name,...result}}function _temp75(error41){return error41.mcpErrorMetadata===void 0}function _temp416(s_2){return s_2.plugins.errors}function _temp318(s_1){return s_1.toolPermissionContext}function _temp229(s_0){return s_0.mcp.tools}function _temp76(s){return s.agentDefinitions}var import_react_compiler_runtime150,import_react117;var init_Doctor=__esm(()=>{init_figures();init_KeybindingWarnings();init_McpParsingWarnings();init_context();init_envUtils();init_state();init_Pane();init_PressEnterToContinue();init_SandboxDoctorSection();init_ValidationErrorsList();init_useSettingsErrors();init_useExitOnCtrlCDWithKeybindings();init_ink2();init_useKeybinding();init_AppState();init_tools2();init_doctorContextWarnings();init_statusNoticeLocalModel();init_doctorDiagnostic();init_envValidation();init_file();init_pidLock();init_settings3();init_outputLimits();init_outputFormatting();init_xdg();init_doctorDistTags();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime150=__toESM(require_dist4(),1),import_react117=__toESM(require_react_production(),1)});import{existsSync as existsSync12,mkdirSync as mkdirSync7,writeFileSync as writeFileSync7}from"node:fs";import{dirname as dirname51,resolve as resolve41,basename as basename36}from"node:path";import{arch,platform as platform5}from"node:os";function isTruthy(value){if(!value)return!1;let normalized=value.trim().toLowerCase();return normalized!==""&&normalized!=="0"&&normalized!=="false"&&normalized!=="no"}function readPackageManager(env5){let userAgent=env5.npm_config_user_agent?.trim();if(userAgent)return userAgent.split(" ")[0]??userAgent;let execPath2=env5.npm_execpath?.trim();if(!execPath2)return null;if(execPath2.includes("bun"))return"bun";if(execPath2.includes("pnpm"))return"pnpm";if(execPath2.includes("yarn"))return"yarn";if(execPath2.includes("npm"))return"npm";return basename36(execPath2)}function readMacroVersion(){try{return"99.0.0"}catch{return}}function readMacroDisplayVersion(){try{return"0.25.0"}catch{return}}function readMacroBuildTime(){try{return"2026-07-19T21:08:35.606Z"}catch{return}}function readPackageInfo(options2){let version2=options2?.version??readMacroVersion()??"unknown",displayVersion=options2?.displayVersion??readMacroDisplayVersion(),buildTime=options2?.buildTime??readMacroBuildTime();return{version:version2,displayVersion,buildTime}}function detectSource(cwd2){if(existsSync12(resolve41(cwd2,"src"))&&existsSync12(resolve41(cwd2,"package.json")))return"source";if(existsSync12(resolve41(cwd2,"dist","cli.mjs")))return"dist";return"unknown"}function resolveProviderModel(routeId,env5){if(routeId==="gemini")return env5.GEMINI_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown";if(routeId==="mistral")return env5.MISTRAL_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown";if(routeId==="anthropic")return env5.ANTHROPIC_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown";return env5.OPENAI_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown"}function resolveProviderBaseUrl(routeId,env5){if(routeId==="gemini")return env5.GEMINI_BASE_URL?.trim()||getRouteDefaultBaseUrl(routeId);if(routeId==="mistral")return env5.MISTRAL_BASE_URL?.trim()||getRouteDefaultBaseUrl(routeId);if(routeId==="anthropic")return env5.ANTHROPIC_BASE_URL?.trim()||getRouteDefaultBaseUrl(routeId);return env5.OPENAI_BASE_URL?.trim()||env5.OPENAI_API_BASE?.trim()||getRouteDefaultBaseUrl(routeId)}function resolveRouteId(env5){let activeRoute=resolveActiveRouteIdFromEnv(env5),baseUrl=env5.OPENAI_BASE_URL??env5.OPENAI_API_BASE,normalizedBaseUrlRoute=resolveRouteIdFromBaseUrl(normalizeRouteMatchBaseUrl(baseUrl));if(activeRoute&&activeRoute!=="custom")return activeRoute;return normalizedBaseUrlRoute??activeRoute??"custom"}function normalizeRouteMatchBaseUrl(baseUrl){if(!baseUrl?.trim())return baseUrl;try{let parsed=new URL(baseUrl);return parsed.username="",parsed.password="",parsed.search="",parsed.hash="",parsed.toString().replace(/\/+$/,"")}catch{return baseUrl}}function hasDiagnosticCredentialValue(name,value){if(name==="OPENAI_API_KEYS"||name==="OPENAI_API_KEY")return parseCredentialList(value).length>0;return Boolean(value?.trim())}function getCredentialSummary(routeId,env5){let descriptor=getRouteDescriptor(routeId),sources=getRouteCredentialEnvVars(routeId).filter((name)=>hasDiagnosticCredentialValue(name,env5[name]));return{required:descriptor?.setup.requiresAuth??routeId!=="custom",present:sources.length>0,sources}}function getCodexCredentialSummary(env5){let credentials=resolveRuntimeCodexCredentials({env:env5}),sources=[];if(env5.CODEX_API_KEY?.trim())sources.push("CODEX_API_KEY");if(env5.CODEX_ACCOUNT_ID?.trim())sources.push("CODEX_ACCOUNT_ID");else if(env5.CHATGPT_ACCOUNT_ID?.trim())sources.push("CHATGPT_ACCOUNT_ID");if(credentials.source==="auth.json")if(env5.CODEX_AUTH_JSON_PATH?.trim())sources.push("CODEX_AUTH_JSON_PATH");else if(env5.CODEX_HOME?.trim())sources.push("CODEX_HOME");else sources.push("auth.json");else if(credentials.source==="secure-storage")sources.push("secure-storage");return{required:!0,present:Boolean(credentials.apiKey&&credentials.accountId),sources:[...new Set(sources)]}}function getKnownCredentialSourceNames(routeId){return new Set([...collectProviderSecretEnvVars(),...getRouteCredentialEnvVars(routeId),...routeId==="codex"?["CODEX_API_KEY","CODEX_ACCOUNT_ID","CHATGPT_ACCOUNT_ID","CODEX_AUTH_JSON_PATH","CODEX_HOME","auth.json","secure-storage"]:[]])}function resolveDiagnosticProviderContext(env5){if(isTruthy(env5.CLAUDE_CODE_USE_OPENAI)){let request=resolveProviderRequest({processEnv:env5});if(request.transport==="codex_responses")return{routeId:"codex",label:"Codex",providerType:"Codex Responses API",model:request.requestedModel,limitsModel:request.resolvedModel,catalogRouteId:"openai",baseUrl:request.baseUrl,credential:getCodexCredentialSummary(env5)}}let routeId=resolveRouteId(env5),descriptor=getRouteDescriptor(routeId),model=resolveProviderModel(routeId,env5);return{routeId,label:descriptor?.label??routeId,providerType:getRouteProviderTypeLabel(routeId),model,limitsModel:model,catalogRouteId:routeId,baseUrl:resolveProviderBaseUrl(routeId,env5),...isTruthy(env5.CLAUDE_CODE_USE_OPENAI)&&env5.OPENAI_API_FORMAT?{apiFormat:env5.OPENAI_API_FORMAT}:{},credential:getCredentialSummary(routeId,env5)}}function findCatalogEntry(routeId,model){let normalizedModel=model.trim().toLowerCase();if(!normalizedModel)return;return getCatalogEntriesForRoute(routeId).find((entry)=>{return entry.apiName.trim().toLowerCase()===normalizedModel||entry.id.trim().toLowerCase()===normalizedModel})}function buildModelSummary(catalogRouteId,model,limitsModel,env5,baseUrl){let descriptor=getRouteDescriptor(catalogRouteId),catalogEntry3=findCatalogEntry(catalogRouteId,limitsModel)??findCatalogEntry(catalogRouteId,model),limits=resolveModelRuntimeLimits({model:limitsModel,processEnv:env5,baseUrl}),fallbackCapabilities=catalogEntry3?.capabilities??descriptor?.catalog?.models?.find((entry)=>entry.default)?.capabilities??{};return{contextWindow:limits.contextWindow,maxOutputTokens:limits.maxOutputTokens,catalogSource:resolveCatalogSource(catalogRouteId,descriptor,catalogEntry3),capabilities:fallbackCapabilities}}function resolveCatalogSource(routeId,descriptor,catalogEntry3){if(catalogEntry3)return descriptor?.catalog?.source??"unknown";if(descriptor?.catalog?.discovery)return"dynamic";if(routeId==="custom")return"custom";return"unknown"}function summarizeSettings(options2){if(options2)return{sourcesPresent:options2.sourcesPresent,validationErrors:options2.validationErrors.map((error41)=>({file:basename36(redactHomePath(error41.file??"unknown")),path:error41.path,message:redactLikelySecrets(redactHomePath(error41.message))}))};let withSources=getSettingsWithSources(),withErrors=getSettingsWithErrors();return{sourcesPresent:withSources.sources.map((source)=>source.source),validationErrors:withErrors.errors.map((error41)=>({file:basename36(redactHomePath(error41.file??"unknown")),path:error41.path,message:redactLikelySecrets(redactHomePath(error41.message))}))}}function getMcpTransport(config4){return config4.type??"stdio"}function summarizeMcpServers(servers){let transports={};for(let config4 of Object.values(servers)){let transport=getMcpTransport(config4);transports[transport]=(transports[transport]??0)+1}return{serverCount:Object.keys(servers).length,transports}}async function getMcpSummary(servers){if(servers)return summarizeMcpServers(servers);try{let result=await getClaudeCodeMcpConfigs();return summarizeMcpServers(result.servers)}catch{return{serverCount:0,transports:{}}}}function summarizeErrors(errors4,includeDebug){let counts=new Map,debug=[];for(let entry of errors4.slice(-20)){let firstLine=entry.error.split(/\r?\n/,1)[0]??entry.error,category=firstLine.match(/^([A-Za-z][A-Za-z0-9_ .-]{0,60})(?::|$)/)?.[1]?.trim()||"Error";if(counts.set(category,(counts.get(category)??0)+1),includeDebug)debug.push(redactLikelySecrets(redactHomePath(firstLine)).slice(0,500))}let recent=[...counts.entries()].sort((left,right)=>right[1]-left[1]||left[0].localeCompare(right[0])).map(([category,count3])=>({category,count:count3}));return includeDebug?{recent,debug}:{recent}}async function buildChecks(cwd2,options2){let buildArtifactsPresent=options2?.buildArtifactsPresent??existsSync12(resolve41(cwd2,"dist","cli.mjs"));if(!options2?.ripgrep)await testRipgrepOnFirstUse();let ripgrep=options2?.ripgrep??(()=>{let status=getRipgrepStatus();return{available:status.working??!1,detail:status.working===null?`${status.mode} ripgrep (not tested)`:status.mode==="system"&&status.path?"system rg":`${status.mode} ripgrep`}})();return[{label:"Build artifacts",ok:buildArtifactsPresent,detail:buildArtifactsPresent?"dist/cli.mjs present":"dist/cli.mjs missing"},{label:"ripgrep",ok:ripgrep.available,detail:ripgrep.detail}]}async function buildIssueReport(options2={}){let env5=options2.env??process.env,cwd2=options2.cwd??process.cwd(),now2=options2.now??new Date,packageInfo=readPackageInfo(options2.packageInfo),providerContext=resolveDiagnosticProviderContext(env5),mcp=await getMcpSummary(options2.mcpServers),settings=summarizeSettings(options2.settings),knownCredentialSourceNames=getKnownCredentialSourceNames(providerContext.routeId),activeCredentialSources=providerContext.credential.sources.filter((source)=>knownCredentialSourceNames.has(source)),report={schemaVersion:1,generatedAt:now2.toISOString(),openclaude:{version:packageInfo.version,...packageInfo.displayVersion?{displayVersion:packageInfo.displayVersion}:{},...packageInfo.buildTime?{buildTime:packageInfo.buildTime}:{},source:detectSource(cwd2)},workspace:{cwd:basename36(cwd2)||"(unknown)"},runtime:{platform:platform5(),arch:arch(),node:process.versions.node,bun:globalThis.Bun?.version??null,packageManager:readPackageManager(env5),tty:{stdin:Boolean(process.stdin.isTTY),stdout:Boolean(process.stdout.isTTY),stderr:Boolean(process.stderr.isTTY)}},provider:{routeId:providerContext.routeId,label:providerContext.label,providerType:providerContext.providerType,model:providerContext.model,...providerContext.apiFormat?{apiFormat:providerContext.apiFormat}:{},...providerContext.baseUrl?{baseUrl:redactDiagnosticUrl(providerContext.baseUrl)}:{},credential:{...providerContext.credential,sources:activeCredentialSources}},model:buildModelSummary(providerContext.catalogRouteId,providerContext.model,providerContext.limitsModel,env5,providerContext.baseUrl),settings,checks:await buildChecks(cwd2,options2.checks),mcp,errors:summarizeErrors(options2.errors??getInMemoryErrors(),options2.includeDebug??!1),warnings:[],redaction:{homeRedacted:!0,cwdRedacted:!0,secretsIncluded:!1}};return redactDiagnosticObject(report)}function formatStatus3(ok){return ok?"PASS":"WARN"}function tableEscape(value){return String(value??"").replace(/\|/g,"\\|").replace(/\r?\n/g," ")}function formatIssueReportAsMarkdown(report){return["# Claudio diagnostic report","","## Summary",`- Claudio: ${report.openclaude.displayVersion??report.openclaude.version}`,`- Runtime: ${report.runtime.platform} ${report.runtime.arch}, Node ${report.runtime.node}`,`- Provider: ${report.provider.label} (${report.provider.routeId})`,`- Model: ${report.provider.model}`,"","## Checks","| Check | Status | Detail |","| --- | --- | --- |",...report.checks.map((check3)=>`| ${tableEscape(check3.label)} | ${formatStatus3(check3.ok)} | ${tableEscape(check3.detail)} |`),"","## Provider",`- Route: ${report.provider.routeId}`,`- Type: ${report.provider.providerType}`,`- Base URL: ${report.provider.baseUrl??"(not set)"}`,`- Credential: ${report.provider.credential.present?"present":"missing"}${report.provider.credential.sources.length>0?` (${report.provider.credential.sources.join(", ")})`:""}`,"","## Model",`- Catalog source: ${report.model.catalogSource}`,`- Context window: ${report.model.contextWindow??"unknown"}`,`- Max output tokens: ${report.model.maxOutputTokens??"unknown"}`,`- Capabilities: ${Object.entries(report.model.capabilities).filter(([,enabled2])=>enabled2===!0).map(([name])=>name).sort().join(", ")||"unknown"}`,"","## Settings",`- Sources present: ${report.settings.sourcesPresent.join(", ")||"none"}`,`- Validation errors: ${report.settings.validationErrors.length}`,"","## MCP",`- Server count: ${report.mcp.serverCount}`,`- Transports: ${Object.entries(report.mcp.transports).map(([transport,count3])=>`${transport}: ${count3}`).join(", ")||"none"}`,"","## Recent Errors",report.errors.recent.length>0?report.errors.recent.map((error41)=>`- ${error41.category}: ${error41.count}`).join(`
|
|
5187
|
+
`)[1]},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[32]=diagnostic.recommendation,$2[33]=t19;else t19=$2[33];let t20;if($2[34]!==diagnostic.multipleInstallations)t20=diagnostic.multipleInstallations.length>1&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:"Warning: Multiple installations found"},void 0,!1,void 0,this),diagnostic.multipleInstallations.map(_temp110)]},void 0,!0,void 0,this),$2[34]=diagnostic.multipleInstallations,$2[35]=t20;else t20=$2[35];let t21;if($2[36]!==diagnostic.warnings)t21=diagnostic.warnings.length>0&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{},void 0,!1,void 0,this),diagnostic.warnings.map(_temp103)]},void 0,!0,void 0,this),$2[36]=diagnostic.warnings,$2[37]=t21;else t21=$2[37];let t22;if($2[38]!==errorsExcludingMcp)t22=errorsExcludingMcp.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,marginBottom:1,children:[jsxDEV(ThemedText,{bold:!0,children:"Invalid Settings"},void 0,!1,void 0,this),jsxDEV(ValidationErrorsList,{errors:errorsExcludingMcp},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[38]=errorsExcludingMcp,$2[39]=t22;else t22=$2[39];let t23;if($2[40]!==t11||$2[41]!==t12||$2[42]!==t13||$2[43]!==t14||$2[44]!==t15||$2[45]!==t18||$2[46]!==t19||$2[47]!==t20||$2[48]!==t21||$2[49]!==t22)t23=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t10,t11,t12,t13,t14,t15,t18,t19,t20,t21,t22]},void 0,!0,void 0,this),$2[40]=t11,$2[41]=t12,$2[42]=t13,$2[43]=t14,$2[44]=t15,$2[45]=t18,$2[46]=t19,$2[47]=t20,$2[48]=t21,$2[49]=t22,$2[50]=t23;else t23=$2[50];let t24;if($2[51]===Symbol.for("react.memo_cache_sentinel"))t24=jsxDEV(ThemedText,{bold:!0,children:"Updates"},void 0,!1,void 0,this),$2[51]=t24;else t24=$2[51];let t25=diagnostic.packageManager?"Managed by package manager":diagnostic.autoUpdates,t26;if($2[52]!==t25)t26=jsxDEV(ThemedText,{children:["└ Auto-updates:"," ",t25]},void 0,!0,void 0,this),$2[52]=t25,$2[53]=t26;else t26=$2[53];let t27;if($2[54]!==diagnostic.hasUpdatePermissions)t27=diagnostic.hasUpdatePermissions!==null&&jsxDEV(ThemedText,{children:["└ Update permissions:"," ",diagnostic.hasUpdatePermissions?"Yes":"No (requires sudo)"]},void 0,!0,void 0,this),$2[54]=diagnostic.hasUpdatePermissions,$2[55]=t27;else t27=$2[55];let t28;if($2[56]!==autoUpdatesChannel)t28=jsxDEV(ThemedText,{children:["└ Auto-update channel: ",autoUpdatesChannel]},void 0,!0,void 0,this),$2[56]=autoUpdatesChannel,$2[57]=t28;else t28=$2[57];let t30=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t24,t26,t27,t28,jsxDEV(import_react117.Suspense,{fallback:null,children:jsxDEV(DistTagsDisplay,{promise:distTagsPromise},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t31,t32,t33,t34;if($2[61]===Symbol.for("react.memo_cache_sentinel"))t31=jsxDEV(SandboxDoctorSection,{},void 0,!1,void 0,this),t32=jsxDEV(McpParsingWarnings,{},void 0,!1,void 0,this),t33=jsxDEV(KeybindingWarnings,{},void 0,!1,void 0,this),t34=envValidationErrors.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Environment Variables"},void 0,!1,void 0,this),envValidationErrors.map(_temp113)]},void 0,!0,void 0,this),$2[61]=t31,$2[62]=t32,$2[63]=t33,$2[64]=t34;else t31=$2[61],t32=$2[62],t33=$2[63],t34=$2[64];let t35;if($2[65]!==versionLockInfo)t35=versionLockInfo?.enabled&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Version Locks"},void 0,!1,void 0,this),versionLockInfo.staleLocksCleaned>0&&jsxDEV(ThemedText,{dimColor:!0,children:["└ Cleaned ",versionLockInfo.staleLocksCleaned," stale lock(s)"]},void 0,!0,void 0,this),versionLockInfo.locks.length===0?jsxDEV(ThemedText,{dimColor:!0,children:"└ No active version locks"},void 0,!1,void 0,this):versionLockInfo.locks.map(_temp123)]},void 0,!0,void 0,this),$2[65]=versionLockInfo,$2[66]=t35;else t35=$2[66];let t36;if($2[67]!==agentInfo)t36=agentInfo?.failedFiles&&agentInfo.failedFiles.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,color:"error",children:"Agent Parse Errors"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:["└ Failed to parse ",agentInfo.failedFiles.length," agent file(s):"]},void 0,!0,void 0,this),agentInfo.failedFiles.map(_temp133)]},void 0,!0,void 0,this),$2[67]=agentInfo,$2[68]=t36;else t36=$2[68];let t37;if($2[69]!==pluginsErrors)t37=pluginsErrors.length>0&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,color:"error",children:"Plugin Errors"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:["└ ",pluginsErrors.length," plugin error(s) detected:"]},void 0,!0,void 0,this),pluginsErrors.map(_temp142)]},void 0,!0,void 0,this),$2[69]=pluginsErrors,$2[70]=t37;else t37=$2[70];let t38;if($2[71]!==contextWarnings)t38=contextWarnings?.unreachableRulesWarning&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,color:"warning",children:"Unreachable Permission Rules"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.unreachableRulesWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),contextWarnings.unreachableRulesWarning.details.map(_temp152)]},void 0,!0,void 0,this),$2[71]=contextWarnings,$2[72]=t38;else t38=$2[72];let localModelContextLoad=isActiveProviderLocalModel()?buildLocalModelContextLoad(contextWarnings):null,t39;if($2[73]!==contextWarnings||$2[74]!==localModelContextLoad)t39=!localModelContextLoad&&contextWarnings&&(contextWarnings.claudeMdWarning||contextWarnings.agentWarning||contextWarnings.mcpWarning)&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Context Usage Warnings"},void 0,!1,void 0,this),contextWarnings.claudeMdWarning&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.claudeMdWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:[" ","└ Files:"]},void 0,!0,void 0,this),contextWarnings.claudeMdWarning.details.map(_temp162)]},void 0,!0,void 0,this),contextWarnings.agentWarning&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.agentWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:[" ","└ Top contributors:"]},void 0,!0,void 0,this),contextWarnings.agentWarning.details.map(_temp172)]},void 0,!0,void 0,this),contextWarnings.mcpWarning&&jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contextWarnings.mcpWarning.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:[" ","└ MCP servers:"]},void 0,!0,void 0,this),contextWarnings.mcpWarning.details.map(_temp182)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[73]=contextWarnings,$2[74]=localModelContextLoad,$2[75]=t39;else t39=$2[75];let t39b;if($2[76]!==localModelContextLoad)t39b=localModelContextLoad&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{bold:!0,children:"Local Model Context Load"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:"└ Large context loaded before turn one for this local provider:"},void 0,!1,void 0,this),localModelContextLoad.contributors.map(_temp192),jsxDEV(ThemedText,{dimColor:!0,children:"└ Disable unused MCP servers, agents, or oversized memory files to free context."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[76]=localModelContextLoad,$2[77]=t39b;else t39b=$2[77];let t40;if($2[78]===Symbol.for("react.memo_cache_sentinel"))t40=jsxDEV(ThemedBox_default,{children:jsxDEV(PressEnterToContinue,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[78]=t40;else t40=$2[78];let t41;if($2[79]!==t23||$2[80]!==t30||$2[81]!==t35||$2[82]!==t36||$2[83]!==t37||$2[84]!==t38||$2[85]!==t39||$2[86]!==t39b)t41=jsxDEV(Pane,{children:[t23,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t39b,t40]},void 0,!0,void 0,this),$2[79]=t23,$2[80]=t30,$2[81]=t35,$2[82]=t36,$2[83]=t37,$2[84]=t38,$2[85]=t39,$2[86]=t39b,$2[87]=t41;else t41=$2[87];return t41}function _temp192(contributor){return jsxDEV(import_react117.default.Fragment,{children:[jsxDEV(ThemedText,{children:["└"," ",jsxDEV(ThemedText,{color:"warning",children:[figures_default.warning," ",contributor.message]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),contributor.details.map(_temp202)]},contributor.id,!0,void 0,this)}function _temp202(detail,i3){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail]},i3,!0,void 0,this)}function _temp182(detail_2,i_8){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail_2]},i_8,!0,void 0,this)}function _temp172(detail_1,i_7){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail_1]},i_7,!0,void 0,this)}function _temp162(detail_0,i_6){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail_0]},i_6,!0,void 0,this)}function _temp152(detail,i_5){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",detail]},i_5,!0,void 0,this)}function _temp142(error_0,i_4){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",error_0.source||"unknown","plugin"in error_0&&error_0.plugin?` [${error_0.plugin}]`:"",":"," ",getPluginErrorMessage(error_0)]},i_4,!0,void 0,this)}function _temp133(file2,i_3){return jsxDEV(ThemedText,{dimColor:!0,children:[" ","└ ",file2.path,": ",file2.error]},i_3,!0,void 0,this)}function _temp123(lock2,i_2){return jsxDEV(ThemedText,{children:["└ ",lock2.version,": PID ",lock2.pid," ",lock2.isProcessRunning?jsxDEV(ThemedText,{children:"(running)"},void 0,!1,void 0,this):jsxDEV(ThemedText,{color:"warning",children:"(stale)"},void 0,!1,void 0,this)]},i_2,!0,void 0,this)}function _temp113(validation,i_1){return jsxDEV(ThemedText,{children:["└ ",validation.name,":"," ",jsxDEV(ThemedText,{color:validation.status==="capped"?"warning":"error",children:validation.message},void 0,!1,void 0,this)]},i_1,!0,void 0,this)}function _temp103(warning,i_0){return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{color:"warning",children:["Warning: ",warning.issue]},void 0,!0,void 0,this),jsxDEV(ThemedText,{children:["Fix: ",warning.fix]},void 0,!0,void 0,this)]},i_0,!0,void 0,this)}function _temp110(install,i3){return jsxDEV(ThemedText,{children:["└ ",install.type," at ",install.path]},i3,!0,void 0,this)}function _temp02(a2){return{agentType:a2.agentType,source:a2.source}}function _temp94(v_0){return v_0.status!=="valid"}function _temp85(v){let value=process.env[v.name],result=validateBoundedIntEnvVar(v.name,value,v.default,v.upperLimit);return{name:v.name,...result}}function _temp75(error41){return error41.mcpErrorMetadata===void 0}function _temp416(s_2){return s_2.plugins.errors}function _temp318(s_1){return s_1.toolPermissionContext}function _temp229(s_0){return s_0.mcp.tools}function _temp76(s){return s.agentDefinitions}var import_react_compiler_runtime150,import_react117;var init_Doctor=__esm(()=>{init_figures();init_KeybindingWarnings();init_McpParsingWarnings();init_context();init_envUtils();init_state();init_Pane();init_PressEnterToContinue();init_SandboxDoctorSection();init_ValidationErrorsList();init_useSettingsErrors();init_useExitOnCtrlCDWithKeybindings();init_ink2();init_useKeybinding();init_AppState();init_tools2();init_doctorContextWarnings();init_statusNoticeLocalModel();init_doctorDiagnostic();init_envValidation();init_file();init_pidLock();init_settings3();init_outputLimits();init_outputFormatting();init_xdg();init_doctorDistTags();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime150=__toESM(require_dist4(),1),import_react117=__toESM(require_react_production(),1)});import{existsSync as existsSync12,mkdirSync as mkdirSync7,writeFileSync as writeFileSync7}from"node:fs";import{dirname as dirname51,resolve as resolve41,basename as basename36}from"node:path";import{arch,platform as platform5}from"node:os";function isTruthy(value){if(!value)return!1;let normalized=value.trim().toLowerCase();return normalized!==""&&normalized!=="0"&&normalized!=="false"&&normalized!=="no"}function readPackageManager(env5){let userAgent=env5.npm_config_user_agent?.trim();if(userAgent)return userAgent.split(" ")[0]??userAgent;let execPath2=env5.npm_execpath?.trim();if(!execPath2)return null;if(execPath2.includes("bun"))return"bun";if(execPath2.includes("pnpm"))return"pnpm";if(execPath2.includes("yarn"))return"yarn";if(execPath2.includes("npm"))return"npm";return basename36(execPath2)}function readMacroVersion(){try{return"99.0.0"}catch{return}}function readMacroDisplayVersion(){try{return"0.25.1"}catch{return}}function readMacroBuildTime(){try{return"2026-07-19T21:19:06.848Z"}catch{return}}function readPackageInfo(options2){let version2=options2?.version??readMacroVersion()??"unknown",displayVersion=options2?.displayVersion??readMacroDisplayVersion(),buildTime=options2?.buildTime??readMacroBuildTime();return{version:version2,displayVersion,buildTime}}function detectSource(cwd2){if(existsSync12(resolve41(cwd2,"src"))&&existsSync12(resolve41(cwd2,"package.json")))return"source";if(existsSync12(resolve41(cwd2,"dist","cli.mjs")))return"dist";return"unknown"}function resolveProviderModel(routeId,env5){if(routeId==="gemini")return env5.GEMINI_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown";if(routeId==="mistral")return env5.MISTRAL_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown";if(routeId==="anthropic")return env5.ANTHROPIC_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown";return env5.OPENAI_MODEL?.trim()||getRouteDefaultModel(routeId)||"unknown"}function resolveProviderBaseUrl(routeId,env5){if(routeId==="gemini")return env5.GEMINI_BASE_URL?.trim()||getRouteDefaultBaseUrl(routeId);if(routeId==="mistral")return env5.MISTRAL_BASE_URL?.trim()||getRouteDefaultBaseUrl(routeId);if(routeId==="anthropic")return env5.ANTHROPIC_BASE_URL?.trim()||getRouteDefaultBaseUrl(routeId);return env5.OPENAI_BASE_URL?.trim()||env5.OPENAI_API_BASE?.trim()||getRouteDefaultBaseUrl(routeId)}function resolveRouteId(env5){let activeRoute=resolveActiveRouteIdFromEnv(env5),baseUrl=env5.OPENAI_BASE_URL??env5.OPENAI_API_BASE,normalizedBaseUrlRoute=resolveRouteIdFromBaseUrl(normalizeRouteMatchBaseUrl(baseUrl));if(activeRoute&&activeRoute!=="custom")return activeRoute;return normalizedBaseUrlRoute??activeRoute??"custom"}function normalizeRouteMatchBaseUrl(baseUrl){if(!baseUrl?.trim())return baseUrl;try{let parsed=new URL(baseUrl);return parsed.username="",parsed.password="",parsed.search="",parsed.hash="",parsed.toString().replace(/\/+$/,"")}catch{return baseUrl}}function hasDiagnosticCredentialValue(name,value){if(name==="OPENAI_API_KEYS"||name==="OPENAI_API_KEY")return parseCredentialList(value).length>0;return Boolean(value?.trim())}function getCredentialSummary(routeId,env5){let descriptor=getRouteDescriptor(routeId),sources=getRouteCredentialEnvVars(routeId).filter((name)=>hasDiagnosticCredentialValue(name,env5[name]));return{required:descriptor?.setup.requiresAuth??routeId!=="custom",present:sources.length>0,sources}}function getCodexCredentialSummary(env5){let credentials=resolveRuntimeCodexCredentials({env:env5}),sources=[];if(env5.CODEX_API_KEY?.trim())sources.push("CODEX_API_KEY");if(env5.CODEX_ACCOUNT_ID?.trim())sources.push("CODEX_ACCOUNT_ID");else if(env5.CHATGPT_ACCOUNT_ID?.trim())sources.push("CHATGPT_ACCOUNT_ID");if(credentials.source==="auth.json")if(env5.CODEX_AUTH_JSON_PATH?.trim())sources.push("CODEX_AUTH_JSON_PATH");else if(env5.CODEX_HOME?.trim())sources.push("CODEX_HOME");else sources.push("auth.json");else if(credentials.source==="secure-storage")sources.push("secure-storage");return{required:!0,present:Boolean(credentials.apiKey&&credentials.accountId),sources:[...new Set(sources)]}}function getKnownCredentialSourceNames(routeId){return new Set([...collectProviderSecretEnvVars(),...getRouteCredentialEnvVars(routeId),...routeId==="codex"?["CODEX_API_KEY","CODEX_ACCOUNT_ID","CHATGPT_ACCOUNT_ID","CODEX_AUTH_JSON_PATH","CODEX_HOME","auth.json","secure-storage"]:[]])}function resolveDiagnosticProviderContext(env5){if(isTruthy(env5.CLAUDE_CODE_USE_OPENAI)){let request=resolveProviderRequest({processEnv:env5});if(request.transport==="codex_responses")return{routeId:"codex",label:"Codex",providerType:"Codex Responses API",model:request.requestedModel,limitsModel:request.resolvedModel,catalogRouteId:"openai",baseUrl:request.baseUrl,credential:getCodexCredentialSummary(env5)}}let routeId=resolveRouteId(env5),descriptor=getRouteDescriptor(routeId),model=resolveProviderModel(routeId,env5);return{routeId,label:descriptor?.label??routeId,providerType:getRouteProviderTypeLabel(routeId),model,limitsModel:model,catalogRouteId:routeId,baseUrl:resolveProviderBaseUrl(routeId,env5),...isTruthy(env5.CLAUDE_CODE_USE_OPENAI)&&env5.OPENAI_API_FORMAT?{apiFormat:env5.OPENAI_API_FORMAT}:{},credential:getCredentialSummary(routeId,env5)}}function findCatalogEntry(routeId,model){let normalizedModel=model.trim().toLowerCase();if(!normalizedModel)return;return getCatalogEntriesForRoute(routeId).find((entry)=>{return entry.apiName.trim().toLowerCase()===normalizedModel||entry.id.trim().toLowerCase()===normalizedModel})}function buildModelSummary(catalogRouteId,model,limitsModel,env5,baseUrl){let descriptor=getRouteDescriptor(catalogRouteId),catalogEntry3=findCatalogEntry(catalogRouteId,limitsModel)??findCatalogEntry(catalogRouteId,model),limits=resolveModelRuntimeLimits({model:limitsModel,processEnv:env5,baseUrl}),fallbackCapabilities=catalogEntry3?.capabilities??descriptor?.catalog?.models?.find((entry)=>entry.default)?.capabilities??{};return{contextWindow:limits.contextWindow,maxOutputTokens:limits.maxOutputTokens,catalogSource:resolveCatalogSource(catalogRouteId,descriptor,catalogEntry3),capabilities:fallbackCapabilities}}function resolveCatalogSource(routeId,descriptor,catalogEntry3){if(catalogEntry3)return descriptor?.catalog?.source??"unknown";if(descriptor?.catalog?.discovery)return"dynamic";if(routeId==="custom")return"custom";return"unknown"}function summarizeSettings(options2){if(options2)return{sourcesPresent:options2.sourcesPresent,validationErrors:options2.validationErrors.map((error41)=>({file:basename36(redactHomePath(error41.file??"unknown")),path:error41.path,message:redactLikelySecrets(redactHomePath(error41.message))}))};let withSources=getSettingsWithSources(),withErrors=getSettingsWithErrors();return{sourcesPresent:withSources.sources.map((source)=>source.source),validationErrors:withErrors.errors.map((error41)=>({file:basename36(redactHomePath(error41.file??"unknown")),path:error41.path,message:redactLikelySecrets(redactHomePath(error41.message))}))}}function getMcpTransport(config4){return config4.type??"stdio"}function summarizeMcpServers(servers){let transports={};for(let config4 of Object.values(servers)){let transport=getMcpTransport(config4);transports[transport]=(transports[transport]??0)+1}return{serverCount:Object.keys(servers).length,transports}}async function getMcpSummary(servers){if(servers)return summarizeMcpServers(servers);try{let result=await getClaudeCodeMcpConfigs();return summarizeMcpServers(result.servers)}catch{return{serverCount:0,transports:{}}}}function summarizeErrors(errors4,includeDebug){let counts=new Map,debug=[];for(let entry of errors4.slice(-20)){let firstLine=entry.error.split(/\r?\n/,1)[0]??entry.error,category=firstLine.match(/^([A-Za-z][A-Za-z0-9_ .-]{0,60})(?::|$)/)?.[1]?.trim()||"Error";if(counts.set(category,(counts.get(category)??0)+1),includeDebug)debug.push(redactLikelySecrets(redactHomePath(firstLine)).slice(0,500))}let recent=[...counts.entries()].sort((left,right)=>right[1]-left[1]||left[0].localeCompare(right[0])).map(([category,count3])=>({category,count:count3}));return includeDebug?{recent,debug}:{recent}}async function buildChecks(cwd2,options2){let buildArtifactsPresent=options2?.buildArtifactsPresent??existsSync12(resolve41(cwd2,"dist","cli.mjs"));if(!options2?.ripgrep)await testRipgrepOnFirstUse();let ripgrep=options2?.ripgrep??(()=>{let status=getRipgrepStatus();return{available:status.working??!1,detail:status.working===null?`${status.mode} ripgrep (not tested)`:status.mode==="system"&&status.path?"system rg":`${status.mode} ripgrep`}})();return[{label:"Build artifacts",ok:buildArtifactsPresent,detail:buildArtifactsPresent?"dist/cli.mjs present":"dist/cli.mjs missing"},{label:"ripgrep",ok:ripgrep.available,detail:ripgrep.detail}]}async function buildIssueReport(options2={}){let env5=options2.env??process.env,cwd2=options2.cwd??process.cwd(),now2=options2.now??new Date,packageInfo=readPackageInfo(options2.packageInfo),providerContext=resolveDiagnosticProviderContext(env5),mcp=await getMcpSummary(options2.mcpServers),settings=summarizeSettings(options2.settings),knownCredentialSourceNames=getKnownCredentialSourceNames(providerContext.routeId),activeCredentialSources=providerContext.credential.sources.filter((source)=>knownCredentialSourceNames.has(source)),report={schemaVersion:1,generatedAt:now2.toISOString(),openclaude:{version:packageInfo.version,...packageInfo.displayVersion?{displayVersion:packageInfo.displayVersion}:{},...packageInfo.buildTime?{buildTime:packageInfo.buildTime}:{},source:detectSource(cwd2)},workspace:{cwd:basename36(cwd2)||"(unknown)"},runtime:{platform:platform5(),arch:arch(),node:process.versions.node,bun:globalThis.Bun?.version??null,packageManager:readPackageManager(env5),tty:{stdin:Boolean(process.stdin.isTTY),stdout:Boolean(process.stdout.isTTY),stderr:Boolean(process.stderr.isTTY)}},provider:{routeId:providerContext.routeId,label:providerContext.label,providerType:providerContext.providerType,model:providerContext.model,...providerContext.apiFormat?{apiFormat:providerContext.apiFormat}:{},...providerContext.baseUrl?{baseUrl:redactDiagnosticUrl(providerContext.baseUrl)}:{},credential:{...providerContext.credential,sources:activeCredentialSources}},model:buildModelSummary(providerContext.catalogRouteId,providerContext.model,providerContext.limitsModel,env5,providerContext.baseUrl),settings,checks:await buildChecks(cwd2,options2.checks),mcp,errors:summarizeErrors(options2.errors??getInMemoryErrors(),options2.includeDebug??!1),warnings:[],redaction:{homeRedacted:!0,cwdRedacted:!0,secretsIncluded:!1}};return redactDiagnosticObject(report)}function formatStatus3(ok){return ok?"PASS":"WARN"}function tableEscape(value){return String(value??"").replace(/\|/g,"\\|").replace(/\r?\n/g," ")}function formatIssueReportAsMarkdown(report){return["# Claudio diagnostic report","","## Summary",`- Claudio: ${report.openclaude.displayVersion??report.openclaude.version}`,`- Runtime: ${report.runtime.platform} ${report.runtime.arch}, Node ${report.runtime.node}`,`- Provider: ${report.provider.label} (${report.provider.routeId})`,`- Model: ${report.provider.model}`,"","## Checks","| Check | Status | Detail |","| --- | --- | --- |",...report.checks.map((check3)=>`| ${tableEscape(check3.label)} | ${formatStatus3(check3.ok)} | ${tableEscape(check3.detail)} |`),"","## Provider",`- Route: ${report.provider.routeId}`,`- Type: ${report.provider.providerType}`,`- Base URL: ${report.provider.baseUrl??"(not set)"}`,`- Credential: ${report.provider.credential.present?"present":"missing"}${report.provider.credential.sources.length>0?` (${report.provider.credential.sources.join(", ")})`:""}`,"","## Model",`- Catalog source: ${report.model.catalogSource}`,`- Context window: ${report.model.contextWindow??"unknown"}`,`- Max output tokens: ${report.model.maxOutputTokens??"unknown"}`,`- Capabilities: ${Object.entries(report.model.capabilities).filter(([,enabled2])=>enabled2===!0).map(([name])=>name).sort().join(", ")||"unknown"}`,"","## Settings",`- Sources present: ${report.settings.sourcesPresent.join(", ")||"none"}`,`- Validation errors: ${report.settings.validationErrors.length}`,"","## MCP",`- Server count: ${report.mcp.serverCount}`,`- Transports: ${Object.entries(report.mcp.transports).map(([transport,count3])=>`${transport}: ${count3}`).join(", ")||"none"}`,"","## Recent Errors",report.errors.recent.length>0?report.errors.recent.map((error41)=>`- ${error41.category}: ${error41.count}`).join(`
|
|
5188
5188
|
`):"- none","","## Notes","This report is redacted. It should not contain API keys, prompts, transcripts, or file contents.",""].join(`
|
|
5189
5189
|
`)}function formatIssueReportAsJson(report){return JSON.stringify(report,null,2)}function parseIssueReportArgs(args){let parsed={format:"markdown",outFile:null,includeDebug:!1,redacted:!0};for(let index=0;index<args.length;index++){let arg=args[index];if(arg==="--json"){parsed.format="json";continue}if(arg==="--markdown"){parsed.format="markdown";continue}if(arg==="--include-debug"){parsed.includeDebug=!0;continue}if(arg==="--redacted"){parsed.redacted=!0;continue}if(arg==="--out"){let outFile=args[index+1];if(outFile&&!outFile.startsWith("--"))parsed.outFile=outFile,index++;continue}if(arg.startsWith("--out="))parsed.outFile=arg.slice(6)}return parsed}function formatIssueReport(report,format5){return format5==="json"?formatIssueReportAsJson(report):formatIssueReportAsMarkdown(report)}async function renderIssueReport(options2={}){let report=await buildIssueReport({...options2,includeDebug:options2.includeDebug});return formatIssueReport(report,options2.format??"markdown")}function writeIssueReport(outFile,content){let outputPath=resolve41(process.cwd(),outFile);return mkdirSync7(dirname51(outputPath),{recursive:!0}),writeFileSync7(outputPath,content,"utf8"),outputPath}var init_issueReport=__esm(()=>{init_integrations();init_routeMetadata();init_runtimeMetadata();init_config2();init_providerConfig();init_log2();init_ripgrep2();init_settings3();init_redaction()});var exports_doctor={};__export(exports_doctor,{splitDoctorArgs:()=>splitDoctorArgs,runDoctorReportCommand:()=>runDoctorReportCommand,createDoctorCommandCall:()=>createDoctorCommandCall,call:()=>call22});function splitDoctorArgs(args){let parts=[],current="",quote2=null,escaping=!1;for(let index=0;index<args.length;index++){let char=args[index],next=args[index+1];if(escaping){current+=char,escaping=!1;continue}if(char==="\\"&&(quote2||next==="\\"||next==='"'||next==="'"||/\s/.test(next??""))){escaping=!0;continue}if(quote2){if(char===quote2)quote2=null;else current+=char;continue}if(char==='"'||char==="'"){quote2=char;continue}if(/\s/.test(char)){if(current)parts.push(current),current="";continue}current+=char}if(escaping)current+="\\";if(current)parts.push(current);return parts}async function runDoctorReportCommand(args,onDone,dependencies2=defaultDoctorReportDependencies){let options2=dependencies2.parseIssueReportArgs(args);if(!options2.redacted)throw Error("Unredacted diagnostic reports are not supported");let content=await dependencies2.renderIssueReport(options2);if(options2.outFile){let outputPath=dependencies2.writeIssueReport(options2.outFile,content);return onDone(`Diagnostic report written to ${outputPath}`,{display:"system"}),null}return onDone(content,{display:"system"}),null}function createDoctorCommandCall(dependencies2=defaultDoctorReportDependencies){return async(onDone,_context,args)=>{let parts=splitDoctorArgs(args);if(parts[0]?.toLowerCase()==="report")return runDoctorReportCommand(parts.slice(1),onDone,dependencies2);return Promise.resolve(jsxDEV(Doctor,{onDone},void 0,!1,void 0,this))}}var defaultDoctorReportDependencies,call22;var init_doctor=__esm(()=>{init_Doctor();init_issueReport();init_reactJsxDevRuntimeProductionShim();defaultDoctorReportDependencies={parseIssueReportArgs,renderIssueReport,writeIssueReport};call22=createDoctorCommandCall()});var doctor,doctor_default;var init_doctor2=__esm(()=>{init_envUtils();doctor={name:"doctor",description:"Diagnose and verify your Claudio installation and settings",argumentHint:"report [--json|--markdown] [--out file] [--include-debug]",isEnabled:()=>!isEnvTruthy(process.env.DISABLE_DOCTOR_COMMAND),type:"local-jsx",load:()=>Promise.resolve().then(() => (init_doctor(),exports_doctor))},doctor_default=doctor});var exports_onboard_github={};__export(exports_onboard_github,{shouldForceGithubRelogin:()=>shouldForceGithubRelogin,normalizeGithubEnterpriseInputUrl:()=>normalizeGithubEnterpriseInputUrl,hasExistingGithubModelsLoginToken:()=>hasExistingGithubModelsLoginToken,getExistingGithubEnterpriseUrl:()=>getExistingGithubEnterpriseUrl,call:()=>call23,buildGithubOnboardingSettingsEnv:()=>buildGithubOnboardingSettingsEnv,applyGithubOnboardingProcessEnv:()=>applyGithubOnboardingProcessEnv,activateGithubOnboardingMode:()=>activateGithubOnboardingMode});function getUserSettingsDisplayPath(){let userSettingsPath=getSettingsFilePathForSource("userSettings");return userSettingsPath?getDisplayPath(userSettingsPath):"user settings"}function shouldForceGithubRelogin(args){let normalized=(args??"").trim().toLowerCase();if(!normalized)return!1;return normalized.split(/\s+/).some((arg)=>FORCE_RELOGIN_ARGS.has(arg))}function isGithubPat(token){return GITHUB_PAT_PREFIXES2.some((prefix)=>token.startsWith(prefix))}function hasExistingGithubModelsLoginToken(env5=process.env,storedToken){let envToken=env5.GITHUB_TOKEN?.trim()||env5.GH_TOKEN?.trim();if(envToken){if(isGithubPat(envToken))return!1;return!0}let persisted=(storedToken??readGithubModelsToken())?.trim();if(persisted&&isGithubPat(persisted))return!1;return Boolean(persisted)}function buildGithubOnboardingSettingsEnv(model,gheUrl){return{CLAUDE_CODE_USE_GITHUB:"1",OPENAI_MODEL:model,GITHUB_ENTERPRISE_URL:gheUrl,OPENAI_API_KEYS:void 0,OPENAI_API_KEY:void 0,OPENAI_ORG:void 0,OPENAI_PROJECT:void 0,OPENAI_ORGANIZATION:void 0,OPENAI_BASE_URL:void 0,OPENAI_API_BASE:void 0,CLAUDE_CODE_USE_OPENAI:void 0,CLAUDE_CODE_USE_GEMINI:void 0,CLAUDE_CODE_USE_BEDROCK:void 0,CLAUDE_CODE_USE_VERTEX:void 0,CLAUDE_CODE_USE_FOUNDRY:void 0}}function applyGithubOnboardingProcessEnv(model,gheUrl,env5=process.env){if(env5.CLAUDE_CODE_USE_GITHUB="1",env5.OPENAI_MODEL=model,gheUrl)env5.GITHUB_ENTERPRISE_URL=gheUrl;else delete env5.GITHUB_ENTERPRISE_URL;delete env5.OPENAI_API_KEYS,delete env5.OPENAI_API_KEY,delete env5.OPENAI_ORG,delete env5.OPENAI_PROJECT,delete env5.OPENAI_ORGANIZATION,delete env5.OPENAI_BASE_URL,delete env5.OPENAI_API_BASE,delete env5.GITHUB_COPILOT_KEY,delete env5.CLAUDE_CODE_USE_OPENAI,delete env5.CLAUDE_CODE_USE_GEMINI,delete env5.CLAUDE_CODE_USE_BEDROCK,delete env5.CLAUDE_CODE_USE_VERTEX,delete env5.CLAUDE_CODE_USE_FOUNDRY,delete env5.CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED,delete env5.CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED_ID}function mergeUserSettingsEnv(model,gheUrl){let currentEnv=getSettingsForSource("userSettings")?.env??{},newEnv={};for(let[key,value]of Object.entries(currentEnv))if(!PROVIDER_SPECIFIC_KEYS.has(key))newEnv[key]=value;if(newEnv.CLAUDE_CODE_USE_GITHUB="1",newEnv.OPENAI_MODEL=model,gheUrl)newEnv.GITHUB_ENTERPRISE_URL=gheUrl;else delete newEnv.GITHUB_ENTERPRISE_URL;let{error:error41}=updateSettingsForSource("userSettings",{env:newEnv});if(error41)return{ok:!1,detail:error41.message};return{ok:!0}}function normalizeOptionalGithubEnterpriseUrl(value){if(typeof value!=="string")return;let trimmed=value.trim();if(!trimmed||trimmed.toLowerCase()==="undefined")return;try{return normalizeGithubEnterpriseInputUrl(trimmed)}catch{return}}function getExistingGithubEnterpriseUrl(env5=process.env,settingsEnv){return normalizeOptionalGithubEnterpriseUrl(env5.GITHUB_ENTERPRISE_URL)??normalizeOptionalGithubEnterpriseUrl(settingsEnv?.GITHUB_ENTERPRISE_URL??getSettingsForSource("userSettings")?.env?.GITHUB_ENTERPRISE_URL)}function activateGithubOnboardingMode(model=DEFAULT_MODEL2,options2){let normalizedModel=model.trim()||DEFAULT_MODEL2,mergeSettingsEnv=options2?.mergeSettingsEnv??mergeUserSettingsEnv,applyProcessEnv=options2?.applyProcessEnv??applyGithubOnboardingProcessEnv,hydrateToken=options2?.hydrateToken??hydrateGithubModelsTokenFromSecureStorage,merged=mergeSettingsEnv(normalizedModel,options2?.gheUrl);if(!merged.ok)return merged;return applyProcessEnv(normalizedModel,options2?.gheUrl),hydrateToken(),options2?.onChangeAPIKey?.(),{ok:!0}}function normalizeGithubEnterpriseInputUrl(value){let parsed=new URL(value.trim());if(!parsed.hostname)throw Error("Invalid URL: must include a hostname.");return parsed.origin}function GheUrlInput(props){let{onSubmit,onCancel}=props,[input,setInput]=import_react118.useState(""),[cursorOffset,setCursorOffset]=import_react118.useState(0),[error41,setError]=import_react118.useState(null),{columns}=useTerminalSize(),handleSubmit=import_react118.useCallback((value=input)=>{let trimmed=value.trim();if(!trimmed){setError("URL cannot be empty.");return}try{onSubmit(normalizeGithubEnterpriseInputUrl(trimmed))}catch{setError("Invalid URL format. Enter the full URL (e.g. https://github.mycompany.com)")}},[input,onSubmit]);return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{bold:!0,children:"GitHub Enterprise URL"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Enter your GitHub Enterprise Server URL (e.g. https://github.mycompany.com)"},void 0,!1,void 0,this),error41&&jsxDEV(ThemedText,{color:"red",children:error41},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:"URL: "},void 0,!1,void 0,this),jsxDEV(TextInput,{value:input,onChange:(value)=>{setInput(value),setError(null)},onSubmit:handleSubmit,onExit:onCancel,placeholder:"https://github.mycompany.com",columns:Math.max(20,columns-6),cursorOffset,onChangeCursorOffset:setCursorOffset,focus:!0,showCursor:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function CopilotKeyInput(props){let{onSubmit,onCancel}=props,[input,setInput]=import_react118.useState(""),[cursorOffset,setCursorOffset]=import_react118.useState(0),[error41,setError]=import_react118.useState(null),{columns}=useTerminalSize(),handleSubmit=import_react118.useCallback((value=input)=>{let trimmed=value.trim();if(!trimmed){setError("API key cannot be empty.");return}onSubmit(trimmed)},[input,onSubmit]);return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{bold:!0,children:"GitHub Copilot API Key"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Enter your GitHub Copilot API key for direct authentication."},void 0,!1,void 0,this),error41&&jsxDEV(ThemedText,{color:"red",children:error41},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{children:"Key: "},void 0,!1,void 0,this),jsxDEV(TextInput,{value:input,onChange:(value)=>{setInput(value),setError(null)},onSubmit:handleSubmit,onExit:onCancel,placeholder:"Copilot API key",mask:"*",columns:Math.max(20,columns-6),cursorOffset,onChangeCursorOffset:setCursorOffset,focus:!0,showCursor:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function OnboardGithub(props){let{onDone,onChangeAPIKey}=props,[step,setStep]=import_react118.useState("menu"),[errorMsg,setErrorMsg]=import_react118.useState(null),[gheUrl,setGheUrl]=import_react118.useState(null),[deviceHint,setDeviceHint]=import_react118.useState(null),finalize=import_react118.useCallback(async(token,model=DEFAULT_MODEL2,oauthToken)=>{let saved=saveGithubModelsToken(token,oauthToken);if(!saved.success){setErrorMsg(saved.warning??"Could not save token to secure storage."),setStep("error");return}let activated=activateGithubOnboardingMode(model,{gheUrl:gheUrl??void 0,onChangeAPIKey});if(!activated.ok){setErrorMsg(`Token saved, but settings were not updated: ${activated.detail??"unknown error"}. Add env CLAUDE_CODE_USE_GITHUB=1 and OPENAI_MODEL=${DEFAULT_MODEL2} to ${getUserSettingsDisplayPath()} manually.`),setStep("error");return}for(let envKey of PROVIDER_SPECIFIC_KEYS)delete process.env[envKey];if(process.env.CLAUDE_CODE_USE_GITHUB="1",process.env.OPENAI_MODEL=model.trim()||DEFAULT_MODEL2,gheUrl)process.env.GITHUB_ENTERPRISE_URL=gheUrl;hydrateGithubModelsTokenFromSecureStorage(),onChangeAPIKey();let successMsg=gheUrl?`GitHub Copilot Enterprise onboard complete for ${gheUrl}. `:"GitHub Copilot onboard complete. ";onDone(successMsg+"Copilot token and OAuth token stored in secure storage (Windows/Linux: ~/.openclaude/.credentials.json, macOS: Keychain fallback to ~/.openclaude/.credentials.json); user settings updated. Restart if the model does not switch.",{display:"user"})},[gheUrl,onChangeAPIKey,onDone]),runDeviceFlow=import_react118.useCallback(async()=>{setStep("device-busy"),setErrorMsg(null),setDeviceHint(null);try{let device=await requestDeviceCode({gheUrl:gheUrl??void 0});setDeviceHint({user_code:device.user_code,verification_uri:device.verification_uri}),await openVerificationUri(device.verification_uri);let oauthToken=await pollAccessToken(device.device_code,{initialInterval:device.interval,timeoutSeconds:device.expires_in,gheUrl:gheUrl??void 0}),copilotToken=await exchangeForCopilotToken(oauthToken,void 0,gheUrl??void 0);await finalize(copilotToken.token,DEFAULT_MODEL2,oauthToken)}catch(e){setErrorMsg(e instanceof Error?e.message:String(e)),setStep("error")}},[finalize,gheUrl]),handleCopilotKeySubmit=import_react118.useCallback(async(key)=>{let trimmed=key.trim();if(!trimmed){setErrorMsg("Copilot key cannot be empty."),setStep("error");return}let saved=saveGithubModelsToken(trimmed,void 0,{credentialType:"copilot_key"});if(!saved.success){setErrorMsg(saved.warning??"Could not save key to secure storage."),setStep("error");return}let activated=activateGithubOnboardingMode(DEFAULT_MODEL2,{gheUrl:gheUrl??void 0,onChangeAPIKey});if(!activated.ok){setErrorMsg(`Key saved, but settings were not updated: ${activated.detail??"unknown error"}. Add env CLAUDE_CODE_USE_GITHUB=1 and OPENAI_MODEL to ~/.openclaude/settings.json manually.`),setStep("error");return}for(let key2 of PROVIDER_SPECIFIC_KEYS)delete process.env[key2];if(process.env.CLAUDE_CODE_USE_GITHUB="1",process.env.OPENAI_MODEL=DEFAULT_MODEL2,process.env.GITHUB_COPILOT_KEY=trimmed,gheUrl)process.env.GITHUB_ENTERPRISE_URL=gheUrl;hydrateGithubModelsTokenFromSecureStorage(),onChangeAPIKey();let successMsg=gheUrl?`GitHub Copilot Enterprise onboard complete for ${gheUrl}. `:"GitHub Copilot onboard complete. ";onDone(successMsg+"Copilot key stored in secure storage; user settings updated.",{display:"user"})},[gheUrl,onChangeAPIKey,onDone]);if(step==="error"&&errorMsg)return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"red",children:errorMsg},void 0,!1,void 0,this),jsxDEV(Select,{options:[{label:"Back to menu",value:"back"},{label:"Exit",value:"exit"}],onChange:(v)=>{if(v==="back")setStep("menu"),setErrorMsg(null);else onDone("GitHub onboard cancelled",{display:"system"})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(step==="device-busy")return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{children:["GitHub Copilot",gheUrl?" Enterprise":""," sign-in"]},void 0,!0,void 0,this),deviceHint?jsxDEV($Fragment,{children:[jsxDEV(ThemedText,{children:["Enter code ",jsxDEV(ThemedText,{bold:!0,children:deviceHint.user_code},void 0,!1,void 0,this)," at"," ",deviceHint.verification_uri]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"A browser window may have opened. Waiting for authorization..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedText,{dimColor:!0,children:"Requesting device code from GitHub..."},void 0,!1,void 0,this),jsxDEV(Spinner,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(step==="ghe-url")return jsxDEV(GheUrlInput,{onSubmit:(url3)=>{setGheUrl(url3),setStep("menu")},onCancel:()=>setStep("menu")},void 0,!1,void 0,this);if(step==="copilot-key")return jsxDEV(CopilotKeyInput,{onSubmit:handleCopilotKeySubmit,onCancel:()=>setStep("menu")},void 0,!1,void 0,this);let menuOptions=[{label:"Sign in with browser",value:"device"},...gheUrl?[{label:"Use Copilot API key instead",value:"copilot-key"}]:[],{label:gheUrl?"Change Enterprise URL":"Use GitHub Enterprise",value:"ghe-url"},{label:"Cancel",value:"cancel"}];return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{bold:!0,children:["GitHub Copilot",gheUrl?" Enterprise":""," setup"]},void 0,!0,void 0,this),gheUrl&&jsxDEV(ThemedText,{dimColor:!0,children:["Enterprise URL: ",gheUrl]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Stores your token in the OS credential store (macOS Keychain when available) and enables CLAUDE_CODE_USE_GITHUB in your user settings - no export GITHUB_TOKEN needed for future runs."},void 0,!1,void 0,this),jsxDEV(Select,{options:menuOptions,onChange:(v)=>{if(v==="cancel"){onDone("GitHub onboard cancelled",{display:"system"});return}if(v==="ghe-url"){setStep("ghe-url");return}if(v==="copilot-key"){setStep("copilot-key");return}runDeviceFlow()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var import_react118,DEFAULT_MODEL2="github:copilot",FORCE_RELOGIN_ARGS,PROVIDER_SPECIFIC_KEYS,GITHUB_PAT_PREFIXES2,call23=async(onDone,context2,args)=>{let forceRelogin=shouldForceGithubRelogin(args);if(hasExistingGithubModelsLoginToken()&&!forceRelogin){let existingGheUrl=getExistingGithubEnterpriseUrl(),activated=activateGithubOnboardingMode(DEFAULT_MODEL2,{gheUrl:existingGheUrl,onChangeAPIKey:context2.onChangeAPIKey});if(!activated.ok)return onDone(`GitHub token detected, but settings activation failed: ${activated.detail??"unknown error"}. Set CLAUDE_CODE_USE_GITHUB=1 and OPENAI_MODEL=github:copilot in ${getUserSettingsDisplayPath()} manually.`,{display:"system"}),null;return onDone(existingGheUrl?`GitHub Copilot Enterprise already authorized for ${existingGheUrl}. Activated GitHub mode using your existing token. Use /onboard-github --force to re-authenticate.`:"GitHub Models already authorized. Activated GitHub Models mode using your existing token. Use /onboard-github --force to re-authenticate.",{display:"user"}),null}return jsxDEV(OnboardGithub,{onDone,onChangeAPIKey:context2.onChangeAPIKey},void 0,!1,void 0,this)};var init_onboard_github=__esm(()=>{init_select();init_Spinner2();init_TextInput();init_useTerminalSize();init_ink2();init_deviceFlow();init_githubModelsCredentials();init_file();init_settings3();init_reactJsxDevRuntimeProductionShim();import_react118=__toESM(require_react_production(),1),FORCE_RELOGIN_ARGS=new Set(["force","--force","relogin","--relogin","reauth","--reauth"]),PROVIDER_SPECIFIC_KEYS=new Set(["CLAUDE_CODE_USE_OPENAI","CLAUDE_CODE_USE_GEMINI","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX","CLAUDE_CODE_USE_FOUNDRY","OPENAI_BASE_URL","OPENAI_API_BASE","OPENAI_API_KEYS","OPENAI_API_KEY","OPENAI_MODEL","GITHUB_COPILOT_KEY","GITHUB_ENTERPRISE_URL","GEMINI_API_KEY","GOOGLE_API_KEY","GEMINI_BASE_URL","GEMINI_MODEL","GEMINI_ACCESS_TOKEN","GEMINI_AUTH_MODE"]);GITHUB_PAT_PREFIXES2=["ghp_","gho_","ghs_","ghr_","github_pat_"]});var onboardGithub,onboard_github_default;var init_onboard_github2=__esm(()=>{onboardGithub={name:"onboard-github",aliases:["onboarding-github","onboardgithub","onboardinggithub"],description:"Interactive setup for GitHub Copilot: OAuth device login stored in secure storage",type:"local-jsx",load:()=>Promise.resolve().then(() => (init_onboard_github(),exports_onboard_github))},onboard_github_default=onboardGithub});import{join as join120}from"path";import{existsSync as existsSync13,mkdirSync as mkdirSync8,unlinkSync as unlinkSync4,statSync as statSync8}from"fs";class SQLiteProvider{db=null;dbPath;isInitialized=!1;constructor(projectDir){if(!existsSync13(projectDir))mkdirSync8(projectDir,{recursive:!0});this.dbPath=join120(projectDir,"knowledge.db"),registerCleanup(()=>this.close())}get isReady(){return this.isInitialized&&this.db!==null}async init(){if(this.isInitialized&&this.db)return;if(typeof Bun>"u"){this.isInitialized=!0;return}try{let{Database}=await import("bun:sqlite");if(existsSync13(this.dbPath)&&statSync8(this.dbPath).size===0)unlinkSync4(this.dbPath);this.db=new Database(this.dbPath),this.db.exec("PRAGMA journal_mode = WAL;"),this.db.exec("PRAGMA foreign_keys = ON;"),this.createTables(),this.isInitialized=!0}catch(e){if(!String(e).includes("disk I/O error"))console.error(`Failed to initialize SQLite database at ${this.dbPath}:`,e);await this.selfHeal()}}async selfHeal(){try{this.close();let sidecars=[this.dbPath,`${this.dbPath}-wal`,`${this.dbPath}-shm`];for(let file2 of sidecars)if(existsSync13(file2))try{unlinkSync4(file2)}catch{}if(typeof Bun<"u"){let{Database}=await import("bun:sqlite");this.db=new Database(this.dbPath),this.db.exec("PRAGMA journal_mode = WAL;"),this.db.exec("PRAGMA foreign_keys = ON;"),this.createTables()}this.isInitialized=!0}catch(e){console.warn(`Critical SQLite failure during self-heal at ${this.dbPath}. Falling back to JSON:`,e),this.isInitialized=!0,this.db=null}}createTables(){if(!this.db)return;let statements=[`CREATE TABLE IF NOT EXISTS entities (
|
|
5190
5190
|
id TEXT PRIMARY KEY,
|
|
@@ -7161,7 +7161,7 @@ ${result.diagPath}`}}var init_heapdump=__esm(()=>{init_heapDumpService()});var h
|
|
|
7161
7161
|
reconnect call reconnectEnvironmentWithSession directly
|
|
7162
7162
|
status print bridge state`,call65=async(args)=>{let h2=getBridgeDebugHandle();if(!h2)return{type:"text",value:"No bridge debug handle registered. Remote Control must be connected (USER_TYPE=ant)."};let[sub,a2,b]=args.trim().split(/\s+/);switch(sub){case"close":{let code=Number(a2);if(!Number.isFinite(code))return{type:"text",value:`close: need a numeric code
|
|
7163
7163
|
${USAGE2}`};return h2.fireClose(code),{type:"text",value:`Fired transport close(${code}). Watch debug.log for [bridge:repl] recovery.`}}case"poll":{if(a2==="transient")return h2.injectFault({method:"pollForWork",kind:"transient",status:503,count:1}),h2.wakePollLoop(),{type:"text",value:"Next poll will throw a transient (axios rejection). Poll loop woken."};let status2=Number(a2);if(!Number.isFinite(status2))return{type:"text",value:`poll: need 'transient' or a status code
|
|
7164
|
-
${USAGE2}`};let errorType=b??(status2===404?"not_found_error":"authentication_error");return h2.injectFault({method:"pollForWork",kind:"fatal",status:status2,errorType,count:1}),h2.wakePollLoop(),{type:"text",value:`Next poll will throw BridgeFatalError(${status2}, ${errorType}). Poll loop woken.`}}case"register":{if(a2==="fatal")return h2.injectFault({method:"registerBridgeEnvironment",kind:"fatal",status:403,errorType:"permission_error",count:1}),{type:"text",value:"Next registerBridgeEnvironment will 403. Trigger with close/reconnect."};let n3=Number(b)||1;return h2.injectFault({method:"registerBridgeEnvironment",kind:"transient",status:503,count:n3}),{type:"text",value:`Next ${n3} registerBridgeEnvironment call(s) will transient-fail. Trigger with close/reconnect.`}}case"reconnect-session":return h2.injectFault({method:"reconnectSession",kind:"fatal",status:404,errorType:"not_found_error",count:2}),{type:"text",value:"Next 2 POST /bridge/reconnect calls will 404. doReconnect Strategy 1 falls through to Strategy 2."};case"heartbeat":{let status2=Number(a2)||401;return h2.injectFault({method:"heartbeatWork",kind:"fatal",status:status2,errorType:status2===401?"authentication_error":"not_found_error",count:1}),{type:"text",value:`Next heartbeat will ${status2}. Watch for onHeartbeatFatal → work-state teardown.`}}case"reconnect":return h2.forceReconnect(),{type:"text",value:"Called reconnectEnvironmentWithSession(). Watch debug.log."};case"status":return{type:"text",value:h2.describe()};default:return{type:"text",value:USAGE2}}},bridgeKick,bridge_kick_default;var init_bridge_kick=__esm(()=>{init_bridgeDebug();bridgeKick={type:"local",name:"bridge-kick",description:"Inject bridge failure states for manual recovery testing",isEnabled:()=>process.env.USER_TYPE==="ant",supportsNonInteractive:!1,load:()=>Promise.resolve({call:call65})},bridge_kick_default=bridgeKick});var call66=async()=>{return{type:"text",value:"99.0.0 (built 2026-07-19T21:08:35.606Z)"}},version2,version_default;var init_version2=__esm(()=>{version2={type:"local",name:"version",description:"Print the version this session is running (not what autoupdate downloaded)",isEnabled:()=>process.env.USER_TYPE==="ant",supportsNonInteractive:!0,load:()=>Promise.resolve({call:call66})},version_default=version2});import{realpath as realpath11}from"node:fs/promises";import{homedir as homedir35}from"node:os";import{join as join140,resolve as resolve45,sep as sep31}from"node:path";function isUnder(child,parent2){let p=resolve45(parent2),c5=resolve45(child),withSep=p.endsWith(sep31)?p:p+sep31;return c5===p||c5.startsWith(withSep)}function selectOwningPackageManager(selfPath,candidates){let best=null;for(let{pm,root:root2}of candidates){if(!root2)continue;let rootLen=resolve45(root2).length;if(isUnder(selfPath,root2)&&(!best||rootLen>best.rootLen))best={pm,rootLen}}return best?.pm??null}function pickFallbackPackageManager(available,runningUnderBun){if(available.length===0)return null;if(runningUnderBun&&available.includes("bun"))return"bun";for(let pm of FALLBACK_PRIORITY)if(available.includes(pm))return pm;return available[0]??null}async function isAvailable(pm){return Boolean(await which(pm))}async function getGlobalRoot(pm){let opts={cwd:homedir35(),timeout:15000};try{switch(pm){case"npm":{let r=await execFileNoThrowWithCwd("npm",["root","-g"],opts);return r.code===0&&r.stdout.trim()?r.stdout.trim():null}case"pnpm":{let r=await execFileNoThrowWithCwd("pnpm",["root","-g"],opts);return r.code===0&&r.stdout.trim()?r.stdout.trim():null}case"yarn":{let r=await execFileNoThrowWithCwd("yarn",["global","dir"],opts);return r.code===0&&r.stdout.trim()?join140(r.stdout.trim(),"node_modules"):null}case"bun":{let bunInstall=process.env.BUN_INSTALL||join140(homedir35(),".bun");return join140(bunInstall,"install","global","node_modules")}}}catch(error41){return logForDebugging(`getGlobalRoot(${pm}) failed: ${error41}`),null}}async function resolveRealPath(target){try{return await realpath11(target)}catch{return target}}var ALL_PACKAGE_MANAGERS,FALLBACK_PRIORITY,detectGlobalPackageManager;var init_globalPackageManager=__esm(()=>{init_memoize();init_debug();init_execFileNoThrow();init_which();ALL_PACKAGE_MANAGERS=["npm","yarn","pnpm","bun"],FALLBACK_PRIORITY=["npm","bun","pnpm","yarn"];detectGlobalPackageManager=memoize_default(async()=>{let[availabilityFlags,selfPath]=await Promise.all([Promise.all(ALL_PACKAGE_MANAGERS.map(isAvailable)),process.argv[1]?resolveRealPath(process.argv[1]):Promise.resolve(null)]),available=ALL_PACKAGE_MANAGERS.filter((_,i3)=>availabilityFlags[i3]);if(available.length===0)return null;if(selfPath){let candidates=(await Promise.all(available.map(async(pm)=>{let root2=await getGlobalRoot(pm);return root2?{pm,root:await resolveRealPath(root2)}:null}))).filter((candidate)=>candidate!==null),owner=selectOwningPackageManager(selfPath,candidates);if(owner)return logForDebugging(`Detected install owner package manager: ${owner}`),owner}let fallback=pickFallbackPackageManager(available,typeof Bun<"u");if(fallback)logForDebugging(`Falling back to package manager: ${fallback}`);return fallback})});function resolvePackageManagerUpdateGuidance(manager,packageUrl){let managerName=managerNames[manager];if(!managerName)return{message:`${PRODUCT_DISPLAY_NAME} is managed by a package manager. Use your package manager to update ${PRODUCT_DISPLAY_NAME}.`};let command9=packageUrl===UPSTREAM_PACKAGE_URL?upstreamCommands[manager]:void 0;return{message:`${PRODUCT_DISPLAY_NAME} is managed by ${managerName}. Use ${managerName} to update ${PRODUCT_DISPLAY_NAME}.`,managerName,...command9?{command:command9}:{}}}function getPackageManagerUpdateGuidance(manager){return resolvePackageManagerUpdateGuidance(manager,"@gitlawb/openclaude")}var UPSTREAM_PACKAGE_URL="@anthropic-ai/claude-code",upstreamCommands,managerNames;var init_packageManagerUpdateGuidance=__esm(()=>{upstreamCommands={homebrew:"brew upgrade claude-code",winget:"winget upgrade Anthropic.ClaudeCode",apk:"apk upgrade claude-code"},managerNames={homebrew:"Homebrew",winget:"winget",apk:"apk"}});function getAutoUpdaterNpmMethod(installationType,configInstallMethod,nativeDistributionAvailable){if(installationType==="npm-local")return"local";if(installationType==="npm-global")return"global";if(installationType==="native")return nativeDistributionAvailable?null:"global";if(installationType==="unknown")return configInstallMethod==="local"?"local":"global";return null}function shouldUseNativeAutoUpdater(installationType,nativeDistributionAvailable){return installationType==="native"&&nativeDistributionAvailable}function shouldRemoveInstalledSymlinkForNpmUpdate(configInstallMethod,nativeDistributionAvailable){return configInstallMethod!=="native"||!nativeDistributionAvailable}function isThirdPartyBuildBlocked(){return isThirdPartyBuildBlockedFor(getAPIProvider(),"@gitlawb/openclaude")}function isThirdPartyBuildBlockedFor(apiProvider,packageUrl){return apiProvider!=="firstParty"&&packageUrl==="@anthropic-ai/claude-code"}function planUpdate(input){if(input.thirdPartyBlocked)return{action:"blocked",reason:"third-party-build"};switch(input.installationType){case"development":return{action:"blocked",reason:"development"};case"package-manager":return{action:"package-manager",manager:input.packageManager};case"native":return input.nativeDistributionAvailable?{action:"native"}:{action:"npm",method:"global"};case"npm-local":return{action:"npm",method:"local"};case"npm-global":return{action:"npm",method:"global"};case"unknown":return{action:"npm",method:input.localInstallExists?"local":"global"}}}async function resolveUpdateStrategy(deps=defaultDeps){if(deps.isThirdPartyBlocked())return{action:"blocked",reason:"third-party-build"};let{installationType}=await deps.getDiagnostic();return planUpdate({thirdPartyBlocked:!1,installationType,nativeDistributionAvailable:deps.hasNativeDistribution(),packageManager:installationType==="package-manager"?await deps.getPackageManager():"unknown",localInstallExists:installationType==="unknown"?await deps.localInstallationExists():!1})}var defaultDeps;var init_updateStrategy=__esm(()=>{init_doctorDiagnostic();init_localInstaller();init_providers();init_packageManagers();defaultDeps={isThirdPartyBlocked:isThirdPartyBuildBlocked,getDiagnostic:getDoctorDiagnostic,getPackageManager,localInstallationExists,hasNativeDistribution}});var exports_update={};__export(exports_update,{removeStaleNativeLauncherForNpmUpdate:()=>removeStaleNativeLauncherForNpmUpdate,call:()=>call67,PackageManagerUpdateGuidance:()=>PackageManagerUpdateGuidance});function PackageManagerUpdateGuidance({manager}){let guidance=getPackageManagerUpdateGuidance(manager);return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"warning",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:guidance.message},void 0,!1,void 0,this)]},void 0,!0,void 0,this),guidance.command&&jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:["To update, run: ",guidance.command]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}async function removeStaleNativeLauncherForNpmUpdate(deps={}){let config4=(deps.getConfig??getGlobalConfig)();if(shouldRemoveInstalledSymlinkForNpmUpdate(config4.installMethod,(deps.hasNativeDistribution??hasNativeDistribution)()))return await(deps.removeInstalledSymlink??removeInstalledSymlink)(),!0;return!1}function Update({onDone,force,target}){let[state2,setState]=import_react185.useState({type:"checking"}),doneScheduled=import_react185.useRef(!1);return import_react185.useEffect(()=>{async function run(){try{let strategy=await resolveUpdateStrategy();if(logForDebugging(`Update: strategy=${JSON.stringify(strategy)} (force=${force}, target=${target})`),strategy.action==="blocked"){setState({type:"blocked",reason:strategy.reason});return}if(strategy.action==="package-manager"){setState({type:"package-manager",manager:strategy.manager});return}let isChannel=target==="latest"||target==="stable",channel2=target==="stable"?"stable":"latest";if(strategy.action==="native"){setState({type:"updating",version:isChannel?channel2:target,via:"native build"});let result=await installLatest(isChannel?channel2:target,force);if(result.lockFailed){setState({type:"error",message:"Another install is in progress. Try again in a moment."});return}if(!result.latestVersion){setState({type:"error",message:"Failed to check for updates."});return}if(result.latestVersion===CURRENT_VERSION){setState({type:"up-to-date",version:CURRENT_VERSION});return}setState({type:"success",version:result.latestVersion,via:"native build"});return}await removeStaleNativeLauncherForNpmUpdate();let via=strategy.method==="global"?await detectGlobalPackageManager():"local install";if(strategy.method==="global"&&!via){setState({type:"no-package-manager"});return}let resolved=isChannel?await getLatestVersion(channel2):target;if(!force&&isChannel&&resolved&&resolved.trim()===CURRENT_VERSION.trim()){setState({type:"up-to-date",version:resolved});return}let display=resolved||target;switch(setState({type:"updating",version:display,via}),strategy.method==="local"?await installOrUpdateClaudePackage(channel2,isChannel?null:target):await installGlobalPackage(target==="latest"?null:target)){case"success":setState({type:"success",version:display,via});break;case"no_permissions":setState({type:"error",message:"Insufficient permissions for the install. Re-run with the right permissions (e.g. sudo) or fix your install directory ownership."});break;case"in_progress":setState({type:"error",message:"Another update is already in progress. Try again in a moment."});break;default:setState({type:"error",message:"Install failed. Run with --debug for details."})}}catch(error41){logForDebugging(`Update command failed: ${error41}`,{level:"error"}),setState({type:"error",message:errorMessage(error41)})}}run()},[force,target]),import_react185.useEffect(()=>{if(doneScheduled.current||state2.type==="checking"||state2.type==="updating")return;doneScheduled.current=!0;let{message,delay}=terminalDoneMessage(state2);setTimeout(onDone,delay,message,{display:"system"})},[state2,onDone]),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[state2.type==="checking"&&jsxDEV(ThemedText,{color:"claude",children:"Detecting installation type and checking for updates..."},void 0,!1,void 0,this),state2.type==="blocked"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"warning",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:state2.reason==="development"?"Auto-update is unavailable for a development build.":"Auto-update is unavailable for third-party provider builds."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.reason==="development"&&jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:"Update from source: git pull && bun install && bun run build"},void 0,!1,void 0,this)},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:["Or reinstall: npm install -g ",PACKAGE_URL,"@latest"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.type==="package-manager"&&jsxDEV(PackageManagerUpdateGuidance,{manager:state2.manager},void 0,!1,void 0,this),state2.type==="no-package-manager"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"error",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"No supported package manager found"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Install npm, pnpm, yarn, or bun, then run /update again."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.type==="up-to-date"&&jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"success",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"success",children:["Already on the latest version (",state2.version,")."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),state2.type==="updating"&&jsxDEV(ThemedText,{color:"claude",children:["Updating Claudio to ",state2.version," via ",state2.via," (this may take a moment)..."]},void 0,!0,void 0,this),state2.type==="success"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"success",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"success",bold:!0,children:["Claudio updated to ",state2.version," via ",state2.via,"!"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:"Restart Claudio for the new version to take effect."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.type==="error"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"error",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"Update failed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"error",children:state2.message},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["You can update manually, e.g. npm install -g ",PACKAGE_URL,"@latest"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function terminalDoneMessage(state2){switch(state2.type){case"success":return{message:"Claudio updated successfully",delay:3000};case"up-to-date":return{message:"Claudio is already up to date",delay:1500};case"blocked":return{message:"Auto-update is unavailable for this build",delay:3000};case"package-manager":return{message:"Claudio is managed by a package manager",delay:3000};case"no-package-manager":return{message:"No supported package manager found",delay:3000};case"error":return{message:"Claudio update failed",delay:4000};default:return{message:"",delay:0}}}async function call67(onDone,_context,args){let tokens=(args??"").trim().split(/\s+/).filter(Boolean),force=tokens.includes("--force"),target=tokens.filter((token)=>!token.startsWith("--"))[0]||"latest",{unmount}=await render(jsxDEV(Update,{onDone:(result,options2)=>{unmount(),onDone(result,options2)},force,target},void 0,!1,void 0,this));return null}var import_react185,PACKAGE_URL="@gitlawb/openclaude",CURRENT_VERSION="0.25.0";var init_update=__esm(()=>{init_StatusIcon();init_ink2();init_config();init_debug();init_errors();init_globalPackageManager();init_localInstaller();init_nativeInstaller();init_packageManagerUpdateGuidance();init_updateStrategy();init_reactJsxDevRuntimeProductionShim();import_react185=__toESM(require_react_production(),1)});var update,update_default;var init_update2=__esm(()=>{update={type:"local-jsx",name:"update",description:"Update Claudio to the latest version",argumentHint:"[latest|stable|<version>] [--force]",load:()=>Promise.resolve().then(() => (init_update(),exports_update))},update_default=update});import{join as join141}from"path";function getWikiPaths(cwd2){let root2=join141(cwd2,OPENCLAUDE_DIRNAME,WIKI_DIRNAME);return{root:root2,pagesDir:join141(root2,"pages"),sourcesDir:join141(root2,"sources"),schemaFile:join141(root2,"schema.md"),indexFile:join141(root2,"index.md"),logFile:join141(root2,"log.md"),conventionsFile:join141(root2,"pages","conventions.md"),conventionsCacheFile:join141(cwd2,OPENCLAUDE_DIRNAME,".conventions-cache.json")}}var OPENCLAUDE_DIRNAME=".openclaude",WIKI_DIRNAME="wiki";var init_paths2=()=>{};import{mkdir as mkdir36,writeFile as writeFile41}from"fs/promises";import{basename as basename43,relative as relative26}from"path";function buildSchemaTemplate(projectName){return`# Claudio Wiki Schema
|
|
7164
|
+
${USAGE2}`};let errorType=b??(status2===404?"not_found_error":"authentication_error");return h2.injectFault({method:"pollForWork",kind:"fatal",status:status2,errorType,count:1}),h2.wakePollLoop(),{type:"text",value:`Next poll will throw BridgeFatalError(${status2}, ${errorType}). Poll loop woken.`}}case"register":{if(a2==="fatal")return h2.injectFault({method:"registerBridgeEnvironment",kind:"fatal",status:403,errorType:"permission_error",count:1}),{type:"text",value:"Next registerBridgeEnvironment will 403. Trigger with close/reconnect."};let n3=Number(b)||1;return h2.injectFault({method:"registerBridgeEnvironment",kind:"transient",status:503,count:n3}),{type:"text",value:`Next ${n3} registerBridgeEnvironment call(s) will transient-fail. Trigger with close/reconnect.`}}case"reconnect-session":return h2.injectFault({method:"reconnectSession",kind:"fatal",status:404,errorType:"not_found_error",count:2}),{type:"text",value:"Next 2 POST /bridge/reconnect calls will 404. doReconnect Strategy 1 falls through to Strategy 2."};case"heartbeat":{let status2=Number(a2)||401;return h2.injectFault({method:"heartbeatWork",kind:"fatal",status:status2,errorType:status2===401?"authentication_error":"not_found_error",count:1}),{type:"text",value:`Next heartbeat will ${status2}. Watch for onHeartbeatFatal → work-state teardown.`}}case"reconnect":return h2.forceReconnect(),{type:"text",value:"Called reconnectEnvironmentWithSession(). Watch debug.log."};case"status":return{type:"text",value:h2.describe()};default:return{type:"text",value:USAGE2}}},bridgeKick,bridge_kick_default;var init_bridge_kick=__esm(()=>{init_bridgeDebug();bridgeKick={type:"local",name:"bridge-kick",description:"Inject bridge failure states for manual recovery testing",isEnabled:()=>process.env.USER_TYPE==="ant",supportsNonInteractive:!1,load:()=>Promise.resolve({call:call65})},bridge_kick_default=bridgeKick});var call66=async()=>{return{type:"text",value:"99.0.0 (built 2026-07-19T21:19:06.848Z)"}},version2,version_default;var init_version2=__esm(()=>{version2={type:"local",name:"version",description:"Print the version this session is running (not what autoupdate downloaded)",isEnabled:()=>process.env.USER_TYPE==="ant",supportsNonInteractive:!0,load:()=>Promise.resolve({call:call66})},version_default=version2});import{realpath as realpath11}from"node:fs/promises";import{homedir as homedir35}from"node:os";import{join as join140,resolve as resolve45,sep as sep31}from"node:path";function isUnder(child,parent2){let p=resolve45(parent2),c5=resolve45(child),withSep=p.endsWith(sep31)?p:p+sep31;return c5===p||c5.startsWith(withSep)}function selectOwningPackageManager(selfPath,candidates){let best=null;for(let{pm,root:root2}of candidates){if(!root2)continue;let rootLen=resolve45(root2).length;if(isUnder(selfPath,root2)&&(!best||rootLen>best.rootLen))best={pm,rootLen}}return best?.pm??null}function pickFallbackPackageManager(available,runningUnderBun){if(available.length===0)return null;if(runningUnderBun&&available.includes("bun"))return"bun";for(let pm of FALLBACK_PRIORITY)if(available.includes(pm))return pm;return available[0]??null}async function isAvailable(pm){return Boolean(await which(pm))}async function getGlobalRoot(pm){let opts={cwd:homedir35(),timeout:15000};try{switch(pm){case"npm":{let r=await execFileNoThrowWithCwd("npm",["root","-g"],opts);return r.code===0&&r.stdout.trim()?r.stdout.trim():null}case"pnpm":{let r=await execFileNoThrowWithCwd("pnpm",["root","-g"],opts);return r.code===0&&r.stdout.trim()?r.stdout.trim():null}case"yarn":{let r=await execFileNoThrowWithCwd("yarn",["global","dir"],opts);return r.code===0&&r.stdout.trim()?join140(r.stdout.trim(),"node_modules"):null}case"bun":{let bunInstall=process.env.BUN_INSTALL||join140(homedir35(),".bun");return join140(bunInstall,"install","global","node_modules")}}}catch(error41){return logForDebugging(`getGlobalRoot(${pm}) failed: ${error41}`),null}}async function resolveRealPath(target){try{return await realpath11(target)}catch{return target}}var ALL_PACKAGE_MANAGERS,FALLBACK_PRIORITY,detectGlobalPackageManager;var init_globalPackageManager=__esm(()=>{init_memoize();init_debug();init_execFileNoThrow();init_which();ALL_PACKAGE_MANAGERS=["npm","yarn","pnpm","bun"],FALLBACK_PRIORITY=["npm","bun","pnpm","yarn"];detectGlobalPackageManager=memoize_default(async()=>{let[availabilityFlags,selfPath]=await Promise.all([Promise.all(ALL_PACKAGE_MANAGERS.map(isAvailable)),process.argv[1]?resolveRealPath(process.argv[1]):Promise.resolve(null)]),available=ALL_PACKAGE_MANAGERS.filter((_,i3)=>availabilityFlags[i3]);if(available.length===0)return null;if(selfPath){let candidates=(await Promise.all(available.map(async(pm)=>{let root2=await getGlobalRoot(pm);return root2?{pm,root:await resolveRealPath(root2)}:null}))).filter((candidate)=>candidate!==null),owner=selectOwningPackageManager(selfPath,candidates);if(owner)return logForDebugging(`Detected install owner package manager: ${owner}`),owner}let fallback=pickFallbackPackageManager(available,typeof Bun<"u");if(fallback)logForDebugging(`Falling back to package manager: ${fallback}`);return fallback})});function resolvePackageManagerUpdateGuidance(manager,packageUrl){let managerName=managerNames[manager];if(!managerName)return{message:`${PRODUCT_DISPLAY_NAME} is managed by a package manager. Use your package manager to update ${PRODUCT_DISPLAY_NAME}.`};let command9=packageUrl===UPSTREAM_PACKAGE_URL?upstreamCommands[manager]:void 0;return{message:`${PRODUCT_DISPLAY_NAME} is managed by ${managerName}. Use ${managerName} to update ${PRODUCT_DISPLAY_NAME}.`,managerName,...command9?{command:command9}:{}}}function getPackageManagerUpdateGuidance(manager){return resolvePackageManagerUpdateGuidance(manager,"@gitlawb/openclaude")}var UPSTREAM_PACKAGE_URL="@anthropic-ai/claude-code",upstreamCommands,managerNames;var init_packageManagerUpdateGuidance=__esm(()=>{upstreamCommands={homebrew:"brew upgrade claude-code",winget:"winget upgrade Anthropic.ClaudeCode",apk:"apk upgrade claude-code"},managerNames={homebrew:"Homebrew",winget:"winget",apk:"apk"}});function getAutoUpdaterNpmMethod(installationType,configInstallMethod,nativeDistributionAvailable){if(installationType==="npm-local")return"local";if(installationType==="npm-global")return"global";if(installationType==="native")return nativeDistributionAvailable?null:"global";if(installationType==="unknown")return configInstallMethod==="local"?"local":"global";return null}function shouldUseNativeAutoUpdater(installationType,nativeDistributionAvailable){return installationType==="native"&&nativeDistributionAvailable}function shouldRemoveInstalledSymlinkForNpmUpdate(configInstallMethod,nativeDistributionAvailable){return configInstallMethod!=="native"||!nativeDistributionAvailable}function isThirdPartyBuildBlocked(){return isThirdPartyBuildBlockedFor(getAPIProvider(),"@gitlawb/openclaude")}function isThirdPartyBuildBlockedFor(apiProvider,packageUrl){return apiProvider!=="firstParty"&&packageUrl==="@anthropic-ai/claude-code"}function planUpdate(input){if(input.thirdPartyBlocked)return{action:"blocked",reason:"third-party-build"};switch(input.installationType){case"development":return{action:"blocked",reason:"development"};case"package-manager":return{action:"package-manager",manager:input.packageManager};case"native":return input.nativeDistributionAvailable?{action:"native"}:{action:"npm",method:"global"};case"npm-local":return{action:"npm",method:"local"};case"npm-global":return{action:"npm",method:"global"};case"unknown":return{action:"npm",method:input.localInstallExists?"local":"global"}}}async function resolveUpdateStrategy(deps=defaultDeps){if(deps.isThirdPartyBlocked())return{action:"blocked",reason:"third-party-build"};let{installationType}=await deps.getDiagnostic();return planUpdate({thirdPartyBlocked:!1,installationType,nativeDistributionAvailable:deps.hasNativeDistribution(),packageManager:installationType==="package-manager"?await deps.getPackageManager():"unknown",localInstallExists:installationType==="unknown"?await deps.localInstallationExists():!1})}var defaultDeps;var init_updateStrategy=__esm(()=>{init_doctorDiagnostic();init_localInstaller();init_providers();init_packageManagers();defaultDeps={isThirdPartyBlocked:isThirdPartyBuildBlocked,getDiagnostic:getDoctorDiagnostic,getPackageManager,localInstallationExists,hasNativeDistribution}});var exports_update={};__export(exports_update,{removeStaleNativeLauncherForNpmUpdate:()=>removeStaleNativeLauncherForNpmUpdate,call:()=>call67,PackageManagerUpdateGuidance:()=>PackageManagerUpdateGuidance});function PackageManagerUpdateGuidance({manager}){let guidance=getPackageManagerUpdateGuidance(manager);return jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"warning",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:guidance.message},void 0,!1,void 0,this)]},void 0,!0,void 0,this),guidance.command&&jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:["To update, run: ",guidance.command]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}async function removeStaleNativeLauncherForNpmUpdate(deps={}){let config4=(deps.getConfig??getGlobalConfig)();if(shouldRemoveInstalledSymlinkForNpmUpdate(config4.installMethod,(deps.hasNativeDistribution??hasNativeDistribution)()))return await(deps.removeInstalledSymlink??removeInstalledSymlink)(),!0;return!1}function Update({onDone,force,target}){let[state2,setState]=import_react185.useState({type:"checking"}),doneScheduled=import_react185.useRef(!1);return import_react185.useEffect(()=>{async function run(){try{let strategy=await resolveUpdateStrategy();if(logForDebugging(`Update: strategy=${JSON.stringify(strategy)} (force=${force}, target=${target})`),strategy.action==="blocked"){setState({type:"blocked",reason:strategy.reason});return}if(strategy.action==="package-manager"){setState({type:"package-manager",manager:strategy.manager});return}let isChannel=target==="latest"||target==="stable",channel2=target==="stable"?"stable":"latest";if(strategy.action==="native"){setState({type:"updating",version:isChannel?channel2:target,via:"native build"});let result=await installLatest(isChannel?channel2:target,force);if(result.lockFailed){setState({type:"error",message:"Another install is in progress. Try again in a moment."});return}if(!result.latestVersion){setState({type:"error",message:"Failed to check for updates."});return}if(result.latestVersion===CURRENT_VERSION){setState({type:"up-to-date",version:CURRENT_VERSION});return}setState({type:"success",version:result.latestVersion,via:"native build"});return}await removeStaleNativeLauncherForNpmUpdate();let via=strategy.method==="global"?await detectGlobalPackageManager():"local install";if(strategy.method==="global"&&!via){setState({type:"no-package-manager"});return}let resolved=isChannel?await getLatestVersion(channel2):target;if(!force&&isChannel&&resolved&&resolved.trim()===CURRENT_VERSION.trim()){setState({type:"up-to-date",version:resolved});return}let display=resolved||target;switch(setState({type:"updating",version:display,via}),strategy.method==="local"?await installOrUpdateClaudePackage(channel2,isChannel?null:target):await installGlobalPackage(target==="latest"?null:target)){case"success":setState({type:"success",version:display,via});break;case"no_permissions":setState({type:"error",message:"Insufficient permissions for the install. Re-run with the right permissions (e.g. sudo) or fix your install directory ownership."});break;case"in_progress":setState({type:"error",message:"Another update is already in progress. Try again in a moment."});break;default:setState({type:"error",message:"Install failed. Run with --debug for details."})}}catch(error41){logForDebugging(`Update command failed: ${error41}`,{level:"error"}),setState({type:"error",message:errorMessage(error41)})}}run()},[force,target]),import_react185.useEffect(()=>{if(doneScheduled.current||state2.type==="checking"||state2.type==="updating")return;doneScheduled.current=!0;let{message,delay}=terminalDoneMessage(state2);setTimeout(onDone,delay,message,{display:"system"})},[state2,onDone]),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[state2.type==="checking"&&jsxDEV(ThemedText,{color:"claude",children:"Detecting installation type and checking for updates..."},void 0,!1,void 0,this),state2.type==="blocked"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"warning",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:state2.reason==="development"?"Auto-update is unavailable for a development build.":"Auto-update is unavailable for third-party provider builds."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.reason==="development"&&jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:"Update from source: git pull && bun install && bun run build"},void 0,!1,void 0,this)},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:["Or reinstall: npm install -g ",PACKAGE_URL,"@latest"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.type==="package-manager"&&jsxDEV(PackageManagerUpdateGuidance,{manager:state2.manager},void 0,!1,void 0,this),state2.type==="no-package-manager"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"error",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"No supported package manager found"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Install npm, pnpm, yarn, or bun, then run /update again."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.type==="up-to-date"&&jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"success",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"success",children:["Already on the latest version (",state2.version,")."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),state2.type==="updating"&&jsxDEV(ThemedText,{color:"claude",children:["Updating Claudio to ",state2.version," via ",state2.via," (this may take a moment)..."]},void 0,!0,void 0,this),state2.type==="success"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"success",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"success",bold:!0,children:["Claudio updated to ",state2.version," via ",state2.via,"!"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:"Restart Claudio for the new version to take effect."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state2.type==="error"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"error",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"Update failed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"error",children:state2.message},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["You can update manually, e.g. npm install -g ",PACKAGE_URL,"@latest"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function terminalDoneMessage(state2){switch(state2.type){case"success":return{message:"Claudio updated successfully",delay:3000};case"up-to-date":return{message:"Claudio is already up to date",delay:1500};case"blocked":return{message:"Auto-update is unavailable for this build",delay:3000};case"package-manager":return{message:"Claudio is managed by a package manager",delay:3000};case"no-package-manager":return{message:"No supported package manager found",delay:3000};case"error":return{message:"Claudio update failed",delay:4000};default:return{message:"",delay:0}}}async function call67(onDone,_context,args){let tokens=(args??"").trim().split(/\s+/).filter(Boolean),force=tokens.includes("--force"),target=tokens.filter((token)=>!token.startsWith("--"))[0]||"latest",{unmount}=await render(jsxDEV(Update,{onDone:(result,options2)=>{unmount(),onDone(result,options2)},force,target},void 0,!1,void 0,this));return null}var import_react185,PACKAGE_URL="@gitlawb/openclaude",CURRENT_VERSION="0.25.1";var init_update=__esm(()=>{init_StatusIcon();init_ink2();init_config();init_debug();init_errors();init_globalPackageManager();init_localInstaller();init_nativeInstaller();init_packageManagerUpdateGuidance();init_updateStrategy();init_reactJsxDevRuntimeProductionShim();import_react185=__toESM(require_react_production(),1)});var update,update_default;var init_update2=__esm(()=>{update={type:"local-jsx",name:"update",description:"Update Claudio to the latest version",argumentHint:"[latest|stable|<version>] [--force]",load:()=>Promise.resolve().then(() => (init_update(),exports_update))},update_default=update});import{join as join141}from"path";function getWikiPaths(cwd2){let root2=join141(cwd2,OPENCLAUDE_DIRNAME,WIKI_DIRNAME);return{root:root2,pagesDir:join141(root2,"pages"),sourcesDir:join141(root2,"sources"),schemaFile:join141(root2,"schema.md"),indexFile:join141(root2,"index.md"),logFile:join141(root2,"log.md"),conventionsFile:join141(root2,"pages","conventions.md"),conventionsCacheFile:join141(cwd2,OPENCLAUDE_DIRNAME,".conventions-cache.json")}}var OPENCLAUDE_DIRNAME=".openclaude",WIKI_DIRNAME="wiki";var init_paths2=()=>{};import{mkdir as mkdir36,writeFile as writeFile41}from"fs/promises";import{basename as basename43,relative as relative26}from"path";function buildSchemaTemplate(projectName){return`# Claudio Wiki Schema
|
|
7165
7165
|
|
|
7166
7166
|
This wiki stores durable, human-readable project knowledge for ${projectName}.
|
|
7167
7167
|
|
|
@@ -9101,7 +9101,7 @@ Token organization: ${tokenOrgUuid}
|
|
|
9101
9101
|
Remove the environment variable or obtain a token for the correct organization.`};return{valid:!1,message:`Your authentication token belongs to organization ${tokenOrgUuid},
|
|
9102
9102
|
but this machine requires organization ${requiredOrgUuid}.
|
|
9103
9103
|
|
|
9104
|
-
Please log in with the correct organization: openclaude auth login`}}var DEFAULT_API_KEY_HELPER_TTL=300000,_apiKeyHelperCache=null,_apiKeyHelperInflight=null,_apiKeyHelperEpoch=0,DEFAULT_AWS_STS_TTL=3600000,AWS_AUTH_REFRESH_TIMEOUT_MS=180000,refreshAndGetAwsCredentials,GCP_CREDENTIALS_CHECK_TIMEOUT_MS=5000,DEFAULT_GCP_CREDENTIAL_TTL=3600000,GCP_AUTH_REFRESH_TIMEOUT_MS=180000,refreshGcpCredentialsIfNeeded,getApiKeyFromConfigOrMacOSKeychain,getClaudeAIOAuthTokens,lastCredentialsMtimeMs=0,pending401Handlers,pendingRefreshCheck=null,cachedOtelHeaders=null,cachedOtelHeadersTimestamp=0,DEFAULT_OTEL_HEADERS_DEBOUNCE_MS=1740000,GcpCredentialsTimeoutError;var init_auth5=__esm(()=>{init_source2();init_execa();init_memoize();init_oauth();init_modelStrings();init_providers();init_state();init_mockRateLimits();init_client2();init_getOauthProfile();init_authFileDescriptor();init_authPortable();init_aws();init_awsAuthStatusManager();init_optionalRuntimeModule();init_betas2();init_config();init_debug();init_envUtils();init_errors();init_execFileNoThrow();init_log2();init_memoize2();init_secureStorage();init_keychainPrefetch();init_macOsKeychainHelpers();init_settings3();init_slowOperations();init_toolSchemaCache();refreshAndGetAwsCredentials=memoizeWithTTLAsync(async()=>{let refreshed=await runAwsAuthRefresh(),credentials=await getAwsCredsFromCredentialExport();if(refreshed||credentials)await clearAwsIniCache();return credentials},DEFAULT_AWS_STS_TTL);refreshGcpCredentialsIfNeeded=memoizeWithTTLAsync(async()=>{return await runGcpAuthRefresh()},DEFAULT_GCP_CREDENTIAL_TTL);getApiKeyFromConfigOrMacOSKeychain=memoize_default(()=>{if(isBareMode())return null;if(process.platform==="darwin"){let prefetch=getLegacyApiKeyPrefetchResult();if(prefetch){if(prefetch.stdout)return{key:prefetch.stdout,source:"/login managed key"}}else{let storageServiceName=getMacOsKeychainStorageServiceName();try{let result=execSyncWithDefaults_DEPRECATED(`security find-generic-password -a $USER -w -s "${storageServiceName}"`);if(result)return{key:result,source:"/login managed key"}}catch(e){logError(e)}}}let config4=getGlobalConfig();if(!config4.primaryApiKey)return null;return{key:config4.primaryApiKey,source:"/login managed key"}});getClaudeAIOAuthTokens=memoize_default(()=>{if(isBareMode())return null;if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{accessToken:process.env.CLAUDE_CODE_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:["user:inference"],subscriptionType:null,rateLimitTier:null};let oauthTokenFromFd=getOAuthTokenFromFileDescriptor();if(oauthTokenFromFd)return{accessToken:oauthTokenFromFd,refreshToken:null,expiresAt:null,scopes:["user:inference"],subscriptionType:null,rateLimitTier:null};try{let oauthData=getSecureStorage().read()?.claudeAiOauth;if(!oauthData?.accessToken)return null;return oauthData}catch(error41){return logError(error41),null}});pending401Handlers=new Map;GcpCredentialsTimeoutError=class GcpCredentialsTimeoutError extends Error{}});function partitionBetasByAllowlist(betas){let allowed=[],disallowed=[];for(let beta of betas)if(ALLOWED_SDK_BETAS.includes(beta))allowed.push(beta);else disallowed.push(beta);return{allowed,disallowed}}function filterAllowedSdkBetas(sdkBetas){if(!sdkBetas||sdkBetas.length===0)return;if(isClaudeAISubscriber()){console.warn("Warning: Custom betas are only available for API key users. Ignoring provided betas.");return}let{allowed,disallowed}=partitionBetasByAllowlist(sdkBetas);for(let beta of disallowed)console.warn(`Warning: Beta header '${beta}' is not allowed. Only the following betas are supported: ${ALLOWED_SDK_BETAS.join(", ")}`);return allowed.length>0?allowed:void 0}function modelSupportsISP(model){let supported3P=get3PModelCapabilityOverride(model,"interleaved_thinking");if(supported3P!==void 0)return supported3P;let canonical=getCanonicalName(model),provider2=getAPIProvider();if(provider2==="foundry")return!0;if(provider2==="firstParty"&&isFirstPartyAnthropicBaseUrl())return!canonical.includes("claude-3-");return canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")}function vertexModelSupportsWebSearch(model){let canonical=getCanonicalName(model);return canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")||canonical.includes("claude-haiku-4")}function modelSupportsContextManagement(model){let canonical=getCanonicalName(model),provider2=getAPIProvider();if(provider2==="foundry")return!0;if(provider2==="firstParty"&&isFirstPartyAnthropicBaseUrl())return!canonical.includes("claude-3-");return canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")||canonical.includes("claude-haiku-4")}function modelSupportsStructuredOutputs(model){let canonical=getCanonicalName(model),provider2=getAPIProvider();if((provider2!=="firstParty"||!isFirstPartyAnthropicBaseUrl())&&provider2!=="foundry")return!1;return canonical.includes("claude-sonnet-4-6")||canonical.includes("claude-sonnet-4-5")||canonical.includes("claude-opus-4-1")||canonical.includes("claude-opus-4-5")||canonical.includes("claude-opus-4-6")||canonical.includes("claude-opus-4-7")||canonical.includes("claude-opus-4-8")||canonical.includes("claude-haiku-4-5")}function modelSupportsAutoMode(model){{let m=getCanonicalName(model);if(getAPIProvider()!=="firstParty"||!isFirstPartyAnthropicBaseUrl())return!1;let config4=getFeatureValue_CACHED_MAY_BE_STALE("tengu_auto_mode_config",{}),rawLower=model.toLowerCase();if(config4?.allowModels?.some((am)=>am.toLowerCase()===rawLower||am.toLowerCase()===m))return!0;if(process.env.USER_TYPE==="ant"){if(m.includes("claude-3-"))return!1;if(/claude-(opus|sonnet|haiku)-4(?!-[6-9])/.test(m))return!1;return!0}return/^claude-(opus|sonnet)-4-6/.test(m)}return!1}function getToolSearchBetaHeader(){let provider2=getAPIProvider();if(provider2==="vertex"||provider2==="bedrock")return TOOL_SEARCH_BETA_HEADER_3P;return TOOL_SEARCH_BETA_HEADER_1P}function shouldIncludeFirstPartyOnlyBetas(){return(getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()||getAPIProvider()==="foundry")&&!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function shouldUseGlobalCacheScope(){return getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()&&!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function getBetaCacheKey(model){return[model.toLowerCase(),getAPIProvider(),process.env.ANTHROPIC_BASE_URL??"",process.env.USER_TYPE??"",process.env.CLAUDE_CODE_USE_GITHUB??""].join("\x00")}function isAnthropicProvider(){let provider2=getAPIProvider();return provider2==="firstParty"&&isFirstPartyAnthropicBaseUrl()||provider2==="bedrock"||provider2==="vertex"||provider2==="foundry"}function getMergedBetas(model,options2){if(!shouldUseAnthropicBetaHeaders(model))return[];let baseBetas=[...getModelBetas(model)];if(options2?.isAgenticQuery){if(!baseBetas.includes(CLAUDE_CODE_20250219_BETA_HEADER))baseBetas.push(CLAUDE_CODE_20250219_BETA_HEADER);if(process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_ENTRYPOINT==="cli"&&CLI_INTERNAL_BETA_HEADER&&!baseBetas.includes(CLI_INTERNAL_BETA_HEADER))baseBetas.push(CLI_INTERNAL_BETA_HEADER)}let sdkBetas=getSdkBetas();if(!sdkBetas||sdkBetas.length===0)return baseBetas;return[...baseBetas,...sdkBetas.filter((b)=>!baseBetas.includes(b))]}function shouldUseAnthropicBetaHeaders(model){return isAnthropicProvider()||isGithubNativeAnthropicMode(model)}function clearBetasCaches(){getAllModelBetas.cache?.clear?.(),getModelBetas.cache?.clear?.(),getBedrockExtraBodyParamsBetas.cache?.clear?.()}var ALLOWED_SDK_BETAS,getAllModelBetas,getModelBetas,getBedrockExtraBodyParamsBetas;var init_betas2=__esm(()=>{init_memoize();init_growthbook();init_state();init_betas();init_oauth();init_auth5();init_context();init_envUtils();init_model();init_modelSupportOverrides();init_providers();init_settings3();ALLOWED_SDK_BETAS=[CONTEXT_1M_BETA_HEADER];getAllModelBetas=memoize_default((model)=>{let betaHeaders=[],isHaiku=getCanonicalName(model).includes("haiku"),provider2=getAPIProvider(),includeFirstPartyOnlyBetas=shouldIncludeFirstPartyOnlyBetas();if(!isHaiku){if(betaHeaders.push(CLAUDE_CODE_20250219_BETA_HEADER),process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_ENTRYPOINT==="cli"){if(CLI_INTERNAL_BETA_HEADER)betaHeaders.push(CLI_INTERNAL_BETA_HEADER)}}if(isClaudeAISubscriber())betaHeaders.push(OAUTH_BETA_HEADER);if(has1mContext(model))betaHeaders.push(CONTEXT_1M_BETA_HEADER);if(!isEnvTruthy(process.env.DISABLE_INTERLEAVED_THINKING)&&modelSupportsISP(model))betaHeaders.push(INTERLEAVED_THINKING_BETA_HEADER);if(includeFirstPartyOnlyBetas&&modelSupportsISP(model)&&!getIsNonInteractiveSession()&&getInitialSettings().showThinkingSummaries!==!0)betaHeaders.push(REDACT_THINKING_BETA_HEADER);if(SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER&&process.env.USER_TYPE==="ant"&&includeFirstPartyOnlyBetas&&!isEnvDefinedFalsy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION)&&(isEnvTruthy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION)||getFeatureValue_CACHED_MAY_BE_STALE("tengu_slate_prism",!1)))betaHeaders.push(SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER);let antOptedIntoToolClearing=isEnvTruthy(process.env.USE_API_CONTEXT_MANAGEMENT)&&process.env.USER_TYPE==="ant",thinkingPreservationEnabled=modelSupportsContextManagement(model);if(shouldIncludeFirstPartyOnlyBetas()&&(antOptedIntoToolClearing||thinkingPreservationEnabled))betaHeaders.push(CONTEXT_MANAGEMENT_BETA_HEADER);let strictToolsEnabled=checkStatsigFeatureGate_CACHED_MAY_BE_STALE("tengu_tool_pear"),tokenEfficientToolsEnabled=!strictToolsEnabled&&getFeatureValue_CACHED_MAY_BE_STALE("tengu_amber_json_tools",!1);if(includeFirstPartyOnlyBetas&&modelSupportsStructuredOutputs(model)&&strictToolsEnabled)betaHeaders.push(STRUCTURED_OUTPUTS_BETA_HEADER);if(process.env.USER_TYPE==="ant"&&includeFirstPartyOnlyBetas&&tokenEfficientToolsEnabled)betaHeaders.push(TOKEN_EFFICIENT_TOOLS_BETA_HEADER);if(provider2==="vertex"&&vertexModelSupportsWebSearch(model))betaHeaders.push(WEB_SEARCH_BETA_HEADER);if(provider2==="foundry")betaHeaders.push(WEB_SEARCH_BETA_HEADER);if(includeFirstPartyOnlyBetas)betaHeaders.push(PROMPT_CACHING_SCOPE_BETA_HEADER);if(process.env.ANTHROPIC_BETAS)betaHeaders.push(...process.env.ANTHROPIC_BETAS.split(",").map((_)=>_.trim()).filter(Boolean));return betaHeaders},getBetaCacheKey),getModelBetas=memoize_default((model)=>{if(!shouldUseAnthropicBetaHeaders(model))return[];let modelBetas=getAllModelBetas(model);if(getAPIProvider()==="bedrock")return modelBetas.filter((b)=>!BEDROCK_EXTRA_PARAMS_HEADERS.has(b));return modelBetas},getBetaCacheKey),getBedrockExtraBodyParamsBetas=memoize_default((model)=>{return getAllModelBetas(model).filter((b)=>BEDROCK_EXTRA_PARAMS_HEADERS.has(b))},getBetaCacheKey)});function normalizeUrl2(url3){try{let u2=new URL(url3);return u2.search="",u2.toString().replace(/\/$/,"")}catch{return}}async function prefetchOfficialMcpUrls(){if(process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return;if(getAPIProvider()!=="firstParty"||!isFirstPartyAnthropicBaseUrl()){officialUrls=void 0;return}try{let response=await axios_default.get("https://api.anthropic.com/mcp-registry/v0/servers?version=latest&visibility=commercial",{timeout:5000}),urls=new Set;for(let entry of response.data.servers)for(let remote of entry.server.remotes??[]){let normalized=normalizeUrl2(remote.url);if(normalized)urls.add(normalized)}officialUrls=urls,logForDebugging(`[mcp-registry] Loaded ${urls.size} official MCP URLs`)}catch(error41){logForDebugging(`Failed to fetch MCP registry: ${errorMessage(error41)}`,{level:"error"})}}function isOfficialMcpUrl(normalizedUrl){return getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()&&(officialUrls?.has(normalizedUrl)??!1)}var officialUrls=void 0;var init_officialRegistry=__esm(()=>{init_axios2();init_debug();init_errors();init_providers()});import{extname as extname18}from"path";function sanitizeToolNameForAnalytics(toolName){if(toolName.startsWith("mcp__"))return"mcp_tool";return toolName}function isToolDetailsLoggingEnabled(){return isEnvTruthy(process.env.OTEL_LOG_TOOL_DETAILS)}function isAnalyticsToolDetailsLoggingEnabled(mcpServerType,mcpServerBaseUrl){if(process.env.CLAUDE_CODE_ENTRYPOINT==="local-agent")return!0;if(mcpServerType==="claudeai-proxy")return!0;if(mcpServerBaseUrl&&isOfficialMcpUrl(mcpServerBaseUrl))return!0;return!1}function mcpToolDetailsForAnalytics(toolName,mcpServerType,mcpServerBaseUrl){let details=extractMcpToolDetails(toolName);if(!details)return{};if(!BUILTIN_MCP_SERVER_NAMES.has(details.serverName)&&!isAnalyticsToolDetailsLoggingEnabled(mcpServerType,mcpServerBaseUrl))return{};return{mcpServerName:details.serverName,mcpToolName:details.mcpToolName}}function extractMcpToolDetails(toolName){if(!toolName.startsWith("mcp__"))return;let parts=toolName.split("__");if(parts.length<3)return;let serverName=parts[1],mcpToolName=parts.slice(2).join("__");if(!serverName||!mcpToolName)return;return{serverName,mcpToolName}}function extractSkillName(toolName,input){if(toolName!=="Skill")return;if(typeof input==="object"&&input!==null&&"skill"in input&&typeof input.skill==="string")return input.skill;return}function truncateToolInputValue(value,depth=0){if(typeof value==="string"){if(value.length>TOOL_INPUT_STRING_TRUNCATE_AT)return`${value.slice(0,TOOL_INPUT_STRING_TRUNCATE_TO)}…[${value.length} chars]`;return value}if(typeof value==="number"||typeof value==="boolean"||value===null||value===void 0)return value;if(depth>=TOOL_INPUT_MAX_DEPTH)return"<nested>";if(Array.isArray(value)){let mapped=value.slice(0,TOOL_INPUT_MAX_COLLECTION_ITEMS).map((v)=>truncateToolInputValue(v,depth+1));if(value.length>TOOL_INPUT_MAX_COLLECTION_ITEMS)mapped.push(`…[${value.length} items]`);return mapped}if(typeof value==="object"){let entries=Object.entries(value).filter(([k])=>!k.startsWith("_")),mapped=entries.slice(0,TOOL_INPUT_MAX_COLLECTION_ITEMS).map(([k,v])=>[k,truncateToolInputValue(v,depth+1)]);if(entries.length>TOOL_INPUT_MAX_COLLECTION_ITEMS)mapped.push(["…",`${entries.length} keys`]);return Object.fromEntries(mapped)}return String(value)}function extractToolInputForTelemetry(input){if(!isToolDetailsLoggingEnabled())return;let truncated=truncateToolInputValue(input),json2=jsonStringify(truncated);if(json2.length>TOOL_INPUT_MAX_JSON_CHARS)json2=json2.slice(0,TOOL_INPUT_MAX_JSON_CHARS)+"…[truncated]";return json2}function getFileExtensionForAnalytics(filePath){let ext=extname18(filePath).toLowerCase();if(!ext||ext===".")return;let extension2=ext.slice(1);if(extension2.length>MAX_FILE_EXTENSION_LENGTH)return"other";return extension2}function getFileExtensionsFromBashCommand(command11,simulatedSedEditFilePath){if(!command11.includes(".")&&!simulatedSedEditFilePath)return;let result,seen=new Set;if(simulatedSedEditFilePath){let ext=getFileExtensionForAnalytics(simulatedSedEditFilePath);if(ext)seen.add(ext),result=ext}for(let subcmd of command11.split(COMPOUND_OPERATOR_REGEX)){if(!subcmd)continue;let tokens=subcmd.split(WHITESPACE_REGEX2);if(tokens.length<2)continue;let firstToken=tokens[0],slashIdx=firstToken.lastIndexOf("/"),baseCmd=slashIdx>=0?firstToken.slice(slashIdx+1):firstToken;if(!FILE_COMMANDS.has(baseCmd))continue;for(let i3=1;i3<tokens.length;i3++){let arg=tokens[i3];if(arg.charCodeAt(0)===45)continue;let ext=getFileExtensionForAnalytics(arg);if(ext&&!seen.has(ext))seen.add(ext),result=result?result+","+ext:ext}}if(!result)return;return result}var BUILTIN_MCP_SERVER_NAMES,TOOL_INPUT_STRING_TRUNCATE_AT=512,TOOL_INPUT_STRING_TRUNCATE_TO=128,TOOL_INPUT_MAX_JSON_CHARS=4096,TOOL_INPUT_MAX_COLLECTION_ITEMS=20,TOOL_INPUT_MAX_DEPTH=2,MAX_FILE_EXTENSION_LENGTH=10,FILE_COMMANDS,COMPOUND_OPERATOR_REGEX,WHITESPACE_REGEX2,getVersionBase,buildEnvContext;var init_metadata=__esm(()=>{init_memoize();init_env();init_envDynamic();init_betas2();init_model();init_state();init_envUtils();init_officialRegistry();init_auth5();init_git();init_platform2();init_agentContext();init_slowOperations();init_teammate();BUILTIN_MCP_SERVER_NAMES=new Set([]);FILE_COMMANDS=new Set(["rm","mv","cp","touch","mkdir","chmod","chown","cat","head","tail","sort","stat","diff","wc","grep","rg","sed"]),COMPOUND_OPERATOR_REGEX=/\s*(?:&&|\|\||[;|])\s*/,WHITESPACE_REGEX2=/\s+/;getVersionBase=memoize_default(()=>{let match="99.0.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);return match?match[0]:void 0}),buildEnvContext=memoize_default(async()=>{let[packageManagers,runtimes,linuxDistroInfo,vcs]=await Promise.all([env3.getPackageManagers(),env3.getRuntimes(),getLinuxDistroInfo(),detectVcs()]);return{platform:getHostPlatformForAnalytics(),platformRaw:process.env.CLAUDE_CODE_HOST_PLATFORM||process.platform,arch:env3.arch,nodeVersion:env3.nodeVersion,terminal:envDynamic.terminal,packageManagers:packageManagers.join(","),runtimes:runtimes.join(","),isRunningWithBun:env3.isRunningWithBun(),isCi:isEnvTruthy(process.env.CI),isClaubbit:isEnvTruthy(process.env.CLAUBBIT),isClaudeCodeRemote:isEnvTruthy(process.env.CLAUDE_CODE_REMOTE),isLocalAgentMode:process.env.CLAUDE_CODE_ENTRYPOINT==="local-agent",isConductor:env3.isConductor(),...process.env.CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE&&{remoteEnvironmentType:process.env.CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE},...{},...process.env.CLAUDE_CODE_CONTAINER_ID&&{claudeCodeContainerId:process.env.CLAUDE_CODE_CONTAINER_ID},...process.env.CLAUDE_CODE_REMOTE_SESSION_ID&&{claudeCodeRemoteSessionId:process.env.CLAUDE_CODE_REMOTE_SESSION_ID},...process.env.CLAUDE_CODE_TAGS&&{tags:process.env.CLAUDE_CODE_TAGS},isGithubAction:isEnvTruthy(process.env.GITHUB_ACTIONS),isClaudeCodeAction:isEnvTruthy(process.env.CLAUDE_CODE_ACTION),isClaudeAiAuth:isClaudeAISubscriber(),version:"99.0.0",versionBase:getVersionBase(),buildTime:"2026-07-19T21:08:35.606Z",deploymentEnvironment:env3.detectDeploymentEnvironment(),...isEnvTruthy(process.env.GITHUB_ACTIONS)&&{githubEventName:process.env.GITHUB_EVENT_NAME,githubActionsRunnerEnvironment:process.env.RUNNER_ENVIRONMENT,githubActionsRunnerOs:process.env.RUNNER_OS,githubActionRef:process.env.GITHUB_ACTION_PATH?.includes("claude-code-action/")?process.env.GITHUB_ACTION_PATH.split("claude-code-action/")[1]:void 0},...getWslVersion()&&{wslVersion:getWslVersion()},...linuxDistroInfo??{},...vcs.length>0?{vcs:vcs.join(",")}:{}}})});async function findRelevantMemories(query4,memoryDir,signal,recentTools=[],alreadySurfaced=new Set){let memories=(await scanMemoryFiles(memoryDir,signal)).filter((m)=>!alreadySurfaced.has(m.filePath));if(memories.length===0)return[];let selectedFilenames=await selectRelevantMemories(query4,memories,signal,recentTools),byFilename=new Map(memories.map((m)=>[m.filename,m]));return selectedFilenames.map((filename)=>byFilename.get(filename)).filter((m)=>m!==void 0).map((m)=>({path:m.filePath,mtimeMs:m.mtimeMs}))}async function selectRelevantMemories(query4,memories,signal,recentTools){let validFilenames=new Set(memories.map((m)=>m.filename)),manifest=formatMemoryManifest(memories),toolsSection=recentTools.length>0?`
|
|
9104
|
+
Please log in with the correct organization: openclaude auth login`}}var DEFAULT_API_KEY_HELPER_TTL=300000,_apiKeyHelperCache=null,_apiKeyHelperInflight=null,_apiKeyHelperEpoch=0,DEFAULT_AWS_STS_TTL=3600000,AWS_AUTH_REFRESH_TIMEOUT_MS=180000,refreshAndGetAwsCredentials,GCP_CREDENTIALS_CHECK_TIMEOUT_MS=5000,DEFAULT_GCP_CREDENTIAL_TTL=3600000,GCP_AUTH_REFRESH_TIMEOUT_MS=180000,refreshGcpCredentialsIfNeeded,getApiKeyFromConfigOrMacOSKeychain,getClaudeAIOAuthTokens,lastCredentialsMtimeMs=0,pending401Handlers,pendingRefreshCheck=null,cachedOtelHeaders=null,cachedOtelHeadersTimestamp=0,DEFAULT_OTEL_HEADERS_DEBOUNCE_MS=1740000,GcpCredentialsTimeoutError;var init_auth5=__esm(()=>{init_source2();init_execa();init_memoize();init_oauth();init_modelStrings();init_providers();init_state();init_mockRateLimits();init_client2();init_getOauthProfile();init_authFileDescriptor();init_authPortable();init_aws();init_awsAuthStatusManager();init_optionalRuntimeModule();init_betas2();init_config();init_debug();init_envUtils();init_errors();init_execFileNoThrow();init_log2();init_memoize2();init_secureStorage();init_keychainPrefetch();init_macOsKeychainHelpers();init_settings3();init_slowOperations();init_toolSchemaCache();refreshAndGetAwsCredentials=memoizeWithTTLAsync(async()=>{let refreshed=await runAwsAuthRefresh(),credentials=await getAwsCredsFromCredentialExport();if(refreshed||credentials)await clearAwsIniCache();return credentials},DEFAULT_AWS_STS_TTL);refreshGcpCredentialsIfNeeded=memoizeWithTTLAsync(async()=>{return await runGcpAuthRefresh()},DEFAULT_GCP_CREDENTIAL_TTL);getApiKeyFromConfigOrMacOSKeychain=memoize_default(()=>{if(isBareMode())return null;if(process.platform==="darwin"){let prefetch=getLegacyApiKeyPrefetchResult();if(prefetch){if(prefetch.stdout)return{key:prefetch.stdout,source:"/login managed key"}}else{let storageServiceName=getMacOsKeychainStorageServiceName();try{let result=execSyncWithDefaults_DEPRECATED(`security find-generic-password -a $USER -w -s "${storageServiceName}"`);if(result)return{key:result,source:"/login managed key"}}catch(e){logError(e)}}}let config4=getGlobalConfig();if(!config4.primaryApiKey)return null;return{key:config4.primaryApiKey,source:"/login managed key"}});getClaudeAIOAuthTokens=memoize_default(()=>{if(isBareMode())return null;if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{accessToken:process.env.CLAUDE_CODE_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:["user:inference"],subscriptionType:null,rateLimitTier:null};let oauthTokenFromFd=getOAuthTokenFromFileDescriptor();if(oauthTokenFromFd)return{accessToken:oauthTokenFromFd,refreshToken:null,expiresAt:null,scopes:["user:inference"],subscriptionType:null,rateLimitTier:null};try{let oauthData=getSecureStorage().read()?.claudeAiOauth;if(!oauthData?.accessToken)return null;return oauthData}catch(error41){return logError(error41),null}});pending401Handlers=new Map;GcpCredentialsTimeoutError=class GcpCredentialsTimeoutError extends Error{}});function partitionBetasByAllowlist(betas){let allowed=[],disallowed=[];for(let beta of betas)if(ALLOWED_SDK_BETAS.includes(beta))allowed.push(beta);else disallowed.push(beta);return{allowed,disallowed}}function filterAllowedSdkBetas(sdkBetas){if(!sdkBetas||sdkBetas.length===0)return;if(isClaudeAISubscriber()){console.warn("Warning: Custom betas are only available for API key users. Ignoring provided betas.");return}let{allowed,disallowed}=partitionBetasByAllowlist(sdkBetas);for(let beta of disallowed)console.warn(`Warning: Beta header '${beta}' is not allowed. Only the following betas are supported: ${ALLOWED_SDK_BETAS.join(", ")}`);return allowed.length>0?allowed:void 0}function modelSupportsISP(model){let supported3P=get3PModelCapabilityOverride(model,"interleaved_thinking");if(supported3P!==void 0)return supported3P;let canonical=getCanonicalName(model),provider2=getAPIProvider();if(provider2==="foundry")return!0;if(provider2==="firstParty"&&isFirstPartyAnthropicBaseUrl())return!canonical.includes("claude-3-");return canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")}function vertexModelSupportsWebSearch(model){let canonical=getCanonicalName(model);return canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")||canonical.includes("claude-haiku-4")}function modelSupportsContextManagement(model){let canonical=getCanonicalName(model),provider2=getAPIProvider();if(provider2==="foundry")return!0;if(provider2==="firstParty"&&isFirstPartyAnthropicBaseUrl())return!canonical.includes("claude-3-");return canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")||canonical.includes("claude-haiku-4")}function modelSupportsStructuredOutputs(model){let canonical=getCanonicalName(model),provider2=getAPIProvider();if((provider2!=="firstParty"||!isFirstPartyAnthropicBaseUrl())&&provider2!=="foundry")return!1;return canonical.includes("claude-sonnet-4-6")||canonical.includes("claude-sonnet-4-5")||canonical.includes("claude-opus-4-1")||canonical.includes("claude-opus-4-5")||canonical.includes("claude-opus-4-6")||canonical.includes("claude-opus-4-7")||canonical.includes("claude-opus-4-8")||canonical.includes("claude-haiku-4-5")}function modelSupportsAutoMode(model){{let m=getCanonicalName(model);if(getAPIProvider()!=="firstParty"||!isFirstPartyAnthropicBaseUrl())return!1;let config4=getFeatureValue_CACHED_MAY_BE_STALE("tengu_auto_mode_config",{}),rawLower=model.toLowerCase();if(config4?.allowModels?.some((am)=>am.toLowerCase()===rawLower||am.toLowerCase()===m))return!0;if(process.env.USER_TYPE==="ant"){if(m.includes("claude-3-"))return!1;if(/claude-(opus|sonnet|haiku)-4(?!-[6-9])/.test(m))return!1;return!0}return/^claude-(opus|sonnet)-4-6/.test(m)}return!1}function getToolSearchBetaHeader(){let provider2=getAPIProvider();if(provider2==="vertex"||provider2==="bedrock")return TOOL_SEARCH_BETA_HEADER_3P;return TOOL_SEARCH_BETA_HEADER_1P}function shouldIncludeFirstPartyOnlyBetas(){return(getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()||getAPIProvider()==="foundry")&&!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function shouldUseGlobalCacheScope(){return getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()&&!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function getBetaCacheKey(model){return[model.toLowerCase(),getAPIProvider(),process.env.ANTHROPIC_BASE_URL??"",process.env.USER_TYPE??"",process.env.CLAUDE_CODE_USE_GITHUB??""].join("\x00")}function isAnthropicProvider(){let provider2=getAPIProvider();return provider2==="firstParty"&&isFirstPartyAnthropicBaseUrl()||provider2==="bedrock"||provider2==="vertex"||provider2==="foundry"}function getMergedBetas(model,options2){if(!shouldUseAnthropicBetaHeaders(model))return[];let baseBetas=[...getModelBetas(model)];if(options2?.isAgenticQuery){if(!baseBetas.includes(CLAUDE_CODE_20250219_BETA_HEADER))baseBetas.push(CLAUDE_CODE_20250219_BETA_HEADER);if(process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_ENTRYPOINT==="cli"&&CLI_INTERNAL_BETA_HEADER&&!baseBetas.includes(CLI_INTERNAL_BETA_HEADER))baseBetas.push(CLI_INTERNAL_BETA_HEADER)}let sdkBetas=getSdkBetas();if(!sdkBetas||sdkBetas.length===0)return baseBetas;return[...baseBetas,...sdkBetas.filter((b)=>!baseBetas.includes(b))]}function shouldUseAnthropicBetaHeaders(model){return isAnthropicProvider()||isGithubNativeAnthropicMode(model)}function clearBetasCaches(){getAllModelBetas.cache?.clear?.(),getModelBetas.cache?.clear?.(),getBedrockExtraBodyParamsBetas.cache?.clear?.()}var ALLOWED_SDK_BETAS,getAllModelBetas,getModelBetas,getBedrockExtraBodyParamsBetas;var init_betas2=__esm(()=>{init_memoize();init_growthbook();init_state();init_betas();init_oauth();init_auth5();init_context();init_envUtils();init_model();init_modelSupportOverrides();init_providers();init_settings3();ALLOWED_SDK_BETAS=[CONTEXT_1M_BETA_HEADER];getAllModelBetas=memoize_default((model)=>{let betaHeaders=[],isHaiku=getCanonicalName(model).includes("haiku"),provider2=getAPIProvider(),includeFirstPartyOnlyBetas=shouldIncludeFirstPartyOnlyBetas();if(!isHaiku){if(betaHeaders.push(CLAUDE_CODE_20250219_BETA_HEADER),process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_ENTRYPOINT==="cli"){if(CLI_INTERNAL_BETA_HEADER)betaHeaders.push(CLI_INTERNAL_BETA_HEADER)}}if(isClaudeAISubscriber())betaHeaders.push(OAUTH_BETA_HEADER);if(has1mContext(model))betaHeaders.push(CONTEXT_1M_BETA_HEADER);if(!isEnvTruthy(process.env.DISABLE_INTERLEAVED_THINKING)&&modelSupportsISP(model))betaHeaders.push(INTERLEAVED_THINKING_BETA_HEADER);if(includeFirstPartyOnlyBetas&&modelSupportsISP(model)&&!getIsNonInteractiveSession()&&getInitialSettings().showThinkingSummaries!==!0)betaHeaders.push(REDACT_THINKING_BETA_HEADER);if(SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER&&process.env.USER_TYPE==="ant"&&includeFirstPartyOnlyBetas&&!isEnvDefinedFalsy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION)&&(isEnvTruthy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION)||getFeatureValue_CACHED_MAY_BE_STALE("tengu_slate_prism",!1)))betaHeaders.push(SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER);let antOptedIntoToolClearing=isEnvTruthy(process.env.USE_API_CONTEXT_MANAGEMENT)&&process.env.USER_TYPE==="ant",thinkingPreservationEnabled=modelSupportsContextManagement(model);if(shouldIncludeFirstPartyOnlyBetas()&&(antOptedIntoToolClearing||thinkingPreservationEnabled))betaHeaders.push(CONTEXT_MANAGEMENT_BETA_HEADER);let strictToolsEnabled=checkStatsigFeatureGate_CACHED_MAY_BE_STALE("tengu_tool_pear"),tokenEfficientToolsEnabled=!strictToolsEnabled&&getFeatureValue_CACHED_MAY_BE_STALE("tengu_amber_json_tools",!1);if(includeFirstPartyOnlyBetas&&modelSupportsStructuredOutputs(model)&&strictToolsEnabled)betaHeaders.push(STRUCTURED_OUTPUTS_BETA_HEADER);if(process.env.USER_TYPE==="ant"&&includeFirstPartyOnlyBetas&&tokenEfficientToolsEnabled)betaHeaders.push(TOKEN_EFFICIENT_TOOLS_BETA_HEADER);if(provider2==="vertex"&&vertexModelSupportsWebSearch(model))betaHeaders.push(WEB_SEARCH_BETA_HEADER);if(provider2==="foundry")betaHeaders.push(WEB_SEARCH_BETA_HEADER);if(includeFirstPartyOnlyBetas)betaHeaders.push(PROMPT_CACHING_SCOPE_BETA_HEADER);if(process.env.ANTHROPIC_BETAS)betaHeaders.push(...process.env.ANTHROPIC_BETAS.split(",").map((_)=>_.trim()).filter(Boolean));return betaHeaders},getBetaCacheKey),getModelBetas=memoize_default((model)=>{if(!shouldUseAnthropicBetaHeaders(model))return[];let modelBetas=getAllModelBetas(model);if(getAPIProvider()==="bedrock")return modelBetas.filter((b)=>!BEDROCK_EXTRA_PARAMS_HEADERS.has(b));return modelBetas},getBetaCacheKey),getBedrockExtraBodyParamsBetas=memoize_default((model)=>{return getAllModelBetas(model).filter((b)=>BEDROCK_EXTRA_PARAMS_HEADERS.has(b))},getBetaCacheKey)});function normalizeUrl2(url3){try{let u2=new URL(url3);return u2.search="",u2.toString().replace(/\/$/,"")}catch{return}}async function prefetchOfficialMcpUrls(){if(process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return;if(getAPIProvider()!=="firstParty"||!isFirstPartyAnthropicBaseUrl()){officialUrls=void 0;return}try{let response=await axios_default.get("https://api.anthropic.com/mcp-registry/v0/servers?version=latest&visibility=commercial",{timeout:5000}),urls=new Set;for(let entry of response.data.servers)for(let remote of entry.server.remotes??[]){let normalized=normalizeUrl2(remote.url);if(normalized)urls.add(normalized)}officialUrls=urls,logForDebugging(`[mcp-registry] Loaded ${urls.size} official MCP URLs`)}catch(error41){logForDebugging(`Failed to fetch MCP registry: ${errorMessage(error41)}`,{level:"error"})}}function isOfficialMcpUrl(normalizedUrl){return getAPIProvider()==="firstParty"&&isFirstPartyAnthropicBaseUrl()&&(officialUrls?.has(normalizedUrl)??!1)}var officialUrls=void 0;var init_officialRegistry=__esm(()=>{init_axios2();init_debug();init_errors();init_providers()});import{extname as extname18}from"path";function sanitizeToolNameForAnalytics(toolName){if(toolName.startsWith("mcp__"))return"mcp_tool";return toolName}function isToolDetailsLoggingEnabled(){return isEnvTruthy(process.env.OTEL_LOG_TOOL_DETAILS)}function isAnalyticsToolDetailsLoggingEnabled(mcpServerType,mcpServerBaseUrl){if(process.env.CLAUDE_CODE_ENTRYPOINT==="local-agent")return!0;if(mcpServerType==="claudeai-proxy")return!0;if(mcpServerBaseUrl&&isOfficialMcpUrl(mcpServerBaseUrl))return!0;return!1}function mcpToolDetailsForAnalytics(toolName,mcpServerType,mcpServerBaseUrl){let details=extractMcpToolDetails(toolName);if(!details)return{};if(!BUILTIN_MCP_SERVER_NAMES.has(details.serverName)&&!isAnalyticsToolDetailsLoggingEnabled(mcpServerType,mcpServerBaseUrl))return{};return{mcpServerName:details.serverName,mcpToolName:details.mcpToolName}}function extractMcpToolDetails(toolName){if(!toolName.startsWith("mcp__"))return;let parts=toolName.split("__");if(parts.length<3)return;let serverName=parts[1],mcpToolName=parts.slice(2).join("__");if(!serverName||!mcpToolName)return;return{serverName,mcpToolName}}function extractSkillName(toolName,input){if(toolName!=="Skill")return;if(typeof input==="object"&&input!==null&&"skill"in input&&typeof input.skill==="string")return input.skill;return}function truncateToolInputValue(value,depth=0){if(typeof value==="string"){if(value.length>TOOL_INPUT_STRING_TRUNCATE_AT)return`${value.slice(0,TOOL_INPUT_STRING_TRUNCATE_TO)}…[${value.length} chars]`;return value}if(typeof value==="number"||typeof value==="boolean"||value===null||value===void 0)return value;if(depth>=TOOL_INPUT_MAX_DEPTH)return"<nested>";if(Array.isArray(value)){let mapped=value.slice(0,TOOL_INPUT_MAX_COLLECTION_ITEMS).map((v)=>truncateToolInputValue(v,depth+1));if(value.length>TOOL_INPUT_MAX_COLLECTION_ITEMS)mapped.push(`…[${value.length} items]`);return mapped}if(typeof value==="object"){let entries=Object.entries(value).filter(([k])=>!k.startsWith("_")),mapped=entries.slice(0,TOOL_INPUT_MAX_COLLECTION_ITEMS).map(([k,v])=>[k,truncateToolInputValue(v,depth+1)]);if(entries.length>TOOL_INPUT_MAX_COLLECTION_ITEMS)mapped.push(["…",`${entries.length} keys`]);return Object.fromEntries(mapped)}return String(value)}function extractToolInputForTelemetry(input){if(!isToolDetailsLoggingEnabled())return;let truncated=truncateToolInputValue(input),json2=jsonStringify(truncated);if(json2.length>TOOL_INPUT_MAX_JSON_CHARS)json2=json2.slice(0,TOOL_INPUT_MAX_JSON_CHARS)+"…[truncated]";return json2}function getFileExtensionForAnalytics(filePath){let ext=extname18(filePath).toLowerCase();if(!ext||ext===".")return;let extension2=ext.slice(1);if(extension2.length>MAX_FILE_EXTENSION_LENGTH)return"other";return extension2}function getFileExtensionsFromBashCommand(command11,simulatedSedEditFilePath){if(!command11.includes(".")&&!simulatedSedEditFilePath)return;let result,seen=new Set;if(simulatedSedEditFilePath){let ext=getFileExtensionForAnalytics(simulatedSedEditFilePath);if(ext)seen.add(ext),result=ext}for(let subcmd of command11.split(COMPOUND_OPERATOR_REGEX)){if(!subcmd)continue;let tokens=subcmd.split(WHITESPACE_REGEX2);if(tokens.length<2)continue;let firstToken=tokens[0],slashIdx=firstToken.lastIndexOf("/"),baseCmd=slashIdx>=0?firstToken.slice(slashIdx+1):firstToken;if(!FILE_COMMANDS.has(baseCmd))continue;for(let i3=1;i3<tokens.length;i3++){let arg=tokens[i3];if(arg.charCodeAt(0)===45)continue;let ext=getFileExtensionForAnalytics(arg);if(ext&&!seen.has(ext))seen.add(ext),result=result?result+","+ext:ext}}if(!result)return;return result}var BUILTIN_MCP_SERVER_NAMES,TOOL_INPUT_STRING_TRUNCATE_AT=512,TOOL_INPUT_STRING_TRUNCATE_TO=128,TOOL_INPUT_MAX_JSON_CHARS=4096,TOOL_INPUT_MAX_COLLECTION_ITEMS=20,TOOL_INPUT_MAX_DEPTH=2,MAX_FILE_EXTENSION_LENGTH=10,FILE_COMMANDS,COMPOUND_OPERATOR_REGEX,WHITESPACE_REGEX2,getVersionBase,buildEnvContext;var init_metadata=__esm(()=>{init_memoize();init_env();init_envDynamic();init_betas2();init_model();init_state();init_envUtils();init_officialRegistry();init_auth5();init_git();init_platform2();init_agentContext();init_slowOperations();init_teammate();BUILTIN_MCP_SERVER_NAMES=new Set([]);FILE_COMMANDS=new Set(["rm","mv","cp","touch","mkdir","chmod","chown","cat","head","tail","sort","stat","diff","wc","grep","rg","sed"]),COMPOUND_OPERATOR_REGEX=/\s*(?:&&|\|\||[;|])\s*/,WHITESPACE_REGEX2=/\s+/;getVersionBase=memoize_default(()=>{let match="99.0.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);return match?match[0]:void 0}),buildEnvContext=memoize_default(async()=>{let[packageManagers,runtimes,linuxDistroInfo,vcs]=await Promise.all([env3.getPackageManagers(),env3.getRuntimes(),getLinuxDistroInfo(),detectVcs()]);return{platform:getHostPlatformForAnalytics(),platformRaw:process.env.CLAUDE_CODE_HOST_PLATFORM||process.platform,arch:env3.arch,nodeVersion:env3.nodeVersion,terminal:envDynamic.terminal,packageManagers:packageManagers.join(","),runtimes:runtimes.join(","),isRunningWithBun:env3.isRunningWithBun(),isCi:isEnvTruthy(process.env.CI),isClaubbit:isEnvTruthy(process.env.CLAUBBIT),isClaudeCodeRemote:isEnvTruthy(process.env.CLAUDE_CODE_REMOTE),isLocalAgentMode:process.env.CLAUDE_CODE_ENTRYPOINT==="local-agent",isConductor:env3.isConductor(),...process.env.CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE&&{remoteEnvironmentType:process.env.CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE},...{},...process.env.CLAUDE_CODE_CONTAINER_ID&&{claudeCodeContainerId:process.env.CLAUDE_CODE_CONTAINER_ID},...process.env.CLAUDE_CODE_REMOTE_SESSION_ID&&{claudeCodeRemoteSessionId:process.env.CLAUDE_CODE_REMOTE_SESSION_ID},...process.env.CLAUDE_CODE_TAGS&&{tags:process.env.CLAUDE_CODE_TAGS},isGithubAction:isEnvTruthy(process.env.GITHUB_ACTIONS),isClaudeCodeAction:isEnvTruthy(process.env.CLAUDE_CODE_ACTION),isClaudeAiAuth:isClaudeAISubscriber(),version:"99.0.0",versionBase:getVersionBase(),buildTime:"2026-07-19T21:19:06.848Z",deploymentEnvironment:env3.detectDeploymentEnvironment(),...isEnvTruthy(process.env.GITHUB_ACTIONS)&&{githubEventName:process.env.GITHUB_EVENT_NAME,githubActionsRunnerEnvironment:process.env.RUNNER_ENVIRONMENT,githubActionsRunnerOs:process.env.RUNNER_OS,githubActionRef:process.env.GITHUB_ACTION_PATH?.includes("claude-code-action/")?process.env.GITHUB_ACTION_PATH.split("claude-code-action/")[1]:void 0},...getWslVersion()&&{wslVersion:getWslVersion()},...linuxDistroInfo??{},...vcs.length>0?{vcs:vcs.join(",")}:{}}})});async function findRelevantMemories(query4,memoryDir,signal,recentTools=[],alreadySurfaced=new Set){let memories=(await scanMemoryFiles(memoryDir,signal)).filter((m)=>!alreadySurfaced.has(m.filePath));if(memories.length===0)return[];let selectedFilenames=await selectRelevantMemories(query4,memories,signal,recentTools),byFilename=new Map(memories.map((m)=>[m.filename,m]));return selectedFilenames.map((filename)=>byFilename.get(filename)).filter((m)=>m!==void 0).map((m)=>({path:m.filePath,mtimeMs:m.mtimeMs}))}async function selectRelevantMemories(query4,memories,signal,recentTools){let validFilenames=new Set(memories.map((m)=>m.filename)),manifest=formatMemoryManifest(memories),toolsSection=recentTools.length>0?`
|
|
9105
9105
|
|
|
9106
9106
|
Recently used tools: ${recentTools.join(", ")}`:"";try{let textBlock=(await sideQuery({model:getDefaultSonnetModel(),system:SELECT_MEMORIES_SYSTEM_PROMPT,messages:[{role:"user",content:`Query: ${query4}
|
|
9107
9107
|
|
|
@@ -9120,7 +9120,7 @@ Return a list of filenames for the memories that will clearly be useful to Claud
|
|
|
9120
9120
|
|
|
9121
9121
|
Memory: ${path25}:`:`Memory (saved ${memoryAge(mtimeMs)}): ${path25}:`}function startRelevantMemoryPrefetch(messages,toolUseContext){if(!isAutoMemoryEnabled()||!getFeatureValue_CACHED_MAY_BE_STALE("tengu_moth_copse",!1))return;let lastUserMessage=messages.findLast((m)=>m.type==="user"&&!m.isMeta);if(!lastUserMessage)return;let input=getUserMessageText(lastUserMessage);if(!input||!/\s/.test(input.trim()))return;let surfaced=collectSurfacedMemories(messages);if(surfaced.totalBytes>=RELEVANT_MEMORIES_CONFIG.MAX_SESSION_BYTES)return;let controller=createChildAbortController(toolUseContext.abortController),firedAt=Date.now(),promise3=getRelevantMemoryAttachments(input,toolUseContext.options.agentDefinitions.activeAgents,toolUseContext.readFileState,collectRecentSuccessfulTools(messages,lastUserMessage),controller.signal,surfaced.paths).catch((e)=>{if(!isAbortError2(e))logError(e);return[]}),handle2={promise:promise3,settledAt:null,consumedOnIteration:-1,[Symbol.dispose](){controller.abort(),logEvent("tengu_memdir_prefetch_collected",{hidden_by_first_iteration:handle2.settledAt!==null&&handle2.consumedOnIteration===0,consumed_on_iteration:handle2.consumedOnIteration,latency_ms:(handle2.settledAt??Date.now())-firedAt})}};return promise3.finally(()=>{handle2.settledAt=Date.now()}),handle2}function isToolResultBlock4(b){return typeof b==="object"&&b!==null&&b.type==="tool_result"&&typeof b.tool_use_id==="string"}function hasToolResultContent(content){return Array.isArray(content)&&content.some(isToolResultBlock4)}function collectRecentSuccessfulTools(messages,lastUserMessage){let useIdToName=new Map,resultByUseId=new Map;for(let i3=messages.length-1;i3>=0;i3--){let m=messages[i3];if(!m)continue;if(isHumanTurn(m)&&m!==lastUserMessage)break;if(m.type==="assistant"&&typeof m.message.content!=="string"){for(let block2 of m.message.content)if(block2.type==="tool_use")useIdToName.set(block2.id,block2.name)}else if(m.type==="user"&&"message"in m&&Array.isArray(m.message.content)){for(let block2 of m.message.content)if(isToolResultBlock4(block2))resultByUseId.set(block2.tool_use_id,block2.is_error===!0)}}let failed=new Set,succeeded=new Set;for(let[id,name]of useIdToName){let errored=resultByUseId.get(id);if(errored===void 0)continue;if(errored)failed.add(name);else succeeded.add(name)}return[...succeeded].filter((t)=>!failed.has(t))}function filterDuplicateMemoryAttachments(attachments,readFileState){return attachments.map((attachment)=>{if(attachment.type!=="relevant_memories")return attachment;let filtered=attachment.memories.filter((m)=>!readFileState.has(m.path));for(let m of filtered)readFileState.set(m.path,{content:m.content,timestamp:m.mtimeMs,offset:void 0,limit:m.limit});return filtered.length>0?{...attachment,memories:filtered}:null}).filter((a2)=>a2!==null)}async function getDynamicSkillAttachments(toolUseContext){let attachments=[];if(toolUseContext.dynamicSkillDirTriggers&&toolUseContext.dynamicSkillDirTriggers.size>0){let perDirResults=await Promise.all(Array.from(toolUseContext.dynamicSkillDirTriggers).map(async(skillDir)=>{try{let candidates=(await readdir34(skillDir,{withFileTypes:!0})).filter((e)=>e.isDirectory()||e.isSymbolicLink()).map((e)=>e.name),checked=await Promise.all(candidates.map(async(name)=>{try{return await stat53(resolve51(skillDir,name,"SKILL.md")),name}catch{return null}}));return{skillDir,skillNames:checked.filter((n3)=>n3!==null)}}catch{return{skillDir,skillNames:[]}}}));for(let{skillDir,skillNames}of perDirResults)if(skillNames.length>0)attachments.push({type:"dynamic_skill",skillDir,skillNames,displayPath:relative31(getCwd(),skillDir)});toolUseContext.dynamicSkillDirTriggers.clear()}return attachments}function resetSentSkillNames(){sentSkillNames.clear(),suppressNext=!1}function suppressNextSkillListing(){suppressNext=!0}async function getSkillListingAttachments(toolUseContext){if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,SKILL_TOOL_NAME)))return[];let cwd2=getProjectRoot(),localCommands=await getSkillToolCommands(cwd2),mcpSkills=getMcpSkillCommands(toolUseContext.getAppState().mcp.commands),allCommands=mcpSkills.length>0?uniqBy_default([...localCommands,...mcpSkills],"name"):localCommands,agentKey=toolUseContext.agentId??"",sent=sentSkillNames.get(agentKey);if(!sent)sent=new Set,sentSkillNames.set(agentKey,sent);if(suppressNext){suppressNext=!1;for(let cmd of allCommands)sent.add(cmd.name);return[]}let newSkills=allCommands.filter((cmd)=>!sent.has(cmd.name));if(newSkills.length===0)return[];let isInitial=sent.size===0;for(let cmd of newSkills)sent.add(cmd.name);logForDebugging(`Sending ${newSkills.length} skills via attachment (${isInitial?"initial":"dynamic"}, ${sent.size} total sent)`);let contextWindowTokens=getContextWindowForModel(toolUseContext.options.mainLoopModel,getSdkBetas());return[{type:"skill_listing",content:formatCommandsWithinBudget(newSkills,contextWindowTokens,toolUseContext.agentId?{maxCharBudget:SUBAGENT_SKILL_LISTING_CHAR_BUDGET}:void 0),skillCount:newSkills.length,isInitial}]}function extractAtMentionedFiles(content){let quotedAtMentionRegex=/(^|\s)@"([^"]+)"/g,regularAtMentionRegex=/(^|\s)@([^\s]+)\b/g,quotedMatches=[],regularMatches=[],match;while((match=quotedAtMentionRegex.exec(content))!==null)if(match[2]&&!match[2].endsWith(" (agent)"))quotedMatches.push(match[2]);return(content.match(regularAtMentionRegex)||[]).forEach((match2)=>{let filename=match2.slice(match2.indexOf("@")+1);if(!filename.startsWith('"'))regularMatches.push(filename)}),uniq([...quotedMatches,...regularMatches])}function extractMcpResourceMentions(content){let atMentionRegex=/(^|\s)@(?!")([^\s"]+:[^\s"]+)\b/g,matches=content.match(atMentionRegex)||[];return uniq(matches.map((match)=>match.slice(match.indexOf("@")+1)).filter((m)=>!/^[A-Za-z]:[\\/]/.test(m)))}function extractAgentMentions(content){let results=[],quotedAgentRegex=/(^|\s)@"([\w:.@-]+) \(agent\)"/g,match;while((match=quotedAgentRegex.exec(content))!==null)if(match[2])results.push(match[2]);let unquotedAgentRegex=/(^|\s)@(agent-[\w:.@-]+)/g,unquotedMatches=content.match(unquotedAgentRegex)||[];for(let m of unquotedMatches)results.push(m.slice(m.indexOf("@")+1));return uniq(results)}function parseAtMentionedFileLines(mention){let match=mention.match(/^([^#]+)(?:#L(\d+)(?:-(\d+))?)?(?:#[^#]*)?$/);if(!match)return{filename:mention};let[,filename,lineStartStr,lineEndStr]=match,lineStart=lineStartStr?parseInt(lineStartStr,10):void 0,lineEnd=lineEndStr?parseInt(lineEndStr,10):lineStart;return{filename:filename??mention,lineStart,lineEnd}}async function getDiagnosticAttachments(toolUseContext){if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,BASH_TOOL_NAME)))return[];let newDiagnostics=await diagnosticTracker.getNewDiagnosticsCompat();if(newDiagnostics.length===0)return[];return[{type:"diagnostics",files:newDiagnostics,isNew:!0}]}function getLSPDiagnosticCheckOptions(now2){let currentTime=now2?.();return currentTime===void 0?{respectDebounce:!0}:{respectDebounce:!0,now:currentTime}}async function checkForStableLSPDiagnosticsAtQueryBoundary(toolUseContext,deps){let diagnosticSets=checkForLSPDiagnostics(getLSPDiagnosticCheckOptions(deps.now));if(diagnosticSets.length>0)return diagnosticSets;let nextDelay=getNextLSPDiagnosticDeliveryDelay(deps.now?.());if(nextDelay===null)return[];let waitMs=Math.min(nextDelay,LSP_DIAGNOSTIC_ATTACHMENT_MAX_WAIT_MS);if(waitMs>0)logForDebugging(`LSP Diagnostics: Waiting ${waitMs}ms for pending diagnostics to stabilize`),await(deps.wait??((ms,signal)=>sleep4(ms,signal,{unref:!0})))(waitMs,toolUseContext.abortController.signal);return checkForLSPDiagnostics(getLSPDiagnosticCheckOptions(deps.now))}async function getLSPDiagnosticAttachments(toolUseContext,deps={}){if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,BASH_TOOL_NAME)))return[];logForDebugging("LSP Diagnostics: getLSPDiagnosticAttachments called");try{let diagnosticSets=await checkForStableLSPDiagnosticsAtQueryBoundary(toolUseContext,deps);if(diagnosticSets.length===0)return[];if(diagnosticSets.reduce((count4,set3)=>count4+set3.files.reduce((fileCount,file2)=>fileCount+file2.diagnostics.length,0),0)===0)return logForDebugging("LSP Diagnostics: No diagnostic attachments to return after filtering empty diagnostic payloads"),[];logForDebugging(`LSP Diagnostics: Found ${diagnosticSets.length} pending diagnostic set(s)`);let attachments=diagnosticSets.map(({files:files2})=>({type:"diagnostics",files:files2,isNew:!0}));return logForDebugging(`LSP Diagnostics: Returning ${attachments.length} diagnostic attachment(s)`),attachments}catch(error41){let err2=toError(error41);return logError(Error(`Failed to get LSP diagnostic attachments: ${err2.message}`)),[]}}async function*getAttachmentMessages(input,toolUseContext,ideSelection,queuedCommands,messages,querySource,options2){let attachments=await getAttachments(input,toolUseContext,ideSelection,queuedCommands,messages,querySource,options2);if(attachments.length===0)return;logEvent("tengu_attachments",{attachment_types:attachments.map((_)=>_.type)});for(let attachment of attachments)yield createAttachmentMessage(attachment)}async function tryGetPDFReference(filename){let ext=parse12(filename).ext.toLowerCase();if(!isPDFExtension(ext))return null;try{let[stats2,pageCount]=await Promise.all([getFsImplementation().stat(filename),getPDFPageCount(filename)]),effectivePageCount=pageCount??Math.ceil(stats2.size/102400);if(effectivePageCount>PDF_AT_MENTION_INLINE_THRESHOLD)return logEvent("tengu_pdf_reference_attachment",{pageCount:effectivePageCount,fileSize:stats2.size,hadPdfinfo:pageCount!==null}),{type:"pdf_reference",filename,pageCount:effectivePageCount,fileSize:stats2.size,displayPath:relative31(getCwd(),filename)}}catch{}return null}async function generateFileAttachment(filename,toolUseContext,successEventName,errorEventName,mode,options2){let{offset,limit}=options2??{},appState=toolUseContext.getAppState();if(isFileReadDenied(filename,appState.toolPermissionContext))return null;if(mode==="at-mention"&&!isFileWithinReadSizeLimit(filename,getDefaultFileReadingLimits().maxSizeBytes)){let ext=parse12(filename).ext.toLowerCase();if(!isPDFExtension(ext))try{let stats2=await getFsImplementation().stat(filename);return logEvent("tengu_attachment_file_too_large",{size_bytes:stats2.size,mode}),null}catch{}}if(mode==="at-mention"){let pdfRef=await tryGetPDFReference(filename);if(pdfRef)return pdfRef}let existingFileState=toolUseContext.readFileState.get(filename);if(existingFileState&&mode==="at-mention")try{let mtimeMs=await getFileModificationTimeAsync(filename);if(existingFileState.timestamp<=mtimeMs&&mtimeMs===existingFileState.timestamp)return logEvent(successEventName,{}),{type:"already_read_file",filename,displayPath:relative31(getCwd(),filename),content:{type:"text",file:{filePath:filename,content:existingFileState.content,numLines:countCharInString(existingFileState.content,`
|
|
9122
9122
|
`)+1,startLine:offset??1,totalLines:countCharInString(existingFileState.content,`
|
|
9123
|
-
`)+1}}}}catch{}try{let fileInput={file_path:filename,offset,limit};async function readTruncatedFile(){if(mode==="compact")return{type:"compact_file_reference",filename,displayPath:relative31(getCwd(),filename)};let appState2=toolUseContext.getAppState();if(isFileReadDenied(filename,appState2.toolPermissionContext))return null;try{let truncatedInput={file_path:filename,offset:offset??1,limit:MAX_LINES_TO_READ},result=await FileReadTool.call(truncatedInput,toolUseContext);return logEvent(successEventName,{}),{type:"file",filename,content:result.data,truncated:!0,displayPath:relative31(getCwd(),filename)}}catch{return logEvent(errorEventName,{}),null}}if(!(await FileReadTool.validateInput(fileInput,toolUseContext)).result)return null;try{let result=await FileReadTool.call(fileInput,toolUseContext);return logEvent(successEventName,{}),{type:"file",filename,content:result.data,displayPath:relative31(getCwd(),filename)}}catch(error41){if(error41 instanceof MaxFileReadTokenExceededError||error41 instanceof FileTooLargeError)return await readTruncatedFile();throw error41}}catch{return logEvent(errorEventName,{}),null}}function createAttachmentMessage(attachment){return{attachment,type:"attachment",uuid:randomUUID40(),timestamp:new Date().toISOString()}}function getTodoReminderTurnCounts(messages){let lastTodoWriteIndex=-1,lastReminderIndex=-1,assistantTurnsSinceWrite=0,assistantTurnsSinceReminder=0;for(let i3=messages.length-1;i3>=0;i3--){let message=messages[i3];if(message?.type==="assistant"){if(isThinkingMessage(message))continue;if(lastTodoWriteIndex===-1&&"message"in message&&Array.isArray(message.message?.content)&&message.message.content.some((block2)=>block2.type==="tool_use"&&block2.name==="TodoWrite"))lastTodoWriteIndex=i3;if(lastTodoWriteIndex===-1)assistantTurnsSinceWrite++;if(lastReminderIndex===-1)assistantTurnsSinceReminder++}else if(lastReminderIndex===-1&&message?.type==="attachment"&&message.attachment.type==="todo_reminder")lastReminderIndex=i3;if(lastTodoWriteIndex!==-1&&lastReminderIndex!==-1)break}return{turnsSinceLastTodoWrite:assistantTurnsSinceWrite,turnsSinceLastReminder:assistantTurnsSinceReminder}}async function getTodoReminderAttachments(messages,toolUseContext){if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,TODO_WRITE_TOOL_NAME)))return[];if(BRIEF_TOOL_NAME3&&toolUseContext.options.tools.some((t)=>toolMatchesName(t,BRIEF_TOOL_NAME3)))return[];if(!messages||messages.length===0)return[];let{turnsSinceLastTodoWrite,turnsSinceLastReminder}=getTodoReminderTurnCounts(messages);if(turnsSinceLastTodoWrite>=TODO_REMINDER_CONFIG.TURNS_SINCE_WRITE&&turnsSinceLastReminder>=TODO_REMINDER_CONFIG.TURNS_BETWEEN_REMINDERS){let todoKey=toolUseContext.agentId??getSessionId(),todos=toolUseContext.getAppState().todos[todoKey]??[];return[{type:"todo_reminder",content:todos,itemCount:todos.length}]}return[]}function getTaskReminderTurnCounts(messages){let lastTaskManagementIndex=-1,lastReminderIndex=-1,assistantTurnsSinceTaskManagement=0,assistantTurnsSinceReminder=0;for(let i3=messages.length-1;i3>=0;i3--){let message=messages[i3];if(message?.type==="assistant"){if(isThinkingMessage(message))continue;if(lastTaskManagementIndex===-1&&"message"in message&&Array.isArray(message.message?.content)&&message.message.content.some((block2)=>block2.type==="tool_use"&&(block2.name===TASK_CREATE_TOOL_NAME||block2.name===TASK_UPDATE_TOOL_NAME)))lastTaskManagementIndex=i3;if(lastTaskManagementIndex===-1)assistantTurnsSinceTaskManagement++;if(lastReminderIndex===-1)assistantTurnsSinceReminder++}else if(lastReminderIndex===-1&&message?.type==="attachment"&&message.attachment.type==="task_reminder")lastReminderIndex=i3;if(lastTaskManagementIndex!==-1&&lastReminderIndex!==-1)break}return{turnsSinceLastTaskManagement:assistantTurnsSinceTaskManagement,turnsSinceLastReminder:assistantTurnsSinceReminder}}async function getTaskReminderAttachments(messages,toolUseContext){if(!isTodoV2Enabled())return[];if(process.env.USER_TYPE==="ant")return[];if(BRIEF_TOOL_NAME3&&toolUseContext.options.tools.some((t)=>toolMatchesName(t,BRIEF_TOOL_NAME3)))return[];if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,TASK_UPDATE_TOOL_NAME)))return[];if(!messages||messages.length===0)return[];let{turnsSinceLastTaskManagement,turnsSinceLastReminder}=getTaskReminderTurnCounts(messages);if(turnsSinceLastTaskManagement>=TODO_REMINDER_CONFIG.TURNS_SINCE_WRITE&&turnsSinceLastReminder>=TODO_REMINDER_CONFIG.TURNS_BETWEEN_REMINDERS){let tasks2=await listTasks(getTaskListId());return[{type:"task_reminder",content:tasks2,itemCount:tasks2.length}]}return[]}async function getUnifiedTaskAttachments(toolUseContext){let appState=toolUseContext.getAppState(),{attachments,updatedTaskOffsets,evictedTaskIds}=await generateTaskAttachments(appState);return applyTaskOffsetsAndEvictions(toolUseContext.setAppState,updatedTaskOffsets,evictedTaskIds),attachments.map((taskAttachment)=>({type:"task_status",taskId:taskAttachment.taskId,taskType:taskAttachment.taskType,status:taskAttachment.status,description:taskAttachment.description,deltaSummary:taskAttachment.deltaSummary,outputFilePath:getTaskOutputPath(taskAttachment.taskId)}))}async function getAsyncHookResponseAttachments(){let responses=await checkForAsyncHookResponses();if(responses.length===0)return[];logForDebugging(`Hooks: getAsyncHookResponseAttachments found ${responses.length} responses`);let attachments=responses.map(({processId,response,hookName,hookEvent,toolName,pluginId,stdout,stderr,exitCode})=>{return logForDebugging(`Hooks: Creating attachment for ${processId} (${hookName}): ${jsonStringify(response)}`),{type:"async_hook_response",processId,hookName,hookEvent,toolName,response,stdout,stderr,exitCode}});if(responses.length>0){let processIds=responses.map((r)=>r.processId);removeDeliveredAsyncHooks(processIds),logForDebugging(`Hooks: Removed ${processIds.length} delivered hooks from registry`)}return logForDebugging(`Hooks: getAsyncHookResponseAttachments found ${attachments.length} attachments`),attachments}async function getTeammateMailboxAttachments(toolUseContext){if(!isAgentSwarmsEnabled())return[];if(process.env.USER_TYPE!=="ant")return[];let appState=toolUseContext.getAppState(),envAgentName=getAgentName(),teamName=getTeamName(appState.teamContext),teamLeadStatus=isTeamLead(appState.teamContext),viewedTeammate=getViewedTeammateTask(appState),agentName=viewedTeammate?.identity.agentName??envAgentName;if(!agentName&&teamLeadStatus&&appState.teamContext){let leadAgentId=appState.teamContext.leadAgentId;agentName=appState.teamContext.teammates[leadAgentId]?.name||"team-lead"}if(logForDebugging(`[SwarmMailbox] getTeammateMailboxAttachments called: envAgentName=${envAgentName}, isTeamLead=${teamLeadStatus}, resolved agentName=${agentName}, teamName=${teamName}`),!agentName)return logForDebugging("[SwarmMailbox] Not checking inbox - not in a swarm or team lead"),[];logForDebugging(`[SwarmMailbox] Checking inbox for agent="${agentName}" team="${teamName||"default"}"`);let allUnreadMessages=await readUnreadMessages(agentName,teamName),unreadMessages=allUnreadMessages.filter((m)=>!isStructuredProtocolMessage(m.text));logForDebugging(`[MailboxBridge] Found ${allUnreadMessages.length} unread message(s) for "${agentName}" (${allUnreadMessages.length-unreadMessages.length} structured protocol messages filtered out)`);let pendingInboxMessages=viewedTeammate||isInProcessTeammate()?[]:appState.inbox.messages.filter((m)=>m.status==="pending");logForDebugging(`[SwarmMailbox] Found ${pendingInboxMessages.length} pending message(s) in AppState.inbox`);let seen=new Set,allMessages=[];for(let m of[...unreadMessages,...pendingInboxMessages]){let key=`${m.from}|${m.timestamp}|${m.text.slice(0,100)}`;if(!seen.has(key))seen.add(key),allMessages.push({from:m.from,text:m.text,timestamp:m.timestamp,color:m.color,summary:m.summary})}let idleAgentByIndex=new Map,latestIdleByAgent=new Map;for(let i3=0;i3<allMessages.length;i3++){let idle=isIdleNotification(allMessages[i3].text);if(idle)idleAgentByIndex.set(i3,idle.from),latestIdleByAgent.set(idle.from,i3)}if(idleAgentByIndex.size>latestIdleByAgent.size){let beforeCount=allMessages.length;allMessages=allMessages.filter((_m,i3)=>{let agent=idleAgentByIndex.get(i3);if(agent===void 0)return!0;return latestIdleByAgent.get(agent)===i3}),logForDebugging(`[SwarmMailbox] Collapsed ${beforeCount-allMessages.length} duplicate idle notification(s)`)}if(allMessages.length===0)return logForDebugging("[SwarmMailbox] No messages to deliver, returning empty"),[];logForDebugging(`[SwarmMailbox] Returning ${allMessages.length} message(s) as attachment for "${agentName}" (${unreadMessages.length} from file, ${pendingInboxMessages.length} from AppState, after dedup)`);let attachment=[{type:"teammate_mailbox",messages:allMessages}];if(unreadMessages.length>0)await markMessagesAsReadByPredicate(agentName,(m)=>!isStructuredProtocolMessage(m.text),teamName),logForDebugging(`[MailboxBridge] marked ${unreadMessages.length} non-structured message(s) as read for agent="${agentName}" team="${teamName||"default"}"`);if(teamLeadStatus&&teamName)for(let m of allMessages){let shutdownApproval=isShutdownApproved(m.text);if(shutdownApproval){let teammateToRemove=shutdownApproval.from;logForDebugging(`[SwarmMailbox] Processing shutdown_approved from ${teammateToRemove}`);let teammateId=appState.teamContext?.teammates?Object.entries(appState.teamContext.teammates).find(([,t])=>t.name===teammateToRemove)?.[0]:void 0;if(teammateId)removeTeammateFromTeamFile(teamName,{agentId:teammateId,name:teammateToRemove}),logForDebugging(`[SwarmMailbox] Removed ${teammateToRemove} from team file`),await unassignTeammateTasks(teamName,teammateId,teammateToRemove,"shutdown"),toolUseContext.setAppState((prev)=>{if(!prev.teamContext?.teammates)return prev;if(!(teammateId in prev.teamContext.teammates))return prev;let{[teammateId]:_,...remainingTeammates}=prev.teamContext.teammates;return{...prev,teamContext:{...prev.teamContext,teammates:remainingTeammates}}})}}if(pendingInboxMessages.length>0){let pendingIds=new Set(pendingInboxMessages.map((m)=>m.id));toolUseContext.setAppState((prev)=>({...prev,inbox:{messages:prev.inbox.messages.map((m)=>pendingIds.has(m.id)?{...m,status:"processed"}:m)}}))}return attachment}function getTeamContextAttachment(messages){let teamName=getTeamName(),agentId=getAgentId(),agentName=getAgentName();if(!teamName||!agentId)return[];if(messages.some((m)=>m.type==="assistant"))return[];let configDir=getClaudeConfigHomeDir(),teamConfigPath=`${configDir}/teams/${teamName}/config.json`,taskListPath=`${configDir}/tasks/${teamName}/`;return[{type:"team_context",agentId,agentName:agentName||agentId,teamName,teamConfigPath,taskListPath}]}function getTokenUsageAttachment(messages,model){if(!isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT))return[];let contextWindow=getEffectiveContextWindowSize(model),usedTokens=tokenCountFromLastAPIResponse(messages);return[{type:"token_usage",used:usedTokens,total:contextWindow,remaining:contextWindow-usedTokens}]}function getOutputTokenUsageAttachment(){{let budget=getCurrentTurnTokenBudget();if(budget===null||budget<=0)return[];return[{type:"output_token_usage",turn:getTurnOutputTokens(),session:getTotalOutputTokens(),budget}]}return[]}function getMaxBudgetUsdAttachment(maxBudgetUsd){if(maxBudgetUsd===void 0)return[];let usedCost=getTotalCostUSD(),remainingBudget=maxBudgetUsd-usedCost;return[{type:"budget_usd",used:usedCost,total:maxBudgetUsd,remaining:remainingBudget}]}function getVerifyPlanReminderTurnCount(messages){let turnCount=0;for(let i3=messages.length-1;i3>=0;i3--){let message=messages[i3];if(message&&isHumanTurn(message))turnCount++;if(message?.type==="attachment"&&message.attachment.type==="plan_mode_exit")return turnCount}return 0}async function getVerifyPlanReminderAttachment(messages,toolUseContext){if(process.env.USER_TYPE!=="ant"||!isEnvTruthy(process.env.CLAUDE_CODE_VERIFY_PLAN))return[];let pending=toolUseContext.getAppState().pendingPlanVerification;if(!pending||pending.verificationStarted||pending.verificationCompleted)return[];if(messages&&messages.length>0){let turnCount=getVerifyPlanReminderTurnCount(messages);if(turnCount===0||turnCount%VERIFY_PLAN_REMINDER_CONFIG.TURNS_BETWEEN_REMINDERS!==0)return[]}return[{type:"verify_plan_reminder"}]}function clamp2(value,min,max2){return Math.max(min,Math.min(max2,value))}function getSnipNudgeRepeatInterval(model){let effectiveWindow=getEffectiveContextWindowSize(model);return clamp2(Math.floor(effectiveWindow*SNIP_NUDGE_REPEAT_FRACTION),MIN_SNIP_NUDGE_TOKENS,MAX_SNIP_NUDGE_REPEAT_TOKENS)}function getSnipNudgeStartThreshold(model){let effectiveWindow=getEffectiveContextWindowSize(model),autoCompactThreshold=getAutoCompactThreshold(model),leadTokens=getSnipNudgeRepeatInterval(model),fractionalStart=Math.floor(effectiveWindow*SNIP_NUDGE_START_FRACTION),preAutoCompactStart=Math.max(MIN_SNIP_NUDGE_TOKENS,autoCompactThreshold-leadTokens);return Math.max(MIN_SNIP_NUDGE_TOKENS,Math.min(fractionalStart,preAutoCompactStart))}function getContextEfficiencyAttachment(messages,model){let{isSnipRuntimeEnabled:isSnipRuntimeEnabled2,shouldNudgeForSnips:shouldNudgeForSnips2}=(init_snipCompact(),__toCommonJS(exports_snipCompact));if(!isSnipRuntimeEnabled2())return[];let usedTokens=tokenCountWithEstimation(messages),startThreshold=getSnipNudgeStartThreshold(model);if(usedTokens<startThreshold)return[];let repeatInterval=getSnipNudgeRepeatInterval(model);if(!shouldNudgeForSnips2(messages,repeatInterval))return[];return[{type:"context_efficiency"}]}function isFileReadDenied(filePath,toolPermissionContext){return matchingRuleForInput(filePath,toolPermissionContext,"read","deny")!==null}var autoModeStateModule5,BRIEF_TOOL_NAME3=null,TODO_REMINDER_CONFIG,PLAN_MODE_ATTACHMENT_CONFIG,AUTO_MODE_ATTACHMENT_CONFIG,SKILL_LISTING_SUPPRESSED_QUERY_SOURCES,MAX_MEMORY_LINES=200,MAX_MEMORY_BYTES=4096,RELEVANT_MEMORIES_CONFIG,VERIFY_PLAN_REMINDER_CONFIG,ATTACHMENT_FILE_IO_CONCURRENCY=8,INLINE_NOTIFICATION_MODES,defaultAtMentionedFileDeps,defaultChangedFileDeps,sentSkillNames,suppressNext=!1,LSP_DIAGNOSTIC_ATTACHMENT_MAX_WAIT_MS,MIN_SNIP_NUDGE_TOKENS=1e4,MAX_SNIP_NUDGE_REPEAT_TOKENS=1e5,SNIP_NUDGE_START_FRACTION=0.6,SNIP_NUDGE_REPEAT_FRACTION=0.1;var init_attachments2=__esm(()=>{init_metadata();init_Tool();init_FileReadTool();init_readFileInRange();init_path2();init_fsOperations();init_tasks();init_plans();init_ide();init_claudemd();init_cwd();init_selectors();init_log2();init_debug();init_errors();init_diagnosticTracking();init_settings3();init_providers();init_effort();init_utils5();init_imageResizer();init_commands();init_uniqBy();init_state();init_prompt8();init_context();init_prompt3();init_limits();init_fileStateCache();init_abortController();init_boundedAsync();init_errors();init_file();init_loadAgentsDir();init_constants3();init_prompt10();init_permissions4();init_auth5();init_mcpStringUtils();init_filesystem();init_framework();init_diskOutput();init_LocalAgentTask();init_state();init_toolSearch();init_mcpInstructionsDelta();init_common2();init_AsyncHookRegistry();init_LSPDiagnosticRegistry();init_debug();init_messages3();init_envUtils();init_thinking();init_tokens();init_autoCompact();init_growthbook();init_hooks4();init_slowOperations();init_pdfUtils();init_common();init_pdf();init_agentSwarmsEnabled();init_findRelevantMemories();init_paths();init_agentMemory();init_teammateMailbox();init_teammate();init_teammateContext();init_teamHelpers();init_tasks();autoModeStateModule5=__toCommonJS(exports_autoModeState),TODO_REMINDER_CONFIG={TURNS_SINCE_WRITE:10,TURNS_BETWEEN_REMINDERS:10},PLAN_MODE_ATTACHMENT_CONFIG={TURNS_BETWEEN_ATTACHMENTS:5,FULL_REMINDER_EVERY_N_ATTACHMENTS:5},AUTO_MODE_ATTACHMENT_CONFIG={TURNS_BETWEEN_ATTACHMENTS:5,FULL_REMINDER_EVERY_N_ATTACHMENTS:5},SKILL_LISTING_SUPPRESSED_QUERY_SOURCES=new Set(["compact","extract_memories","session_memory"]);RELEVANT_MEMORIES_CONFIG={MAX_SESSION_BYTES:61440},VERIFY_PLAN_REMINDER_CONFIG={TURNS_BETWEEN_REMINDERS:10};INLINE_NOTIFICATION_MODES=new Set(["prompt","task-notification"]);defaultAtMentionedFileDeps={stat:stat53,readdir:readdir34,generateFileAttachment:(filename,toolUseContext,successEventName,errorEventName,mode,options2)=>generateFileAttachment(filename,toolUseContext,successEventName,errorEventName,mode,options2)};defaultChangedFileDeps={getFileModificationTime:getFileModificationTimeAsync,validateFileReadInput:(input,context2)=>FileReadTool.validateInput(input,context2),readFile:(input,context2)=>FileReadTool.call(input,context2),readEditedImageAttachment:tryReadEditedImageAttachment};sentSkillNames=new Map;LSP_DIAGNOSTIC_ATTACHMENT_MAX_WAIT_MS=DIAGNOSTIC_DELIVERY_DEBOUNCE_MS});var exports_udsClient={};__export(exports_udsClient,{sendToUdsSocket:()=>sendToUdsSocket,listAllLiveSessions:()=>listAllLiveSessions});async function listAllLiveSessions(){return[]}async function sendToUdsSocket(_socketPath,_message){throw Error("UDS messaging is unavailable in this build")}var exports_conversationRecovery={};__export(exports_conversationRecovery,{stripThinkingBlocksIfProviderAllows:()=>stripThinkingBlocksIfProviderAllows,restoreSkillStateFromMessages:()=>restoreSkillStateFromMessages,loadMessagesFromJsonlPath:()=>loadMessagesFromJsonlPath,loadConversationForResumeFromPr:()=>loadConversationForResumeFromPr,loadConversationForResume:()=>loadConversationForResume,findResumeSessionIdByPrSelector:()=>findResumeSessionIdByPrSelector,findResumeLogByPrSelector:()=>findResumeLogByPrSelector,deserializeMessagesWithInterruptDetection:()=>deserializeMessagesWithInterruptDetection,deserializeMessages:()=>deserializeMessages,collectLiveBackgroundSessionIds:()=>collectLiveBackgroundSessionIds,ResumeTranscriptTooLargeError:()=>ResumeTranscriptTooLargeError});import{relative as relative32}from"path";function assertResumeMessageSize(messages){let bytes=Buffer.byteLength(jsonStringify(messages),"utf8");if(bytes>MAX_RESUME_MESSAGE_BYTES)throw new ResumeTranscriptTooLargeError(bytes,MAX_RESUME_MESSAGE_BYTES,messages.length)}function isRecord12(value){return typeof value==="object"&&value!==null}function isNonEmptyString(value){return typeof value==="string"&&value.length>0}function getAttachmentRecord(message){if(message.type!=="attachment")return null;let attachment=message.attachment;if(!isRecord12(attachment)||typeof attachment.type!=="string")return null;return attachment}function migrateLegacyAttachmentTypes(message){if(message.type!=="attachment")return message;let attachment=getAttachmentRecord(message);if(!attachment)return null;if(attachment.type==="new_file"){if(!isNonEmptyString(attachment.filename))return null;return{...message,attachment:{...attachment,type:"file",displayPath:relative32(getCwd(),attachment.filename)}}}if(attachment.type==="new_directory"){if(!isNonEmptyString(attachment.path))return null;return{...message,attachment:{...attachment,type:"directory",displayPath:relative32(getCwd(),attachment.path)}}}if(!("displayPath"in attachment)){let path25=isNonEmptyString(attachment.filename)?attachment.filename:isNonEmptyString(attachment.path)?attachment.path:isNonEmptyString(attachment.skillDir)?attachment.skillDir:void 0;if(path25)return{...message,attachment:{...attachment,displayPath:relative32(getCwd(),path25)}}}return message}function stripThinkingBlocks(messages){return messages.reduce((acc,msg)=>{if(msg.type!=="assistant"||!Array.isArray(msg.message?.content))return acc.push(msg),acc;let filtered=msg.message.content.filter((block2)=>block2.type!=="thinking"&&block2.type!=="redacted_thinking");if(filtered.length===0)return acc;return acc.push({...msg,message:{...msg.message,content:filtered}}),acc},[])}function shouldPreserveThinkingBlocksForProviderReplay(){return resolveOpenAIShimRuntimeContext({processEnv:process.env,baseUrl:process.env.OPENAI_BASE_URL,model:process.env.OPENAI_MODEL}).openaiShimConfig.preserveReasoningContent===!0}function stripThinkingBlocksIfProviderAllows(messages){let provider2=getAPIProvider(),isAnthropicNativeTransport=usesAnthropicNativeMessageFormat({processEnv:process.env,model:process.env.OPENAI_MODEL,providerCategory:provider2});if(provider2!=="foundry"&&!isAnthropicNativeTransport&&!shouldPreserveThinkingBlocksForProviderReplay())return stripThinkingBlocks(messages);return messages}function parsePrIdentifier(value){let directNumber=parseInt(value,10);if(!isNaN(directNumber)&&directNumber>0)return directNumber;let urlMatch=value.match(/github\.com\/[^/]+\/[^/]+\/pull\/(\d+)/);if(urlMatch?.[1])return parseInt(urlMatch[1],10);return null}function findResumeLogByPrSelector(logs,selector){let candidates=logs.filter((log2)=>!log2.isSidechain);if(selector===!0)return candidates.find((log2)=>log2.prNumber!==void 0)??null;if(typeof selector==="number")return candidates.find((log2)=>log2.prNumber===selector)??null;let prNumber=parsePrIdentifier(selector);if(prNumber!==null)return candidates.find((log2)=>log2.prNumber===prNumber)??null;return null}function deserializeMessages(serializedMessages){return deserializeMessagesWithInterruptDetection(serializedMessages).messages}function deserializeMessagesWithInterruptDetection(serializedMessages){try{let migratedMessages=serializedMessages.flatMap((message)=>{let migratedMessage=migrateLegacyAttachmentTypes(message);return migratedMessage?[migratedMessage]:[]}),validModes=new Set(PERMISSION_MODES);for(let msg of migratedMessages)if(msg.type==="user"&&msg.permissionMode!==void 0&&(!validModes.has(msg.permissionMode)||isDangerousPermissionMode(msg.permissionMode)))msg.permissionMode=void 0;let filteredToolUses=filterUnresolvedToolUses(migratedMessages),filteredThinking=filterOrphanedThinkingOnlyMessages(filteredToolUses),thinkingStripped=stripThinkingBlocksIfProviderAllows(filteredThinking),filteredMessages=filterWhitespaceOnlyAssistantMessages(thinkingStripped),internalState=detectTurnInterruption(filteredMessages),turnInterruptionState;if(internalState.kind==="interrupted_turn"){let[continuationMessage]=normalizeMessages([createUserMessage({content:"Continue from where you left off.",isMeta:!0})]);filteredMessages.push(continuationMessage),turnInterruptionState={kind:"interrupted_prompt",message:continuationMessage}}else turnInterruptionState=internalState;let lastRelevantIdx=filteredMessages.findLastIndex((m)=>m.type!=="system"&&m.type!=="progress");if(lastRelevantIdx!==-1&&filteredMessages[lastRelevantIdx].type==="user")filteredMessages.splice(lastRelevantIdx+1,0,createAssistantMessage({content:NO_RESPONSE_REQUESTED}));return{messages:filteredMessages,turnInterruptionState}}catch(error41){throw logError(error41),error41}}async function collectLiveBackgroundSessionIds(deps={}){let skip=new Set;try{let live=await(deps.listAllLiveSessions??(await Promise.resolve().then(() => exports_udsClient)).listAllLiveSessions)();for(let session2 of live)if(session2.kind&&session2.kind!=="interactive"&&session2.sessionId)skip.add(session2.sessionId)}catch{}try{let{refreshBackgroundSessionStatuses:refreshBackgroundSessionStatuses2,isTerminalBackgroundSession:isTerminalBackgroundSession2}=deps;if(!refreshBackgroundSessionStatuses2||!isTerminalBackgroundSession2){let bgRegistry=await Promise.resolve().then(() => (init_bgRegistry(),exports_bgRegistry));refreshBackgroundSessionStatuses2??=bgRegistry.refreshBackgroundSessionStatuses,isTerminalBackgroundSession2??=bgRegistry.isTerminalBackgroundSession}let sessions=await refreshBackgroundSessionStatuses2();for(let session2 of sessions)if(!isTerminalBackgroundSession2(session2))skip.add(session2.sessionId)}catch{}return skip}function detectTurnInterruption(messages){if(messages.length===0)return{kind:"none"};let lastMessageIdx=messages.findLastIndex((m)=>m.type!=="system"&&m.type!=="progress"&&!(m.type==="assistant"&&m.isApiErrorMessage)),lastMessage=lastMessageIdx!==-1?messages[lastMessageIdx]:void 0;if(!lastMessage)return{kind:"none"};if(lastMessage.type==="assistant")return{kind:"none"};if(lastMessage.type==="user"){if(lastMessage.isMeta||lastMessage.isCompactSummary)return{kind:"none"};if(isToolUseResultMessage(lastMessage)){if(isTerminalToolResult(lastMessage,messages,lastMessageIdx))return{kind:"none"};return{kind:"interrupted_turn"}}return{kind:"interrupted_prompt",message:lastMessage}}if(lastMessage.type==="attachment")return{kind:"interrupted_turn"};return{kind:"none"}}function isTerminalToolResult(result,messages,resultIdx){let content=result.message.content;if(!Array.isArray(content))return!1;let block2=content[0];if(block2?.type!=="tool_result")return!1;let toolUseId=block2.tool_use_id;for(let i3=resultIdx-1;i3>=0;i3--){let msg=messages[i3];if(msg.type!=="assistant")continue;for(let b of msg.message.content)if(b.type==="tool_use"&&b.id===toolUseId)return b.name===BRIEF_TOOL_NAME4||b.name===LEGACY_BRIEF_TOOL_NAME2||b.name===SEND_USER_FILE_TOOL_NAME2}return!1}function restoreSkillStateFromMessages(messages){for(let message of messages){if(message.type!=="attachment")continue;let attachment=getAttachmentRecord(message);if(!attachment)continue;if(attachment.type==="invoked_skills"){if(!Array.isArray(attachment.skills))continue;for(let skill of attachment.skills)if(isRecord12(skill)&&isNonEmptyString(skill.name)&&isNonEmptyString(skill.path)&&isNonEmptyString(skill.content))addInvokedSkill(skill.name,skill.path,skill.content,null)}if(attachment.type==="skill_listing")suppressNextSkillListing()}}async function loadMessagesFromJsonlPath(path25){let{messages:byUuid,goalStates,leafUuids}=await loadTranscriptFile(path25),tip=null,tipTs=0;for(let m of byUuid.values()){if(m.isSidechain||!leafUuids.has(m.uuid))continue;let ts=new Date(m.timestamp).getTime();if(ts>tipTs)tipTs=ts,tip=m}if(!tip)return{messages:[],sessionId:void 0,goal:void 0};let chain2=buildConversationChain(byUuid,tip),sessionId=tip.sessionId;return{messages:removeExtraFields(chain2),sessionId,goal:sessionId?goalStates.get(sessionId):void 0}}async function loadConversationForResume(source,sourceJsonlFile){try{let log2=null,messages=null,sessionId,goal2;if(source===void 0){let logsPromise=loadMessageLogs(),skip=new Set;skip=await collectLiveBackgroundSessionIds(),log2=(await logsPromise).find((l)=>{let id=getSessionIdFromLog(l);return!id||!skip.has(id)})??null}else if(sourceJsonlFile){let loaded=await loadMessagesFromJsonlPath(sourceJsonlFile);messages=loaded.messages,sessionId=loaded.sessionId,goal2=loaded.goal}else if(typeof source==="string")log2=await getLastSessionLog(source),sessionId=source;else log2=source;if(!log2&&!messages)return null;if(log2){if(isLiteLog(log2))log2=await loadFullLog(log2);if(!sessionId)sessionId=getSessionIdFromLog(log2);if(goal2=log2.goal,sessionId)await copyPlanForResume(log2,asSessionId(sessionId));copyFileHistoryForResume(log2),messages=log2.messages,checkResumeConsistency(messages)}restoreSkillStateFromMessages(messages);let deserialized=deserializeMessagesWithInterruptDetection(messages);messages=deserialized.messages,assertResumeMessageSize(messages);let hookMessages=await processSessionStartHooks("resume",{sessionId});return messages.push(...hookMessages),assertResumeMessageSize(messages),{messages,turnInterruptionState:deserialized.turnInterruptionState,fileHistorySnapshots:log2?.fileHistorySnapshots,attributionSnapshots:log2?.attributionSnapshots,contentReplacements:log2?.contentReplacements,contextCollapseCommits:log2?.contextCollapseCommits,contextCollapseSnapshot:log2?.contextCollapseSnapshot,sessionId,agentName:log2?.agentName,agentColor:log2?.agentColor,agentSetting:log2?.agentSetting,customTitle:log2?.customTitle,tag:log2?.tag,mode:log2?.mode,worktreeSession:log2?.worktreeSession,prNumber:log2?.prNumber,prUrl:log2?.prUrl,prRepository:log2?.prRepository,goal:goal2,fullPath:log2?.fullPath}}catch(error41){throw logError(error41),error41}}async function loadConversationForResumeFromPr(selector){let log2=findResumeLogByPrSelector(await loadMessageLogs(),selector);if(!log2)return null;return loadConversationForResume(log2,void 0)}async function findResumeSessionIdByPrSelector(selector){let log2=findResumeLogByPrSelector(await loadMessageLogs(),selector);if(!log2)return null;return getSessionIdFromLog(log2)??null}var BRIEF_TOOL_NAME4=null,LEGACY_BRIEF_TOOL_NAME2=null,SEND_USER_FILE_TOOL_NAME2=null,MAX_RESUME_MESSAGE_BYTES=8388608,ResumeTranscriptTooLargeError;var init_conversationRecovery=__esm(()=>{init_cwd();init_state();init_ids();init_permissions();init_attachments2();init_fileHistory();init_log2();init_providers();init_runtimeMetadata();init_messages3();init_plans();init_sessionStart();init_sessionStorage();init_slowOperations();init_PermissionMode();ResumeTranscriptTooLargeError=class ResumeTranscriptTooLargeError extends Error{bytes;maxBytes;messageCount;constructor(bytes,maxBytes,messageCount){super(`Reconstructed transcript is too large to resume safely (${(bytes/1048576).toFixed(1)} MiB > ${(maxBytes/1048576).toFixed(1)} MiB, ${messageCount} messages).`);this.bytes=bytes;this.maxBytes=maxBytes;this.messageCount=messageCount;this.name="ResumeTranscriptTooLargeError"}}});var exports_bg={};__export(exports_bg,{terminateBackgroundSessionProcessTree:()=>terminateBackgroundSessionProcessTree,terminateBackgroundProcessTree:()=>terminateBackgroundProcessTree,psHandler:()=>psHandler,printExistingLog:()=>printExistingLog,parseLogsInvocation:()=>parseLogsInvocation,parseBackgroundInvocation:()=>parseBackgroundInvocation,logsHandler:()=>logsHandler,killHandler:()=>killHandler,killBackgroundSession:()=>killBackgroundSession,handleBgFlag:()=>handleBgFlag,followLogFile:()=>followLogFile,buildBackgroundSessionLaunch:()=>buildBackgroundSessionLaunch,buildBackgroundChildProcessConfig:()=>buildBackgroundChildProcessConfig,attachHandler:()=>attachHandler,LOG_STREAM_CHUNK_SIZE:()=>LOG_STREAM_CHUNK_SIZE});import{spawn as spawn14}from"node:child_process";import{randomUUID as randomUUID41}from"node:crypto";import{closeSync as closeSync5,openSync as openSync6}from"node:fs";import{open as open19,unlink as unlink28}from"node:fs/promises";import{basename as basename52}from"node:path";function safeNodeExecArgvForBackground(execArgv2){return execArgv2.filter((arg)=>arg==="--expose-gc"||arg.startsWith("--max-old-space-size")||arg.startsWith("--heapsnapshot-near-heap-limit"))}function buildBackgroundChildProcessConfig(input){let env5={...input.processEnv,CLAUDE_CODE_ENTRYPOINT:"bg",CLAUDE_CODE_SESSION_KIND:"bg",CLAUDE_CODE_SESSION_LOG:input.stdoutLogPath,...input.sessionName?{CLAUDE_CODE_SESSION_NAME:input.sessionName}:{}};return delete env5[HEAP_RELAUNCHED_ENV],{command:input.execPath,args:[...safeNodeExecArgvForBackground(input.execArgv),input.entrypoint,...input.childArgs],env:env5}}function fail(message){console.error(`Error: ${message}`),process.exit(1)}function errorMessage3(error41){return error41 instanceof Error?error41.message:String(error41)}async function resolveSessionOrExit(target){try{return await resolveBackgroundSession(target)}catch(error41){fail(errorMessage3(error41))}}function stripBackgroundFlag(args){let delimiterIndex=args.indexOf("--"),head=delimiterIndex===-1?args:args.slice(0,delimiterIndex),tail=delimiterIndex===-1?[]:args.slice(delimiterIndex);return[...head.filter((arg)=>arg!=="--bg"&&arg!=="--background"),...tail]}function findPromptIndex(args){let dashDash=args.indexOf("--");if(dashDash!==-1)return dashDash+1<args.length?dashDash+1:-1;let consumedValues=new Set;for(let i3=0;i3<args.length-1;i3++){let arg=args[i3];if(REQUIRED_OPTION_VALUE_FLAGS.has(arg)){consumedValues.add(i3+1),i3++;continue}if(SPACE_OPTIONAL_VALUE_FLAGS.has(arg)){let next=args[i3+1];if(next&&!next.startsWith("-"))consumedValues.add(i3+1),i3++;continue}if(INLINE_OPTIONAL_VALUE_FLAGS.has(arg))continue}for(let i3=args.length-1;i3>=0;i3--){if(consumedValues.has(i3))continue;let arg=args[i3];if(arg==="--")continue;if(!arg.startsWith("-"))return i3}return-1}function findFlagValue(args,flag){let inlinePrefix=`${flag}=`,searchable=argsBeforeDelimiter(args);for(let i3=0;i3<searchable.length;i3++){let arg=searchable[i3];if(arg.startsWith(inlinePrefix))return arg.slice(inlinePrefix.length);if(arg===flag&&i3+1<searchable.length&&!searchable[i3+1]?.startsWith("-"))return searchable[i3+1]}return}function findSessionName(args){return findFlagValue(args,"--name")??findFlagValue(args,"-n")}function hasPrintMode(args){let searchable=argsBeforeDelimiter(args);return searchable.includes("--print")||searchable.includes("-p")}function insertBeforePrompt(args,values3){let next=[...args],delimiterIndex=next.indexOf("--"),insertionIndex=delimiterIndex===-1?findPromptIndex(next):delimiterIndex;return next.splice(insertionIndex===-1?next.length:insertionIndex,0,...values3),next}function withGeneratedSessionId(args,sessionId){if(findFlagValue(args,"--session-id"))return args;return insertBeforePrompt(args,["--session-id",sessionId])}function hasForkSession(args){return argsBeforeDelimiter(args).includes("--fork-session")}function findFromPrSelector(args){let searchable=argsBeforeDelimiter(args),inlinePrefix="--from-pr=";for(let i3=0;i3<searchable.length;i3++){let arg=searchable[i3];if(arg.startsWith("--from-pr="))return arg.slice(10)||!0;if(arg==="--from-pr"){let next=searchable[i3+1];return next&&!next.startsWith("-")?next:!0}}return}function hasResumeSource(args){return Boolean(findFlagValue(args,"--resume")??findFlagValue(args,"-r")??findFromPrSelector(args))}async function resolvePrResumeSessionId(selector,deps){if(deps.resolvePrResumeSessionId)return deps.resolvePrResumeSessionId(selector);let{findResumeSessionIdByPrSelector:findResumeSessionIdByPrSelector2}=await Promise.resolve().then(() => (init_conversationRecovery(),exports_conversationRecovery));return findResumeSessionIdByPrSelector2(selector)}async function buildBackgroundSessionLaunch(childArgs,generatedSessionId,deps={}){let explicitSessionId=findFlagValue(childArgs,"--session-id");if(explicitSessionId)return{childArgs,sessionId:explicitSessionId};let resumeSessionId=findFlagValue(childArgs,"--resume")??findFlagValue(childArgs,"-r");if(resumeSessionId&&!hasForkSession(childArgs))return{childArgs,sessionId:resumeSessionId};let fromPrSelector=findFromPrSelector(childArgs);if(fromPrSelector!==void 0&&!hasForkSession(childArgs)){let sessionId=await resolvePrResumeSessionId(fromPrSelector,deps);if(!sessionId){let description=fromPrSelector===!0?"any PR":`PR selector: ${fromPrSelector}`;throw Error(`No conversation found linked to ${description}`)}return{childArgs,sessionId}}return{childArgs:withGeneratedSessionId(childArgs,generatedSessionId),sessionId:generatedSessionId}}function parseBackgroundInvocation(args){let childArgs=stripBackgroundFlag(args),name=findSessionName(childArgs)?.trim()||void 0,promptIndex=findPromptIndex(childArgs),prompt=promptIndex===-1?void 0:childArgs[promptIndex];if(!hasPrintMode(childArgs))childArgs=insertBeforePrompt(childArgs,["--print"]);return{...name?{name}:{},...prompt?{prompt}:{},childArgs}}function parseLogsInvocation(args){let follow=!1,stream4="stdout",target;for(let arg of args){if(arg==="-f"||arg==="--follow"){follow=!0;continue}if(arg==="--stderr"){stream4="stderr";continue}if(arg==="--stdout"){stream4="stdout";continue}target??=arg}return{target,follow,stream:stream4}}function backgroundSessionId(){return`bg-${randomUUID41().slice(0,8)}`}function formatCommand(command11){return command11.map((part)=>/\s/.test(part)?JSON.stringify(part):part).join(" ")}function printSessionTable(sessions){if(sessions.length===0){console.log("No background sessions.");return}let rows=[["ID","STATUS","PID","NAME","STARTED","CWD"],...sessions.map((session2)=>[session2.id,session2.status,String(session2.pid),session2.name??"-",session2.startedAt,session2.cwd])],widths=rows[0].map((_,col)=>Math.max(...rows.map((row)=>row[col].length)));for(let row of rows)console.log(row.map((cell,i3)=>cell.padEnd(widths[i3])).join(" "))}function isOutputClosed(output){return output.destroyed===!0||output.writableDestroyed===!0}function normalizeChunkSize(chunkSize){if(!Number.isFinite(chunkSize)||!chunkSize||chunkSize<1)return LOG_STREAM_CHUNK_SIZE;return Math.floor(chunkSize)}async function waitForDrain(output,signal){if(signal?.aborted||isOutputClosed(output))return!1;return await new Promise((resolve52)=>{let settled=!1,cleanup=()=>{output.off("drain",onDrain),output.off("error",onError),output.off("close",onClose),signal?.removeEventListener("abort",onAbort)},finish=(open20)=>{if(settled)return;settled=!0,cleanup(),resolve52(open20)},onDrain=()=>finish(!isOutputClosed(output)),onError=()=>finish(!1),onClose=()=>finish(!1),onAbort=()=>finish(!1);output.once("drain",onDrain),output.once("error",onError),output.once("close",onClose),signal?.addEventListener("abort",onAbort,{once:!0})})}async function writeLogBuffer(output,buffer,signal){if(buffer.length===0)return!0;if(signal?.aborted||isOutputClosed(output))return!1;try{if(output.write(buffer))return!isOutputClosed(output)}catch{return!1}return await waitForDrain(output,signal)}async function streamLogRange(handle2,start,endExclusive,options2){let output=options2.output??process.stdout,chunkSize=normalizeChunkSize(options2.chunkSize),createBuffer=options2.createBuffer??Buffer.allocUnsafe,position=start;while(position<endExclusive){if(options2.signal?.aborted)return{position,outputOpen:!1};let bytesToRead=Math.min(chunkSize,endExclusive-position),buffer=createBuffer(bytesToRead);if(buffer.length<bytesToRead)throw Error("Log stream buffer factory returned a short buffer");let bytesRead;try{bytesRead=(await handle2.read(buffer,0,bytesToRead,position)).bytesRead}catch(error41){if(!options2.continueOnFileError)throw error41;return{position,outputOpen:!0}}if(bytesRead<=0)break;if(options2.signal?.aborted)return{position,outputOpen:!1};let chunk2=bytesRead===buffer.length?buffer:buffer.subarray(0,bytesRead);if(!await writeLogBuffer(output,chunk2,options2.signal))return{position,outputOpen:!1};position+=bytesRead}return{position,outputOpen:!0}}async function streamLogSnapshot(path25,offset,options2){let handle2;try{handle2=await(options2.openFile??open19)(path25,"r")}catch(error41){if(!options2.continueOnFileError)throw error41;return{position:offset,outputOpen:!0}}let result={position:offset,outputOpen:!0};try{let{size}=await handle2.stat(),start=size<offset?0:offset;return result=size<=start?{position:start,outputOpen:!0}:await streamLogRange(handle2,start,size,options2),result}catch(error41){if(!options2.continueOnFileError)throw error41;return result}finally{if(options2.continueOnFileError)await handle2.close().catch(()=>{return});else await handle2.close()}}async function printExistingLog(path25,options2={}){return(await streamLogSnapshot(path25,0,options2)).position}async function followLogFile(path25,offset,options2={}){let output=options2.output??process.stdout,cleanupController=new AbortController,position=offset,reading=!1,stopped=!1,timer,activePoll;await new Promise((resolve52)=>{let cleanup=()=>{if(stopped)return;if(stopped=!0,timer)(options2.clearInterval??clearInterval)(timer);cleanupController.abort(),process.off("SIGINT",cleanup),process.off("SIGTERM",cleanup),options2.signal?.removeEventListener("abort",cleanup);let pendingPoll=activePoll;if(pendingPoll)pendingPoll.finally(resolve52);else resolve52()},poll=()=>{if(stopped||reading)return;reading=!0;let pollPromise=(async()=>{try{let result=await streamLogSnapshot(path25,position,{...options2,output,signal:cleanupController.signal,continueOnFileError:!0});if(position=result.position,!result.outputOpen)cleanup()}finally{reading=!1}})();activePoll=pollPromise,pollPromise.finally(()=>{if(activePoll===pollPromise)activePoll=void 0})};if(process.once("SIGINT",cleanup),process.once("SIGTERM",cleanup),options2.signal?.aborted){cleanup();return}options2.signal?.addEventListener("abort",cleanup,{once:!0}),timer=(options2.setInterval??setInterval)(poll,options2.pollIntervalMs??LOG_FOLLOW_POLL_INTERVAL_MS)})}function normalizeArgs(args){if(Array.isArray(args))return args;return args?[args]:[]}function sleep10(ms){return new Promise((resolve52)=>setTimeout(resolve52,ms))}async function treeKillAsync(pid,signal){await new Promise((resolve52,reject2)=>{import_tree_kill2.default(pid,signal,(error41)=>{if(error41&&isProcessRunning(pid)){reject2(error41);return}resolve52()})})}async function waitForProcessExit(pid,options2){let attempts=Math.max(1,Math.ceil(options2.graceMs/options2.pollIntervalMs));for(let i3=0;i3<attempts;i3++){if(!options2.isProcessAlive(pid))return!0;await options2.sleep(options2.pollIntervalMs)}return!options2.isProcessAlive(pid)}async function terminateBackgroundProcessTree(pid,options2){let isProcessAlive=options2?.isProcessAlive??isProcessRunning,killTree=options2?.killTree??treeKillAsync,sleepFn=options2?.sleep??sleep10,pollIntervalMs=options2?.pollIntervalMs??DEFAULT_KILL_POLL_INTERVAL_MS;if(options2?.verifyBeforeSignal){if(await options2.verifyBeforeSignal(pid,"SIGTERM")==="not-running")return}else if(!isProcessAlive(pid))return;if(await killTree(pid,"SIGTERM"),await waitForProcessExit(pid,{isProcessAlive,sleep:sleepFn,graceMs:options2?.termGraceMs??DEFAULT_TERM_GRACE_MS,pollIntervalMs}))return;if(await options2?.verifyBeforeSignal?.(pid,"SIGKILL")==="not-running")return;if(await killTree(pid,"SIGKILL"),await waitForProcessExit(pid,{isProcessAlive,sleep:sleepFn,graceMs:options2?.killGraceMs??DEFAULT_KILL_GRACE_MS,pollIntervalMs}))return;throw Error(`Process ${pid} did not exit after SIGKILL`)}function unverifiedProcessError(session2,reason){return Error(`Claudio refused to signal an unverified process for background session ${session2.id} (PID ${session2.pid}): ${reason}. Re-run \`openclaude ps\` and retry after confirming the session identity.`)}async function terminateBackgroundSessionProcessTree(session2,options2={}){let getLiveness=(pid)=>getBackgroundSessionProcessLiveness(pid,options2);await terminateBackgroundProcessTree(session2.pid,{...options2,isProcessAlive:(pid)=>getLiveness(pid)!=="not-running",verifyBeforeSignal:async(pid)=>{let identity4=verifySelectedBackgroundSessionIdentity(session2,options2);if(pid!==session2.pid)throw unverifiedProcessError(session2,"the identity check did not correspond to the selected session and PID");return authorizeBackgroundSessionSignal(session2,identity4)}})}function verifySelectedBackgroundSessionIdentity(session2,options2){let identity4;if(options2.verifySessionIdentity)try{identity4=options2.verifySessionIdentity(session2)}catch{throw unverifiedProcessError(session2,"the live process identity could not be read")}else identity4=verifyBackgroundSessionProcessIdentity(session2,options2);if(identity4.backgroundSessionId!==session2.id||identity4.pid!==session2.pid)throw unverifiedProcessError(session2,"the identity check did not correspond to the selected session and PID");return identity4}function authorizeBackgroundSessionSignal(session2,identity4){if(identity4.state==="not-running")return"not-running";if(identity4.state==="matches")return"matches";throw unverifiedProcessError(session2,identity4.state==="mismatch"?"the PID now belongs to a different process":"the live process identity could not be read")}async function killBackgroundSession(session2,options2={}){let markKilled=options2.markKilled??(async(selected)=>await markBackgroundSessionKilled(selected.id));if(isTerminalBackgroundSession(session2))return await markKilled(session2);let identity4=verifySelectedBackgroundSessionIdentity(session2,options2);if(authorizeBackgroundSessionSignal(session2,identity4)==="matches")await terminateBackgroundSessionProcessTree(session2,options2);return await markKilled(session2)}async function psHandler(_args){let sessions=await refreshBackgroundSessionStatuses();printSessionTable(sessions)}async function logsHandler(args){let parsed=parseLogsInvocation(normalizeArgs(args));if(!parsed.target)fail("Usage: openclaude logs <id-or-name> [-f]");await refreshBackgroundSessionStatuses();let session2=await resolveSessionOrExit(parsed.target),logPath=parsed.stream==="stderr"?session2.stderrLogPath:session2.stdoutLogPath;if(!await backgroundSessionLogExists(logPath))fail(`Log file does not exist: ${logPath}`);let offset;try{offset=await printExistingLog(logPath,{continueOnFileError:parsed.follow})}catch(error41){fail(`Failed to read log file: ${errorMessage3(error41)}`)}if(parsed.follow)await followLogFile(logPath,offset)}async function attachHandler(args){let target=normalizeArgs(args)[0];if(!target)fail("Usage: openclaude attach <id-or-name>");await refreshBackgroundSessionStatuses();let session2=await resolveSessionOrExit(target);console.error(`Attach is not implemented for local background sessions yet. Use \`openclaude logs ${session2.id} -f\` to follow output.`),process.exitCode=1}async function killHandler(args){let target=normalizeArgs(args)[0];if(!target)fail("Usage: openclaude kill <id-or-name>");await refreshBackgroundSessionStatuses();let session2=await resolveSessionOrExit(target),killed=await killBackgroundSession(session2).catch((error41)=>{fail(`Failed to kill background session ${session2.id}: ${errorMessage3(error41)}`)});console.log(`Killed background session ${killed.id}.`)}async function handleBgFlag(args){let parsed=parseBackgroundInvocation(args);if(!parsed.prompt&&!hasResumeSource(parsed.childArgs))fail('Usage: openclaude --bg [--name <name>] "<prompt>"');try{await assertBackgroundSessionNameAvailable(parsed.name)}catch(error41){fail(errorMessage3(error41))}let id=backgroundSessionId(),{childArgs,sessionId}=await buildBackgroundSessionLaunch(parsed.childArgs,randomUUID41()).catch((error41)=>{fail(errorMessage3(error41))}),logPaths=getBackgroundSessionLogPaths(id);await ensureBackgroundSessionDirs();let entrypoint=process.argv[1];if(!entrypoint)fail("Cannot determine Claudio entrypoint for background session");let childConfig=buildBackgroundChildProcessConfig({execPath:process.execPath,execArgv:process.execArgv,entrypoint,childArgs,processEnv:process.env,sessionName:parsed.name,stdoutLogPath:logPaths.stdoutLogPath}),stdoutFd,stderrFd,createdStdoutLog=!1,createdStderrLog=!1,cleanupCreatedLogs=async()=>{if(createdStdoutLog)await unlink28(logPaths.stdoutLogPath).catch(()=>{});if(createdStderrLog)await unlink28(logPaths.stderrLogPath).catch(()=>{})},child;try{stdoutFd=openSync6(logPaths.stdoutLogPath,"wx"),createdStdoutLog=!0,stderrFd=openSync6(logPaths.stderrLogPath,"wx"),createdStderrLog=!0,child=spawn14(childConfig.command,childConfig.args,{cwd:process.cwd(),detached:!0,env:childConfig.env,stdio:["ignore",stdoutFd,stderrFd]}),child.unref()}catch(error41){if(stdoutFd!==void 0)closeSync5(stdoutFd),stdoutFd=void 0;if(stderrFd!==void 0)closeSync5(stderrFd),stderrFd=void 0;await cleanupCreatedLogs(),fail(`Failed to start background session: ${errorMessage3(error41)}`)}finally{if(stdoutFd!==void 0)closeSync5(stdoutFd);if(stderrFd!==void 0)closeSync5(stderrFd)}if(!child.pid)await cleanupCreatedLogs(),fail("Failed to start background session");let command11=[childConfig.command,...childConfig.args],session2=await createBackgroundSession({id,name:parsed.name,pid:child.pid,cwd:process.cwd(),command:command11,provider:findFlagValue(childArgs,"--provider"),model:findFlagValue(childArgs,"--model"),sessionId,stdoutLogPath:logPaths.stdoutLogPath,stderrLogPath:logPaths.stderrLogPath,logFilesPrecreated:!0}).catch(async(error41)=>{await terminateBackgroundProcessTree(child.pid).catch(()=>{}),await cleanupCreatedLogs(),fail(errorMessage3(error41))});if(console.log(`Started background session ${session2.id}.`),session2.name)console.log(`Name: ${session2.name}`);console.log(`PID: ${session2.pid}`),console.log(`Logs: ${session2.stdoutLogPath}`),console.log(`Follow: openclaude logs ${session2.id} -f`),console.log(`Command: ${formatCommand([basename52(childConfig.command),...childConfig.args])}`)}var import_tree_kill2,HEAP_RELAUNCHED_ENV="OPENCLAUDE_HEAP_RELAUNCHED",DEFAULT_TERM_GRACE_MS=2000,DEFAULT_KILL_GRACE_MS=2000,DEFAULT_KILL_POLL_INTERVAL_MS=100,LOG_STREAM_CHUNK_SIZE=65536,LOG_FOLLOW_POLL_INTERVAL_MS=500,REQUIRED_OPTION_VALUE_FLAGS,INLINE_OPTIONAL_VALUE_FLAGS,SPACE_OPTIONAL_VALUE_FLAGS;var init_bg=__esm(()=>{init_genericProcessUtils();init_bgRegistry();import_tree_kill2=__toESM(require_tree_kill(),1),REQUIRED_OPTION_VALUE_FLAGS=new Set(["--add-dir","--agent","--agents","--allowed-tools","--allowedTools","--append-system-prompt","--append-system-prompt-file","--betas","--debug-file","--disallowed-tools","--disallowedTools","--effort","--fallback-model","--file","--input-format","--json-schema","--max-budget-usd","--max-turns","--mcp-config","--model","--name","--output-format","--permission-mode","--permission-prompt-tool","--plugin-dir","--prefill","--provider","--provider-env-file","--resume-session-at","--rewind-files","--session-id","--setting-sources","--settings","--system-prompt","--system-prompt-file","--task-budget","--tools","--workload","-n"]),INLINE_OPTIONAL_VALUE_FLAGS=new Set(["--debug","-d"]),SPACE_OPTIONAL_VALUE_FLAGS=new Set(["--from-pr","--resume","-r"])});var exports_flagSettings={};__export(exports_flagSettings,{eagerLoadSettingsFromArgs:()=>eagerLoadSettingsFromArgs});import{readFileSync as readFileSync21}from"fs";function eagerLoadSettingsFromArgs(argv=process.argv){let settingsFile=eagerParseCliFlag("--settings",argv);if(settingsFile){let settingsResult=loadSettingsFromFlag(settingsFile);if(!settingsResult.ok)return settingsResult}let settingSourcesArg=eagerParseCliFlag("--setting-sources",argv);if(settingSourcesArg!==void 0){let sourcesResult=loadSettingSourcesFromFlag(settingSourcesArg);if(!sourcesResult.ok)return sourcesResult}return{ok:!0}}function loadSettingsFromFlag(settingsFile){try{let trimmedSettings=settingsFile.trim(),looksLikeJson2=trimmedSettings.startsWith("{")&&trimmedSettings.endsWith("}"),settingsPath;if(looksLikeJson2){if(!safeParseJSON(trimmedSettings))return{ok:!1,message:"Error: Invalid JSON provided to --settings"};settingsPath=generateTempFilePath("claude-settings",".json",{contentHash:trimmedSettings}),writeFileSync_DEPRECATED(settingsPath,trimmedSettings,"utf8")}else{let{resolvedPath:resolvedSettingsPath}=safeResolvePath(getFsImplementation(),settingsFile);try{readFileSync21(resolvedSettingsPath,"utf8")}catch(e){if(isENOENT(e))return{ok:!1,message:`Error: Settings file not found: ${resolvedSettingsPath}`};throw e}settingsPath=resolvedSettingsPath}return setFlagSettingsPath(settingsPath),resetSettingsCache(),{ok:!0}}catch(error41){return{ok:!1,message:`Error processing settings: ${errorMessage(error41)}`,cause:error41}}}function loadSettingSourcesFromFlag(settingSourcesArg){try{let sources=parseSettingSourcesFlag(settingSourcesArg);return setAllowedSettingSources(sources),resetSettingsCache(),{ok:!0}}catch(error41){return{ok:!1,message:`Error processing --setting-sources: ${errorMessage(error41)}`,cause:error41}}}var init_flagSettings=__esm(()=>{init_state();init_errors();init_fsOperations();init_json();init_slowOperations();init_tempfile();init_constants2();init_settingsCache()});var WELCOME_NAME="Claude Code",BRAND_TAGLINE="you already know me",WORDMARK_OPEN,WORDMARK_CLAUDE,WORDMARK_WIDTH;var init_brand=__esm(()=>{WORDMARK_OPEN=["█▀█ █▀█ █▀▀ █▄ █","█▄█ █▀▀ ██▄ █ ▀█"],WORDMARK_CLAUDE=["█▀▀ █ ▄▀█ █ █ █▀▄ █▀▀","█▄▄ █▄▄ █▀█ █▄█ █▄▀ ██▄"],WORDMARK_WIDTH=WORDMARK_OPEN[0].length+1+WORDMARK_CLAUDE[0].length});var exports_StartupScreen={};__export(exports_StartupScreen,{printStartupScreen:()=>printStartupScreen,paintLine:()=>paintLine,detectProvider:()=>detectProvider});function lerp(a2,b,t){return[Math.round(a2[0]+(b[0]-a2[0])*t),Math.round(a2[1]+(b[1]-a2[1])*t),Math.round(a2[2]+(b[2]-a2[2])*t)]}function gradAt(stops,t){let s=Math.max(0,Math.min(1,t))*(stops.length-1),i3=Math.floor(s);if(i3>=stops.length-1)return stops[stops.length-1];return lerp(stops[i3],stops[i3+1],s-i3)}function paintLine(text5,stops,lineT){let out="";for(let i3=0;i3<text5.length;i3++){let t=text5.length>1?lineT*0.5+i3/(text5.length-1)*0.5:lineT,[r,g,b]=gradAt(stops,t);out+=`${ansiRgb(r,g,b)}${text5[i3]}`}return out+RESET2}function paintSolid(text5,color3){return`${ansiRgb(...color3)}${text5}${RESET2}`}function paintWelcomeScene(accent,dim2,landscape){return WELCOME_SCENE.map((line)=>{let out="",inClawd=!1;for(let ch2 of line){if(ch2==="§"){inClawd=!inClawd;continue}if(inClawd)out+=paintSolid(ch2,accent);else if(ch2==="*"||ch2==="·")out+=`${DIM2}${paintSolid(ch2,dim2)}`;else if(ch2==="█"||ch2==="▓"||ch2==="░")out+=paintSolid(ch2,landscape);else out+=ch2}return out})}function detectProvider(modelOverride){let useGemini=process.env.CLAUDE_CODE_USE_GEMINI==="1"||process.env.CLAUDE_CODE_USE_GEMINI==="true",useGithub=process.env.CLAUDE_CODE_USE_GITHUB==="1"||process.env.CLAUDE_CODE_USE_GITHUB==="true",useOpenAI=process.env.CLAUDE_CODE_USE_OPENAI==="1"||process.env.CLAUDE_CODE_USE_OPENAI==="true",useMistral=process.env.CLAUDE_CODE_USE_MISTRAL==="1"||process.env.CLAUDE_CODE_USE_MISTRAL==="true";if(useGemini){let model=modelOverride||process.env.GEMINI_MODEL||DEFAULT_GEMINI_MODEL,baseUrl2=process.env.GEMINI_BASE_URL||"https://generativelanguage.googleapis.com/v1beta/openai";return{name:"Google AI / Gemini",model,baseUrl:baseUrl2,isLocal:!1}}if(useMistral){let model=modelOverride||process.env.MISTRAL_MODEL||"devstral-latest",baseUrl2=process.env.MISTRAL_BASE_URL||"https://api.mistral.ai/v1";return{name:"Mistral",model,baseUrl:baseUrl2,isLocal:!1}}if(useGithub){let model=modelOverride||process.env.OPENAI_MODEL||"github:copilot",baseUrl2=process.env.OPENAI_BASE_URL||"https://api.githubcopilot.com";return{name:"GitHub Copilot",model,baseUrl:baseUrl2,isLocal:!1}}if(useOpenAI){let rawModel=modelOverride||process.env.OPENAI_MODEL||"gpt-4o",resolvedRequest=resolveProviderRequest({model:rawModel,baseUrl:process.env.OPENAI_BASE_URL}),baseUrl2=resolvedRequest.baseUrl,isLocal2=isLocalProviderUrl(baseUrl2),routeId=resolveRouteIdFromBaseUrl(baseUrl2),name2="OpenAI";if(process.env.NVIDIA_NIM)name2="NVIDIA NIM";else if(process.env.MINIMAX_API_KEY)name2="MiniMax";else if(resolvedRequest.transport==="codex_responses"||baseUrl2.includes("chatgpt.com/backend-api/codex"))name2="Codex";else if(/openrouter/i.test(baseUrl2))name2="OpenRouter";else if(/together/i.test(baseUrl2))name2="Together AI";else if(/groq/i.test(baseUrl2))name2="Groq";else if(/azure/i.test(baseUrl2))name2="Azure OpenAI";else if(/nvidia/i.test(baseUrl2))name2="NVIDIA NIM";else if(/minimax/i.test(baseUrl2))name2="MiniMax";else if(/api\.kimi\.com/i.test(baseUrl2))name2="Moonshot AI - Kimi Code";else if(routeId&&routeId!=="openai"&&routeId!=="custom")name2=getRouteLabel(routeId)??name2;else if(/moonshot/i.test(baseUrl2))name2="Moonshot AI - API";else if(/deepseek/i.test(baseUrl2))name2="DeepSeek";else if(/mistral/i.test(baseUrl2))name2="Mistral";else if(/atlascloud/i.test(baseUrl2))name2="Atlas Cloud";else if(/nvidia/i.test(rawModel))name2="NVIDIA NIM";else if(/minimax/i.test(rawModel))name2="MiniMax";else if(/\bkimi-for-coding\b/i.test(rawModel))name2="Moonshot AI - Kimi Code";else if(/\bkimi-k/i.test(rawModel)||/moonshot/i.test(rawModel))name2="Moonshot AI - API";else if(/deepseek/i.test(rawModel))name2="DeepSeek";else if(/mistral/i.test(rawModel))name2="Mistral";else if(/llama/i.test(rawModel))name2="Meta Llama";else if(/bankr/i.test(baseUrl2))name2="Bankr";else if(/bankr/i.test(rawModel))name2="Bankr";else if(/atlas\.cloud/i.test(rawModel))name2="Atlas Cloud";else if(isLocal2)name2=getLocalOpenAICompatibleProviderLabel(baseUrl2);let displayModel=resolvedRequest.resolvedModel;if(resolvedRequest.reasoning?.effort)displayModel=`${displayModel} (${resolvedRequest.reasoning.effort})`;return{name:name2,model:displayModel,baseUrl:baseUrl2,isLocal:isLocal2}}let settings=getSettings_DEPRECATED()||{},modelSetting=modelOverride||process.env.ANTHROPIC_MODEL||process.env.CLAUDE_MODEL||settings.model||"claude-sonnet-4-6",resolvedModel=parseUserSpecifiedModel(modelSetting),baseUrl=process.env.ANTHROPIC_BASE_URL??"https://api.anthropic.com",isLocal=isLocalProviderUrl(baseUrl);return{name:isMiniMaxBaseUrl(baseUrl)?"MiniMax":"Anthropic",model:resolvedModel,baseUrl,isLocal}}function boxRow(content,width,rawLen,border){let pad=Math.max(0,width-2-rawLen);return`${ansiRgb(...border)}│${RESET2}${content}${" ".repeat(pad)}${ansiRgb(...border)}│${RESET2}`}function printStartupScreen(modelOverride){if(process.env.CI||!process.stdout.isTTY)return;let ACCENT=[217,119,87],TEXT=[255,255,255],GRAY=[153,153,153],BORDER=[153,153,153],p=detectProvider(modelOverride),version3="0.25.0",W2=62,out=[];out.push(""),out.push(` ${paintSolid(`Welcome to ${WELCOME_NAME}`,ACCENT)} ${DIM2}${paintSolid(`v${version3}`,GRAY)}`),out.push(` ${DIM2}${paintSolid("·".repeat(56),GRAY)}`),out.push(...paintWelcomeScene(ACCENT,GRAY,TEXT).map((line)=>` ${line}`)),out.push(""),out.push(` ${DIM2}${paintSolid(`✦ ${BRAND_TAGLINE} ✦`,GRAY)}`),out.push(""),out.push(`${ansiRgb(...BORDER)}╔${"═".repeat(W2-2)}╗${RESET2}`);let lbl=(k,v,c5=TEXT)=>{let padK=k.padEnd(9);return[` ${DIM2}${ansiRgb(...GRAY)}${padK}${RESET2} ${ansiRgb(...c5)}${v}${RESET2}`,` ${padK} ${v}`.length]},provC=p.isLocal?[130,175,130]:TEXT,[r,l]=lbl("Provider",p.name,provC);out.push(boxRow(r,W2,l,BORDER)),[r,l]=lbl("Model",p.model),out.push(boxRow(r,W2,l,BORDER));let ep=p.baseUrl.length>38?p.baseUrl.slice(0,35)+"...":p.baseUrl;[r,l]=lbl("Endpoint",ep),out.push(boxRow(r,W2,l,BORDER)),out.push(`${ansiRgb(...BORDER)}╠${"═".repeat(W2-2)}╣${RESET2}`);let sC=p.isLocal?[130,175,130]:ACCENT,sL=p.isLocal?"local":"cloud",sRow=` ${ansiRgb(...sC)}●${RESET2} ${DIM2}${ansiRgb(...GRAY)}${sL}${RESET2} ${DIM2}${ansiRgb(...GRAY)}Ready — type ${RESET2}${ansiRgb(...ACCENT)}/help${RESET2}${DIM2}${ansiRgb(...GRAY)} to begin${RESET2}`,sLen=` ● ${sL} Ready — type /help to begin`.length;out.push(boxRow(sRow,W2,sLen,BORDER)),out.push(`${ansiRgb(...BORDER)}╚${"═".repeat(W2-2)}╝${RESET2}`),out.push(""),process.stdout.write(out.join(`
|
|
9123
|
+
`)+1}}}}catch{}try{let fileInput={file_path:filename,offset,limit};async function readTruncatedFile(){if(mode==="compact")return{type:"compact_file_reference",filename,displayPath:relative31(getCwd(),filename)};let appState2=toolUseContext.getAppState();if(isFileReadDenied(filename,appState2.toolPermissionContext))return null;try{let truncatedInput={file_path:filename,offset:offset??1,limit:MAX_LINES_TO_READ},result=await FileReadTool.call(truncatedInput,toolUseContext);return logEvent(successEventName,{}),{type:"file",filename,content:result.data,truncated:!0,displayPath:relative31(getCwd(),filename)}}catch{return logEvent(errorEventName,{}),null}}if(!(await FileReadTool.validateInput(fileInput,toolUseContext)).result)return null;try{let result=await FileReadTool.call(fileInput,toolUseContext);return logEvent(successEventName,{}),{type:"file",filename,content:result.data,displayPath:relative31(getCwd(),filename)}}catch(error41){if(error41 instanceof MaxFileReadTokenExceededError||error41 instanceof FileTooLargeError)return await readTruncatedFile();throw error41}}catch{return logEvent(errorEventName,{}),null}}function createAttachmentMessage(attachment){return{attachment,type:"attachment",uuid:randomUUID40(),timestamp:new Date().toISOString()}}function getTodoReminderTurnCounts(messages){let lastTodoWriteIndex=-1,lastReminderIndex=-1,assistantTurnsSinceWrite=0,assistantTurnsSinceReminder=0;for(let i3=messages.length-1;i3>=0;i3--){let message=messages[i3];if(message?.type==="assistant"){if(isThinkingMessage(message))continue;if(lastTodoWriteIndex===-1&&"message"in message&&Array.isArray(message.message?.content)&&message.message.content.some((block2)=>block2.type==="tool_use"&&block2.name==="TodoWrite"))lastTodoWriteIndex=i3;if(lastTodoWriteIndex===-1)assistantTurnsSinceWrite++;if(lastReminderIndex===-1)assistantTurnsSinceReminder++}else if(lastReminderIndex===-1&&message?.type==="attachment"&&message.attachment.type==="todo_reminder")lastReminderIndex=i3;if(lastTodoWriteIndex!==-1&&lastReminderIndex!==-1)break}return{turnsSinceLastTodoWrite:assistantTurnsSinceWrite,turnsSinceLastReminder:assistantTurnsSinceReminder}}async function getTodoReminderAttachments(messages,toolUseContext){if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,TODO_WRITE_TOOL_NAME)))return[];if(BRIEF_TOOL_NAME3&&toolUseContext.options.tools.some((t)=>toolMatchesName(t,BRIEF_TOOL_NAME3)))return[];if(!messages||messages.length===0)return[];let{turnsSinceLastTodoWrite,turnsSinceLastReminder}=getTodoReminderTurnCounts(messages);if(turnsSinceLastTodoWrite>=TODO_REMINDER_CONFIG.TURNS_SINCE_WRITE&&turnsSinceLastReminder>=TODO_REMINDER_CONFIG.TURNS_BETWEEN_REMINDERS){let todoKey=toolUseContext.agentId??getSessionId(),todos=toolUseContext.getAppState().todos[todoKey]??[];return[{type:"todo_reminder",content:todos,itemCount:todos.length}]}return[]}function getTaskReminderTurnCounts(messages){let lastTaskManagementIndex=-1,lastReminderIndex=-1,assistantTurnsSinceTaskManagement=0,assistantTurnsSinceReminder=0;for(let i3=messages.length-1;i3>=0;i3--){let message=messages[i3];if(message?.type==="assistant"){if(isThinkingMessage(message))continue;if(lastTaskManagementIndex===-1&&"message"in message&&Array.isArray(message.message?.content)&&message.message.content.some((block2)=>block2.type==="tool_use"&&(block2.name===TASK_CREATE_TOOL_NAME||block2.name===TASK_UPDATE_TOOL_NAME)))lastTaskManagementIndex=i3;if(lastTaskManagementIndex===-1)assistantTurnsSinceTaskManagement++;if(lastReminderIndex===-1)assistantTurnsSinceReminder++}else if(lastReminderIndex===-1&&message?.type==="attachment"&&message.attachment.type==="task_reminder")lastReminderIndex=i3;if(lastTaskManagementIndex!==-1&&lastReminderIndex!==-1)break}return{turnsSinceLastTaskManagement:assistantTurnsSinceTaskManagement,turnsSinceLastReminder:assistantTurnsSinceReminder}}async function getTaskReminderAttachments(messages,toolUseContext){if(!isTodoV2Enabled())return[];if(process.env.USER_TYPE==="ant")return[];if(BRIEF_TOOL_NAME3&&toolUseContext.options.tools.some((t)=>toolMatchesName(t,BRIEF_TOOL_NAME3)))return[];if(!toolUseContext.options.tools.some((t)=>toolMatchesName(t,TASK_UPDATE_TOOL_NAME)))return[];if(!messages||messages.length===0)return[];let{turnsSinceLastTaskManagement,turnsSinceLastReminder}=getTaskReminderTurnCounts(messages);if(turnsSinceLastTaskManagement>=TODO_REMINDER_CONFIG.TURNS_SINCE_WRITE&&turnsSinceLastReminder>=TODO_REMINDER_CONFIG.TURNS_BETWEEN_REMINDERS){let tasks2=await listTasks(getTaskListId());return[{type:"task_reminder",content:tasks2,itemCount:tasks2.length}]}return[]}async function getUnifiedTaskAttachments(toolUseContext){let appState=toolUseContext.getAppState(),{attachments,updatedTaskOffsets,evictedTaskIds}=await generateTaskAttachments(appState);return applyTaskOffsetsAndEvictions(toolUseContext.setAppState,updatedTaskOffsets,evictedTaskIds),attachments.map((taskAttachment)=>({type:"task_status",taskId:taskAttachment.taskId,taskType:taskAttachment.taskType,status:taskAttachment.status,description:taskAttachment.description,deltaSummary:taskAttachment.deltaSummary,outputFilePath:getTaskOutputPath(taskAttachment.taskId)}))}async function getAsyncHookResponseAttachments(){let responses=await checkForAsyncHookResponses();if(responses.length===0)return[];logForDebugging(`Hooks: getAsyncHookResponseAttachments found ${responses.length} responses`);let attachments=responses.map(({processId,response,hookName,hookEvent,toolName,pluginId,stdout,stderr,exitCode})=>{return logForDebugging(`Hooks: Creating attachment for ${processId} (${hookName}): ${jsonStringify(response)}`),{type:"async_hook_response",processId,hookName,hookEvent,toolName,response,stdout,stderr,exitCode}});if(responses.length>0){let processIds=responses.map((r)=>r.processId);removeDeliveredAsyncHooks(processIds),logForDebugging(`Hooks: Removed ${processIds.length} delivered hooks from registry`)}return logForDebugging(`Hooks: getAsyncHookResponseAttachments found ${attachments.length} attachments`),attachments}async function getTeammateMailboxAttachments(toolUseContext){if(!isAgentSwarmsEnabled())return[];if(process.env.USER_TYPE!=="ant")return[];let appState=toolUseContext.getAppState(),envAgentName=getAgentName(),teamName=getTeamName(appState.teamContext),teamLeadStatus=isTeamLead(appState.teamContext),viewedTeammate=getViewedTeammateTask(appState),agentName=viewedTeammate?.identity.agentName??envAgentName;if(!agentName&&teamLeadStatus&&appState.teamContext){let leadAgentId=appState.teamContext.leadAgentId;agentName=appState.teamContext.teammates[leadAgentId]?.name||"team-lead"}if(logForDebugging(`[SwarmMailbox] getTeammateMailboxAttachments called: envAgentName=${envAgentName}, isTeamLead=${teamLeadStatus}, resolved agentName=${agentName}, teamName=${teamName}`),!agentName)return logForDebugging("[SwarmMailbox] Not checking inbox - not in a swarm or team lead"),[];logForDebugging(`[SwarmMailbox] Checking inbox for agent="${agentName}" team="${teamName||"default"}"`);let allUnreadMessages=await readUnreadMessages(agentName,teamName),unreadMessages=allUnreadMessages.filter((m)=>!isStructuredProtocolMessage(m.text));logForDebugging(`[MailboxBridge] Found ${allUnreadMessages.length} unread message(s) for "${agentName}" (${allUnreadMessages.length-unreadMessages.length} structured protocol messages filtered out)`);let pendingInboxMessages=viewedTeammate||isInProcessTeammate()?[]:appState.inbox.messages.filter((m)=>m.status==="pending");logForDebugging(`[SwarmMailbox] Found ${pendingInboxMessages.length} pending message(s) in AppState.inbox`);let seen=new Set,allMessages=[];for(let m of[...unreadMessages,...pendingInboxMessages]){let key=`${m.from}|${m.timestamp}|${m.text.slice(0,100)}`;if(!seen.has(key))seen.add(key),allMessages.push({from:m.from,text:m.text,timestamp:m.timestamp,color:m.color,summary:m.summary})}let idleAgentByIndex=new Map,latestIdleByAgent=new Map;for(let i3=0;i3<allMessages.length;i3++){let idle=isIdleNotification(allMessages[i3].text);if(idle)idleAgentByIndex.set(i3,idle.from),latestIdleByAgent.set(idle.from,i3)}if(idleAgentByIndex.size>latestIdleByAgent.size){let beforeCount=allMessages.length;allMessages=allMessages.filter((_m,i3)=>{let agent=idleAgentByIndex.get(i3);if(agent===void 0)return!0;return latestIdleByAgent.get(agent)===i3}),logForDebugging(`[SwarmMailbox] Collapsed ${beforeCount-allMessages.length} duplicate idle notification(s)`)}if(allMessages.length===0)return logForDebugging("[SwarmMailbox] No messages to deliver, returning empty"),[];logForDebugging(`[SwarmMailbox] Returning ${allMessages.length} message(s) as attachment for "${agentName}" (${unreadMessages.length} from file, ${pendingInboxMessages.length} from AppState, after dedup)`);let attachment=[{type:"teammate_mailbox",messages:allMessages}];if(unreadMessages.length>0)await markMessagesAsReadByPredicate(agentName,(m)=>!isStructuredProtocolMessage(m.text),teamName),logForDebugging(`[MailboxBridge] marked ${unreadMessages.length} non-structured message(s) as read for agent="${agentName}" team="${teamName||"default"}"`);if(teamLeadStatus&&teamName)for(let m of allMessages){let shutdownApproval=isShutdownApproved(m.text);if(shutdownApproval){let teammateToRemove=shutdownApproval.from;logForDebugging(`[SwarmMailbox] Processing shutdown_approved from ${teammateToRemove}`);let teammateId=appState.teamContext?.teammates?Object.entries(appState.teamContext.teammates).find(([,t])=>t.name===teammateToRemove)?.[0]:void 0;if(teammateId)removeTeammateFromTeamFile(teamName,{agentId:teammateId,name:teammateToRemove}),logForDebugging(`[SwarmMailbox] Removed ${teammateToRemove} from team file`),await unassignTeammateTasks(teamName,teammateId,teammateToRemove,"shutdown"),toolUseContext.setAppState((prev)=>{if(!prev.teamContext?.teammates)return prev;if(!(teammateId in prev.teamContext.teammates))return prev;let{[teammateId]:_,...remainingTeammates}=prev.teamContext.teammates;return{...prev,teamContext:{...prev.teamContext,teammates:remainingTeammates}}})}}if(pendingInboxMessages.length>0){let pendingIds=new Set(pendingInboxMessages.map((m)=>m.id));toolUseContext.setAppState((prev)=>({...prev,inbox:{messages:prev.inbox.messages.map((m)=>pendingIds.has(m.id)?{...m,status:"processed"}:m)}}))}return attachment}function getTeamContextAttachment(messages){let teamName=getTeamName(),agentId=getAgentId(),agentName=getAgentName();if(!teamName||!agentId)return[];if(messages.some((m)=>m.type==="assistant"))return[];let configDir=getClaudeConfigHomeDir(),teamConfigPath=`${configDir}/teams/${teamName}/config.json`,taskListPath=`${configDir}/tasks/${teamName}/`;return[{type:"team_context",agentId,agentName:agentName||agentId,teamName,teamConfigPath,taskListPath}]}function getTokenUsageAttachment(messages,model){if(!isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT))return[];let contextWindow=getEffectiveContextWindowSize(model),usedTokens=tokenCountFromLastAPIResponse(messages);return[{type:"token_usage",used:usedTokens,total:contextWindow,remaining:contextWindow-usedTokens}]}function getOutputTokenUsageAttachment(){{let budget=getCurrentTurnTokenBudget();if(budget===null||budget<=0)return[];return[{type:"output_token_usage",turn:getTurnOutputTokens(),session:getTotalOutputTokens(),budget}]}return[]}function getMaxBudgetUsdAttachment(maxBudgetUsd){if(maxBudgetUsd===void 0)return[];let usedCost=getTotalCostUSD(),remainingBudget=maxBudgetUsd-usedCost;return[{type:"budget_usd",used:usedCost,total:maxBudgetUsd,remaining:remainingBudget}]}function getVerifyPlanReminderTurnCount(messages){let turnCount=0;for(let i3=messages.length-1;i3>=0;i3--){let message=messages[i3];if(message&&isHumanTurn(message))turnCount++;if(message?.type==="attachment"&&message.attachment.type==="plan_mode_exit")return turnCount}return 0}async function getVerifyPlanReminderAttachment(messages,toolUseContext){if(process.env.USER_TYPE!=="ant"||!isEnvTruthy(process.env.CLAUDE_CODE_VERIFY_PLAN))return[];let pending=toolUseContext.getAppState().pendingPlanVerification;if(!pending||pending.verificationStarted||pending.verificationCompleted)return[];if(messages&&messages.length>0){let turnCount=getVerifyPlanReminderTurnCount(messages);if(turnCount===0||turnCount%VERIFY_PLAN_REMINDER_CONFIG.TURNS_BETWEEN_REMINDERS!==0)return[]}return[{type:"verify_plan_reminder"}]}function clamp2(value,min,max2){return Math.max(min,Math.min(max2,value))}function getSnipNudgeRepeatInterval(model){let effectiveWindow=getEffectiveContextWindowSize(model);return clamp2(Math.floor(effectiveWindow*SNIP_NUDGE_REPEAT_FRACTION),MIN_SNIP_NUDGE_TOKENS,MAX_SNIP_NUDGE_REPEAT_TOKENS)}function getSnipNudgeStartThreshold(model){let effectiveWindow=getEffectiveContextWindowSize(model),autoCompactThreshold=getAutoCompactThreshold(model),leadTokens=getSnipNudgeRepeatInterval(model),fractionalStart=Math.floor(effectiveWindow*SNIP_NUDGE_START_FRACTION),preAutoCompactStart=Math.max(MIN_SNIP_NUDGE_TOKENS,autoCompactThreshold-leadTokens);return Math.max(MIN_SNIP_NUDGE_TOKENS,Math.min(fractionalStart,preAutoCompactStart))}function getContextEfficiencyAttachment(messages,model){let{isSnipRuntimeEnabled:isSnipRuntimeEnabled2,shouldNudgeForSnips:shouldNudgeForSnips2}=(init_snipCompact(),__toCommonJS(exports_snipCompact));if(!isSnipRuntimeEnabled2())return[];let usedTokens=tokenCountWithEstimation(messages),startThreshold=getSnipNudgeStartThreshold(model);if(usedTokens<startThreshold)return[];let repeatInterval=getSnipNudgeRepeatInterval(model);if(!shouldNudgeForSnips2(messages,repeatInterval))return[];return[{type:"context_efficiency"}]}function isFileReadDenied(filePath,toolPermissionContext){return matchingRuleForInput(filePath,toolPermissionContext,"read","deny")!==null}var autoModeStateModule5,BRIEF_TOOL_NAME3=null,TODO_REMINDER_CONFIG,PLAN_MODE_ATTACHMENT_CONFIG,AUTO_MODE_ATTACHMENT_CONFIG,SKILL_LISTING_SUPPRESSED_QUERY_SOURCES,MAX_MEMORY_LINES=200,MAX_MEMORY_BYTES=4096,RELEVANT_MEMORIES_CONFIG,VERIFY_PLAN_REMINDER_CONFIG,ATTACHMENT_FILE_IO_CONCURRENCY=8,INLINE_NOTIFICATION_MODES,defaultAtMentionedFileDeps,defaultChangedFileDeps,sentSkillNames,suppressNext=!1,LSP_DIAGNOSTIC_ATTACHMENT_MAX_WAIT_MS,MIN_SNIP_NUDGE_TOKENS=1e4,MAX_SNIP_NUDGE_REPEAT_TOKENS=1e5,SNIP_NUDGE_START_FRACTION=0.6,SNIP_NUDGE_REPEAT_FRACTION=0.1;var init_attachments2=__esm(()=>{init_metadata();init_Tool();init_FileReadTool();init_readFileInRange();init_path2();init_fsOperations();init_tasks();init_plans();init_ide();init_claudemd();init_cwd();init_selectors();init_log2();init_debug();init_errors();init_diagnosticTracking();init_settings3();init_providers();init_effort();init_utils5();init_imageResizer();init_commands();init_uniqBy();init_state();init_prompt8();init_context();init_prompt3();init_limits();init_fileStateCache();init_abortController();init_boundedAsync();init_errors();init_file();init_loadAgentsDir();init_constants3();init_prompt10();init_permissions4();init_auth5();init_mcpStringUtils();init_filesystem();init_framework();init_diskOutput();init_LocalAgentTask();init_state();init_toolSearch();init_mcpInstructionsDelta();init_common2();init_AsyncHookRegistry();init_LSPDiagnosticRegistry();init_debug();init_messages3();init_envUtils();init_thinking();init_tokens();init_autoCompact();init_growthbook();init_hooks4();init_slowOperations();init_pdfUtils();init_common();init_pdf();init_agentSwarmsEnabled();init_findRelevantMemories();init_paths();init_agentMemory();init_teammateMailbox();init_teammate();init_teammateContext();init_teamHelpers();init_tasks();autoModeStateModule5=__toCommonJS(exports_autoModeState),TODO_REMINDER_CONFIG={TURNS_SINCE_WRITE:10,TURNS_BETWEEN_REMINDERS:10},PLAN_MODE_ATTACHMENT_CONFIG={TURNS_BETWEEN_ATTACHMENTS:5,FULL_REMINDER_EVERY_N_ATTACHMENTS:5},AUTO_MODE_ATTACHMENT_CONFIG={TURNS_BETWEEN_ATTACHMENTS:5,FULL_REMINDER_EVERY_N_ATTACHMENTS:5},SKILL_LISTING_SUPPRESSED_QUERY_SOURCES=new Set(["compact","extract_memories","session_memory"]);RELEVANT_MEMORIES_CONFIG={MAX_SESSION_BYTES:61440},VERIFY_PLAN_REMINDER_CONFIG={TURNS_BETWEEN_REMINDERS:10};INLINE_NOTIFICATION_MODES=new Set(["prompt","task-notification"]);defaultAtMentionedFileDeps={stat:stat53,readdir:readdir34,generateFileAttachment:(filename,toolUseContext,successEventName,errorEventName,mode,options2)=>generateFileAttachment(filename,toolUseContext,successEventName,errorEventName,mode,options2)};defaultChangedFileDeps={getFileModificationTime:getFileModificationTimeAsync,validateFileReadInput:(input,context2)=>FileReadTool.validateInput(input,context2),readFile:(input,context2)=>FileReadTool.call(input,context2),readEditedImageAttachment:tryReadEditedImageAttachment};sentSkillNames=new Map;LSP_DIAGNOSTIC_ATTACHMENT_MAX_WAIT_MS=DIAGNOSTIC_DELIVERY_DEBOUNCE_MS});var exports_udsClient={};__export(exports_udsClient,{sendToUdsSocket:()=>sendToUdsSocket,listAllLiveSessions:()=>listAllLiveSessions});async function listAllLiveSessions(){return[]}async function sendToUdsSocket(_socketPath,_message){throw Error("UDS messaging is unavailable in this build")}var exports_conversationRecovery={};__export(exports_conversationRecovery,{stripThinkingBlocksIfProviderAllows:()=>stripThinkingBlocksIfProviderAllows,restoreSkillStateFromMessages:()=>restoreSkillStateFromMessages,loadMessagesFromJsonlPath:()=>loadMessagesFromJsonlPath,loadConversationForResumeFromPr:()=>loadConversationForResumeFromPr,loadConversationForResume:()=>loadConversationForResume,findResumeSessionIdByPrSelector:()=>findResumeSessionIdByPrSelector,findResumeLogByPrSelector:()=>findResumeLogByPrSelector,deserializeMessagesWithInterruptDetection:()=>deserializeMessagesWithInterruptDetection,deserializeMessages:()=>deserializeMessages,collectLiveBackgroundSessionIds:()=>collectLiveBackgroundSessionIds,ResumeTranscriptTooLargeError:()=>ResumeTranscriptTooLargeError});import{relative as relative32}from"path";function assertResumeMessageSize(messages){let bytes=Buffer.byteLength(jsonStringify(messages),"utf8");if(bytes>MAX_RESUME_MESSAGE_BYTES)throw new ResumeTranscriptTooLargeError(bytes,MAX_RESUME_MESSAGE_BYTES,messages.length)}function isRecord12(value){return typeof value==="object"&&value!==null}function isNonEmptyString(value){return typeof value==="string"&&value.length>0}function getAttachmentRecord(message){if(message.type!=="attachment")return null;let attachment=message.attachment;if(!isRecord12(attachment)||typeof attachment.type!=="string")return null;return attachment}function migrateLegacyAttachmentTypes(message){if(message.type!=="attachment")return message;let attachment=getAttachmentRecord(message);if(!attachment)return null;if(attachment.type==="new_file"){if(!isNonEmptyString(attachment.filename))return null;return{...message,attachment:{...attachment,type:"file",displayPath:relative32(getCwd(),attachment.filename)}}}if(attachment.type==="new_directory"){if(!isNonEmptyString(attachment.path))return null;return{...message,attachment:{...attachment,type:"directory",displayPath:relative32(getCwd(),attachment.path)}}}if(!("displayPath"in attachment)){let path25=isNonEmptyString(attachment.filename)?attachment.filename:isNonEmptyString(attachment.path)?attachment.path:isNonEmptyString(attachment.skillDir)?attachment.skillDir:void 0;if(path25)return{...message,attachment:{...attachment,displayPath:relative32(getCwd(),path25)}}}return message}function stripThinkingBlocks(messages){return messages.reduce((acc,msg)=>{if(msg.type!=="assistant"||!Array.isArray(msg.message?.content))return acc.push(msg),acc;let filtered=msg.message.content.filter((block2)=>block2.type!=="thinking"&&block2.type!=="redacted_thinking");if(filtered.length===0)return acc;return acc.push({...msg,message:{...msg.message,content:filtered}}),acc},[])}function shouldPreserveThinkingBlocksForProviderReplay(){return resolveOpenAIShimRuntimeContext({processEnv:process.env,baseUrl:process.env.OPENAI_BASE_URL,model:process.env.OPENAI_MODEL}).openaiShimConfig.preserveReasoningContent===!0}function stripThinkingBlocksIfProviderAllows(messages){let provider2=getAPIProvider(),isAnthropicNativeTransport=usesAnthropicNativeMessageFormat({processEnv:process.env,model:process.env.OPENAI_MODEL,providerCategory:provider2});if(provider2!=="foundry"&&!isAnthropicNativeTransport&&!shouldPreserveThinkingBlocksForProviderReplay())return stripThinkingBlocks(messages);return messages}function parsePrIdentifier(value){let directNumber=parseInt(value,10);if(!isNaN(directNumber)&&directNumber>0)return directNumber;let urlMatch=value.match(/github\.com\/[^/]+\/[^/]+\/pull\/(\d+)/);if(urlMatch?.[1])return parseInt(urlMatch[1],10);return null}function findResumeLogByPrSelector(logs,selector){let candidates=logs.filter((log2)=>!log2.isSidechain);if(selector===!0)return candidates.find((log2)=>log2.prNumber!==void 0)??null;if(typeof selector==="number")return candidates.find((log2)=>log2.prNumber===selector)??null;let prNumber=parsePrIdentifier(selector);if(prNumber!==null)return candidates.find((log2)=>log2.prNumber===prNumber)??null;return null}function deserializeMessages(serializedMessages){return deserializeMessagesWithInterruptDetection(serializedMessages).messages}function deserializeMessagesWithInterruptDetection(serializedMessages){try{let migratedMessages=serializedMessages.flatMap((message)=>{let migratedMessage=migrateLegacyAttachmentTypes(message);return migratedMessage?[migratedMessage]:[]}),validModes=new Set(PERMISSION_MODES);for(let msg of migratedMessages)if(msg.type==="user"&&msg.permissionMode!==void 0&&(!validModes.has(msg.permissionMode)||isDangerousPermissionMode(msg.permissionMode)))msg.permissionMode=void 0;let filteredToolUses=filterUnresolvedToolUses(migratedMessages),filteredThinking=filterOrphanedThinkingOnlyMessages(filteredToolUses),thinkingStripped=stripThinkingBlocksIfProviderAllows(filteredThinking),filteredMessages=filterWhitespaceOnlyAssistantMessages(thinkingStripped),internalState=detectTurnInterruption(filteredMessages),turnInterruptionState;if(internalState.kind==="interrupted_turn"){let[continuationMessage]=normalizeMessages([createUserMessage({content:"Continue from where you left off.",isMeta:!0})]);filteredMessages.push(continuationMessage),turnInterruptionState={kind:"interrupted_prompt",message:continuationMessage}}else turnInterruptionState=internalState;let lastRelevantIdx=filteredMessages.findLastIndex((m)=>m.type!=="system"&&m.type!=="progress");if(lastRelevantIdx!==-1&&filteredMessages[lastRelevantIdx].type==="user")filteredMessages.splice(lastRelevantIdx+1,0,createAssistantMessage({content:NO_RESPONSE_REQUESTED}));return{messages:filteredMessages,turnInterruptionState}}catch(error41){throw logError(error41),error41}}async function collectLiveBackgroundSessionIds(deps={}){let skip=new Set;try{let live=await(deps.listAllLiveSessions??(await Promise.resolve().then(() => exports_udsClient)).listAllLiveSessions)();for(let session2 of live)if(session2.kind&&session2.kind!=="interactive"&&session2.sessionId)skip.add(session2.sessionId)}catch{}try{let{refreshBackgroundSessionStatuses:refreshBackgroundSessionStatuses2,isTerminalBackgroundSession:isTerminalBackgroundSession2}=deps;if(!refreshBackgroundSessionStatuses2||!isTerminalBackgroundSession2){let bgRegistry=await Promise.resolve().then(() => (init_bgRegistry(),exports_bgRegistry));refreshBackgroundSessionStatuses2??=bgRegistry.refreshBackgroundSessionStatuses,isTerminalBackgroundSession2??=bgRegistry.isTerminalBackgroundSession}let sessions=await refreshBackgroundSessionStatuses2();for(let session2 of sessions)if(!isTerminalBackgroundSession2(session2))skip.add(session2.sessionId)}catch{}return skip}function detectTurnInterruption(messages){if(messages.length===0)return{kind:"none"};let lastMessageIdx=messages.findLastIndex((m)=>m.type!=="system"&&m.type!=="progress"&&!(m.type==="assistant"&&m.isApiErrorMessage)),lastMessage=lastMessageIdx!==-1?messages[lastMessageIdx]:void 0;if(!lastMessage)return{kind:"none"};if(lastMessage.type==="assistant")return{kind:"none"};if(lastMessage.type==="user"){if(lastMessage.isMeta||lastMessage.isCompactSummary)return{kind:"none"};if(isToolUseResultMessage(lastMessage)){if(isTerminalToolResult(lastMessage,messages,lastMessageIdx))return{kind:"none"};return{kind:"interrupted_turn"}}return{kind:"interrupted_prompt",message:lastMessage}}if(lastMessage.type==="attachment")return{kind:"interrupted_turn"};return{kind:"none"}}function isTerminalToolResult(result,messages,resultIdx){let content=result.message.content;if(!Array.isArray(content))return!1;let block2=content[0];if(block2?.type!=="tool_result")return!1;let toolUseId=block2.tool_use_id;for(let i3=resultIdx-1;i3>=0;i3--){let msg=messages[i3];if(msg.type!=="assistant")continue;for(let b of msg.message.content)if(b.type==="tool_use"&&b.id===toolUseId)return b.name===BRIEF_TOOL_NAME4||b.name===LEGACY_BRIEF_TOOL_NAME2||b.name===SEND_USER_FILE_TOOL_NAME2}return!1}function restoreSkillStateFromMessages(messages){for(let message of messages){if(message.type!=="attachment")continue;let attachment=getAttachmentRecord(message);if(!attachment)continue;if(attachment.type==="invoked_skills"){if(!Array.isArray(attachment.skills))continue;for(let skill of attachment.skills)if(isRecord12(skill)&&isNonEmptyString(skill.name)&&isNonEmptyString(skill.path)&&isNonEmptyString(skill.content))addInvokedSkill(skill.name,skill.path,skill.content,null)}if(attachment.type==="skill_listing")suppressNextSkillListing()}}async function loadMessagesFromJsonlPath(path25){let{messages:byUuid,goalStates,leafUuids}=await loadTranscriptFile(path25),tip=null,tipTs=0;for(let m of byUuid.values()){if(m.isSidechain||!leafUuids.has(m.uuid))continue;let ts=new Date(m.timestamp).getTime();if(ts>tipTs)tipTs=ts,tip=m}if(!tip)return{messages:[],sessionId:void 0,goal:void 0};let chain2=buildConversationChain(byUuid,tip),sessionId=tip.sessionId;return{messages:removeExtraFields(chain2),sessionId,goal:sessionId?goalStates.get(sessionId):void 0}}async function loadConversationForResume(source,sourceJsonlFile){try{let log2=null,messages=null,sessionId,goal2;if(source===void 0){let logsPromise=loadMessageLogs(),skip=new Set;skip=await collectLiveBackgroundSessionIds(),log2=(await logsPromise).find((l)=>{let id=getSessionIdFromLog(l);return!id||!skip.has(id)})??null}else if(sourceJsonlFile){let loaded=await loadMessagesFromJsonlPath(sourceJsonlFile);messages=loaded.messages,sessionId=loaded.sessionId,goal2=loaded.goal}else if(typeof source==="string")log2=await getLastSessionLog(source),sessionId=source;else log2=source;if(!log2&&!messages)return null;if(log2){if(isLiteLog(log2))log2=await loadFullLog(log2);if(!sessionId)sessionId=getSessionIdFromLog(log2);if(goal2=log2.goal,sessionId)await copyPlanForResume(log2,asSessionId(sessionId));copyFileHistoryForResume(log2),messages=log2.messages,checkResumeConsistency(messages)}restoreSkillStateFromMessages(messages);let deserialized=deserializeMessagesWithInterruptDetection(messages);messages=deserialized.messages,assertResumeMessageSize(messages);let hookMessages=await processSessionStartHooks("resume",{sessionId});return messages.push(...hookMessages),assertResumeMessageSize(messages),{messages,turnInterruptionState:deserialized.turnInterruptionState,fileHistorySnapshots:log2?.fileHistorySnapshots,attributionSnapshots:log2?.attributionSnapshots,contentReplacements:log2?.contentReplacements,contextCollapseCommits:log2?.contextCollapseCommits,contextCollapseSnapshot:log2?.contextCollapseSnapshot,sessionId,agentName:log2?.agentName,agentColor:log2?.agentColor,agentSetting:log2?.agentSetting,customTitle:log2?.customTitle,tag:log2?.tag,mode:log2?.mode,worktreeSession:log2?.worktreeSession,prNumber:log2?.prNumber,prUrl:log2?.prUrl,prRepository:log2?.prRepository,goal:goal2,fullPath:log2?.fullPath}}catch(error41){throw logError(error41),error41}}async function loadConversationForResumeFromPr(selector){let log2=findResumeLogByPrSelector(await loadMessageLogs(),selector);if(!log2)return null;return loadConversationForResume(log2,void 0)}async function findResumeSessionIdByPrSelector(selector){let log2=findResumeLogByPrSelector(await loadMessageLogs(),selector);if(!log2)return null;return getSessionIdFromLog(log2)??null}var BRIEF_TOOL_NAME4=null,LEGACY_BRIEF_TOOL_NAME2=null,SEND_USER_FILE_TOOL_NAME2=null,MAX_RESUME_MESSAGE_BYTES=8388608,ResumeTranscriptTooLargeError;var init_conversationRecovery=__esm(()=>{init_cwd();init_state();init_ids();init_permissions();init_attachments2();init_fileHistory();init_log2();init_providers();init_runtimeMetadata();init_messages3();init_plans();init_sessionStart();init_sessionStorage();init_slowOperations();init_PermissionMode();ResumeTranscriptTooLargeError=class ResumeTranscriptTooLargeError extends Error{bytes;maxBytes;messageCount;constructor(bytes,maxBytes,messageCount){super(`Reconstructed transcript is too large to resume safely (${(bytes/1048576).toFixed(1)} MiB > ${(maxBytes/1048576).toFixed(1)} MiB, ${messageCount} messages).`);this.bytes=bytes;this.maxBytes=maxBytes;this.messageCount=messageCount;this.name="ResumeTranscriptTooLargeError"}}});var exports_bg={};__export(exports_bg,{terminateBackgroundSessionProcessTree:()=>terminateBackgroundSessionProcessTree,terminateBackgroundProcessTree:()=>terminateBackgroundProcessTree,psHandler:()=>psHandler,printExistingLog:()=>printExistingLog,parseLogsInvocation:()=>parseLogsInvocation,parseBackgroundInvocation:()=>parseBackgroundInvocation,logsHandler:()=>logsHandler,killHandler:()=>killHandler,killBackgroundSession:()=>killBackgroundSession,handleBgFlag:()=>handleBgFlag,followLogFile:()=>followLogFile,buildBackgroundSessionLaunch:()=>buildBackgroundSessionLaunch,buildBackgroundChildProcessConfig:()=>buildBackgroundChildProcessConfig,attachHandler:()=>attachHandler,LOG_STREAM_CHUNK_SIZE:()=>LOG_STREAM_CHUNK_SIZE});import{spawn as spawn14}from"node:child_process";import{randomUUID as randomUUID41}from"node:crypto";import{closeSync as closeSync5,openSync as openSync6}from"node:fs";import{open as open19,unlink as unlink28}from"node:fs/promises";import{basename as basename52}from"node:path";function safeNodeExecArgvForBackground(execArgv2){return execArgv2.filter((arg)=>arg==="--expose-gc"||arg.startsWith("--max-old-space-size")||arg.startsWith("--heapsnapshot-near-heap-limit"))}function buildBackgroundChildProcessConfig(input){let env5={...input.processEnv,CLAUDE_CODE_ENTRYPOINT:"bg",CLAUDE_CODE_SESSION_KIND:"bg",CLAUDE_CODE_SESSION_LOG:input.stdoutLogPath,...input.sessionName?{CLAUDE_CODE_SESSION_NAME:input.sessionName}:{}};return delete env5[HEAP_RELAUNCHED_ENV],{command:input.execPath,args:[...safeNodeExecArgvForBackground(input.execArgv),input.entrypoint,...input.childArgs],env:env5}}function fail(message){console.error(`Error: ${message}`),process.exit(1)}function errorMessage3(error41){return error41 instanceof Error?error41.message:String(error41)}async function resolveSessionOrExit(target){try{return await resolveBackgroundSession(target)}catch(error41){fail(errorMessage3(error41))}}function stripBackgroundFlag(args){let delimiterIndex=args.indexOf("--"),head=delimiterIndex===-1?args:args.slice(0,delimiterIndex),tail=delimiterIndex===-1?[]:args.slice(delimiterIndex);return[...head.filter((arg)=>arg!=="--bg"&&arg!=="--background"),...tail]}function findPromptIndex(args){let dashDash=args.indexOf("--");if(dashDash!==-1)return dashDash+1<args.length?dashDash+1:-1;let consumedValues=new Set;for(let i3=0;i3<args.length-1;i3++){let arg=args[i3];if(REQUIRED_OPTION_VALUE_FLAGS.has(arg)){consumedValues.add(i3+1),i3++;continue}if(SPACE_OPTIONAL_VALUE_FLAGS.has(arg)){let next=args[i3+1];if(next&&!next.startsWith("-"))consumedValues.add(i3+1),i3++;continue}if(INLINE_OPTIONAL_VALUE_FLAGS.has(arg))continue}for(let i3=args.length-1;i3>=0;i3--){if(consumedValues.has(i3))continue;let arg=args[i3];if(arg==="--")continue;if(!arg.startsWith("-"))return i3}return-1}function findFlagValue(args,flag){let inlinePrefix=`${flag}=`,searchable=argsBeforeDelimiter(args);for(let i3=0;i3<searchable.length;i3++){let arg=searchable[i3];if(arg.startsWith(inlinePrefix))return arg.slice(inlinePrefix.length);if(arg===flag&&i3+1<searchable.length&&!searchable[i3+1]?.startsWith("-"))return searchable[i3+1]}return}function findSessionName(args){return findFlagValue(args,"--name")??findFlagValue(args,"-n")}function hasPrintMode(args){let searchable=argsBeforeDelimiter(args);return searchable.includes("--print")||searchable.includes("-p")}function insertBeforePrompt(args,values3){let next=[...args],delimiterIndex=next.indexOf("--"),insertionIndex=delimiterIndex===-1?findPromptIndex(next):delimiterIndex;return next.splice(insertionIndex===-1?next.length:insertionIndex,0,...values3),next}function withGeneratedSessionId(args,sessionId){if(findFlagValue(args,"--session-id"))return args;return insertBeforePrompt(args,["--session-id",sessionId])}function hasForkSession(args){return argsBeforeDelimiter(args).includes("--fork-session")}function findFromPrSelector(args){let searchable=argsBeforeDelimiter(args),inlinePrefix="--from-pr=";for(let i3=0;i3<searchable.length;i3++){let arg=searchable[i3];if(arg.startsWith("--from-pr="))return arg.slice(10)||!0;if(arg==="--from-pr"){let next=searchable[i3+1];return next&&!next.startsWith("-")?next:!0}}return}function hasResumeSource(args){return Boolean(findFlagValue(args,"--resume")??findFlagValue(args,"-r")??findFromPrSelector(args))}async function resolvePrResumeSessionId(selector,deps){if(deps.resolvePrResumeSessionId)return deps.resolvePrResumeSessionId(selector);let{findResumeSessionIdByPrSelector:findResumeSessionIdByPrSelector2}=await Promise.resolve().then(() => (init_conversationRecovery(),exports_conversationRecovery));return findResumeSessionIdByPrSelector2(selector)}async function buildBackgroundSessionLaunch(childArgs,generatedSessionId,deps={}){let explicitSessionId=findFlagValue(childArgs,"--session-id");if(explicitSessionId)return{childArgs,sessionId:explicitSessionId};let resumeSessionId=findFlagValue(childArgs,"--resume")??findFlagValue(childArgs,"-r");if(resumeSessionId&&!hasForkSession(childArgs))return{childArgs,sessionId:resumeSessionId};let fromPrSelector=findFromPrSelector(childArgs);if(fromPrSelector!==void 0&&!hasForkSession(childArgs)){let sessionId=await resolvePrResumeSessionId(fromPrSelector,deps);if(!sessionId){let description=fromPrSelector===!0?"any PR":`PR selector: ${fromPrSelector}`;throw Error(`No conversation found linked to ${description}`)}return{childArgs,sessionId}}return{childArgs:withGeneratedSessionId(childArgs,generatedSessionId),sessionId:generatedSessionId}}function parseBackgroundInvocation(args){let childArgs=stripBackgroundFlag(args),name=findSessionName(childArgs)?.trim()||void 0,promptIndex=findPromptIndex(childArgs),prompt=promptIndex===-1?void 0:childArgs[promptIndex];if(!hasPrintMode(childArgs))childArgs=insertBeforePrompt(childArgs,["--print"]);return{...name?{name}:{},...prompt?{prompt}:{},childArgs}}function parseLogsInvocation(args){let follow=!1,stream4="stdout",target;for(let arg of args){if(arg==="-f"||arg==="--follow"){follow=!0;continue}if(arg==="--stderr"){stream4="stderr";continue}if(arg==="--stdout"){stream4="stdout";continue}target??=arg}return{target,follow,stream:stream4}}function backgroundSessionId(){return`bg-${randomUUID41().slice(0,8)}`}function formatCommand(command11){return command11.map((part)=>/\s/.test(part)?JSON.stringify(part):part).join(" ")}function printSessionTable(sessions){if(sessions.length===0){console.log("No background sessions.");return}let rows=[["ID","STATUS","PID","NAME","STARTED","CWD"],...sessions.map((session2)=>[session2.id,session2.status,String(session2.pid),session2.name??"-",session2.startedAt,session2.cwd])],widths=rows[0].map((_,col)=>Math.max(...rows.map((row)=>row[col].length)));for(let row of rows)console.log(row.map((cell,i3)=>cell.padEnd(widths[i3])).join(" "))}function isOutputClosed(output){return output.destroyed===!0||output.writableDestroyed===!0}function normalizeChunkSize(chunkSize){if(!Number.isFinite(chunkSize)||!chunkSize||chunkSize<1)return LOG_STREAM_CHUNK_SIZE;return Math.floor(chunkSize)}async function waitForDrain(output,signal){if(signal?.aborted||isOutputClosed(output))return!1;return await new Promise((resolve52)=>{let settled=!1,cleanup=()=>{output.off("drain",onDrain),output.off("error",onError),output.off("close",onClose),signal?.removeEventListener("abort",onAbort)},finish=(open20)=>{if(settled)return;settled=!0,cleanup(),resolve52(open20)},onDrain=()=>finish(!isOutputClosed(output)),onError=()=>finish(!1),onClose=()=>finish(!1),onAbort=()=>finish(!1);output.once("drain",onDrain),output.once("error",onError),output.once("close",onClose),signal?.addEventListener("abort",onAbort,{once:!0})})}async function writeLogBuffer(output,buffer,signal){if(buffer.length===0)return!0;if(signal?.aborted||isOutputClosed(output))return!1;try{if(output.write(buffer))return!isOutputClosed(output)}catch{return!1}return await waitForDrain(output,signal)}async function streamLogRange(handle2,start,endExclusive,options2){let output=options2.output??process.stdout,chunkSize=normalizeChunkSize(options2.chunkSize),createBuffer=options2.createBuffer??Buffer.allocUnsafe,position=start;while(position<endExclusive){if(options2.signal?.aborted)return{position,outputOpen:!1};let bytesToRead=Math.min(chunkSize,endExclusive-position),buffer=createBuffer(bytesToRead);if(buffer.length<bytesToRead)throw Error("Log stream buffer factory returned a short buffer");let bytesRead;try{bytesRead=(await handle2.read(buffer,0,bytesToRead,position)).bytesRead}catch(error41){if(!options2.continueOnFileError)throw error41;return{position,outputOpen:!0}}if(bytesRead<=0)break;if(options2.signal?.aborted)return{position,outputOpen:!1};let chunk2=bytesRead===buffer.length?buffer:buffer.subarray(0,bytesRead);if(!await writeLogBuffer(output,chunk2,options2.signal))return{position,outputOpen:!1};position+=bytesRead}return{position,outputOpen:!0}}async function streamLogSnapshot(path25,offset,options2){let handle2;try{handle2=await(options2.openFile??open19)(path25,"r")}catch(error41){if(!options2.continueOnFileError)throw error41;return{position:offset,outputOpen:!0}}let result={position:offset,outputOpen:!0};try{let{size}=await handle2.stat(),start=size<offset?0:offset;return result=size<=start?{position:start,outputOpen:!0}:await streamLogRange(handle2,start,size,options2),result}catch(error41){if(!options2.continueOnFileError)throw error41;return result}finally{if(options2.continueOnFileError)await handle2.close().catch(()=>{return});else await handle2.close()}}async function printExistingLog(path25,options2={}){return(await streamLogSnapshot(path25,0,options2)).position}async function followLogFile(path25,offset,options2={}){let output=options2.output??process.stdout,cleanupController=new AbortController,position=offset,reading=!1,stopped=!1,timer,activePoll;await new Promise((resolve52)=>{let cleanup=()=>{if(stopped)return;if(stopped=!0,timer)(options2.clearInterval??clearInterval)(timer);cleanupController.abort(),process.off("SIGINT",cleanup),process.off("SIGTERM",cleanup),options2.signal?.removeEventListener("abort",cleanup);let pendingPoll=activePoll;if(pendingPoll)pendingPoll.finally(resolve52);else resolve52()},poll=()=>{if(stopped||reading)return;reading=!0;let pollPromise=(async()=>{try{let result=await streamLogSnapshot(path25,position,{...options2,output,signal:cleanupController.signal,continueOnFileError:!0});if(position=result.position,!result.outputOpen)cleanup()}finally{reading=!1}})();activePoll=pollPromise,pollPromise.finally(()=>{if(activePoll===pollPromise)activePoll=void 0})};if(process.once("SIGINT",cleanup),process.once("SIGTERM",cleanup),options2.signal?.aborted){cleanup();return}options2.signal?.addEventListener("abort",cleanup,{once:!0}),timer=(options2.setInterval??setInterval)(poll,options2.pollIntervalMs??LOG_FOLLOW_POLL_INTERVAL_MS)})}function normalizeArgs(args){if(Array.isArray(args))return args;return args?[args]:[]}function sleep10(ms){return new Promise((resolve52)=>setTimeout(resolve52,ms))}async function treeKillAsync(pid,signal){await new Promise((resolve52,reject2)=>{import_tree_kill2.default(pid,signal,(error41)=>{if(error41&&isProcessRunning(pid)){reject2(error41);return}resolve52()})})}async function waitForProcessExit(pid,options2){let attempts=Math.max(1,Math.ceil(options2.graceMs/options2.pollIntervalMs));for(let i3=0;i3<attempts;i3++){if(!options2.isProcessAlive(pid))return!0;await options2.sleep(options2.pollIntervalMs)}return!options2.isProcessAlive(pid)}async function terminateBackgroundProcessTree(pid,options2){let isProcessAlive=options2?.isProcessAlive??isProcessRunning,killTree=options2?.killTree??treeKillAsync,sleepFn=options2?.sleep??sleep10,pollIntervalMs=options2?.pollIntervalMs??DEFAULT_KILL_POLL_INTERVAL_MS;if(options2?.verifyBeforeSignal){if(await options2.verifyBeforeSignal(pid,"SIGTERM")==="not-running")return}else if(!isProcessAlive(pid))return;if(await killTree(pid,"SIGTERM"),await waitForProcessExit(pid,{isProcessAlive,sleep:sleepFn,graceMs:options2?.termGraceMs??DEFAULT_TERM_GRACE_MS,pollIntervalMs}))return;if(await options2?.verifyBeforeSignal?.(pid,"SIGKILL")==="not-running")return;if(await killTree(pid,"SIGKILL"),await waitForProcessExit(pid,{isProcessAlive,sleep:sleepFn,graceMs:options2?.killGraceMs??DEFAULT_KILL_GRACE_MS,pollIntervalMs}))return;throw Error(`Process ${pid} did not exit after SIGKILL`)}function unverifiedProcessError(session2,reason){return Error(`Claudio refused to signal an unverified process for background session ${session2.id} (PID ${session2.pid}): ${reason}. Re-run \`openclaude ps\` and retry after confirming the session identity.`)}async function terminateBackgroundSessionProcessTree(session2,options2={}){let getLiveness=(pid)=>getBackgroundSessionProcessLiveness(pid,options2);await terminateBackgroundProcessTree(session2.pid,{...options2,isProcessAlive:(pid)=>getLiveness(pid)!=="not-running",verifyBeforeSignal:async(pid)=>{let identity4=verifySelectedBackgroundSessionIdentity(session2,options2);if(pid!==session2.pid)throw unverifiedProcessError(session2,"the identity check did not correspond to the selected session and PID");return authorizeBackgroundSessionSignal(session2,identity4)}})}function verifySelectedBackgroundSessionIdentity(session2,options2){let identity4;if(options2.verifySessionIdentity)try{identity4=options2.verifySessionIdentity(session2)}catch{throw unverifiedProcessError(session2,"the live process identity could not be read")}else identity4=verifyBackgroundSessionProcessIdentity(session2,options2);if(identity4.backgroundSessionId!==session2.id||identity4.pid!==session2.pid)throw unverifiedProcessError(session2,"the identity check did not correspond to the selected session and PID");return identity4}function authorizeBackgroundSessionSignal(session2,identity4){if(identity4.state==="not-running")return"not-running";if(identity4.state==="matches")return"matches";throw unverifiedProcessError(session2,identity4.state==="mismatch"?"the PID now belongs to a different process":"the live process identity could not be read")}async function killBackgroundSession(session2,options2={}){let markKilled=options2.markKilled??(async(selected)=>await markBackgroundSessionKilled(selected.id));if(isTerminalBackgroundSession(session2))return await markKilled(session2);let identity4=verifySelectedBackgroundSessionIdentity(session2,options2);if(authorizeBackgroundSessionSignal(session2,identity4)==="matches")await terminateBackgroundSessionProcessTree(session2,options2);return await markKilled(session2)}async function psHandler(_args){let sessions=await refreshBackgroundSessionStatuses();printSessionTable(sessions)}async function logsHandler(args){let parsed=parseLogsInvocation(normalizeArgs(args));if(!parsed.target)fail("Usage: openclaude logs <id-or-name> [-f]");await refreshBackgroundSessionStatuses();let session2=await resolveSessionOrExit(parsed.target),logPath=parsed.stream==="stderr"?session2.stderrLogPath:session2.stdoutLogPath;if(!await backgroundSessionLogExists(logPath))fail(`Log file does not exist: ${logPath}`);let offset;try{offset=await printExistingLog(logPath,{continueOnFileError:parsed.follow})}catch(error41){fail(`Failed to read log file: ${errorMessage3(error41)}`)}if(parsed.follow)await followLogFile(logPath,offset)}async function attachHandler(args){let target=normalizeArgs(args)[0];if(!target)fail("Usage: openclaude attach <id-or-name>");await refreshBackgroundSessionStatuses();let session2=await resolveSessionOrExit(target);console.error(`Attach is not implemented for local background sessions yet. Use \`openclaude logs ${session2.id} -f\` to follow output.`),process.exitCode=1}async function killHandler(args){let target=normalizeArgs(args)[0];if(!target)fail("Usage: openclaude kill <id-or-name>");await refreshBackgroundSessionStatuses();let session2=await resolveSessionOrExit(target),killed=await killBackgroundSession(session2).catch((error41)=>{fail(`Failed to kill background session ${session2.id}: ${errorMessage3(error41)}`)});console.log(`Killed background session ${killed.id}.`)}async function handleBgFlag(args){let parsed=parseBackgroundInvocation(args);if(!parsed.prompt&&!hasResumeSource(parsed.childArgs))fail('Usage: openclaude --bg [--name <name>] "<prompt>"');try{await assertBackgroundSessionNameAvailable(parsed.name)}catch(error41){fail(errorMessage3(error41))}let id=backgroundSessionId(),{childArgs,sessionId}=await buildBackgroundSessionLaunch(parsed.childArgs,randomUUID41()).catch((error41)=>{fail(errorMessage3(error41))}),logPaths=getBackgroundSessionLogPaths(id);await ensureBackgroundSessionDirs();let entrypoint=process.argv[1];if(!entrypoint)fail("Cannot determine Claudio entrypoint for background session");let childConfig=buildBackgroundChildProcessConfig({execPath:process.execPath,execArgv:process.execArgv,entrypoint,childArgs,processEnv:process.env,sessionName:parsed.name,stdoutLogPath:logPaths.stdoutLogPath}),stdoutFd,stderrFd,createdStdoutLog=!1,createdStderrLog=!1,cleanupCreatedLogs=async()=>{if(createdStdoutLog)await unlink28(logPaths.stdoutLogPath).catch(()=>{});if(createdStderrLog)await unlink28(logPaths.stderrLogPath).catch(()=>{})},child;try{stdoutFd=openSync6(logPaths.stdoutLogPath,"wx"),createdStdoutLog=!0,stderrFd=openSync6(logPaths.stderrLogPath,"wx"),createdStderrLog=!0,child=spawn14(childConfig.command,childConfig.args,{cwd:process.cwd(),detached:!0,env:childConfig.env,stdio:["ignore",stdoutFd,stderrFd]}),child.unref()}catch(error41){if(stdoutFd!==void 0)closeSync5(stdoutFd),stdoutFd=void 0;if(stderrFd!==void 0)closeSync5(stderrFd),stderrFd=void 0;await cleanupCreatedLogs(),fail(`Failed to start background session: ${errorMessage3(error41)}`)}finally{if(stdoutFd!==void 0)closeSync5(stdoutFd);if(stderrFd!==void 0)closeSync5(stderrFd)}if(!child.pid)await cleanupCreatedLogs(),fail("Failed to start background session");let command11=[childConfig.command,...childConfig.args],session2=await createBackgroundSession({id,name:parsed.name,pid:child.pid,cwd:process.cwd(),command:command11,provider:findFlagValue(childArgs,"--provider"),model:findFlagValue(childArgs,"--model"),sessionId,stdoutLogPath:logPaths.stdoutLogPath,stderrLogPath:logPaths.stderrLogPath,logFilesPrecreated:!0}).catch(async(error41)=>{await terminateBackgroundProcessTree(child.pid).catch(()=>{}),await cleanupCreatedLogs(),fail(errorMessage3(error41))});if(console.log(`Started background session ${session2.id}.`),session2.name)console.log(`Name: ${session2.name}`);console.log(`PID: ${session2.pid}`),console.log(`Logs: ${session2.stdoutLogPath}`),console.log(`Follow: openclaude logs ${session2.id} -f`),console.log(`Command: ${formatCommand([basename52(childConfig.command),...childConfig.args])}`)}var import_tree_kill2,HEAP_RELAUNCHED_ENV="OPENCLAUDE_HEAP_RELAUNCHED",DEFAULT_TERM_GRACE_MS=2000,DEFAULT_KILL_GRACE_MS=2000,DEFAULT_KILL_POLL_INTERVAL_MS=100,LOG_STREAM_CHUNK_SIZE=65536,LOG_FOLLOW_POLL_INTERVAL_MS=500,REQUIRED_OPTION_VALUE_FLAGS,INLINE_OPTIONAL_VALUE_FLAGS,SPACE_OPTIONAL_VALUE_FLAGS;var init_bg=__esm(()=>{init_genericProcessUtils();init_bgRegistry();import_tree_kill2=__toESM(require_tree_kill(),1),REQUIRED_OPTION_VALUE_FLAGS=new Set(["--add-dir","--agent","--agents","--allowed-tools","--allowedTools","--append-system-prompt","--append-system-prompt-file","--betas","--debug-file","--disallowed-tools","--disallowedTools","--effort","--fallback-model","--file","--input-format","--json-schema","--max-budget-usd","--max-turns","--mcp-config","--model","--name","--output-format","--permission-mode","--permission-prompt-tool","--plugin-dir","--prefill","--provider","--provider-env-file","--resume-session-at","--rewind-files","--session-id","--setting-sources","--settings","--system-prompt","--system-prompt-file","--task-budget","--tools","--workload","-n"]),INLINE_OPTIONAL_VALUE_FLAGS=new Set(["--debug","-d"]),SPACE_OPTIONAL_VALUE_FLAGS=new Set(["--from-pr","--resume","-r"])});var exports_flagSettings={};__export(exports_flagSettings,{eagerLoadSettingsFromArgs:()=>eagerLoadSettingsFromArgs});import{readFileSync as readFileSync21}from"fs";function eagerLoadSettingsFromArgs(argv=process.argv){let settingsFile=eagerParseCliFlag("--settings",argv);if(settingsFile){let settingsResult=loadSettingsFromFlag(settingsFile);if(!settingsResult.ok)return settingsResult}let settingSourcesArg=eagerParseCliFlag("--setting-sources",argv);if(settingSourcesArg!==void 0){let sourcesResult=loadSettingSourcesFromFlag(settingSourcesArg);if(!sourcesResult.ok)return sourcesResult}return{ok:!0}}function loadSettingsFromFlag(settingsFile){try{let trimmedSettings=settingsFile.trim(),looksLikeJson2=trimmedSettings.startsWith("{")&&trimmedSettings.endsWith("}"),settingsPath;if(looksLikeJson2){if(!safeParseJSON(trimmedSettings))return{ok:!1,message:"Error: Invalid JSON provided to --settings"};settingsPath=generateTempFilePath("claude-settings",".json",{contentHash:trimmedSettings}),writeFileSync_DEPRECATED(settingsPath,trimmedSettings,"utf8")}else{let{resolvedPath:resolvedSettingsPath}=safeResolvePath(getFsImplementation(),settingsFile);try{readFileSync21(resolvedSettingsPath,"utf8")}catch(e){if(isENOENT(e))return{ok:!1,message:`Error: Settings file not found: ${resolvedSettingsPath}`};throw e}settingsPath=resolvedSettingsPath}return setFlagSettingsPath(settingsPath),resetSettingsCache(),{ok:!0}}catch(error41){return{ok:!1,message:`Error processing settings: ${errorMessage(error41)}`,cause:error41}}}function loadSettingSourcesFromFlag(settingSourcesArg){try{let sources=parseSettingSourcesFlag(settingSourcesArg);return setAllowedSettingSources(sources),resetSettingsCache(),{ok:!0}}catch(error41){return{ok:!1,message:`Error processing --setting-sources: ${errorMessage(error41)}`,cause:error41}}}var init_flagSettings=__esm(()=>{init_state();init_errors();init_fsOperations();init_json();init_slowOperations();init_tempfile();init_constants2();init_settingsCache()});var WELCOME_NAME="Claude Code",BRAND_TAGLINE="you already know me",WORDMARK_OPEN,WORDMARK_CLAUDE,WORDMARK_WIDTH;var init_brand=__esm(()=>{WORDMARK_OPEN=["█▀█ █▀█ █▀▀ █▄ █","█▄█ █▀▀ ██▄ █ ▀█"],WORDMARK_CLAUDE=["█▀▀ █ ▄▀█ █ █ █▀▄ █▀▀","█▄▄ █▄▄ █▀█ █▄█ █▄▀ ██▄"],WORDMARK_WIDTH=WORDMARK_OPEN[0].length+1+WORDMARK_CLAUDE[0].length});var exports_StartupScreen={};__export(exports_StartupScreen,{printStartupScreen:()=>printStartupScreen,paintLine:()=>paintLine,detectProvider:()=>detectProvider});function lerp(a2,b,t){return[Math.round(a2[0]+(b[0]-a2[0])*t),Math.round(a2[1]+(b[1]-a2[1])*t),Math.round(a2[2]+(b[2]-a2[2])*t)]}function gradAt(stops,t){let s=Math.max(0,Math.min(1,t))*(stops.length-1),i3=Math.floor(s);if(i3>=stops.length-1)return stops[stops.length-1];return lerp(stops[i3],stops[i3+1],s-i3)}function paintLine(text5,stops,lineT){let out="";for(let i3=0;i3<text5.length;i3++){let t=text5.length>1?lineT*0.5+i3/(text5.length-1)*0.5:lineT,[r,g,b]=gradAt(stops,t);out+=`${ansiRgb(r,g,b)}${text5[i3]}`}return out+RESET2}function paintSolid(text5,color3){return`${ansiRgb(...color3)}${text5}${RESET2}`}function paintWelcomeScene(accent,dim2,landscape){return WELCOME_SCENE.map((line)=>{let out="",inClawd=!1;for(let ch2 of line){if(ch2==="§"){inClawd=!inClawd;continue}if(inClawd)out+=paintSolid(ch2,accent);else if(ch2==="*"||ch2==="·")out+=`${DIM2}${paintSolid(ch2,dim2)}`;else if(ch2==="█"||ch2==="▓"||ch2==="░")out+=paintSolid(ch2,landscape);else out+=ch2}return out})}function detectProvider(modelOverride){let useGemini=process.env.CLAUDE_CODE_USE_GEMINI==="1"||process.env.CLAUDE_CODE_USE_GEMINI==="true",useGithub=process.env.CLAUDE_CODE_USE_GITHUB==="1"||process.env.CLAUDE_CODE_USE_GITHUB==="true",useOpenAI=process.env.CLAUDE_CODE_USE_OPENAI==="1"||process.env.CLAUDE_CODE_USE_OPENAI==="true",useMistral=process.env.CLAUDE_CODE_USE_MISTRAL==="1"||process.env.CLAUDE_CODE_USE_MISTRAL==="true";if(useGemini){let model=modelOverride||process.env.GEMINI_MODEL||DEFAULT_GEMINI_MODEL,baseUrl2=process.env.GEMINI_BASE_URL||"https://generativelanguage.googleapis.com/v1beta/openai";return{name:"Google AI / Gemini",model,baseUrl:baseUrl2,isLocal:!1}}if(useMistral){let model=modelOverride||process.env.MISTRAL_MODEL||"devstral-latest",baseUrl2=process.env.MISTRAL_BASE_URL||"https://api.mistral.ai/v1";return{name:"Mistral",model,baseUrl:baseUrl2,isLocal:!1}}if(useGithub){let model=modelOverride||process.env.OPENAI_MODEL||"github:copilot",baseUrl2=process.env.OPENAI_BASE_URL||"https://api.githubcopilot.com";return{name:"GitHub Copilot",model,baseUrl:baseUrl2,isLocal:!1}}if(useOpenAI){let rawModel=modelOverride||process.env.OPENAI_MODEL||"gpt-4o",resolvedRequest=resolveProviderRequest({model:rawModel,baseUrl:process.env.OPENAI_BASE_URL}),baseUrl2=resolvedRequest.baseUrl,isLocal2=isLocalProviderUrl(baseUrl2),routeId=resolveRouteIdFromBaseUrl(baseUrl2),name2="OpenAI";if(process.env.NVIDIA_NIM)name2="NVIDIA NIM";else if(process.env.MINIMAX_API_KEY)name2="MiniMax";else if(resolvedRequest.transport==="codex_responses"||baseUrl2.includes("chatgpt.com/backend-api/codex"))name2="Codex";else if(/openrouter/i.test(baseUrl2))name2="OpenRouter";else if(/together/i.test(baseUrl2))name2="Together AI";else if(/groq/i.test(baseUrl2))name2="Groq";else if(/azure/i.test(baseUrl2))name2="Azure OpenAI";else if(/nvidia/i.test(baseUrl2))name2="NVIDIA NIM";else if(/minimax/i.test(baseUrl2))name2="MiniMax";else if(/api\.kimi\.com/i.test(baseUrl2))name2="Moonshot AI - Kimi Code";else if(routeId&&routeId!=="openai"&&routeId!=="custom")name2=getRouteLabel(routeId)??name2;else if(/moonshot/i.test(baseUrl2))name2="Moonshot AI - API";else if(/deepseek/i.test(baseUrl2))name2="DeepSeek";else if(/mistral/i.test(baseUrl2))name2="Mistral";else if(/atlascloud/i.test(baseUrl2))name2="Atlas Cloud";else if(/nvidia/i.test(rawModel))name2="NVIDIA NIM";else if(/minimax/i.test(rawModel))name2="MiniMax";else if(/\bkimi-for-coding\b/i.test(rawModel))name2="Moonshot AI - Kimi Code";else if(/\bkimi-k/i.test(rawModel)||/moonshot/i.test(rawModel))name2="Moonshot AI - API";else if(/deepseek/i.test(rawModel))name2="DeepSeek";else if(/mistral/i.test(rawModel))name2="Mistral";else if(/llama/i.test(rawModel))name2="Meta Llama";else if(/bankr/i.test(baseUrl2))name2="Bankr";else if(/bankr/i.test(rawModel))name2="Bankr";else if(/atlas\.cloud/i.test(rawModel))name2="Atlas Cloud";else if(isLocal2)name2=getLocalOpenAICompatibleProviderLabel(baseUrl2);let displayModel=resolvedRequest.resolvedModel;if(resolvedRequest.reasoning?.effort)displayModel=`${displayModel} (${resolvedRequest.reasoning.effort})`;return{name:name2,model:displayModel,baseUrl:baseUrl2,isLocal:isLocal2}}let settings=getSettings_DEPRECATED()||{},modelSetting=modelOverride||process.env.ANTHROPIC_MODEL||process.env.CLAUDE_MODEL||settings.model||"claude-sonnet-4-6",resolvedModel=parseUserSpecifiedModel(modelSetting),baseUrl=process.env.ANTHROPIC_BASE_URL??"https://api.anthropic.com",isLocal=isLocalProviderUrl(baseUrl);return{name:isMiniMaxBaseUrl(baseUrl)?"MiniMax":"Anthropic",model:resolvedModel,baseUrl,isLocal}}function boxRow(content,width,rawLen,border){let pad=Math.max(0,width-2-rawLen);return`${ansiRgb(...border)}│${RESET2}${content}${" ".repeat(pad)}${ansiRgb(...border)}│${RESET2}`}function printStartupScreen(modelOverride){if(process.env.CI||!process.stdout.isTTY)return;let ACCENT=[217,119,87],TEXT=[255,255,255],GRAY=[153,153,153],BORDER=[153,153,153],p=detectProvider(modelOverride),version3="0.25.1",W2=62,out=[];out.push(""),out.push(` ${paintSolid(`Welcome to ${WELCOME_NAME}`,ACCENT)} ${DIM2}${paintSolid(`v${version3}`,GRAY)}`),out.push(` ${DIM2}${paintSolid("·".repeat(56),GRAY)}`),out.push(...paintWelcomeScene(ACCENT,GRAY,TEXT).map((line)=>` ${line}`)),out.push(""),out.push(` ${DIM2}${paintSolid(`✦ ${BRAND_TAGLINE} ✦`,GRAY)}`),out.push(""),out.push(`${ansiRgb(...BORDER)}╔${"═".repeat(W2-2)}╗${RESET2}`);let lbl=(k,v,c5=TEXT)=>{let padK=k.padEnd(9);return[` ${DIM2}${ansiRgb(...GRAY)}${padK}${RESET2} ${ansiRgb(...c5)}${v}${RESET2}`,` ${padK} ${v}`.length]},provC=p.isLocal?[130,175,130]:TEXT,[r,l]=lbl("Provider",p.name,provC);out.push(boxRow(r,W2,l,BORDER)),[r,l]=lbl("Model",p.model),out.push(boxRow(r,W2,l,BORDER));let ep=p.baseUrl.length>38?p.baseUrl.slice(0,35)+"...":p.baseUrl;[r,l]=lbl("Endpoint",ep),out.push(boxRow(r,W2,l,BORDER)),out.push(`${ansiRgb(...BORDER)}╠${"═".repeat(W2-2)}╣${RESET2}`);let sC=p.isLocal?[130,175,130]:ACCENT,sL=p.isLocal?"local":"cloud",sRow=` ${ansiRgb(...sC)}●${RESET2} ${DIM2}${ansiRgb(...GRAY)}${sL}${RESET2} ${DIM2}${ansiRgb(...GRAY)}Ready — type ${RESET2}${ansiRgb(...ACCENT)}/help${RESET2}${DIM2}${ansiRgb(...GRAY)} to begin${RESET2}`,sLen=` ● ${sL} Ready — type /help to begin`.length;out.push(boxRow(sRow,W2,sLen,BORDER)),out.push(`${ansiRgb(...BORDER)}╚${"═".repeat(W2-2)}╝${RESET2}`),out.push(""),process.stdout.write(out.join(`
|
|
9124
9124
|
`)+`
|
|
9125
9125
|
`)}var RESET2,DIM2,WELCOME_SCENE;var init_StartupScreen=__esm(()=>{init_providerConfig();init_routeMetadata();init_providerDiscovery();init_settings3();init_model();init_providerProfile();init_brand();RESET2=ANSI_RESET,DIM2=ANSI_DIM;WELCOME_SCENE=[" "," * █████▓░ "," * ███▓░ ░░ "," ░░░░░░ ███▓░ "," ░░░ ░░░░░░░░░░ ███▓░ "," ░░░░░░░░░░░░░░░░░░ * ██▓░░ ▓ "," ░▓▓███▓▓░ "," * ░░░░ "," ░░░░░░░░ "," ░░░░░░░░░░░░░░ "," § █████████ § * "," §██▄█████▄██§ * "," § █████████ § * ","·······§█ █ █ █§··········································"]});var require_error=__commonJS((exports)=>{class CommanderError extends Error{constructor(exitCode,code,message){super(message);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=code,this.exitCode=exitCode,this.nestedError=void 0}}class InvalidArgumentError extends CommanderError{constructor(message){super(1,"commander.invalidArgument",message);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}exports.CommanderError=CommanderError;exports.InvalidArgumentError=InvalidArgumentError});var require_argument=__commonJS((exports)=>{var{InvalidArgumentError}=require_error();class Argument{constructor(name,description){switch(this.description=description||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,name[0]){case"<":this.required=!0,this._name=name.slice(1,-1);break;case"[":this.required=!1,this._name=name.slice(1,-1);break;default:this.required=!0,this._name=name;break}if(this._name.length>3&&this._name.slice(-3)==="...")this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_concatValue(value,previous){if(previous===this.defaultValue||!Array.isArray(previous))return[value];return previous.concat(value)}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}argParser(fn){return this.parseArg=fn,this}choices(values3){return this.argChoices=values3.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(arg,previous);return arg},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function humanReadableArgName(arg){let nameOutput=arg.name()+(arg.variadic===!0?"...":"");return arg.required?"<"+nameOutput+">":"["+nameOutput+"]"}exports.Argument=Argument;exports.humanReadableArgName=humanReadableArgName});var require_help=__commonJS((exports)=>{var{humanReadableArgName}=require_argument();class Help{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(cmd){let visibleCommands=cmd.commands.filter((cmd2)=>!cmd2._hidden),helpCommand=cmd._getHelpCommand();if(helpCommand&&!helpCommand._hidden)visibleCommands.push(helpCommand);if(this.sortSubcommands)visibleCommands.sort((a2,b)=>{return a2.name().localeCompare(b.name())});return visibleCommands}compareOptions(a2,b){let getSortKey=(option)=>{return option.short?option.short.replace(/^-/,""):option.long.replace(/^--/,"")};return getSortKey(a2).localeCompare(getSortKey(b))}visibleOptions(cmd){let visibleOptions=cmd.options.filter((option)=>!option.hidden),helpOption=cmd._getHelpOption();if(helpOption&&!helpOption.hidden){let removeShort=helpOption.short&&cmd._findOption(helpOption.short),removeLong=helpOption.long&&cmd._findOption(helpOption.long);if(!removeShort&&!removeLong)visibleOptions.push(helpOption);else if(helpOption.long&&!removeLong)visibleOptions.push(cmd.createOption(helpOption.long,helpOption.description));else if(helpOption.short&&!removeShort)visibleOptions.push(cmd.createOption(helpOption.short,helpOption.description))}if(this.sortOptions)visibleOptions.sort(this.compareOptions);return visibleOptions}visibleGlobalOptions(cmd){if(!this.showGlobalOptions)return[];let globalOptions=[];for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent){let visibleOptions=ancestorCmd.options.filter((option)=>!option.hidden);globalOptions.push(...visibleOptions)}if(this.sortOptions)globalOptions.sort(this.compareOptions);return globalOptions}visibleArguments(cmd){if(cmd._argsDescription)cmd.registeredArguments.forEach((argument)=>{argument.description=argument.description||cmd._argsDescription[argument.name()]||""});if(cmd.registeredArguments.find((argument)=>argument.description))return cmd.registeredArguments;return[]}subcommandTerm(cmd){let args=cmd.registeredArguments.map((arg)=>humanReadableArgName(arg)).join(" ");return cmd._name+(cmd._aliases[0]?"|"+cmd._aliases[0]:"")+(cmd.options.length?" [options]":"")+(args?" "+args:"")}optionTerm(option){return option.flags}argumentTerm(argument){return argument.name()}longestSubcommandTermLength(cmd,helper){return helper.visibleCommands(cmd).reduce((max2,command11)=>{return Math.max(max2,helper.subcommandTerm(command11).length)},0)}longestOptionTermLength(cmd,helper){return helper.visibleOptions(cmd).reduce((max2,option)=>{return Math.max(max2,helper.optionTerm(option).length)},0)}longestGlobalOptionTermLength(cmd,helper){return helper.visibleGlobalOptions(cmd).reduce((max2,option)=>{return Math.max(max2,helper.optionTerm(option).length)},0)}longestArgumentTermLength(cmd,helper){return helper.visibleArguments(cmd).reduce((max2,argument)=>{return Math.max(max2,helper.argumentTerm(argument).length)},0)}commandUsage(cmd){let cmdName=cmd._name;if(cmd._aliases[0])cmdName=cmdName+"|"+cmd._aliases[0];let ancestorCmdNames="";for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent)ancestorCmdNames=ancestorCmd.name()+" "+ancestorCmdNames;return ancestorCmdNames+cmdName+" "+cmd.usage()}commandDescription(cmd){return cmd.description()}subcommandDescription(cmd){return cmd.summary()||cmd.description()}optionDescription(option){let extraInfo=[];if(option.argChoices)extraInfo.push(`choices: ${option.argChoices.map((choice)=>JSON.stringify(choice)).join(", ")}`);if(option.defaultValue!==void 0){if(option.required||option.optional||option.isBoolean()&&typeof option.defaultValue==="boolean")extraInfo.push(`default: ${option.defaultValueDescription||JSON.stringify(option.defaultValue)}`)}if(option.presetArg!==void 0&&option.optional)extraInfo.push(`preset: ${JSON.stringify(option.presetArg)}`);if(option.envVar!==void 0)extraInfo.push(`env: ${option.envVar}`);if(extraInfo.length>0)return`${option.description} (${extraInfo.join(", ")})`;return option.description}argumentDescription(argument){let extraInfo=[];if(argument.argChoices)extraInfo.push(`choices: ${argument.argChoices.map((choice)=>JSON.stringify(choice)).join(", ")}`);if(argument.defaultValue!==void 0)extraInfo.push(`default: ${argument.defaultValueDescription||JSON.stringify(argument.defaultValue)}`);if(extraInfo.length>0){let extraDescripton=`(${extraInfo.join(", ")})`;if(argument.description)return`${argument.description} ${extraDescripton}`;return extraDescripton}return argument.description}formatHelp(cmd,helper){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth||80,itemIndentWidth=2,itemSeparatorWidth=2;function formatItem(term,description){if(description){let fullText=`${term.padEnd(termWidth+2)}${description}`;return helper.wrap(fullText,helpWidth-2,termWidth+2)}return term}function formatList(textArray){return textArray.join(`
|
|
9126
9126
|
`).replace(/^/gm," ".repeat(2))}let output=[`Usage: ${helper.commandUsage(cmd)}`,""],commandDescription=helper.commandDescription(cmd);if(commandDescription.length>0)output=output.concat([helper.wrap(commandDescription,helpWidth,0),""]);let argumentList=helper.visibleArguments(cmd).map((argument)=>{return formatItem(helper.argumentTerm(argument),helper.argumentDescription(argument))});if(argumentList.length>0)output=output.concat(["Arguments:",formatList(argumentList),""]);let optionList=helper.visibleOptions(cmd).map((option)=>{return formatItem(helper.optionTerm(option),helper.optionDescription(option))});if(optionList.length>0)output=output.concat(["Options:",formatList(optionList),""]);if(this.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map((option)=>{return formatItem(helper.optionTerm(option),helper.optionDescription(option))});if(globalOptionList.length>0)output=output.concat(["Global Options:",formatList(globalOptionList),""])}let commandList=helper.visibleCommands(cmd).map((cmd2)=>{return formatItem(helper.subcommandTerm(cmd2),helper.subcommandDescription(cmd2))});if(commandList.length>0)output=output.concat(["Commands:",formatList(commandList),""]);return output.join(`
|
|
@@ -9324,7 +9324,7 @@ ${fence}`}function codeSpan(value){let content=value.replaceAll(`\r
|
|
|
9324
9324
|
`);if(isRecord13(value)){let content=value.content;if(typeof content==="string")return content;try{return stableStringifyJson(redactObject(value))}catch{return}}return}function extractRawMessageText(message){if(!message)return;let content=message.content;if(typeof content==="string")return content;if(!Array.isArray(content))return;let parts=content.map((block2)=>{if(typeof block2==="string")return block2;if(!isRecord13(block2))return;if(block2.type==="text"&&typeof block2.text==="string")return block2.text;return}).filter((part)=>Boolean(part?.trim()));return parts.length>0?parts.join(`
|
|
9325
9325
|
`):void 0}function extractMessageText2(message){if(!message)return;let content=message.content;if(typeof content==="string")return redact(content);if(!Array.isArray(content))return;let parts=content.map((block2)=>{if(typeof block2==="string")return block2;if(!isRecord13(block2))return;if(block2.type==="text"&&typeof block2.text==="string")return block2.text;if(block2.type==="tool_result")return unknownToString(block2.content);return}).filter((part)=>Boolean(part?.trim()));return parts.length>0?redact(parts.join(`
|
|
9326
9326
|
`)):void 0}function extractXmlTag(text5,tagName){let openingTag=`<${tagName}>`,closingTag=`</${tagName}>`,valueStart=text5.indexOf(openingTag);if(valueStart===-1)return;let contentStart=valueStart+openingTag.length,valueEnd=text5.indexOf(closingTag,contentStart);if(valueEnd===-1)return;return text5.slice(contentStart,valueEnd).trim()||void 0}function collectLinkedReferences(textParts,branch2){let references=new Map;if(branch2.pullRequest){let pr=branch2.pullRequest,key=`pull_request:${pr.repository??""}:${pr.number}:${pr.url??""}`;references.set(key,{kind:"pull_request",number:pr.number,...pr.url?{url:pr.url}:{},...pr.repository?{repository:pr.repository}:{}})}for(let text5 of textParts){for(let reference of extractGithubUrlReferences(text5)){let key=`${reference.kind}:${reference.repository??""}:${reference.number}:${reference.url??""}`;references.set(key,reference)}for(let reference of extractShorthandReferences(text5)){let key=`${reference.kind}:${reference.number}`;if(!references.has(key))references.set(key,reference)}}return[...references.values()].sort((a2,b)=>{let kindCompare=a2.kind.localeCompare(b.kind);if(kindCompare!==0)return kindCompare;let repoCompare=(a2.repository??"").localeCompare(b.repository??"");if(repoCompare!==0)return repoCompare;return a2.number-b.number})}function extractGithubUrlReferences(text5){let references=[],urlPattern=/https:\/\/github\.com\/([A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+)\/(pull|issues)\/(\d+)/g;for(let match of text5.matchAll(urlPattern)){let repository=match[1],kind=match[2]==="pull"?"pull_request":"issue",number5=Number(match[3]),url3=match[0];if(repository&&Number.isSafeInteger(number5))references.push({kind,number:number5,repository,url:url3})}return references}function extractShorthandReferences(text5){let references=[];for(let match of text5.matchAll(/(?<![A-Za-z0-9_])#(\d+)\b/g)){let number5=Number(match[1]);if(Number.isSafeInteger(number5))references.push({kind:"unknown",number:number5})}return references}function formatChangedFiles(changedFileSources){return[...changedFileSources.entries()].map(([path28,sources])=>({path:path28,sources:[...sources].sort()})).sort((a2,b)=>a2.path.localeCompare(b.path))}function addChangedFileSource(changedFileSources,path28,source,cwd2){let redactedPath=redact(normalizeChangedFilePath(path28,cwd2)),sources=changedFileSources.get(redactedPath)??new Set;sources.add(source),changedFileSources.set(redactedPath,sources)}function normalizeChangedFilePath(path28,cwd2){let value=path28.trim(),posixRelative=relativeWithinCwd(value,cwd2,isAbsolute33,relative40);if(posixRelative)return posixRelative.replaceAll("\\","/");let windowsRelative=relativeWithinCwd(value,cwd2,win325.isAbsolute,win325.relative);if(windowsRelative)return windowsRelative.replaceAll("\\","/");return value}function relativeWithinCwd(path28,cwd2,isAbsolutePath,relativePath2){if(!isAbsolutePath(path28)||!isAbsolutePath(cwd2))return;let relativePathValue=relativePath2(cwd2,path28),isOutsideCwd=relativePathValue===".."||relativePathValue.startsWith("../")||relativePathValue.startsWith("..\\");if(!relativePathValue||isOutsideCwd||isAbsolutePath(relativePathValue))return;return relativePathValue}function isValidationCommand(command11){return VALIDATION_COMMAND_PATTERNS.some((pattern)=>pattern.test(command11))}function isShellCommandTool(toolName){return SHELL_COMMAND_TOOLS.has(toolName)}function parseGitStatusChangedFiles(stdout){let changedFiles=[];for(let rawLine of stdout.split(/\r?\n/)){if(!rawLine.trim())continue;let pathPart=rawLine.length>3?rawLine.slice(3).trim():rawLine.trim(),unquoted=(pathPart.includes(" -> ")?pathPart.slice(pathPart.lastIndexOf(" -> ")+4):pathPart).replace(/^"|"$/g,"");if(unquoted)changedFiles.push(unquoted)}return changedFiles}async function runGit(cwd2,args){try{let result=await execa("git",args,{cwd:cwd2,reject:!1,timeout:3000,maxBuffer:1e6});return{stdout:result.stdout,stderr:result.stderr,code:result.exitCode??0}}catch(error41){let execaError=error41,message=error41 instanceof Error?error41.message:String(error41);return{stdout:typeof execaError.stdout==="string"?execaError.stdout:"",stderr:typeof execaError.stderr==="string"?execaError.stderr:"",code:typeof execaError.exitCode==="number"?execaError.exitCode:execaError.timedOut===!0?124:1,error:execaError.timedOut===!0?"git command timed out":message}}}function findSessionId(entries){for(let entry of entries){let sessionId=stringValue(entry.sessionId);if(sessionId)return sessionId}return}function isToolResultEntry(entry){if(entry.sourceToolAssistantUUID)return!0;let content=recordValue(entry.message)?.content;return Array.isArray(content)&&content.some((block2)=>isRecord13(block2)&&block2.type==="tool_result")}function basenameWithoutExtension(path28){let extension2=extname20(path28);return extension2?basename65(path28,extension2):basename65(path28)}function truncateText2(value,maxChars){let safeMax=Math.max(1,maxChars);if(value.length<=safeMax)return{preview:value,truncated:!1,chars:value.length};return{preview:value.slice(0,safeMax),truncated:!0,chars:value.length}}function redact(value){return redactLikelySecrets(redactHomePath(value))}function redactObject(value){return redactDiagnosticObject(value)}function normalizeGitMetadata(metadata){return{status:metadata.status,cwd:redact(metadata.cwd),...metadata.branch?{branch:redact(metadata.branch)}:{},...metadata.head?{head:redact(metadata.head)}:{},...metadata.dirty!==void 0?{dirty:metadata.dirty}:{},changedFiles:sortUnique(metadata.changedFiles.map((path28)=>redact(path28))),...metadata.error?{error:redact(metadata.error)}:{}}}function sortUnique(values3){return[...new Set(values3.filter(Boolean))].sort((a2,b)=>a2.localeCompare(b))}function isRecord13(value){return value!==null&&typeof value==="object"&&!Array.isArray(value)}function recordValue(value){return isRecord13(value)?value:null}function stringValue(value){return typeof value==="string"?value:void 0}function numberValue(value){return typeof value==="number"&&Number.isSafeInteger(value)?value:void 0}function normalizeMaxPreviewChars(value){let candidate=value??DEFAULT_TASK_REPORT_PREVIEW_CHARS;if(!Number.isFinite(candidate))return DEFAULT_TASK_REPORT_PREVIEW_CHARS;return Math.max(1,Math.floor(candidate))}var TASK_REPORT_SCHEMA_VERSION=1,DEFAULT_TASK_REPORT_PREVIEW_CHARS=1000,MUTATING_FILE_TOOLS,FILE_CONTENT_TOOLS,SHELL_COMMAND_TOOLS,VALIDATION_COMMAND_PATTERNS;var init_taskReport=__esm(()=>{init_execa();init_xml();init_redaction();MUTATING_FILE_TOOLS=new Set(["Edit","Write","NotebookEdit"]),FILE_CONTENT_TOOLS=new Set(["Read","Edit","Write","NotebookEdit"]),SHELL_COMMAND_TOOLS=new Set(["Bash","PowerShell"]),VALIDATION_COMMAND_PATTERNS=[/\b(?:bun|npm|pnpm|yarn)\s+(?:run\s+)?(?:build:verified|doctor:runtime(?::json)?|hardening:(?:check|strict)|integrations:check|security:pr-scan|verify:privacy|web:(?:build|typecheck)|test(?::[A-Za-z0-9_-]+)?|typecheck(?::[A-Za-z0-9_-]+)?|build|check|lint|smoke)(?=$|[\s;&|)"'])/,/\bbun\s+test\b/,/\bgit\s+diff\s+--check\b/,/\bpython\s+-m\s+pytest\b/,/\bpytest\b/,/\btsc\b/]});var exports_taskReport={};__export(exports_taskReport,{taskReportHandler:()=>taskReportHandler,printTaskReportError:()=>printTaskReportError});import{resolve as resolve56}from"node:path";function formatError3(error41){return error41 instanceof Error?error41.message:String(error41)}function writeLine(stream4,message){return new Promise((resolve57,reject2)=>{stream4.write(`${message}
|
|
9327
|
-
`,(error41)=>{if(error41)reject2(error41);else resolve57()})})}async function taskReportHandler(options2){let cwd2=resolve56(options2.cwd??process.cwd()),transcriptPath=await resolveTranscriptPath({cwd:cwd2,sessionId:options2.sessionId??null,transcriptPath:options2.transcriptPath??null}),report=await buildTaskReport({transcriptPath,cwd:cwd2}),content=formatTaskReport(report,options2.format);if(options2.outFile){let outputPath=await writeTaskReport(options2.outFile,content);await writeLine(process.stderr,`Task report written to ${outputPath}`);return}await writeLine(process.stdout,content)}async function printTaskReportError(error41){await writeLine(process.stderr,`Failed to generate task report: ${formatError3(error41)}`)}async function resolveTranscriptPath({cwd:cwd2,sessionId,transcriptPath}){if(transcriptPath)return resolve56(cwd2,transcriptPath);let sessionFiles=await getSessionFilesWithMtime(getProjectDir2(cwd2));if(sessionId){let sessionFile=sessionFiles.get(sessionId);if(!sessionFile)throw Error(`Session transcript not found: ${sessionId}`);return sessionFile.path}let latest=null;for(let sessionFile of sessionFiles.values())if(!latest||sessionFile.mtime>latest.mtime||sessionFile.mtime===latest.mtime&&(sessionFile.ctime>latest.ctime||sessionFile.ctime===latest.ctime&&sessionFile.path.localeCompare(latest.path)<0))latest=sessionFile;if(!latest)throw Error("No session transcripts found for the current project. Pass --transcript <file> or --session <id>.");return latest.path}var init_taskReport2=__esm(()=>{init_taskReport();init_sessionStorage()});function registerTaskReportCommand(program2,deps={}){program2.command("report").description("Generate a deterministic task report for an Claudio session").addOption(new Option("--json","Print JSON output").conflicts("markdown")).addOption(new Option("--markdown","Print Markdown output").conflicts("json")).option("--transcript <file>","Path to a session JSONL transcript").option("--session <id>","Session ID to report (defaults to latest session in the current project)").option("--out <file>","Write the report to a file").action(async(options2)=>{let exit3=deps.exit??process.exit;try{let format6=resolveTaskReportFormat(options2);if(options2.transcript&&options2.session)throw Error("Pass either --transcript <file> or --session <id>, not both.");await(deps.taskReportHandler??(await Promise.resolve().then(() => (init_taskReport2(),exports_taskReport))).taskReportHandler)({format:format6,transcriptPath:options2.transcript??null,sessionId:options2.session??null,outFile:options2.out??null,cwd:(deps.cwd??process.cwd)()}),exit3(0)}catch(error41){await(deps.printTaskReportError??(await Promise.resolve().then(() => (init_taskReport2(),exports_taskReport))).printTaskReportError)(error41),exit3(1)}})}function resolveTaskReportFormat(options2){if(options2.json!==!0&&options2.markdown!==!0)throw Error("Pass either --json or --markdown for task report output.");return options2.json?"json":"markdown"}var init_taskReport3=__esm(()=>{init_esm5()});function isInternalWarning(warning){let warningStr=`${warning.name}: ${warning.message}`;return INTERNAL_WARNINGS.some((pattern)=>pattern.test(warningStr))}function isPerformanceEntryBufferWarning(warning){return warning.name===MAX_PERFORMANCE_ENTRY_BUFFER_WARNING}function compactWarningMessage(message){let compact2=message.replace(/\s+/g," ").trim();if(compact2.length<=MAX_WARNING_MESSAGE_LENGTH)return compact2;return`${compact2.slice(0,MAX_WARNING_MESSAGE_LENGTH-3)}...`}function formatDebugWarning(warning,isInternal){if(isPerformanceEntryBufferWarning(warning)){let message=compactWarningMessage(warning.message);return`[Warning] ${warning.name}: ${message}. The Node perf_hooks entry buffer is full; rerun with NODE_OPTIONS=--trace-warnings to identify the producer.`}return`${isInternal?"[Internal Warning]":"[Warning]"} ${warning.toString()}`}function initializeWarningHandler(){let currentListeners=process.listeners("warning");if(warningHandler&¤tListeners.includes(warningHandler))return;if(!1)process.removeAllListeners("warning");warningHandler=(warning)=>{try{let warningKey=`${warning.name}: ${warning.message.slice(0,50)}`,count4=warningCounts.get(warningKey)||0;if(warningCounts.has(warningKey)||warningCounts.size<MAX_WARNING_KEYS)warningCounts.set(warningKey,count4+1);let isInternal=isInternalWarning(warning);if(logEvent("tengu_node_warning",{is_internal:isInternal?1:0,occurrence_count:count4+1,classname:warning.name,...process.env.USER_TYPE==="ant"&&{message:warning.message}}),isEnvTruthy(process.env.CLAUDE_DEBUG))logForDebugging(formatDebugWarning(warning,isInternal),{level:"warn"})}catch{}},process.on("warning",warningHandler)}var MAX_WARNING_KEYS=1000,warningCounts,MAX_PERFORMANCE_ENTRY_BUFFER_WARNING="MaxPerformanceEntryBufferExceededWarning",MAX_WARNING_MESSAGE_LENGTH=200,INTERNAL_WARNINGS,warningHandler=null;var init_warningHandler=__esm(()=>{init_debug();init_envUtils();init_platform2();warningCounts=new Map,INTERNAL_WARNINGS=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function MCPServerDialogCopy(){let $2=import_react_compiler_runtime339.c(1),t0;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t0=jsxDEV(ThemedText,{children:["MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/mcp",children:"MCP documentation"},void 0,!1,void 0,this),"."]},void 0,!0,void 0,this),$2[0]=t0;else t0=$2[0];return t0}var import_react_compiler_runtime339;var init_MCPServerDialogCopy=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime339=__toESM(require_dist4(),1)});function MCPServerApprovalDialog(t0){let $2=import_react_compiler_runtime340.c(13),{serverName,onDone}=t0,t1;if($2[0]!==onDone||$2[1]!==serverName)t1=function(value){logEvent("tengu_mcp_dialog_choice",{choice:value});bb2:switch(value){case"yes":case"yes_all":{let enabledServers=(getSettings_DEPRECATED()||{}).enabledMcpjsonServers||[];if(!enabledServers.includes(serverName))updateSettingsForSource("localSettings",{enabledMcpjsonServers:[...enabledServers,serverName]});if(value==="yes_all")updateSettingsForSource("localSettings",{enableAllProjectMcpServers:!0});onDone();break bb2}case"no":{let disabledServers=(getSettings_DEPRECATED()||{}).disabledMcpjsonServers||[];if(!disabledServers.includes(serverName))updateSettingsForSource("localSettings",{disabledMcpjsonServers:[...disabledServers,serverName]});onDone()}}},$2[0]=onDone,$2[1]=serverName,$2[2]=t1;else t1=$2[2];let onChange=t1,t2=`New MCP server found in .mcp.json: ${serverName}`,t3;if($2[3]!==onChange)t3=()=>onChange("no"),$2[3]=onChange,$2[4]=t3;else t3=$2[4];let t4;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(MCPServerDialogCopy,{},void 0,!1,void 0,this),$2[5]=t4;else t4=$2[5];let t5;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t5=[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],$2[6]=t5;else t5=$2[6];let t6;if($2[7]!==onChange)t6=jsxDEV(Select,{options:t5,onChange:(value_0)=>onChange(value_0),onCancel:()=>onChange("no")},void 0,!1,void 0,this),$2[7]=onChange,$2[8]=t6;else t6=$2[8];let t7;if($2[9]!==t2||$2[10]!==t3||$2[11]!==t6)t7=jsxDEV(Dialog,{title:t2,color:"warning",onCancel:t3,children:[t4,t6]},void 0,!0,void 0,this),$2[9]=t2,$2[10]=t3,$2[11]=t6,$2[12]=t7;else t7=$2[12];return t7}var import_react_compiler_runtime340;var init_MCPServerApprovalDialog=__esm(()=>{init_settings3();init_CustomSelect();init_Dialog();init_MCPServerDialogCopy();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime340=__toESM(require_dist4(),1)});function MCPServerMultiselectDialog(t0){let $2=import_react_compiler_runtime341.c(21),{serverNames,onDone}=t0,t1;if($2[0]!==onDone||$2[1]!==serverNames)t1=function(selectedServers){let currentSettings=getSettings_DEPRECATED()||{},enabledServers=currentSettings.enabledMcpjsonServers||[],disabledServers=currentSettings.disabledMcpjsonServers||[],[approvedServers,rejectedServers]=partition_default(serverNames,(server)=>selectedServers.includes(server));if(logEvent("tengu_mcp_multidialog_choice",{approved:approvedServers.length,rejected:rejectedServers.length}),approvedServers.length>0){let newEnabledServers=[...new Set([...enabledServers,...approvedServers])];updateSettingsForSource("localSettings",{enabledMcpjsonServers:newEnabledServers})}if(rejectedServers.length>0){let newDisabledServers=[...new Set([...disabledServers,...rejectedServers])];updateSettingsForSource("localSettings",{disabledMcpjsonServers:newDisabledServers})}onDone()},$2[0]=onDone,$2[1]=serverNames,$2[2]=t1;else t1=$2[2];let onSubmit=t1,t2;if($2[3]!==onDone||$2[4]!==serverNames)t2=()=>{let disabledServers_0=(getSettings_DEPRECATED()||{}).disabledMcpjsonServers||[],newDisabledServers_0=[...new Set([...disabledServers_0,...serverNames])];updateSettingsForSource("localSettings",{disabledMcpjsonServers:newDisabledServers_0}),onDone()},$2[3]=onDone,$2[4]=serverNames,$2[5]=t2;else t2=$2[5];let handleEscRejectAll=t2,t3=`${serverNames.length} new MCP servers found in .mcp.json`,t4;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(MCPServerDialogCopy,{},void 0,!1,void 0,this),$2[6]=t4;else t4=$2[6];let t5;if($2[7]!==serverNames)t5=serverNames.map(_temp244),$2[7]=serverNames,$2[8]=t5;else t5=$2[8];let t6;if($2[9]!==handleEscRejectAll||$2[10]!==onSubmit||$2[11]!==serverNames||$2[12]!==t5)t6=jsxDEV(SelectMulti,{options:t5,defaultValue:serverNames,onSubmit,onCancel:handleEscRejectAll,hideIndexes:!0},void 0,!1,void 0,this),$2[9]=handleEscRejectAll,$2[10]=onSubmit,$2[11]=serverNames,$2[12]=t5,$2[13]=t6;else t6=$2[13];let t7;if($2[14]!==handleEscRejectAll||$2[15]!==t3||$2[16]!==t6)t7=jsxDEV(Dialog,{title:t3,subtitle:"Select any you wish to enable.",color:"warning",onCancel:handleEscRejectAll,hideInputGuide:!0,children:[t4,t6]},void 0,!0,void 0,this),$2[14]=handleEscRejectAll,$2[15]=t3,$2[16]=t6,$2[17]=t7;else t7=$2[17];let t8;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t8=jsxDEV(ThemedBox_default,{paddingX:1,children:jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Space",action:"select"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[18]=t8;else t8=$2[18];let t9;if($2[19]!==t7)t9=jsxDEV($Fragment,{children:[t7,t8]},void 0,!0,void 0,this),$2[19]=t7,$2[20]=t9;else t9=$2[20];return t9}function _temp244(server_0){return{label:server_0,value:server_0}}var import_react_compiler_runtime341;var init_MCPServerMultiselectDialog=__esm(()=>{init_partition();init_ink2();init_settings3();init_ConfigurableShortcutHint();init_SelectMulti();init_Byline();init_Dialog();init_KeyboardShortcutHint();init_MCPServerDialogCopy();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime341=__toESM(require_dist4(),1)});async function handleMcpjsonServerApprovals(root2){let{servers:projectServers}=getMcpConfigsByScope("project"),pendingServers=Object.keys(projectServers).filter((serverName)=>getProjectMcpServerStatus(serverName)==="pending");if(pendingServers.length===0)return;await new Promise((resolve57)=>{let done=()=>void resolve57();if(pendingServers.length===1&&pendingServers[0]!==void 0){let serverName=pendingServers[0];root2.render(jsxDEV(AppStateProvider,{children:jsxDEV(KeybindingSetup,{children:jsxDEV(MCPServerApprovalDialog,{serverName,onDone:done},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}else root2.render(jsxDEV(AppStateProvider,{children:jsxDEV(KeybindingSetup,{children:jsxDEV(MCPServerMultiselectDialog,{serverNames:pendingServers,onDone:done},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}var init_mcpServerApproval=__esm(()=>{init_MCPServerApprovalDialog();init_MCPServerMultiselectDialog();init_KeybindingProviderSetup();init_AppState();init_config2();init_utils4();init_reactJsxDevRuntimeProductionShim()});var init_terminalPreference=__esm(()=>{init_config();init_debug()});class FpsTracker{frameDurations=Array(5000);sampleCount=0;totalFrameCount=0;writeIndex=0;firstRenderTime;lastRenderTime;record(durationMs){let now2=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=now2;this.lastRenderTime=now2,this.totalFrameCount+=1,this.frameDurations[this.writeIndex]=durationMs,this.writeIndex=(this.writeIndex+1)%5000,this.sampleCount=Math.min(this.sampleCount+1,5000)}getMetrics(){if(this.sampleCount===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let totalTimeMs=this.lastRenderTime-this.firstRenderTime;if(totalTimeMs<=0)return;let averageFps=this.totalFrameCount/(totalTimeMs/1000),sorted=this.getSamples().sort((a2,b)=>b-a2),p99Index=Math.max(0,Math.ceil(sorted.length*0.01)-1),p99FrameTimeMs=sorted[p99Index],low1PctFps=p99FrameTimeMs>0?1000/p99FrameTimeMs:0;return{averageFps:Math.round(averageFps*100)/100,low1PctFps:Math.round(low1PctFps*100)/100}}getSamples(){if(this.sampleCount<5000)return this.frameDurations.slice(0,this.sampleCount);return[...this.frameDurations.slice(this.writeIndex),...this.frameDurations.slice(0,this.writeIndex)]}}import{realpath as realpath13}from"fs/promises";async function updateGithubRepoPathMapping(){try{let repo=await detectCurrentRepository();if(!repo){logForDebugging("Not in a GitHub repository, skipping path mapping update");return}let cwd2=getOriginalCwd(),basePath=findGitRoot(cwd2)??cwd2,currentPath;try{currentPath=(await realpath13(basePath)).normalize("NFC")}catch{currentPath=basePath}let repoKey=repo.toLowerCase(),existingPaths=getGlobalConfig().githubRepoPaths?.[repoKey]??[];if(existingPaths[0]===currentPath){logForDebugging(`Path ${currentPath} already tracked for repo ${repoKey}`);return}let withoutCurrent=existingPaths.filter((p)=>p!==currentPath),updatedPaths=[currentPath,...withoutCurrent];saveGlobalConfig((current)=>({...current,githubRepoPaths:{...current.githubRepoPaths,[repoKey]:updatedPaths}})),logForDebugging(`Added ${currentPath} to tracked paths for repo ${repoKey}`)}catch(error41){logForDebugging(`Error updating repo path mapping: ${error41}`)}}function getKnownPathsForRepo(repo){let config4=getGlobalConfig(),repoKey=repo.toLowerCase();return config4.githubRepoPaths?.[repoKey]??[]}async function filterExistingPaths(paths2){let results=await Promise.all(paths2.map(pathExists));return paths2.filter((_,i3)=>results[i3])}async function validateRepoAtPath(path28,expectedRepo){try{let remoteUrl=await getRemoteUrlForDir(path28);if(!remoteUrl)return!1;let actualRepo=parseGitHubRepository(remoteUrl);if(!actualRepo)return!1;return actualRepo.toLowerCase()===expectedRepo.toLowerCase()}catch{return!1}}function removePathFromRepo(repo,pathToRemove){let config4=getGlobalConfig(),repoKey=repo.toLowerCase(),existingPaths=config4.githubRepoPaths?.[repoKey]??[],updatedPaths=existingPaths.filter((path28)=>path28!==pathToRemove);if(updatedPaths.length===existingPaths.length)return;let updatedMapping={...config4.githubRepoPaths};if(updatedPaths.length===0)delete updatedMapping[repoKey];else updatedMapping[repoKey]=updatedPaths;saveGlobalConfig((current)=>({...current,githubRepoPaths:updatedMapping})),logForDebugging(`Removed ${pathToRemove} from tracked paths for repo ${repoKey}`)}var init_githubRepoPathMapping=__esm(()=>{init_state();init_config();init_debug();init_detectRepository();init_file();init_gitFilesystem();init_git()});async function showDangerousModePromptIfNeeded(root2,permissionMode,allowDangerouslySkipPermissions,showSetupDialog,deps={}){let DialogComponent=deps.DialogComponent??BypassPermissionsModeDialog,getPromptState=deps.getPromptState??getStartupDangerousPermissionPromptState,persistAcceptance=deps.persistAcceptance??persistDangerousModeAcceptance,dangerousPromptState=getPromptState({permissionMode,allowDangerouslySkipPermissions});if(!dangerousPromptState.shouldShow||!dangerousPromptState.mode)return!1;let dangerousMode=dangerousPromptState.mode;return await showSetupDialog(root2,(done)=>jsxDEV(DialogComponent,{mode:dangerousMode,onAccept:()=>{persistAcceptance(dangerousMode),done()}},void 0,!1,void 0,this)),!0}var init_dangerousModePromptFlow=__esm(()=>{init_BypassPermissionsModeDialog();init_dangerousModePromptRuntime();init_reactJsxDevRuntimeProductionShim()});var init_devChannelRegistration=__esm(()=>{init_state()});function useTimeout(delay,resetTrigger){let[isElapsed,setIsElapsed]=import_react316.useState(!1);return import_react316.useEffect(()=>{setIsElapsed(!1);let timer=setTimeout(setIsElapsed,delay,!0);return()=>clearTimeout(timer)},[delay,resetTrigger]),isElapsed}var import_react316;var init_useTimeout=__esm(()=>{import_react316=__toESM(require_react_production(),1)});async function checkEndpoints(){try{let oauthConfig=getOauthConfig(),tokenUrl=new URL(oauthConfig.TOKEN_URL),endpoints=[`${oauthConfig.BASE_API_URL}/api/hello`,`${tokenUrl.origin}/v1/oauth/hello`],checkEndpoint=async(url3)=>{try{let response=await axios_default.get(url3,{headers:{"User-Agent":getUserAgent()},timeout:PREFLIGHT_REQUEST_TIMEOUT_MS});if(response.status!==200)return{success:!1,error:`Failed to connect to ${new URL(url3).hostname}: Status ${response.status}`};return{success:!0}}catch(error41){let hostname3=new URL(url3).hostname,sslHint=getSSLErrorHint(error41);return{success:!1,error:`Failed to connect to ${hostname3}: ${error41 instanceof Error?error41.code||error41.message:String(error41)}`,sslHint:sslHint??void 0}}},failedResult=(await Promise.all(endpoints.map(checkEndpoint))).find((result)=>!result.success);if(failedResult)logEvent("tengu_preflight_check_failed",{isConnectivityError:!1,hasErrorMessage:!!failedResult.error,isSSLError:!!failedResult.sslHint});return failedResult||{success:!0}}catch(error41){return logError(error41),logEvent("tengu_preflight_check_failed",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${error41 instanceof Error?error41.code||error41.message:String(error41)}`}}}function PreflightStep(t0){let $2=import_react_compiler_runtime342.c(12),{onSuccess}=t0,[result,setResult]=import_react317.useState(null),[isChecking,setIsChecking]=import_react317.useState(!0),showSpinner=useTimeout(1000)&&isChecking,t1,t2;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=()=>{(async function(){let checkResult=await checkEndpoints();setResult(checkResult),setIsChecking(!1)})()},t2=[],$2[0]=t1,$2[1]=t2;else t1=$2[0],t2=$2[1];import_react317.useEffect(t1,t2);let t3,t4;if($2[2]!==onSuccess||$2[3]!==result)t3=()=>{if(result?.success)onSuccess();else if(result&&!result.success){let timer=setTimeout(onSuccess,PREFLIGHT_ERROR_HOLD_MS);return()=>clearTimeout(timer)}},t4=[result,onSuccess],$2[2]=onSuccess,$2[3]=result,$2[4]=t3,$2[5]=t4;else t3=$2[4],t4=$2[5];import_react317.useEffect(t3,t4);let t5;if($2[6]!==isChecking||$2[7]!==result||$2[8]!==showSpinner)t5=isChecking&&showSpinner?jsxDEV(ThemedBox_default,{paddingLeft:1,children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:"Checking connectivity..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):!result?.success&&!isChecking&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"error",children:"Unable to connect to Anthropic services"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:result?.error},void 0,!1,void 0,this),result?.sslHint?jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{children:result.sslHint},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"suggestion",children:"See https://code.claude.com/docs/en/network-config"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{children:"Please check your internet connection and network settings."},void 0,!1,void 0,this),getAPIProvider()==="firstParty"&&jsxDEV(ThemedText,{children:["Note: Claude Code might not be available in your country. Check supported countries at"," ",jsxDEV(ThemedText,{color:"suggestion",children:"https://anthropic.com/supported-countries"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Continuing: you can configure a non-Anthropic provider later with /provider."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[6]=isChecking,$2[7]=result,$2[8]=showSpinner,$2[9]=t5;else t5=$2[9];let t6;if($2[10]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingLeft:1,children:t5},void 0,!1,void 0,this),$2[10]=t5,$2[11]=t6;else t6=$2[11];return t6}var import_react_compiler_runtime342,import_react317,PREFLIGHT_REQUEST_TIMEOUT_MS=5000,PREFLIGHT_ERROR_HOLD_MS=4000;var init_preflightChecks=__esm(()=>{init_axios2();init_Spinner2();init_oauth();init_useTimeout();init_ink2();init_errorUtils();init_http2();init_log2();init_providers();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime342=__toESM(require_dist4(),1),import_react317=__toESM(require_react_production(),1)});var exports_ApproveApiKey={};__export(exports_ApproveApiKey,{ApproveApiKey:()=>ApproveApiKey});function ApproveApiKey(t0){let $2=import_react_compiler_runtime343.c(17),{customApiKeyTruncated,onDone}=t0,t1;if($2[0]!==customApiKeyTruncated||$2[1]!==onDone)t1=function(value){bb2:switch(value){case"yes":{saveGlobalConfig((current_0)=>({...current_0,customApiKeyResponses:{...current_0.customApiKeyResponses,approved:[...current_0.customApiKeyResponses?.approved??[],customApiKeyTruncated]}})),onDone(!0);break bb2}case"no":saveGlobalConfig((current)=>({...current,customApiKeyResponses:{...current.customApiKeyResponses,rejected:[...current.customApiKeyResponses?.rejected??[],customApiKeyTruncated]}})),onDone(!1)}},$2[0]=customApiKeyTruncated,$2[1]=onDone,$2[2]=t1;else t1=$2[2];let onChange=t1,t2;if($2[3]!==onChange)t2=()=>onChange("no"),$2[3]=onChange,$2[4]=t2;else t2=$2[4];let t3;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t3=jsxDEV(ThemedText,{bold:!0,children:"ANTHROPIC_API_KEY"},void 0,!1,void 0,this),$2[5]=t3;else t3=$2[5];let t4;if($2[6]!==customApiKeyTruncated)t4=jsxDEV(ThemedText,{children:[t3,jsxDEV(ThemedText,{children:[": sk-ant-...",customApiKeyTruncated]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[6]=customApiKeyTruncated,$2[7]=t4;else t4=$2[7];let t5;if($2[8]===Symbol.for("react.memo_cache_sentinel"))t5=jsxDEV(ThemedText,{children:"Do you want to use this API key?"},void 0,!1,void 0,this),$2[8]=t5;else t5=$2[8];let t6;if($2[9]===Symbol.for("react.memo_cache_sentinel"))t6={label:"Yes",value:"yes"},$2[9]=t6;else t6=$2[9];let t7;if($2[10]===Symbol.for("react.memo_cache_sentinel"))t7=[t6,{label:jsxDEV(ThemedText,{children:["No (",jsxDEV(ThemedText,{bold:!0,children:"recommended"},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),value:"no"}],$2[10]=t7;else t7=$2[10];let t8;if($2[11]!==onChange)t8=jsxDEV(Select,{defaultValue:"no",defaultFocusValue:"no",options:t7,onChange:(value_0)=>onChange(value_0),onCancel:()=>onChange("no")},void 0,!1,void 0,this),$2[11]=onChange,$2[12]=t8;else t8=$2[12];let t9;if($2[13]!==t2||$2[14]!==t4||$2[15]!==t8)t9=jsxDEV(Dialog,{title:"Detected a custom API key in your environment",color:"warning",onCancel:t2,children:[t4,t5,t8]},void 0,!0,void 0,this),$2[13]=t2,$2[14]=t4,$2[15]=t8,$2[16]=t9;else t9=$2[16];return t9}var import_react_compiler_runtime343;var init_ApproveApiKey=__esm(()=>{init_ink2();init_config();init_CustomSelect();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime343=__toESM(require_dist4(),1)});function WelcomeV2(){let $2=import_react_compiler_runtime344.c(35),[theme2]=useTheme();if(env3.terminal==="Apple_Terminal"){let t02;if($2[0]!==theme2)t02=jsxDEV(AppleTerminalWelcomeV2,{theme:theme2,welcomeMessage:"Welcome to Claudio"},void 0,!1,void 0,this),$2[0]=theme2,$2[1]=t02;else t02=$2[1];return t02}if(["light","light-daltonized","light-ansi"].includes(theme2)){let t02,t17,t22,t32,t42,t52,t62,t72,t82;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t02=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{color:"claude",children:["Welcome to Claudio"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.0"," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t17=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t22=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t32=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t42=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t52=jsxDEV(ThemedText,{children:" ░░░░░░ "},void 0,!1,void 0,this),t62=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ "},void 0,!1,void 0,this),t72=jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),t82=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),$2[2]=t02,$2[3]=t17,$2[4]=t22,$2[5]=t32,$2[6]=t42,$2[7]=t52,$2[8]=t62,$2[9]=t72,$2[10]=t82;else t02=$2[2],t17=$2[3],t22=$2[4],t32=$2[5],t42=$2[6],t52=$2[7],t62=$2[8],t72=$2[9],t82=$2[10];let t92;if($2[11]===Symbol.for("react.memo_cache_sentinel"))t92=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[11]=t92;else t92=$2[11];let t102,t112;if($2[12]===Symbol.for("react.memo_cache_sentinel"))t102=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▒▒██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t112=jsxDEV(ThemedText,{children:" ▒▒ ██ ▒"},void 0,!1,void 0,this),$2[12]=t102,$2[13]=t112;else t102=$2[12],t112=$2[13];let t122;if($2[14]===Symbol.for("react.memo_cache_sentinel"))t122=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this)," ▒▒░░▒▒ ▒ ▒▒"]},void 0,!0,void 0,this),$2[14]=t122;else t122=$2[14];let t132;if($2[15]===Symbol.for("react.memo_cache_sentinel"))t132=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",backgroundColor:"clawd_background",children:"██▄█████▄██"},void 0,!1,void 0,this)," ▒▒ ▒▒ "]},void 0,!0,void 0,this),$2[15]=t132;else t132=$2[15];let t142;if($2[16]===Symbol.for("react.memo_cache_sentinel"))t142=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this)," ░ ▒ "]},void 0,!0,void 0,this),$2[16]=t142;else t142=$2[16];let t152;if($2[17]===Symbol.for("react.memo_cache_sentinel"))t152=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t02,t17,t22,t32,t42,t52,t62,t72,t82,t92,t102,t112,t122,t132,t142,jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{color:"clawd_body",children:"█ █ █ █"},void 0,!1,void 0,this),"……………………………………………………………………░…………………………▒…………"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[17]=t152;else t152=$2[17];return t152}let t0,t1,t2,t3,t4,t5,t6;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t0=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{color:"claude",children:["Welcome to Claudio"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.0"," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t1=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t2=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t3=jsxDEV(ThemedText,{children:" * █████▓▓░ "},void 0,!1,void 0,this),t4=jsxDEV(ThemedText,{children:" * ███▓░ ░░ "},void 0,!1,void 0,this),t5=jsxDEV(ThemedText,{children:" ░░░░░░ ███▓░ "},void 0,!1,void 0,this),t6=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ ███▓░ "},void 0,!1,void 0,this),$2[18]=t0,$2[19]=t1,$2[20]=t2,$2[21]=t3,$2[22]=t4,$2[23]=t5,$2[24]=t6;else t0=$2[18],t1=$2[19],t2=$2[20],t3=$2[21],t4=$2[22],t5=$2[23],t6=$2[24];let t10,t11,t7,t8,t9;if($2[25]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▓░░ ▓ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t8=jsxDEV(ThemedText,{children:" ░▓▓███▓▓░ "},void 0,!1,void 0,this),t9=jsxDEV(ThemedText,{dimColor:!0,children:" * ░░░░ "},void 0,!1,void 0,this),t10=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░ "},void 0,!1,void 0,this),t11=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),$2[25]=t10,$2[26]=t11,$2[27]=t7,$2[28]=t8,$2[29]=t9;else t10=$2[25],t11=$2[26],t7=$2[27],t8=$2[28],t9=$2[29];let t12;if($2[30]===Symbol.for("react.memo_cache_sentinel"))t12=jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this),$2[30]=t12;else t12=$2[30];let t13;if($2[31]===Symbol.for("react.memo_cache_sentinel"))t13=jsxDEV(ThemedText,{children:[" ",t12," ",jsxDEV(ThemedText,{dimColor:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[31]=t13;else t13=$2[31];let t14;if($2[32]===Symbol.for("react.memo_cache_sentinel"))t14=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:"██▄█████▄██"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[32]=t14;else t14=$2[32];let t15;if($2[33]===Symbol.for("react.memo_cache_sentinel"))t15=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this)," * "]},void 0,!0,void 0,this),$2[33]=t15;else t15=$2[33];let t16;if($2[34]===Symbol.for("react.memo_cache_sentinel"))t16=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t13,t14,t15,jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{color:"clawd_body",children:"█ █ █ █"},void 0,!1,void 0,this),"………………………………………………………………………………………………………………"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[34]=t16;else t16=$2[34];return t16}function AppleTerminalWelcomeV2(t0){let $2=import_react_compiler_runtime344.c(44),{theme:theme2,welcomeMessage}=t0;if(["light","light-daltonized","light-ansi"].includes(theme2)){let t110;if($2[0]!==welcomeMessage)t110=jsxDEV(ThemedText,{color:"claude",children:[welcomeMessage," "]},void 0,!0,void 0,this),$2[0]=welcomeMessage,$2[1]=t110;else t110=$2[1];let t22;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t22=jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.0"," "]},void 0,!0,void 0,this),$2[2]=t22;else t22=$2[2];let t32;if($2[3]!==t110)t32=jsxDEV(ThemedText,{children:[t110,t22]},void 0,!0,void 0,this),$2[3]=t110,$2[4]=t32;else t32=$2[4];let t102,t112,t42,t52,t62,t72,t82,t92;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t42=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t52=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t62=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t72=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t82=jsxDEV(ThemedText,{children:" ░░░░░░ "},void 0,!1,void 0,this),t92=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ "},void 0,!1,void 0,this),t102=jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),t112=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),$2[5]=t102,$2[6]=t112,$2[7]=t42,$2[8]=t52,$2[9]=t62,$2[10]=t72,$2[11]=t82,$2[12]=t92;else t102=$2[5],t112=$2[6],t42=$2[7],t52=$2[8],t62=$2[9],t72=$2[10],t82=$2[11],t92=$2[12];let t122;if($2[13]===Symbol.for("react.memo_cache_sentinel"))t122=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[13]=t122;else t122=$2[13];let t132,t142,t152;if($2[14]===Symbol.for("react.memo_cache_sentinel"))t132=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▒▒██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t142=jsxDEV(ThemedText,{children:" ▒▒ ██ ▒"},void 0,!1,void 0,this),t152=jsxDEV(ThemedText,{children:" ▒▒░░▒▒ ▒ ▒▒"},void 0,!1,void 0,this),$2[14]=t132,$2[15]=t142,$2[16]=t152;else t132=$2[14],t142=$2[15],t152=$2[16];let t162;if($2[17]===Symbol.for("react.memo_cache_sentinel"))t162=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:"▗"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"clawd_background",backgroundColor:"clawd_body",children:[" ","▗"," ","▖"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"clawd_body",children:"▖"},void 0,!1,void 0,this)," ▒▒ ▒▒ "]},void 0,!0,void 0,this),$2[17]=t162;else t162=$2[17];let t172;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t172=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" ".repeat(9)},void 0,!1,void 0,this)," ░ ▒ "]},void 0,!0,void 0,this),$2[18]=t172;else t172=$2[18];let t182;if($2[19]===Symbol.for("react.memo_cache_sentinel"))t182=jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),"……………………………………………………………………░…………………………▒…………"]},void 0,!0,void 0,this),$2[19]=t182;else t182=$2[19];let t192;if($2[20]!==t32)t192=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t32,t42,t52,t62,t72,t82,t92,t102,t112,t122,t132,t142,t152,t162,t172,t182]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[20]=t32,$2[21]=t192;else t192=$2[21];return t192}let t1;if($2[22]!==welcomeMessage)t1=jsxDEV(ThemedText,{color:"claude",children:[welcomeMessage," "]},void 0,!0,void 0,this),$2[22]=welcomeMessage,$2[23]=t1;else t1=$2[23];let t2;if($2[24]===Symbol.for("react.memo_cache_sentinel"))t2=jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.0"," "]},void 0,!0,void 0,this),$2[24]=t2;else t2=$2[24];let t3;if($2[25]!==t1)t3=jsxDEV(ThemedText,{children:[t1,t2]},void 0,!0,void 0,this),$2[25]=t1,$2[26]=t3;else t3=$2[26];let t4,t5,t6,t7,t8,t9;if($2[27]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t5=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t6=jsxDEV(ThemedText,{children:" * █████▓▓░ "},void 0,!1,void 0,this),t7=jsxDEV(ThemedText,{children:" * ███▓░ ░░ "},void 0,!1,void 0,this),t8=jsxDEV(ThemedText,{children:" ░░░░░░ ███▓░ "},void 0,!1,void 0,this),t9=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ ███▓░ "},void 0,!1,void 0,this),$2[27]=t4,$2[28]=t5,$2[29]=t6,$2[30]=t7,$2[31]=t8,$2[32]=t9;else t4=$2[27],t5=$2[28],t6=$2[29],t7=$2[30],t8=$2[31],t9=$2[32];let t10,t11,t12,t13,t14;if($2[33]===Symbol.for("react.memo_cache_sentinel"))t10=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▓░░ ▓ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t11=jsxDEV(ThemedText,{children:" ░▓▓███▓▓░ "},void 0,!1,void 0,this),t12=jsxDEV(ThemedText,{dimColor:!0,children:" * ░░░░ "},void 0,!1,void 0,this),t13=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░ "},void 0,!1,void 0,this),t14=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),$2[33]=t10,$2[34]=t11,$2[35]=t12,$2[36]=t13,$2[37]=t14;else t10=$2[33],t11=$2[34],t12=$2[35],t13=$2[36],t14=$2[37];let t15;if($2[38]===Symbol.for("react.memo_cache_sentinel"))t15=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{dimColor:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[38]=t15;else t15=$2[38];let t16;if($2[39]===Symbol.for("react.memo_cache_sentinel"))t16=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:"▗"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"clawd_background",backgroundColor:"clawd_body",children:[" ","▗"," ","▖"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"clawd_body",children:"▖"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[39]=t16;else t16=$2[39];let t17;if($2[40]===Symbol.for("react.memo_cache_sentinel"))t17=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" ".repeat(9)},void 0,!1,void 0,this)," * "]},void 0,!0,void 0,this),$2[40]=t17;else t17=$2[40];let t18;if($2[41]===Symbol.for("react.memo_cache_sentinel"))t18=jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),"………………………………………………………………………………………………………………"]},void 0,!0,void 0,this),$2[41]=t18;else t18=$2[41];let t19;if($2[42]!==t3)t19=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[42]=t3,$2[43]=t19;else t19=$2[43];return t19}var import_react_compiler_runtime344,WELCOME_V2_WIDTH=58;var init_WelcomeV2=__esm(()=>{init_ink2();init_env();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime344=__toESM(require_dist4(),1)});function OrderedListItem(t0){let $2=import_react_compiler_runtime345.c(7),{children}=t0,{marker}=import_react318.useContext(OrderedListItemContext),t1;if($2[0]!==marker)t1=jsxDEV(ThemedText,{dimColor:!0,children:marker},void 0,!1,void 0,this),$2[0]=marker,$2[1]=t1;else t1=$2[1];let t2;if($2[2]!==children)t2=jsxDEV(ThemedBox_default,{flexDirection:"column",children},void 0,!1,void 0,this),$2[2]=children,$2[3]=t2;else t2=$2[3];let t3;if($2[4]!==t1||$2[5]!==t2)t3=jsxDEV(ThemedBox_default,{gap:1,children:[t1,t2]},void 0,!0,void 0,this),$2[4]=t1,$2[5]=t2,$2[6]=t3;else t3=$2[6];return t3}var import_react_compiler_runtime345,import_react318,OrderedListItemContext;var init_OrderedListItem=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime345=__toESM(require_dist4(),1),import_react318=__toESM(require_react_production(),1),OrderedListItemContext=import_react318.createContext({marker:""})});function OrderedListComponent(t0){let $2=import_react_compiler_runtime346.c(9),{children}=t0,{marker:parentMarker}=import_react319.useContext(OrderedListContext),numberOfItems=0;for(let child of import_react319.default.Children.toArray(children)){if(!import_react319.isValidElement(child)||child.type!==OrderedListItem)continue;numberOfItems++}let maxMarkerWidth=String(numberOfItems).length,t1;if($2[0]!==children||$2[1]!==maxMarkerWidth||$2[2]!==parentMarker){let t22;if($2[4]!==maxMarkerWidth||$2[5]!==parentMarker)t22=(child_0,index)=>{if(!import_react319.isValidElement(child_0)||child_0.type!==OrderedListItem)return child_0;let paddedMarker=`${String(index+1).padStart(maxMarkerWidth)}.`,marker=`${parentMarker}${paddedMarker}`;return jsxDEV(OrderedListContext.Provider,{value:{marker},children:jsxDEV(OrderedListItemContext.Provider,{value:{marker},children:child_0},void 0,!1,void 0,this)},void 0,!1,void 0,this)},$2[4]=maxMarkerWidth,$2[5]=parentMarker,$2[6]=t22;else t22=$2[6];t1=import_react319.default.Children.map(children,t22),$2[0]=children,$2[1]=maxMarkerWidth,$2[2]=parentMarker,$2[3]=t1}else t1=$2[3];let t2;if($2[7]!==t1)t2=jsxDEV(ThemedBox_default,{flexDirection:"column",children:t1},void 0,!1,void 0,this),$2[7]=t1,$2[8]=t2;else t2=$2[8];return t2}var import_react_compiler_runtime346,import_react319,OrderedListContext,OrderedList;var init_OrderedList=__esm(()=>{init_ink2();init_OrderedListItem();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime346=__toESM(require_dist4(),1),import_react319=__toESM(require_react_production(),1),OrderedListContext=import_react319.createContext({marker:""});OrderedListComponent.Item=OrderedListItem;OrderedList=OrderedListComponent});var exports_Onboarding={};__export(exports_Onboarding,{SkippableStep:()=>SkippableStep,Onboarding:()=>Onboarding});function Onboarding({onDone}){let[currentStepIndex,setCurrentStepIndex]=import_react320.useState(0),[skipOAuth,setSkipOAuth]=import_react320.useState(!1),[oauthEnabled]=import_react320.useState(()=>isAnthropicAuthEnabled()),[theme2,setTheme]=useTheme();import_react320.useEffect(()=>{logEvent("tengu_began_setup",{oauthEnabled})},[oauthEnabled]);function goToNextStep(){if(currentStepIndex<steps.length-1){let nextIndex=currentStepIndex+1;setCurrentStepIndex(nextIndex),logEvent("tengu_onboarding_step",{oauthEnabled,stepId:steps[nextIndex]?.id})}else onDone()}function handleThemeSelection(newTheme){setTheme(newTheme),goToNextStep()}let exitState=useExitOnCtrlCDWithKeybindings(),themeStep=jsxDEV(ThemedBox_default,{marginX:1,children:jsxDEV(ThemePicker,{onThemeSelect:handleThemeSelection,showIntroText:!0,helpText:"To change this later, run /theme",hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),securityStep=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingLeft:1,children:[jsxDEV(ThemedText,{bold:!0,children:"Security notes:"},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",width:70,children:jsxDEV(OrderedList,{children:[jsxDEV(OrderedList.Item,{children:[jsxDEV(ThemedText,{children:[PRODUCT_DISPLAY_NAME," can make mistakes"]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,wrap:"wrap",children:["You should always review ",PRODUCT_DISPLAY_NAME,"'s responses, especially when",jsxDEV(Newline,{},void 0,!1,void 0,this),"running code.",jsxDEV(Newline,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(OrderedList.Item,{children:[jsxDEV(ThemedText,{children:"Due to prompt injection risks, only use it with code you trust"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,wrap:"wrap",children:["Repository files and tool output can contain instructions that try to steer ",PRODUCT_DISPLAY_NAME," toward unsafe tool use."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),jsxDEV(PressEnterToContinue,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),preflightStep=jsxDEV(PreflightStep,{onSuccess:goToNextStep},void 0,!1,void 0,this),apiKeyNeedingApproval=import_react320.useMemo(()=>{if(!process.env.ANTHROPIC_API_KEY||isRunningOnHomespace()||!isAnthropicAuthEnabled())return"";let customApiKeyTruncated=normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);if(getCustomApiKeyStatus(customApiKeyTruncated)==="new")return customApiKeyTruncated},[]);function handleApiKeyDone(approved){if(approved)setSkipOAuth(!0);goToNextStep()}let steps=[];if(oauthEnabled)steps.push({id:"preflight",component:preflightStep});if(steps.push({id:"theme",component:themeStep}),apiKeyNeedingApproval)steps.push({id:"api-key",component:jsxDEV(ApproveApiKey,{customApiKeyTruncated:apiKeyNeedingApproval,onDone:handleApiKeyDone},void 0,!1,void 0,this)});if(oauthEnabled)steps.push({id:"oauth",component:jsxDEV(SkippableStep,{skip:skipOAuth,onSkip:goToNextStep,children:jsxDEV(ConsoleOAuthFlow,{onDone:goToNextStep},void 0,!1,void 0,this)},void 0,!1,void 0,this)});if(steps.push({id:"security",component:securityStep}),shouldOfferTerminalSetup())steps.push({id:"terminal-setup",component:jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingLeft:1,children:[jsxDEV(ThemedText,{bold:!0,children:["Use ",PRODUCT_DISPLAY_NAME,"'s terminal setup?"]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",width:70,gap:1,children:[jsxDEV(ThemedText,{children:["For the optimal coding experience, enable the recommended settings",jsxDEV(Newline,{},void 0,!1,void 0,this),"for your terminal:"," ",env3.terminal==="Apple_Terminal"?"Option+Enter for newlines and visual bell":"Shift+Enter for newlines"]},void 0,!0,void 0,this),jsxDEV(Select,{options:[{label:"Yes, use recommended settings",value:"install"},{label:"No, maybe later with /terminal-setup",value:"no"}],onChange:(value)=>{if(value==="install")setupTerminal(theme2).catch(()=>{}).finally(goToNextStep);else goToNextStep()},onCancel:()=>goToNextStep()},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV($Fragment,{children:"Enter to confirm · Esc to skip"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)});let currentStep=steps[currentStepIndex],handleSecurityContinue=import_react320.useCallback(()=>{if(currentStepIndex===steps.length-1)onDone();else goToNextStep()},[currentStepIndex,steps.length,oauthEnabled,onDone]),handleTerminalSetupSkip=import_react320.useCallback(()=>{goToNextStep()},[currentStepIndex,steps.length,oauthEnabled,onDone]);return useKeybindings({"confirm:yes":handleSecurityContinue},{context:"Confirmation",isActive:currentStep?.id==="security"}),useKeybindings({"confirm:no":handleTerminalSetupSkip},{context:"Confirmation",isActive:currentStep?.id==="terminal-setup"}),jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(WelcomeV2,{},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[currentStep?.component,exitState.pending&&jsxDEV(ThemedBox_default,{padding:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function SkippableStep(t0){let $2=import_react_compiler_runtime347.c(4),{skip,onSkip,children}=t0,t1,t2;if($2[0]!==onSkip||$2[1]!==skip)t1=()=>{if(skip)onSkip()},t2=[skip,onSkip],$2[0]=onSkip,$2[1]=skip,$2[2]=t1,$2[3]=t2;else t1=$2[2],t2=$2[3];if(import_react320.useEffect(t1,t2),skip)return null;return children}var import_react_compiler_runtime347,import_react320;var init_Onboarding=__esm(()=>{init_terminalSetup();init_useExitOnCtrlCDWithKeybindings();init_ink2();init_useKeybinding();init_auth5();init_authPortable();init_config();init_env();init_envUtils();init_preflightChecks();init_ApproveApiKey();init_ConsoleOAuthFlow();init_select();init_WelcomeV2();init_PressEnterToContinue();init_ThemePicker();init_OrderedList();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime347=__toESM(require_dist4(),1),import_react320=__toESM(require_react_production(),1)});function hasHooks(settings){if(settings===null||settings.disableAllHooks)return!1;if(settings.statusLine)return!0;if(settings.fileSuggestion)return!0;if(!settings.hooks)return!1;for(let hookConfig of Object.values(settings.hooks))if(hookConfig.length>0)return!0;return!1}function getHooksSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasHooks(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasHooks(localSettings))sources.push(localSettingsPath());return sources}function hasBashPermission(rules){return rules.some((rule)=>rule.ruleBehavior==="allow"&&(rule.ruleValue.toolName===BASH_TOOL_NAME||rule.ruleValue.toolName.startsWith(BASH_TOOL_NAME+"(")))}function getBashPermissionSources(){let sources=[],projectRules=getPermissionRulesForSource("projectSettings");if(hasBashPermission(projectRules))sources.push(projectSettingsPath());let localRules=getPermissionRulesForSource("localSettings");if(hasBashPermission(localRules))sources.push(localSettingsPath());return sources}function hasOtelHeadersHelper(settings){return!!settings?.otelHeadersHelper}function getOtelHeadersHelperSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasOtelHeadersHelper(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasOtelHeadersHelper(localSettings))sources.push(localSettingsPath());return sources}function hasApiKeyHelper(settings){return!!settings?.apiKeyHelper}function getApiKeyHelperSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasApiKeyHelper(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasApiKeyHelper(localSettings))sources.push(localSettingsPath());return sources}function hasAwsCommands(settings){return!!(settings?.awsAuthRefresh||settings?.awsCredentialExport)}function getAwsCommandsSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasAwsCommands(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasAwsCommands(localSettings))sources.push(localSettingsPath());return sources}function hasGcpCommands(settings){return!!settings?.gcpAuthRefresh}function getGcpCommandsSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasGcpCommands(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasGcpCommands(localSettings))sources.push(localSettingsPath());return sources}function hasDangerousEnvVars(settings){if(!settings?.env)return!1;return Object.keys(settings.env).some((key)=>!SAFE_ENV_VARS3.has(key.toUpperCase()))}function getDangerousEnvVarsSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasDangerousEnvVars(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasDangerousEnvVars(localSettings))sources.push(localSettingsPath());return sources}var projectSettingsPath=()=>getRelativeSettingsFilePathForSource("projectSettings"),localSettingsPath=()=>getRelativeSettingsFilePathForSource("localSettings");var init_utils14=__esm(()=>{init_settings3();init_managedEnvConstants();init_permissionsLoader()});var exports_TrustDialog={};__export(exports_TrustDialog,{TrustDialog:()=>TrustDialog});import{homedir as homedir42}from"os";function TrustDialog(t0){let $2=import_react_compiler_runtime348.c(33),{onDone,commands}=t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=getMcpConfigsByScope("project"),$2[0]=t1;else t1=$2[0];let{servers:projectServers}=t1,t2;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t2=Object.keys(projectServers),$2[1]=t2;else t2=$2[1];let hasMcpServers=t2.length>0,t3;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t3=getHooksSources(),$2[2]=t3;else t3=$2[2];let hasHooks2=t3.length>0,t4;if($2[3]===Symbol.for("react.memo_cache_sentinel"))t4=getBashPermissionSources(),$2[3]=t4;else t4=$2[3];let bashSettingSources=t4,t5;if($2[4]===Symbol.for("react.memo_cache_sentinel"))t5=getApiKeyHelperSources(),$2[4]=t5;else t5=$2[4];let hasApiKeyHelper2=t5.length>0,t6;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t6=getAwsCommandsSources(),$2[5]=t6;else t6=$2[5];let hasAwsCommands2=t6.length>0,t7;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t7=getGcpCommandsSources(),$2[6]=t7;else t7=$2[6];let hasGcpCommands2=t7.length>0,t8;if($2[7]===Symbol.for("react.memo_cache_sentinel"))t8=getOtelHeadersHelperSources(),$2[7]=t8;else t8=$2[7];let hasOtelHeadersHelper2=t8.length>0,t9;if($2[8]===Symbol.for("react.memo_cache_sentinel"))t9=getDangerousEnvVarsSources(),$2[8]=t9;else t9=$2[8];let hasDangerousEnvVars2=t9.length>0,t10;if($2[9]!==commands)t10=commands?.some(_temp292)??!1,$2[9]=commands,$2[10]=t10;else t10=$2[10];let hasSlashCommandBash=t10,t11;if($2[11]!==commands)t11=commands?.some(_temp441)??!1,$2[11]=commands,$2[12]=t11;else t11=$2[12];let hasSkillsBash=t11,hasAnyBashExecution=bashSettingSources.length>0||hasSlashCommandBash||hasSkillsBash,hasTrustDialogAccepted=checkHasTrustDialogAccepted(),t12,t13;if($2[13]!==hasAnyBashExecution)t12=()=>{let isHomeDir=homedir42()===getCwd();logEvent("tengu_trust_dialog_shown",{isHomeDir,hasMcpServers,hasHooks:hasHooks2,hasBashExecution:hasAnyBashExecution,hasApiKeyHelper:hasApiKeyHelper2,hasAwsCommands:hasAwsCommands2,hasGcpCommands:hasGcpCommands2,hasOtelHeadersHelper:hasOtelHeadersHelper2,hasDangerousEnvVars:hasDangerousEnvVars2})},t13=[hasMcpServers,hasHooks2,hasAnyBashExecution,hasApiKeyHelper2,hasAwsCommands2,hasGcpCommands2,hasOtelHeadersHelper2,hasDangerousEnvVars2],$2[13]=hasAnyBashExecution,$2[14]=t12,$2[15]=t13;else t12=$2[14],t13=$2[15];import_react321.default.useEffect(t12,t13);let t14;if($2[16]!==hasAnyBashExecution||$2[17]!==onDone)t14=function(value){if(value==="exit"){gracefulShutdownSync(1);return}let isHomeDir_0=homedir42()===getCwd();if(logEvent("tengu_trust_dialog_accept",{isHomeDir:isHomeDir_0,hasMcpServers,hasHooks:hasHooks2,hasBashExecution:hasAnyBashExecution,hasApiKeyHelper:hasApiKeyHelper2,hasAwsCommands:hasAwsCommands2,hasGcpCommands:hasGcpCommands2,hasOtelHeadersHelper:hasOtelHeadersHelper2,hasDangerousEnvVars:hasDangerousEnvVars2}),isHomeDir_0)setSessionTrustAccepted(!0);else saveCurrentProjectConfig(_temp530);onDone()},$2[16]=hasAnyBashExecution,$2[17]=onDone,$2[18]=t14;else t14=$2[18];let onChange=t14,exitState=useExitOnCtrlCDWithKeybindings(_temp624),t15;if($2[19]===Symbol.for("react.memo_cache_sentinel"))t15={context:"Confirmation"},$2[19]=t15;else t15=$2[19];if(useKeybinding("confirm:no",_temp719,t15),hasTrustDialogAccepted)return setTimeout(onDone),null;let t16,t17,t18;if($2[20]===Symbol.for("react.memo_cache_sentinel"))t16=jsxDEV(ThemedText,{bold:!0,children:getFsImplementation().cwd()},void 0,!1,void 0,this),t17=jsxDEV(ThemedText,{children:["Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team). If not, take a moment to review what","'","s in this folder first."]},void 0,!0,void 0,this),t18=jsxDEV(ThemedText,{children:["Claudio","'","ll be able to read, edit, and execute files here."]},void 0,!0,void 0,this),$2[20]=t16,$2[21]=t17,$2[22]=t18;else t16=$2[20],t17=$2[21],t18=$2[22];let t19;if($2[23]===Symbol.for("react.memo_cache_sentinel"))t19=jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Link,{url:"https://code.claude.com/docs/en/security",children:"Security guide"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[23]=t19;else t19=$2[23];let t20;if($2[24]===Symbol.for("react.memo_cache_sentinel"))t20=[{label:"Yes, I trust this folder",value:"enable_all"},{label:"No, exit",value:"exit"}],$2[24]=t20;else t20=$2[24];let t21;if($2[25]!==onChange)t21=jsxDEV(Select,{options:t20,onChange:(value_0)=>onChange(value_0),onCancel:()=>onChange("exit")},void 0,!1,void 0,this),$2[25]=onChange,$2[26]=t21;else t21=$2[26];let t22;if($2[27]!==exitState.keyName||$2[28]!==exitState.pending)t22=jsxDEV(ThemedText,{dimColor:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV($Fragment,{children:"Enter to confirm · Esc to cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[27]=exitState.keyName,$2[28]=exitState.pending,$2[29]=t22;else t22=$2[29];let t23;if($2[30]!==t21||$2[31]!==t22)t23=jsxDEV(PermissionDialog,{color:"warning",titleColor:"warning",title:"Accessing workspace:",children:jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingTop:1,children:[t16,t17,t18,t19,t21,t22]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[30]=t21,$2[31]=t22,$2[32]=t23;else t23=$2[32];return t23}function _temp719(){gracefulShutdownSync(0)}function _temp624(){return gracefulShutdownSync(1)}function _temp530(current){return{...current,hasTrustDialogAccepted:!0}}function _temp441(command_0){return command_0.type==="prompt"&&(command_0.loadedFrom==="skills"||command_0.loadedFrom==="plugin")&&(command_0.source==="projectSettings"||command_0.source==="localSettings"||command_0.source==="plugin")&&command_0.allowedTools?.some(_temp353)}function _temp353(tool_0){return tool_0===BASH_TOOL_NAME||tool_0.startsWith(BASH_TOOL_NAME+"(")}function _temp292(command11){return command11.type==="prompt"&&command11.loadedFrom==="commands_DEPRECATED"&&(command11.source==="projectSettings"||command11.source==="localSettings")&&command11.allowedTools?.some(_temp254)}function _temp254(tool2){return tool2===BASH_TOOL_NAME||tool2.startsWith(BASH_TOOL_NAME+"(")}var import_react_compiler_runtime348,import_react321;var init_TrustDialog=__esm(()=>{init_state();init_useExitOnCtrlCDWithKeybindings();init_ink2();init_useKeybinding();init_config2();init_config();init_cwd();init_fsOperations();init_gracefulShutdown();init_CustomSelect();init_PermissionDialog();init_utils14();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime348=__toESM(require_dist4(),1),import_react321=__toESM(require_react_production(),1)});var exports_ClaudeInChromeOnboarding={};__export(exports_ClaudeInChromeOnboarding,{ClaudeInChromeOnboarding:()=>ClaudeInChromeOnboarding});function ClaudeInChromeOnboarding(t0){let $2=import_react_compiler_runtime349.c(20),{onDone}=t0,[isExtensionInstalled,setIsExtensionInstalled]=import_react322.default.useState(!1),t1,t2;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=()=>{logEvent("tengu_claude_in_chrome_onboarding_shown",{}),isChromeExtensionInstalled().then(setIsExtensionInstalled),saveGlobalConfig(_temp293)},t2=[],$2[0]=t1,$2[1]=t2;else t1=$2[0],t2=$2[1];import_react322.default.useEffect(t1,t2);let t3;if($2[2]!==onDone)t3=(_input,key)=>{if(key.return)onDone()},$2[2]=onDone,$2[3]=t3;else t3=$2[3];use_input_default(t3);let t4;if($2[4]!==isExtensionInstalled)t4=!isExtensionInstalled&&jsxDEV($Fragment,{children:[jsxDEV(Newline,{},void 0,!1,void 0,this),jsxDEV(Newline,{},void 0,!1,void 0,this),"Requires the Chrome extension. Get started at"," ",jsxDEV(Link,{url:CHROME_EXTENSION_URL2},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[4]=isExtensionInstalled,$2[5]=t4;else t4=$2[5];let t5;if($2[6]!==t4)t5=jsxDEV(ThemedText,{children:["Claude in Chrome works with the Chrome extension to let you control your browser directly from Claudio. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",t4]},void 0,!0,void 0,this),$2[6]=t4,$2[7]=t5;else t5=$2[7];let t6;if($2[8]!==isExtensionInstalled)t6=isExtensionInstalled&&jsxDEV($Fragment,{children:[" ","(",jsxDEV(Link,{url:CHROME_PERMISSIONS_URL2},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),$2[8]=isExtensionInstalled,$2[9]=t6;else t6=$2[9];let t7;if($2[10]!==t6)t7=jsxDEV(ThemedText,{dimColor:!0,children:["Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on",t6,"."]},void 0,!0,void 0,this),$2[10]=t6,$2[11]=t7;else t7=$2[11];let t8;if($2[12]===Symbol.for("react.memo_cache_sentinel"))t8=jsxDEV(ThemedText,{bold:!0,color:"chromeYellow",children:"/chrome"},void 0,!1,void 0,this),$2[12]=t8;else t8=$2[12];let t9;if($2[13]===Symbol.for("react.memo_cache_sentinel"))t9=jsxDEV(ThemedText,{dimColor:!0,children:["For more info, use"," ",t8," ","or visit ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/chrome"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[13]=t9;else t9=$2[13];let t10;if($2[14]!==t5||$2[15]!==t7)t10=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t5,t7,t9]},void 0,!0,void 0,this),$2[14]=t5,$2[15]=t7,$2[16]=t10;else t10=$2[16];let t11;if($2[17]!==onDone||$2[18]!==t10)t11=jsxDEV(Dialog,{title:"Claude in Chrome (Beta)",onCancel:onDone,color:"chromeYellow",children:t10},void 0,!1,void 0,this),$2[17]=onDone,$2[18]=t10,$2[19]=t11;else t11=$2[19];return t11}function _temp293(current){return{...current,hasCompletedClaudeInChromeOnboarding:!0}}var import_react_compiler_runtime349,import_react322,CHROME_EXTENSION_URL2="https://claude.ai/chrome",CHROME_PERMISSIONS_URL2="https://clau.de/chrome/permissions";var init_ClaudeInChromeOnboarding=__esm(()=>{init_ink2();init_setup2();init_config();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime349=__toESM(require_dist4(),1),import_react322=__toESM(require_react_production(),1)});import{appendFileSync as appendFileSync4}from"fs";function completeOnboarding(){saveGlobalConfig((current)=>({...current,hasCompletedOnboarding:!0,lastOnboardingVersion:"99.0.0"}))}function showDialog(root2,renderer){return new Promise((resolve57)=>{let done=(result)=>void resolve57(result);root2.render(renderer(done))})}async function exitWithError2(root2,message,beforeExit){return exitWithMessage2(root2,message,{color:"error",beforeExit})}async function exitWithMessage2(root2,message,options2){let{Text:Text3}=await Promise.resolve().then(() => (init_ink2(),exports_ink)),color3=options2?.color,exitCode=options2?.exitCode??1;root2.render(color3?jsxDEV(Text3,{color:color3,children:message},void 0,!1,void 0,this):jsxDEV(Text3,{children:message},void 0,!1,void 0,this)),root2.unmount(),await options2?.beforeExit?.(),process.exit(exitCode)}function showSetupDialog(root2,renderer,options2){return showDialog(root2,(done)=>jsxDEV(AppStateProvider,{onChangeAppState:options2?.onChangeAppState,children:jsxDEV(KeybindingSetup,{children:renderer(done)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}async function renderAndRun(root2,element){root2.render(element),startDeferredPrefetches(),await root2.waitUntilExit(),await gracefulShutdown(0)}async function showSetupScreens(root2,permissionMode,allowDangerouslySkipPermissions,commands,claudeInChrome,devChannels){if(isEnvTruthy(!1)||process.env.IS_DEMO)return!1;let usesAnthropicSetup=usesAnthropicAccountFlow(),config4=getGlobalConfig(),onboardingShown=!1;if(usesAnthropicSetup&&(!config4.theme||!config4.hasCompletedOnboarding)){onboardingShown=!0;let{Onboarding:Onboarding2}=await Promise.resolve().then(() => (init_Onboarding(),exports_Onboarding));await showSetupDialog(root2,(done)=>jsxDEV(Onboarding2,{onDone:()=>{completeOnboarding(),done()}},void 0,!1,void 0,this),{onChangeAppState})}if(!isEnvTruthy(process.env.CLAUBBIT)){if(usesAnthropicSetup&&!checkHasTrustDialogAccepted()){let{TrustDialog:TrustDialog2}=await Promise.resolve().then(() => (init_TrustDialog(),exports_TrustDialog));await showSetupDialog(root2,(done)=>jsxDEV(TrustDialog2,{commands,onDone:done},void 0,!1,void 0,this))}setSessionTrustAccepted(!0),resetGrowthBook(),initializeGrowthBook(),getSystemContext();let{errors:allErrors}=getSettingsWithAllErrors();if(allErrors.length===0)await handleMcpjsonServerApprovals(root2);let warningScope=await shouldShowClaudeMdExternalIncludesWarning();if(warningScope!=="None"){let files2=await getMemoryFiles(!0),externalIncludes=warningScope==="User"?getExternalClaudeMdIncludes(files2,["User"]):getExternalClaudeMdIncludes(files2,["Project","Local"]),{ClaudeMdExternalIncludesDialog:ClaudeMdExternalIncludesDialog2}=await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(),exports_ClaudeMdExternalIncludesDialog));await showSetupDialog(root2,(done)=>jsxDEV(ClaudeMdExternalIncludesDialog2,{onDone:done,isStandaloneDialog:!0,externalIncludes,scope:warningScope},void 0,!1,void 0,this))}}if(updateGithubRepoPathMapping(),applyConfigEnvironmentVariables(),setImmediate(()=>initializeTelemetryAfterTrust()),await isQualifiedForGrove()){let{GroveDialog:GroveDialog2}=await Promise.resolve().then(() => (init_Grove(),exports_Grove));if(await showSetupDialog(root2,(done)=>jsxDEV(GroveDialog2,{showIfAlreadyViewed:!1,location:onboardingShown?"onboarding":"policy_update_modal",onDone:done},void 0,!1,void 0,this))==="escape")return logEvent("tengu_grove_policy_exited",{}),gracefulShutdownSync(0),!1}if(usesAnthropicSetup&&process.env.ANTHROPIC_API_KEY&&!isRunningOnHomespace()){let customApiKeyTruncated=normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);if(getCustomApiKeyStatus(customApiKeyTruncated)==="new"){let{ApproveApiKey:ApproveApiKey2}=await Promise.resolve().then(() => (init_ApproveApiKey(),exports_ApproveApiKey));await showSetupDialog(root2,(done)=>jsxDEV(ApproveApiKey2,{customApiKeyTruncated,onDone:done},void 0,!1,void 0,this),{onChangeAppState})}}if(await showDangerousModePromptIfNeeded(root2,permissionMode,allowDangerouslySkipPermissions,showSetupDialog),permissionMode==="auto"&&!hasAutoModeOptIn()){let{AutoModeOptInDialog:AutoModeOptInDialog2}=await Promise.resolve().then(() => (init_AutoModeOptInDialog(),exports_AutoModeOptInDialog));await showSetupDialog(root2,(done)=>jsxDEV(AutoModeOptInDialog2,{onAccept:done,onDecline:()=>gracefulShutdownSync(1),declineExits:!0},void 0,!1,void 0,this))}if(claudeInChrome&&!getGlobalConfig().hasCompletedClaudeInChromeOnboarding){let{ClaudeInChromeOnboarding:ClaudeInChromeOnboarding2}=await Promise.resolve().then(() => (init_ClaudeInChromeOnboarding(),exports_ClaudeInChromeOnboarding));await showSetupDialog(root2,(done)=>jsxDEV(ClaudeInChromeOnboarding2,{onDone:done},void 0,!1,void 0,this))}return onboardingShown}function getRenderContext(exitOnCtrlC){let lastFlickerTime=0,baseOptions=getBaseRenderOptions(exitOnCtrlC);if(baseOptions.stdin)logEvent("tengu_stdin_interactive",{});let fpsTracker=new FpsTracker,stats2=createStatsStore();setStatsStore(stats2);let frameTimingLogPath=process.env.CLAUDE_CODE_FRAME_TIMING_LOG;return{getFpsMetrics:()=>fpsTracker.getMetrics(),stats:stats2,renderOptions:{...baseOptions,onFrame:(event)=>{if(fpsTracker.record(event.durationMs),stats2.observe("frame_duration_ms",event.durationMs),frameTimingLogPath&&event.phases){let line=JSON.stringify({total:event.durationMs,...event.phases,rss:process.memoryUsage.rss(),cpu:process.cpuUsage()})+`
|
|
9327
|
+
`,(error41)=>{if(error41)reject2(error41);else resolve57()})})}async function taskReportHandler(options2){let cwd2=resolve56(options2.cwd??process.cwd()),transcriptPath=await resolveTranscriptPath({cwd:cwd2,sessionId:options2.sessionId??null,transcriptPath:options2.transcriptPath??null}),report=await buildTaskReport({transcriptPath,cwd:cwd2}),content=formatTaskReport(report,options2.format);if(options2.outFile){let outputPath=await writeTaskReport(options2.outFile,content);await writeLine(process.stderr,`Task report written to ${outputPath}`);return}await writeLine(process.stdout,content)}async function printTaskReportError(error41){await writeLine(process.stderr,`Failed to generate task report: ${formatError3(error41)}`)}async function resolveTranscriptPath({cwd:cwd2,sessionId,transcriptPath}){if(transcriptPath)return resolve56(cwd2,transcriptPath);let sessionFiles=await getSessionFilesWithMtime(getProjectDir2(cwd2));if(sessionId){let sessionFile=sessionFiles.get(sessionId);if(!sessionFile)throw Error(`Session transcript not found: ${sessionId}`);return sessionFile.path}let latest=null;for(let sessionFile of sessionFiles.values())if(!latest||sessionFile.mtime>latest.mtime||sessionFile.mtime===latest.mtime&&(sessionFile.ctime>latest.ctime||sessionFile.ctime===latest.ctime&&sessionFile.path.localeCompare(latest.path)<0))latest=sessionFile;if(!latest)throw Error("No session transcripts found for the current project. Pass --transcript <file> or --session <id>.");return latest.path}var init_taskReport2=__esm(()=>{init_taskReport();init_sessionStorage()});function registerTaskReportCommand(program2,deps={}){program2.command("report").description("Generate a deterministic task report for an Claudio session").addOption(new Option("--json","Print JSON output").conflicts("markdown")).addOption(new Option("--markdown","Print Markdown output").conflicts("json")).option("--transcript <file>","Path to a session JSONL transcript").option("--session <id>","Session ID to report (defaults to latest session in the current project)").option("--out <file>","Write the report to a file").action(async(options2)=>{let exit3=deps.exit??process.exit;try{let format6=resolveTaskReportFormat(options2);if(options2.transcript&&options2.session)throw Error("Pass either --transcript <file> or --session <id>, not both.");await(deps.taskReportHandler??(await Promise.resolve().then(() => (init_taskReport2(),exports_taskReport))).taskReportHandler)({format:format6,transcriptPath:options2.transcript??null,sessionId:options2.session??null,outFile:options2.out??null,cwd:(deps.cwd??process.cwd)()}),exit3(0)}catch(error41){await(deps.printTaskReportError??(await Promise.resolve().then(() => (init_taskReport2(),exports_taskReport))).printTaskReportError)(error41),exit3(1)}})}function resolveTaskReportFormat(options2){if(options2.json!==!0&&options2.markdown!==!0)throw Error("Pass either --json or --markdown for task report output.");return options2.json?"json":"markdown"}var init_taskReport3=__esm(()=>{init_esm5()});function isInternalWarning(warning){let warningStr=`${warning.name}: ${warning.message}`;return INTERNAL_WARNINGS.some((pattern)=>pattern.test(warningStr))}function isPerformanceEntryBufferWarning(warning){return warning.name===MAX_PERFORMANCE_ENTRY_BUFFER_WARNING}function compactWarningMessage(message){let compact2=message.replace(/\s+/g," ").trim();if(compact2.length<=MAX_WARNING_MESSAGE_LENGTH)return compact2;return`${compact2.slice(0,MAX_WARNING_MESSAGE_LENGTH-3)}...`}function formatDebugWarning(warning,isInternal){if(isPerformanceEntryBufferWarning(warning)){let message=compactWarningMessage(warning.message);return`[Warning] ${warning.name}: ${message}. The Node perf_hooks entry buffer is full; rerun with NODE_OPTIONS=--trace-warnings to identify the producer.`}return`${isInternal?"[Internal Warning]":"[Warning]"} ${warning.toString()}`}function initializeWarningHandler(){let currentListeners=process.listeners("warning");if(warningHandler&¤tListeners.includes(warningHandler))return;if(!1)process.removeAllListeners("warning");warningHandler=(warning)=>{try{let warningKey=`${warning.name}: ${warning.message.slice(0,50)}`,count4=warningCounts.get(warningKey)||0;if(warningCounts.has(warningKey)||warningCounts.size<MAX_WARNING_KEYS)warningCounts.set(warningKey,count4+1);let isInternal=isInternalWarning(warning);if(logEvent("tengu_node_warning",{is_internal:isInternal?1:0,occurrence_count:count4+1,classname:warning.name,...process.env.USER_TYPE==="ant"&&{message:warning.message}}),isEnvTruthy(process.env.CLAUDE_DEBUG))logForDebugging(formatDebugWarning(warning,isInternal),{level:"warn"})}catch{}},process.on("warning",warningHandler)}var MAX_WARNING_KEYS=1000,warningCounts,MAX_PERFORMANCE_ENTRY_BUFFER_WARNING="MaxPerformanceEntryBufferExceededWarning",MAX_WARNING_MESSAGE_LENGTH=200,INTERNAL_WARNINGS,warningHandler=null;var init_warningHandler=__esm(()=>{init_debug();init_envUtils();init_platform2();warningCounts=new Map,INTERNAL_WARNINGS=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function MCPServerDialogCopy(){let $2=import_react_compiler_runtime339.c(1),t0;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t0=jsxDEV(ThemedText,{children:["MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/mcp",children:"MCP documentation"},void 0,!1,void 0,this),"."]},void 0,!0,void 0,this),$2[0]=t0;else t0=$2[0];return t0}var import_react_compiler_runtime339;var init_MCPServerDialogCopy=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime339=__toESM(require_dist4(),1)});function MCPServerApprovalDialog(t0){let $2=import_react_compiler_runtime340.c(13),{serverName,onDone}=t0,t1;if($2[0]!==onDone||$2[1]!==serverName)t1=function(value){logEvent("tengu_mcp_dialog_choice",{choice:value});bb2:switch(value){case"yes":case"yes_all":{let enabledServers=(getSettings_DEPRECATED()||{}).enabledMcpjsonServers||[];if(!enabledServers.includes(serverName))updateSettingsForSource("localSettings",{enabledMcpjsonServers:[...enabledServers,serverName]});if(value==="yes_all")updateSettingsForSource("localSettings",{enableAllProjectMcpServers:!0});onDone();break bb2}case"no":{let disabledServers=(getSettings_DEPRECATED()||{}).disabledMcpjsonServers||[];if(!disabledServers.includes(serverName))updateSettingsForSource("localSettings",{disabledMcpjsonServers:[...disabledServers,serverName]});onDone()}}},$2[0]=onDone,$2[1]=serverName,$2[2]=t1;else t1=$2[2];let onChange=t1,t2=`New MCP server found in .mcp.json: ${serverName}`,t3;if($2[3]!==onChange)t3=()=>onChange("no"),$2[3]=onChange,$2[4]=t3;else t3=$2[4];let t4;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(MCPServerDialogCopy,{},void 0,!1,void 0,this),$2[5]=t4;else t4=$2[5];let t5;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t5=[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],$2[6]=t5;else t5=$2[6];let t6;if($2[7]!==onChange)t6=jsxDEV(Select,{options:t5,onChange:(value_0)=>onChange(value_0),onCancel:()=>onChange("no")},void 0,!1,void 0,this),$2[7]=onChange,$2[8]=t6;else t6=$2[8];let t7;if($2[9]!==t2||$2[10]!==t3||$2[11]!==t6)t7=jsxDEV(Dialog,{title:t2,color:"warning",onCancel:t3,children:[t4,t6]},void 0,!0,void 0,this),$2[9]=t2,$2[10]=t3,$2[11]=t6,$2[12]=t7;else t7=$2[12];return t7}var import_react_compiler_runtime340;var init_MCPServerApprovalDialog=__esm(()=>{init_settings3();init_CustomSelect();init_Dialog();init_MCPServerDialogCopy();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime340=__toESM(require_dist4(),1)});function MCPServerMultiselectDialog(t0){let $2=import_react_compiler_runtime341.c(21),{serverNames,onDone}=t0,t1;if($2[0]!==onDone||$2[1]!==serverNames)t1=function(selectedServers){let currentSettings=getSettings_DEPRECATED()||{},enabledServers=currentSettings.enabledMcpjsonServers||[],disabledServers=currentSettings.disabledMcpjsonServers||[],[approvedServers,rejectedServers]=partition_default(serverNames,(server)=>selectedServers.includes(server));if(logEvent("tengu_mcp_multidialog_choice",{approved:approvedServers.length,rejected:rejectedServers.length}),approvedServers.length>0){let newEnabledServers=[...new Set([...enabledServers,...approvedServers])];updateSettingsForSource("localSettings",{enabledMcpjsonServers:newEnabledServers})}if(rejectedServers.length>0){let newDisabledServers=[...new Set([...disabledServers,...rejectedServers])];updateSettingsForSource("localSettings",{disabledMcpjsonServers:newDisabledServers})}onDone()},$2[0]=onDone,$2[1]=serverNames,$2[2]=t1;else t1=$2[2];let onSubmit=t1,t2;if($2[3]!==onDone||$2[4]!==serverNames)t2=()=>{let disabledServers_0=(getSettings_DEPRECATED()||{}).disabledMcpjsonServers||[],newDisabledServers_0=[...new Set([...disabledServers_0,...serverNames])];updateSettingsForSource("localSettings",{disabledMcpjsonServers:newDisabledServers_0}),onDone()},$2[3]=onDone,$2[4]=serverNames,$2[5]=t2;else t2=$2[5];let handleEscRejectAll=t2,t3=`${serverNames.length} new MCP servers found in .mcp.json`,t4;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(MCPServerDialogCopy,{},void 0,!1,void 0,this),$2[6]=t4;else t4=$2[6];let t5;if($2[7]!==serverNames)t5=serverNames.map(_temp244),$2[7]=serverNames,$2[8]=t5;else t5=$2[8];let t6;if($2[9]!==handleEscRejectAll||$2[10]!==onSubmit||$2[11]!==serverNames||$2[12]!==t5)t6=jsxDEV(SelectMulti,{options:t5,defaultValue:serverNames,onSubmit,onCancel:handleEscRejectAll,hideIndexes:!0},void 0,!1,void 0,this),$2[9]=handleEscRejectAll,$2[10]=onSubmit,$2[11]=serverNames,$2[12]=t5,$2[13]=t6;else t6=$2[13];let t7;if($2[14]!==handleEscRejectAll||$2[15]!==t3||$2[16]!==t6)t7=jsxDEV(Dialog,{title:t3,subtitle:"Select any you wish to enable.",color:"warning",onCancel:handleEscRejectAll,hideInputGuide:!0,children:[t4,t6]},void 0,!0,void 0,this),$2[14]=handleEscRejectAll,$2[15]=t3,$2[16]=t6,$2[17]=t7;else t7=$2[17];let t8;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t8=jsxDEV(ThemedBox_default,{paddingX:1,children:jsxDEV(ThemedText,{dimColor:!0,italic:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"Space",action:"select"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[18]=t8;else t8=$2[18];let t9;if($2[19]!==t7)t9=jsxDEV($Fragment,{children:[t7,t8]},void 0,!0,void 0,this),$2[19]=t7,$2[20]=t9;else t9=$2[20];return t9}function _temp244(server_0){return{label:server_0,value:server_0}}var import_react_compiler_runtime341;var init_MCPServerMultiselectDialog=__esm(()=>{init_partition();init_ink2();init_settings3();init_ConfigurableShortcutHint();init_SelectMulti();init_Byline();init_Dialog();init_KeyboardShortcutHint();init_MCPServerDialogCopy();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime341=__toESM(require_dist4(),1)});async function handleMcpjsonServerApprovals(root2){let{servers:projectServers}=getMcpConfigsByScope("project"),pendingServers=Object.keys(projectServers).filter((serverName)=>getProjectMcpServerStatus(serverName)==="pending");if(pendingServers.length===0)return;await new Promise((resolve57)=>{let done=()=>void resolve57();if(pendingServers.length===1&&pendingServers[0]!==void 0){let serverName=pendingServers[0];root2.render(jsxDEV(AppStateProvider,{children:jsxDEV(KeybindingSetup,{children:jsxDEV(MCPServerApprovalDialog,{serverName,onDone:done},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}else root2.render(jsxDEV(AppStateProvider,{children:jsxDEV(KeybindingSetup,{children:jsxDEV(MCPServerMultiselectDialog,{serverNames:pendingServers,onDone:done},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}var init_mcpServerApproval=__esm(()=>{init_MCPServerApprovalDialog();init_MCPServerMultiselectDialog();init_KeybindingProviderSetup();init_AppState();init_config2();init_utils4();init_reactJsxDevRuntimeProductionShim()});var init_terminalPreference=__esm(()=>{init_config();init_debug()});class FpsTracker{frameDurations=Array(5000);sampleCount=0;totalFrameCount=0;writeIndex=0;firstRenderTime;lastRenderTime;record(durationMs){let now2=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=now2;this.lastRenderTime=now2,this.totalFrameCount+=1,this.frameDurations[this.writeIndex]=durationMs,this.writeIndex=(this.writeIndex+1)%5000,this.sampleCount=Math.min(this.sampleCount+1,5000)}getMetrics(){if(this.sampleCount===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let totalTimeMs=this.lastRenderTime-this.firstRenderTime;if(totalTimeMs<=0)return;let averageFps=this.totalFrameCount/(totalTimeMs/1000),sorted=this.getSamples().sort((a2,b)=>b-a2),p99Index=Math.max(0,Math.ceil(sorted.length*0.01)-1),p99FrameTimeMs=sorted[p99Index],low1PctFps=p99FrameTimeMs>0?1000/p99FrameTimeMs:0;return{averageFps:Math.round(averageFps*100)/100,low1PctFps:Math.round(low1PctFps*100)/100}}getSamples(){if(this.sampleCount<5000)return this.frameDurations.slice(0,this.sampleCount);return[...this.frameDurations.slice(this.writeIndex),...this.frameDurations.slice(0,this.writeIndex)]}}import{realpath as realpath13}from"fs/promises";async function updateGithubRepoPathMapping(){try{let repo=await detectCurrentRepository();if(!repo){logForDebugging("Not in a GitHub repository, skipping path mapping update");return}let cwd2=getOriginalCwd(),basePath=findGitRoot(cwd2)??cwd2,currentPath;try{currentPath=(await realpath13(basePath)).normalize("NFC")}catch{currentPath=basePath}let repoKey=repo.toLowerCase(),existingPaths=getGlobalConfig().githubRepoPaths?.[repoKey]??[];if(existingPaths[0]===currentPath){logForDebugging(`Path ${currentPath} already tracked for repo ${repoKey}`);return}let withoutCurrent=existingPaths.filter((p)=>p!==currentPath),updatedPaths=[currentPath,...withoutCurrent];saveGlobalConfig((current)=>({...current,githubRepoPaths:{...current.githubRepoPaths,[repoKey]:updatedPaths}})),logForDebugging(`Added ${currentPath} to tracked paths for repo ${repoKey}`)}catch(error41){logForDebugging(`Error updating repo path mapping: ${error41}`)}}function getKnownPathsForRepo(repo){let config4=getGlobalConfig(),repoKey=repo.toLowerCase();return config4.githubRepoPaths?.[repoKey]??[]}async function filterExistingPaths(paths2){let results=await Promise.all(paths2.map(pathExists));return paths2.filter((_,i3)=>results[i3])}async function validateRepoAtPath(path28,expectedRepo){try{let remoteUrl=await getRemoteUrlForDir(path28);if(!remoteUrl)return!1;let actualRepo=parseGitHubRepository(remoteUrl);if(!actualRepo)return!1;return actualRepo.toLowerCase()===expectedRepo.toLowerCase()}catch{return!1}}function removePathFromRepo(repo,pathToRemove){let config4=getGlobalConfig(),repoKey=repo.toLowerCase(),existingPaths=config4.githubRepoPaths?.[repoKey]??[],updatedPaths=existingPaths.filter((path28)=>path28!==pathToRemove);if(updatedPaths.length===existingPaths.length)return;let updatedMapping={...config4.githubRepoPaths};if(updatedPaths.length===0)delete updatedMapping[repoKey];else updatedMapping[repoKey]=updatedPaths;saveGlobalConfig((current)=>({...current,githubRepoPaths:updatedMapping})),logForDebugging(`Removed ${pathToRemove} from tracked paths for repo ${repoKey}`)}var init_githubRepoPathMapping=__esm(()=>{init_state();init_config();init_debug();init_detectRepository();init_file();init_gitFilesystem();init_git()});async function showDangerousModePromptIfNeeded(root2,permissionMode,allowDangerouslySkipPermissions,showSetupDialog,deps={}){let DialogComponent=deps.DialogComponent??BypassPermissionsModeDialog,getPromptState=deps.getPromptState??getStartupDangerousPermissionPromptState,persistAcceptance=deps.persistAcceptance??persistDangerousModeAcceptance,dangerousPromptState=getPromptState({permissionMode,allowDangerouslySkipPermissions});if(!dangerousPromptState.shouldShow||!dangerousPromptState.mode)return!1;let dangerousMode=dangerousPromptState.mode;return await showSetupDialog(root2,(done)=>jsxDEV(DialogComponent,{mode:dangerousMode,onAccept:()=>{persistAcceptance(dangerousMode),done()}},void 0,!1,void 0,this)),!0}var init_dangerousModePromptFlow=__esm(()=>{init_BypassPermissionsModeDialog();init_dangerousModePromptRuntime();init_reactJsxDevRuntimeProductionShim()});var init_devChannelRegistration=__esm(()=>{init_state()});function useTimeout(delay,resetTrigger){let[isElapsed,setIsElapsed]=import_react316.useState(!1);return import_react316.useEffect(()=>{setIsElapsed(!1);let timer=setTimeout(setIsElapsed,delay,!0);return()=>clearTimeout(timer)},[delay,resetTrigger]),isElapsed}var import_react316;var init_useTimeout=__esm(()=>{import_react316=__toESM(require_react_production(),1)});async function checkEndpoints(){try{let oauthConfig=getOauthConfig(),tokenUrl=new URL(oauthConfig.TOKEN_URL),endpoints=[`${oauthConfig.BASE_API_URL}/api/hello`,`${tokenUrl.origin}/v1/oauth/hello`],checkEndpoint=async(url3)=>{try{let response=await axios_default.get(url3,{headers:{"User-Agent":getUserAgent()},timeout:PREFLIGHT_REQUEST_TIMEOUT_MS});if(response.status!==200)return{success:!1,error:`Failed to connect to ${new URL(url3).hostname}: Status ${response.status}`};return{success:!0}}catch(error41){let hostname3=new URL(url3).hostname,sslHint=getSSLErrorHint(error41);return{success:!1,error:`Failed to connect to ${hostname3}: ${error41 instanceof Error?error41.code||error41.message:String(error41)}`,sslHint:sslHint??void 0}}},failedResult=(await Promise.all(endpoints.map(checkEndpoint))).find((result)=>!result.success);if(failedResult)logEvent("tengu_preflight_check_failed",{isConnectivityError:!1,hasErrorMessage:!!failedResult.error,isSSLError:!!failedResult.sslHint});return failedResult||{success:!0}}catch(error41){return logError(error41),logEvent("tengu_preflight_check_failed",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${error41 instanceof Error?error41.code||error41.message:String(error41)}`}}}function PreflightStep(t0){let $2=import_react_compiler_runtime342.c(12),{onSuccess}=t0,[result,setResult]=import_react317.useState(null),[isChecking,setIsChecking]=import_react317.useState(!0),showSpinner=useTimeout(1000)&&isChecking,t1,t2;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=()=>{(async function(){let checkResult=await checkEndpoints();setResult(checkResult),setIsChecking(!1)})()},t2=[],$2[0]=t1,$2[1]=t2;else t1=$2[0],t2=$2[1];import_react317.useEffect(t1,t2);let t3,t4;if($2[2]!==onSuccess||$2[3]!==result)t3=()=>{if(result?.success)onSuccess();else if(result&&!result.success){let timer=setTimeout(onSuccess,PREFLIGHT_ERROR_HOLD_MS);return()=>clearTimeout(timer)}},t4=[result,onSuccess],$2[2]=onSuccess,$2[3]=result,$2[4]=t3,$2[5]=t4;else t3=$2[4],t4=$2[5];import_react317.useEffect(t3,t4);let t5;if($2[6]!==isChecking||$2[7]!==result||$2[8]!==showSpinner)t5=isChecking&&showSpinner?jsxDEV(ThemedBox_default,{paddingLeft:1,children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:"Checking connectivity..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):!result?.success&&!isChecking&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{color:"error",children:"Unable to connect to Anthropic services"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:result?.error},void 0,!1,void 0,this),result?.sslHint?jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{children:result.sslHint},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"suggestion",children:"See https://code.claude.com/docs/en/network-config"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedText,{children:"Please check your internet connection and network settings."},void 0,!1,void 0,this),getAPIProvider()==="firstParty"&&jsxDEV(ThemedText,{children:["Note: Claude Code might not be available in your country. Check supported countries at"," ",jsxDEV(ThemedText,{color:"suggestion",children:"https://anthropic.com/supported-countries"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Continuing: you can configure a non-Anthropic provider later with /provider."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[6]=isChecking,$2[7]=result,$2[8]=showSpinner,$2[9]=t5;else t5=$2[9];let t6;if($2[10]!==t5)t6=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingLeft:1,children:t5},void 0,!1,void 0,this),$2[10]=t5,$2[11]=t6;else t6=$2[11];return t6}var import_react_compiler_runtime342,import_react317,PREFLIGHT_REQUEST_TIMEOUT_MS=5000,PREFLIGHT_ERROR_HOLD_MS=4000;var init_preflightChecks=__esm(()=>{init_axios2();init_Spinner2();init_oauth();init_useTimeout();init_ink2();init_errorUtils();init_http2();init_log2();init_providers();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime342=__toESM(require_dist4(),1),import_react317=__toESM(require_react_production(),1)});var exports_ApproveApiKey={};__export(exports_ApproveApiKey,{ApproveApiKey:()=>ApproveApiKey});function ApproveApiKey(t0){let $2=import_react_compiler_runtime343.c(17),{customApiKeyTruncated,onDone}=t0,t1;if($2[0]!==customApiKeyTruncated||$2[1]!==onDone)t1=function(value){bb2:switch(value){case"yes":{saveGlobalConfig((current_0)=>({...current_0,customApiKeyResponses:{...current_0.customApiKeyResponses,approved:[...current_0.customApiKeyResponses?.approved??[],customApiKeyTruncated]}})),onDone(!0);break bb2}case"no":saveGlobalConfig((current)=>({...current,customApiKeyResponses:{...current.customApiKeyResponses,rejected:[...current.customApiKeyResponses?.rejected??[],customApiKeyTruncated]}})),onDone(!1)}},$2[0]=customApiKeyTruncated,$2[1]=onDone,$2[2]=t1;else t1=$2[2];let onChange=t1,t2;if($2[3]!==onChange)t2=()=>onChange("no"),$2[3]=onChange,$2[4]=t2;else t2=$2[4];let t3;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t3=jsxDEV(ThemedText,{bold:!0,children:"ANTHROPIC_API_KEY"},void 0,!1,void 0,this),$2[5]=t3;else t3=$2[5];let t4;if($2[6]!==customApiKeyTruncated)t4=jsxDEV(ThemedText,{children:[t3,jsxDEV(ThemedText,{children:[": sk-ant-...",customApiKeyTruncated]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[6]=customApiKeyTruncated,$2[7]=t4;else t4=$2[7];let t5;if($2[8]===Symbol.for("react.memo_cache_sentinel"))t5=jsxDEV(ThemedText,{children:"Do you want to use this API key?"},void 0,!1,void 0,this),$2[8]=t5;else t5=$2[8];let t6;if($2[9]===Symbol.for("react.memo_cache_sentinel"))t6={label:"Yes",value:"yes"},$2[9]=t6;else t6=$2[9];let t7;if($2[10]===Symbol.for("react.memo_cache_sentinel"))t7=[t6,{label:jsxDEV(ThemedText,{children:["No (",jsxDEV(ThemedText,{bold:!0,children:"recommended"},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),value:"no"}],$2[10]=t7;else t7=$2[10];let t8;if($2[11]!==onChange)t8=jsxDEV(Select,{defaultValue:"no",defaultFocusValue:"no",options:t7,onChange:(value_0)=>onChange(value_0),onCancel:()=>onChange("no")},void 0,!1,void 0,this),$2[11]=onChange,$2[12]=t8;else t8=$2[12];let t9;if($2[13]!==t2||$2[14]!==t4||$2[15]!==t8)t9=jsxDEV(Dialog,{title:"Detected a custom API key in your environment",color:"warning",onCancel:t2,children:[t4,t5,t8]},void 0,!0,void 0,this),$2[13]=t2,$2[14]=t4,$2[15]=t8,$2[16]=t9;else t9=$2[16];return t9}var import_react_compiler_runtime343;var init_ApproveApiKey=__esm(()=>{init_ink2();init_config();init_CustomSelect();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime343=__toESM(require_dist4(),1)});function WelcomeV2(){let $2=import_react_compiler_runtime344.c(35),[theme2]=useTheme();if(env3.terminal==="Apple_Terminal"){let t02;if($2[0]!==theme2)t02=jsxDEV(AppleTerminalWelcomeV2,{theme:theme2,welcomeMessage:"Welcome to Claudio"},void 0,!1,void 0,this),$2[0]=theme2,$2[1]=t02;else t02=$2[1];return t02}if(["light","light-daltonized","light-ansi"].includes(theme2)){let t02,t17,t22,t32,t42,t52,t62,t72,t82;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t02=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{color:"claude",children:["Welcome to Claudio"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.1"," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t17=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t22=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t32=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t42=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t52=jsxDEV(ThemedText,{children:" ░░░░░░ "},void 0,!1,void 0,this),t62=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ "},void 0,!1,void 0,this),t72=jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),t82=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),$2[2]=t02,$2[3]=t17,$2[4]=t22,$2[5]=t32,$2[6]=t42,$2[7]=t52,$2[8]=t62,$2[9]=t72,$2[10]=t82;else t02=$2[2],t17=$2[3],t22=$2[4],t32=$2[5],t42=$2[6],t52=$2[7],t62=$2[8],t72=$2[9],t82=$2[10];let t92;if($2[11]===Symbol.for("react.memo_cache_sentinel"))t92=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[11]=t92;else t92=$2[11];let t102,t112;if($2[12]===Symbol.for("react.memo_cache_sentinel"))t102=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▒▒██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t112=jsxDEV(ThemedText,{children:" ▒▒ ██ ▒"},void 0,!1,void 0,this),$2[12]=t102,$2[13]=t112;else t102=$2[12],t112=$2[13];let t122;if($2[14]===Symbol.for("react.memo_cache_sentinel"))t122=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this)," ▒▒░░▒▒ ▒ ▒▒"]},void 0,!0,void 0,this),$2[14]=t122;else t122=$2[14];let t132;if($2[15]===Symbol.for("react.memo_cache_sentinel"))t132=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",backgroundColor:"clawd_background",children:"██▄█████▄██"},void 0,!1,void 0,this)," ▒▒ ▒▒ "]},void 0,!0,void 0,this),$2[15]=t132;else t132=$2[15];let t142;if($2[16]===Symbol.for("react.memo_cache_sentinel"))t142=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this)," ░ ▒ "]},void 0,!0,void 0,this),$2[16]=t142;else t142=$2[16];let t152;if($2[17]===Symbol.for("react.memo_cache_sentinel"))t152=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t02,t17,t22,t32,t42,t52,t62,t72,t82,t92,t102,t112,t122,t132,t142,jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{color:"clawd_body",children:"█ █ █ █"},void 0,!1,void 0,this),"……………………………………………………………………░…………………………▒…………"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[17]=t152;else t152=$2[17];return t152}let t0,t1,t2,t3,t4,t5,t6;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t0=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{color:"claude",children:["Welcome to Claudio"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.1"," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t1=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t2=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t3=jsxDEV(ThemedText,{children:" * █████▓▓░ "},void 0,!1,void 0,this),t4=jsxDEV(ThemedText,{children:" * ███▓░ ░░ "},void 0,!1,void 0,this),t5=jsxDEV(ThemedText,{children:" ░░░░░░ ███▓░ "},void 0,!1,void 0,this),t6=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ ███▓░ "},void 0,!1,void 0,this),$2[18]=t0,$2[19]=t1,$2[20]=t2,$2[21]=t3,$2[22]=t4,$2[23]=t5,$2[24]=t6;else t0=$2[18],t1=$2[19],t2=$2[20],t3=$2[21],t4=$2[22],t5=$2[23],t6=$2[24];let t10,t11,t7,t8,t9;if($2[25]===Symbol.for("react.memo_cache_sentinel"))t7=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▓░░ ▓ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t8=jsxDEV(ThemedText,{children:" ░▓▓███▓▓░ "},void 0,!1,void 0,this),t9=jsxDEV(ThemedText,{dimColor:!0,children:" * ░░░░ "},void 0,!1,void 0,this),t10=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░ "},void 0,!1,void 0,this),t11=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),$2[25]=t10,$2[26]=t11,$2[27]=t7,$2[28]=t8,$2[29]=t9;else t10=$2[25],t11=$2[26],t7=$2[27],t8=$2[28],t9=$2[29];let t12;if($2[30]===Symbol.for("react.memo_cache_sentinel"))t12=jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this),$2[30]=t12;else t12=$2[30];let t13;if($2[31]===Symbol.for("react.memo_cache_sentinel"))t13=jsxDEV(ThemedText,{children:[" ",t12," ",jsxDEV(ThemedText,{dimColor:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[31]=t13;else t13=$2[31];let t14;if($2[32]===Symbol.for("react.memo_cache_sentinel"))t14=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:"██▄█████▄██"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[32]=t14;else t14=$2[32];let t15;if($2[33]===Symbol.for("react.memo_cache_sentinel"))t15=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:" █████████ "},void 0,!1,void 0,this)," * "]},void 0,!0,void 0,this),$2[33]=t15;else t15=$2[33];let t16;if($2[34]===Symbol.for("react.memo_cache_sentinel"))t16=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t13,t14,t15,jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{color:"clawd_body",children:"█ █ █ █"},void 0,!1,void 0,this),"………………………………………………………………………………………………………………"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[34]=t16;else t16=$2[34];return t16}function AppleTerminalWelcomeV2(t0){let $2=import_react_compiler_runtime344.c(44),{theme:theme2,welcomeMessage}=t0;if(["light","light-daltonized","light-ansi"].includes(theme2)){let t110;if($2[0]!==welcomeMessage)t110=jsxDEV(ThemedText,{color:"claude",children:[welcomeMessage," "]},void 0,!0,void 0,this),$2[0]=welcomeMessage,$2[1]=t110;else t110=$2[1];let t22;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t22=jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.1"," "]},void 0,!0,void 0,this),$2[2]=t22;else t22=$2[2];let t32;if($2[3]!==t110)t32=jsxDEV(ThemedText,{children:[t110,t22]},void 0,!0,void 0,this),$2[3]=t110,$2[4]=t32;else t32=$2[4];let t102,t112,t42,t52,t62,t72,t82,t92;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t42=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t52=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t62=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t72=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t82=jsxDEV(ThemedText,{children:" ░░░░░░ "},void 0,!1,void 0,this),t92=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ "},void 0,!1,void 0,this),t102=jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),t112=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),$2[5]=t102,$2[6]=t112,$2[7]=t42,$2[8]=t52,$2[9]=t62,$2[10]=t72,$2[11]=t82,$2[12]=t92;else t102=$2[5],t112=$2[6],t42=$2[7],t52=$2[8],t62=$2[9],t72=$2[10],t82=$2[11],t92=$2[12];let t122;if($2[13]===Symbol.for("react.memo_cache_sentinel"))t122=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[13]=t122;else t122=$2[13];let t132,t142,t152;if($2[14]===Symbol.for("react.memo_cache_sentinel"))t132=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▒▒██ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t142=jsxDEV(ThemedText,{children:" ▒▒ ██ ▒"},void 0,!1,void 0,this),t152=jsxDEV(ThemedText,{children:" ▒▒░░▒▒ ▒ ▒▒"},void 0,!1,void 0,this),$2[14]=t132,$2[15]=t142,$2[16]=t152;else t132=$2[14],t142=$2[15],t152=$2[16];let t162;if($2[17]===Symbol.for("react.memo_cache_sentinel"))t162=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:"▗"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"clawd_background",backgroundColor:"clawd_body",children:[" ","▗"," ","▖"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"clawd_body",children:"▖"},void 0,!1,void 0,this)," ▒▒ ▒▒ "]},void 0,!0,void 0,this),$2[17]=t162;else t162=$2[17];let t172;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t172=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" ".repeat(9)},void 0,!1,void 0,this)," ░ ▒ "]},void 0,!0,void 0,this),$2[18]=t172;else t172=$2[18];let t182;if($2[19]===Symbol.for("react.memo_cache_sentinel"))t182=jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),"……………………………………………………………………░…………………………▒…………"]},void 0,!0,void 0,this),$2[19]=t182;else t182=$2[19];let t192;if($2[20]!==t32)t192=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t32,t42,t52,t62,t72,t82,t92,t102,t112,t122,t132,t142,t152,t162,t172,t182]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[20]=t32,$2[21]=t192;else t192=$2[21];return t192}let t1;if($2[22]!==welcomeMessage)t1=jsxDEV(ThemedText,{color:"claude",children:[welcomeMessage," "]},void 0,!0,void 0,this),$2[22]=welcomeMessage,$2[23]=t1;else t1=$2[23];let t2;if($2[24]===Symbol.for("react.memo_cache_sentinel"))t2=jsxDEV(ThemedText,{dimColor:!0,children:["v","0.25.1"," "]},void 0,!0,void 0,this),$2[24]=t2;else t2=$2[24];let t3;if($2[25]!==t1)t3=jsxDEV(ThemedText,{children:[t1,t2]},void 0,!0,void 0,this),$2[25]=t1,$2[26]=t3;else t3=$2[26];let t4,t5,t6,t7,t8,t9;if($2[27]===Symbol.for("react.memo_cache_sentinel"))t4=jsxDEV(ThemedText,{children:"…………………………………………………………………………………………………………………………………………………………"},void 0,!1,void 0,this),t5=jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),t6=jsxDEV(ThemedText,{children:" * █████▓▓░ "},void 0,!1,void 0,this),t7=jsxDEV(ThemedText,{children:" * ███▓░ ░░ "},void 0,!1,void 0,this),t8=jsxDEV(ThemedText,{children:" ░░░░░░ ███▓░ "},void 0,!1,void 0,this),t9=jsxDEV(ThemedText,{children:" ░░░ ░░░░░░░░░░ ███▓░ "},void 0,!1,void 0,this),$2[27]=t4,$2[28]=t5,$2[29]=t6,$2[30]=t7,$2[31]=t8,$2[32]=t9;else t4=$2[27],t5=$2[28],t6=$2[29],t7=$2[30],t8=$2[31],t9=$2[32];let t10,t11,t12,t13,t14;if($2[33]===Symbol.for("react.memo_cache_sentinel"))t10=jsxDEV(ThemedText,{children:[jsxDEV(ThemedText,{children:" ░░░░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" ██▓░░ ▓ "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t11=jsxDEV(ThemedText,{children:" ░▓▓███▓▓░ "},void 0,!1,void 0,this),t12=jsxDEV(ThemedText,{dimColor:!0,children:" * ░░░░ "},void 0,!1,void 0,this),t13=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░ "},void 0,!1,void 0,this),t14=jsxDEV(ThemedText,{dimColor:!0,children:" ░░░░░░░░░░░░░░░░ "},void 0,!1,void 0,this),$2[33]=t10,$2[34]=t11,$2[35]=t12,$2[36]=t13,$2[37]=t14;else t10=$2[33],t11=$2[34],t12=$2[35],t13=$2[36],t14=$2[37];let t15;if($2[38]===Symbol.for("react.memo_cache_sentinel"))t15=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{dimColor:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[38]=t15;else t15=$2[38];let t16;if($2[39]===Symbol.for("react.memo_cache_sentinel"))t16=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{color:"clawd_body",children:"▗"},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"clawd_background",backgroundColor:"clawd_body",children:[" ","▗"," ","▖"," "]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"clawd_body",children:"▖"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"*"},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[39]=t16;else t16=$2[39];let t17;if($2[40]===Symbol.for("react.memo_cache_sentinel"))t17=jsxDEV(ThemedText,{children:[" ",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" ".repeat(9)},void 0,!1,void 0,this)," * "]},void 0,!0,void 0,this),$2[40]=t17;else t17=$2[40];let t18;if($2[41]===Symbol.for("react.memo_cache_sentinel"))t18=jsxDEV(ThemedText,{children:["…………………",jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" "},void 0,!1,void 0,this),jsxDEV(ThemedText,{backgroundColor:"clawd_body",children:" "},void 0,!1,void 0,this),"………………………………………………………………………………………………………………"]},void 0,!0,void 0,this),$2[41]=t18;else t18=$2[41];let t19;if($2[42]!==t3)t19=jsxDEV(ThemedBox_default,{width:WELCOME_V2_WIDTH,children:jsxDEV(ThemedText,{children:[t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[42]=t3,$2[43]=t19;else t19=$2[43];return t19}var import_react_compiler_runtime344,WELCOME_V2_WIDTH=58;var init_WelcomeV2=__esm(()=>{init_ink2();init_env();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime344=__toESM(require_dist4(),1)});function OrderedListItem(t0){let $2=import_react_compiler_runtime345.c(7),{children}=t0,{marker}=import_react318.useContext(OrderedListItemContext),t1;if($2[0]!==marker)t1=jsxDEV(ThemedText,{dimColor:!0,children:marker},void 0,!1,void 0,this),$2[0]=marker,$2[1]=t1;else t1=$2[1];let t2;if($2[2]!==children)t2=jsxDEV(ThemedBox_default,{flexDirection:"column",children},void 0,!1,void 0,this),$2[2]=children,$2[3]=t2;else t2=$2[3];let t3;if($2[4]!==t1||$2[5]!==t2)t3=jsxDEV(ThemedBox_default,{gap:1,children:[t1,t2]},void 0,!0,void 0,this),$2[4]=t1,$2[5]=t2,$2[6]=t3;else t3=$2[6];return t3}var import_react_compiler_runtime345,import_react318,OrderedListItemContext;var init_OrderedListItem=__esm(()=>{init_ink2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime345=__toESM(require_dist4(),1),import_react318=__toESM(require_react_production(),1),OrderedListItemContext=import_react318.createContext({marker:""})});function OrderedListComponent(t0){let $2=import_react_compiler_runtime346.c(9),{children}=t0,{marker:parentMarker}=import_react319.useContext(OrderedListContext),numberOfItems=0;for(let child of import_react319.default.Children.toArray(children)){if(!import_react319.isValidElement(child)||child.type!==OrderedListItem)continue;numberOfItems++}let maxMarkerWidth=String(numberOfItems).length,t1;if($2[0]!==children||$2[1]!==maxMarkerWidth||$2[2]!==parentMarker){let t22;if($2[4]!==maxMarkerWidth||$2[5]!==parentMarker)t22=(child_0,index)=>{if(!import_react319.isValidElement(child_0)||child_0.type!==OrderedListItem)return child_0;let paddedMarker=`${String(index+1).padStart(maxMarkerWidth)}.`,marker=`${parentMarker}${paddedMarker}`;return jsxDEV(OrderedListContext.Provider,{value:{marker},children:jsxDEV(OrderedListItemContext.Provider,{value:{marker},children:child_0},void 0,!1,void 0,this)},void 0,!1,void 0,this)},$2[4]=maxMarkerWidth,$2[5]=parentMarker,$2[6]=t22;else t22=$2[6];t1=import_react319.default.Children.map(children,t22),$2[0]=children,$2[1]=maxMarkerWidth,$2[2]=parentMarker,$2[3]=t1}else t1=$2[3];let t2;if($2[7]!==t1)t2=jsxDEV(ThemedBox_default,{flexDirection:"column",children:t1},void 0,!1,void 0,this),$2[7]=t1,$2[8]=t2;else t2=$2[8];return t2}var import_react_compiler_runtime346,import_react319,OrderedListContext,OrderedList;var init_OrderedList=__esm(()=>{init_ink2();init_OrderedListItem();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime346=__toESM(require_dist4(),1),import_react319=__toESM(require_react_production(),1),OrderedListContext=import_react319.createContext({marker:""});OrderedListComponent.Item=OrderedListItem;OrderedList=OrderedListComponent});var exports_Onboarding={};__export(exports_Onboarding,{SkippableStep:()=>SkippableStep,Onboarding:()=>Onboarding});function Onboarding({onDone}){let[currentStepIndex,setCurrentStepIndex]=import_react320.useState(0),[skipOAuth,setSkipOAuth]=import_react320.useState(!1),[oauthEnabled]=import_react320.useState(()=>isAnthropicAuthEnabled()),[theme2,setTheme]=useTheme();import_react320.useEffect(()=>{logEvent("tengu_began_setup",{oauthEnabled})},[oauthEnabled]);function goToNextStep(){if(currentStepIndex<steps.length-1){let nextIndex=currentStepIndex+1;setCurrentStepIndex(nextIndex),logEvent("tengu_onboarding_step",{oauthEnabled,stepId:steps[nextIndex]?.id})}else onDone()}function handleThemeSelection(newTheme){setTheme(newTheme),goToNextStep()}let exitState=useExitOnCtrlCDWithKeybindings(),themeStep=jsxDEV(ThemedBox_default,{marginX:1,children:jsxDEV(ThemePicker,{onThemeSelect:handleThemeSelection,showIntroText:!0,helpText:"To change this later, run /theme",hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),securityStep=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingLeft:1,children:[jsxDEV(ThemedText,{bold:!0,children:"Security notes:"},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",width:70,children:jsxDEV(OrderedList,{children:[jsxDEV(OrderedList.Item,{children:[jsxDEV(ThemedText,{children:[PRODUCT_DISPLAY_NAME," can make mistakes"]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,wrap:"wrap",children:["You should always review ",PRODUCT_DISPLAY_NAME,"'s responses, especially when",jsxDEV(Newline,{},void 0,!1,void 0,this),"running code.",jsxDEV(Newline,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(OrderedList.Item,{children:[jsxDEV(ThemedText,{children:"Due to prompt injection risks, only use it with code you trust"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,wrap:"wrap",children:["Repository files and tool output can contain instructions that try to steer ",PRODUCT_DISPLAY_NAME," toward unsafe tool use."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),jsxDEV(PressEnterToContinue,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),preflightStep=jsxDEV(PreflightStep,{onSuccess:goToNextStep},void 0,!1,void 0,this),apiKeyNeedingApproval=import_react320.useMemo(()=>{if(!process.env.ANTHROPIC_API_KEY||isRunningOnHomespace()||!isAnthropicAuthEnabled())return"";let customApiKeyTruncated=normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);if(getCustomApiKeyStatus(customApiKeyTruncated)==="new")return customApiKeyTruncated},[]);function handleApiKeyDone(approved){if(approved)setSkipOAuth(!0);goToNextStep()}let steps=[];if(oauthEnabled)steps.push({id:"preflight",component:preflightStep});if(steps.push({id:"theme",component:themeStep}),apiKeyNeedingApproval)steps.push({id:"api-key",component:jsxDEV(ApproveApiKey,{customApiKeyTruncated:apiKeyNeedingApproval,onDone:handleApiKeyDone},void 0,!1,void 0,this)});if(oauthEnabled)steps.push({id:"oauth",component:jsxDEV(SkippableStep,{skip:skipOAuth,onSkip:goToNextStep,children:jsxDEV(ConsoleOAuthFlow,{onDone:goToNextStep},void 0,!1,void 0,this)},void 0,!1,void 0,this)});if(steps.push({id:"security",component:securityStep}),shouldOfferTerminalSetup())steps.push({id:"terminal-setup",component:jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingLeft:1,children:[jsxDEV(ThemedText,{bold:!0,children:["Use ",PRODUCT_DISPLAY_NAME,"'s terminal setup?"]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",width:70,gap:1,children:[jsxDEV(ThemedText,{children:["For the optimal coding experience, enable the recommended settings",jsxDEV(Newline,{},void 0,!1,void 0,this),"for your terminal:"," ",env3.terminal==="Apple_Terminal"?"Option+Enter for newlines and visual bell":"Shift+Enter for newlines"]},void 0,!0,void 0,this),jsxDEV(Select,{options:[{label:"Yes, use recommended settings",value:"install"},{label:"No, maybe later with /terminal-setup",value:"no"}],onChange:(value)=>{if(value==="install")setupTerminal(theme2).catch(()=>{}).finally(goToNextStep);else goToNextStep()},onCancel:()=>goToNextStep()},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV($Fragment,{children:"Enter to confirm · Esc to skip"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)});let currentStep=steps[currentStepIndex],handleSecurityContinue=import_react320.useCallback(()=>{if(currentStepIndex===steps.length-1)onDone();else goToNextStep()},[currentStepIndex,steps.length,oauthEnabled,onDone]),handleTerminalSetupSkip=import_react320.useCallback(()=>{goToNextStep()},[currentStepIndex,steps.length,oauthEnabled,onDone]);return useKeybindings({"confirm:yes":handleSecurityContinue},{context:"Confirmation",isActive:currentStep?.id==="security"}),useKeybindings({"confirm:no":handleTerminalSetupSkip},{context:"Confirmation",isActive:currentStep?.id==="terminal-setup"}),jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(WelcomeV2,{},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[currentStep?.component,exitState.pending&&jsxDEV(ThemedBox_default,{padding:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function SkippableStep(t0){let $2=import_react_compiler_runtime347.c(4),{skip,onSkip,children}=t0,t1,t2;if($2[0]!==onSkip||$2[1]!==skip)t1=()=>{if(skip)onSkip()},t2=[skip,onSkip],$2[0]=onSkip,$2[1]=skip,$2[2]=t1,$2[3]=t2;else t1=$2[2],t2=$2[3];if(import_react320.useEffect(t1,t2),skip)return null;return children}var import_react_compiler_runtime347,import_react320;var init_Onboarding=__esm(()=>{init_terminalSetup();init_useExitOnCtrlCDWithKeybindings();init_ink2();init_useKeybinding();init_auth5();init_authPortable();init_config();init_env();init_envUtils();init_preflightChecks();init_ApproveApiKey();init_ConsoleOAuthFlow();init_select();init_WelcomeV2();init_PressEnterToContinue();init_ThemePicker();init_OrderedList();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime347=__toESM(require_dist4(),1),import_react320=__toESM(require_react_production(),1)});function hasHooks(settings){if(settings===null||settings.disableAllHooks)return!1;if(settings.statusLine)return!0;if(settings.fileSuggestion)return!0;if(!settings.hooks)return!1;for(let hookConfig of Object.values(settings.hooks))if(hookConfig.length>0)return!0;return!1}function getHooksSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasHooks(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasHooks(localSettings))sources.push(localSettingsPath());return sources}function hasBashPermission(rules){return rules.some((rule)=>rule.ruleBehavior==="allow"&&(rule.ruleValue.toolName===BASH_TOOL_NAME||rule.ruleValue.toolName.startsWith(BASH_TOOL_NAME+"(")))}function getBashPermissionSources(){let sources=[],projectRules=getPermissionRulesForSource("projectSettings");if(hasBashPermission(projectRules))sources.push(projectSettingsPath());let localRules=getPermissionRulesForSource("localSettings");if(hasBashPermission(localRules))sources.push(localSettingsPath());return sources}function hasOtelHeadersHelper(settings){return!!settings?.otelHeadersHelper}function getOtelHeadersHelperSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasOtelHeadersHelper(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasOtelHeadersHelper(localSettings))sources.push(localSettingsPath());return sources}function hasApiKeyHelper(settings){return!!settings?.apiKeyHelper}function getApiKeyHelperSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasApiKeyHelper(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasApiKeyHelper(localSettings))sources.push(localSettingsPath());return sources}function hasAwsCommands(settings){return!!(settings?.awsAuthRefresh||settings?.awsCredentialExport)}function getAwsCommandsSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasAwsCommands(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasAwsCommands(localSettings))sources.push(localSettingsPath());return sources}function hasGcpCommands(settings){return!!settings?.gcpAuthRefresh}function getGcpCommandsSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasGcpCommands(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasGcpCommands(localSettings))sources.push(localSettingsPath());return sources}function hasDangerousEnvVars(settings){if(!settings?.env)return!1;return Object.keys(settings.env).some((key)=>!SAFE_ENV_VARS3.has(key.toUpperCase()))}function getDangerousEnvVarsSources(){let sources=[],projectSettings=getSettingsForSource("projectSettings");if(hasDangerousEnvVars(projectSettings))sources.push(projectSettingsPath());let localSettings=getSettingsForSource("localSettings");if(hasDangerousEnvVars(localSettings))sources.push(localSettingsPath());return sources}var projectSettingsPath=()=>getRelativeSettingsFilePathForSource("projectSettings"),localSettingsPath=()=>getRelativeSettingsFilePathForSource("localSettings");var init_utils14=__esm(()=>{init_settings3();init_managedEnvConstants();init_permissionsLoader()});var exports_TrustDialog={};__export(exports_TrustDialog,{TrustDialog:()=>TrustDialog});import{homedir as homedir42}from"os";function TrustDialog(t0){let $2=import_react_compiler_runtime348.c(33),{onDone,commands}=t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=getMcpConfigsByScope("project"),$2[0]=t1;else t1=$2[0];let{servers:projectServers}=t1,t2;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t2=Object.keys(projectServers),$2[1]=t2;else t2=$2[1];let hasMcpServers=t2.length>0,t3;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t3=getHooksSources(),$2[2]=t3;else t3=$2[2];let hasHooks2=t3.length>0,t4;if($2[3]===Symbol.for("react.memo_cache_sentinel"))t4=getBashPermissionSources(),$2[3]=t4;else t4=$2[3];let bashSettingSources=t4,t5;if($2[4]===Symbol.for("react.memo_cache_sentinel"))t5=getApiKeyHelperSources(),$2[4]=t5;else t5=$2[4];let hasApiKeyHelper2=t5.length>0,t6;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t6=getAwsCommandsSources(),$2[5]=t6;else t6=$2[5];let hasAwsCommands2=t6.length>0,t7;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t7=getGcpCommandsSources(),$2[6]=t7;else t7=$2[6];let hasGcpCommands2=t7.length>0,t8;if($2[7]===Symbol.for("react.memo_cache_sentinel"))t8=getOtelHeadersHelperSources(),$2[7]=t8;else t8=$2[7];let hasOtelHeadersHelper2=t8.length>0,t9;if($2[8]===Symbol.for("react.memo_cache_sentinel"))t9=getDangerousEnvVarsSources(),$2[8]=t9;else t9=$2[8];let hasDangerousEnvVars2=t9.length>0,t10;if($2[9]!==commands)t10=commands?.some(_temp292)??!1,$2[9]=commands,$2[10]=t10;else t10=$2[10];let hasSlashCommandBash=t10,t11;if($2[11]!==commands)t11=commands?.some(_temp441)??!1,$2[11]=commands,$2[12]=t11;else t11=$2[12];let hasSkillsBash=t11,hasAnyBashExecution=bashSettingSources.length>0||hasSlashCommandBash||hasSkillsBash,hasTrustDialogAccepted=checkHasTrustDialogAccepted(),t12,t13;if($2[13]!==hasAnyBashExecution)t12=()=>{let isHomeDir=homedir42()===getCwd();logEvent("tengu_trust_dialog_shown",{isHomeDir,hasMcpServers,hasHooks:hasHooks2,hasBashExecution:hasAnyBashExecution,hasApiKeyHelper:hasApiKeyHelper2,hasAwsCommands:hasAwsCommands2,hasGcpCommands:hasGcpCommands2,hasOtelHeadersHelper:hasOtelHeadersHelper2,hasDangerousEnvVars:hasDangerousEnvVars2})},t13=[hasMcpServers,hasHooks2,hasAnyBashExecution,hasApiKeyHelper2,hasAwsCommands2,hasGcpCommands2,hasOtelHeadersHelper2,hasDangerousEnvVars2],$2[13]=hasAnyBashExecution,$2[14]=t12,$2[15]=t13;else t12=$2[14],t13=$2[15];import_react321.default.useEffect(t12,t13);let t14;if($2[16]!==hasAnyBashExecution||$2[17]!==onDone)t14=function(value){if(value==="exit"){gracefulShutdownSync(1);return}let isHomeDir_0=homedir42()===getCwd();if(logEvent("tengu_trust_dialog_accept",{isHomeDir:isHomeDir_0,hasMcpServers,hasHooks:hasHooks2,hasBashExecution:hasAnyBashExecution,hasApiKeyHelper:hasApiKeyHelper2,hasAwsCommands:hasAwsCommands2,hasGcpCommands:hasGcpCommands2,hasOtelHeadersHelper:hasOtelHeadersHelper2,hasDangerousEnvVars:hasDangerousEnvVars2}),isHomeDir_0)setSessionTrustAccepted(!0);else saveCurrentProjectConfig(_temp530);onDone()},$2[16]=hasAnyBashExecution,$2[17]=onDone,$2[18]=t14;else t14=$2[18];let onChange=t14,exitState=useExitOnCtrlCDWithKeybindings(_temp624),t15;if($2[19]===Symbol.for("react.memo_cache_sentinel"))t15={context:"Confirmation"},$2[19]=t15;else t15=$2[19];if(useKeybinding("confirm:no",_temp719,t15),hasTrustDialogAccepted)return setTimeout(onDone),null;let t16,t17,t18;if($2[20]===Symbol.for("react.memo_cache_sentinel"))t16=jsxDEV(ThemedText,{bold:!0,children:getFsImplementation().cwd()},void 0,!1,void 0,this),t17=jsxDEV(ThemedText,{children:["Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team). If not, take a moment to review what","'","s in this folder first."]},void 0,!0,void 0,this),t18=jsxDEV(ThemedText,{children:["Claudio","'","ll be able to read, edit, and execute files here."]},void 0,!0,void 0,this),$2[20]=t16,$2[21]=t17,$2[22]=t18;else t16=$2[20],t17=$2[21],t18=$2[22];let t19;if($2[23]===Symbol.for("react.memo_cache_sentinel"))t19=jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Link,{url:"https://code.claude.com/docs/en/security",children:"Security guide"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[23]=t19;else t19=$2[23];let t20;if($2[24]===Symbol.for("react.memo_cache_sentinel"))t20=[{label:"Yes, I trust this folder",value:"enable_all"},{label:"No, exit",value:"exit"}],$2[24]=t20;else t20=$2[24];let t21;if($2[25]!==onChange)t21=jsxDEV(Select,{options:t20,onChange:(value_0)=>onChange(value_0),onCancel:()=>onChange("exit")},void 0,!1,void 0,this),$2[25]=onChange,$2[26]=t21;else t21=$2[26];let t22;if($2[27]!==exitState.keyName||$2[28]!==exitState.pending)t22=jsxDEV(ThemedText,{dimColor:!0,children:exitState.pending?jsxDEV($Fragment,{children:["Press ",exitState.keyName," again to exit"]},void 0,!0,void 0,this):jsxDEV($Fragment,{children:"Enter to confirm · Esc to cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[27]=exitState.keyName,$2[28]=exitState.pending,$2[29]=t22;else t22=$2[29];let t23;if($2[30]!==t21||$2[31]!==t22)t23=jsxDEV(PermissionDialog,{color:"warning",titleColor:"warning",title:"Accessing workspace:",children:jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,paddingTop:1,children:[t16,t17,t18,t19,t21,t22]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[30]=t21,$2[31]=t22,$2[32]=t23;else t23=$2[32];return t23}function _temp719(){gracefulShutdownSync(0)}function _temp624(){return gracefulShutdownSync(1)}function _temp530(current){return{...current,hasTrustDialogAccepted:!0}}function _temp441(command_0){return command_0.type==="prompt"&&(command_0.loadedFrom==="skills"||command_0.loadedFrom==="plugin")&&(command_0.source==="projectSettings"||command_0.source==="localSettings"||command_0.source==="plugin")&&command_0.allowedTools?.some(_temp353)}function _temp353(tool_0){return tool_0===BASH_TOOL_NAME||tool_0.startsWith(BASH_TOOL_NAME+"(")}function _temp292(command11){return command11.type==="prompt"&&command11.loadedFrom==="commands_DEPRECATED"&&(command11.source==="projectSettings"||command11.source==="localSettings")&&command11.allowedTools?.some(_temp254)}function _temp254(tool2){return tool2===BASH_TOOL_NAME||tool2.startsWith(BASH_TOOL_NAME+"(")}var import_react_compiler_runtime348,import_react321;var init_TrustDialog=__esm(()=>{init_state();init_useExitOnCtrlCDWithKeybindings();init_ink2();init_useKeybinding();init_config2();init_config();init_cwd();init_fsOperations();init_gracefulShutdown();init_CustomSelect();init_PermissionDialog();init_utils14();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime348=__toESM(require_dist4(),1),import_react321=__toESM(require_react_production(),1)});var exports_ClaudeInChromeOnboarding={};__export(exports_ClaudeInChromeOnboarding,{ClaudeInChromeOnboarding:()=>ClaudeInChromeOnboarding});function ClaudeInChromeOnboarding(t0){let $2=import_react_compiler_runtime349.c(20),{onDone}=t0,[isExtensionInstalled,setIsExtensionInstalled]=import_react322.default.useState(!1),t1,t2;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=()=>{logEvent("tengu_claude_in_chrome_onboarding_shown",{}),isChromeExtensionInstalled().then(setIsExtensionInstalled),saveGlobalConfig(_temp293)},t2=[],$2[0]=t1,$2[1]=t2;else t1=$2[0],t2=$2[1];import_react322.default.useEffect(t1,t2);let t3;if($2[2]!==onDone)t3=(_input,key)=>{if(key.return)onDone()},$2[2]=onDone,$2[3]=t3;else t3=$2[3];use_input_default(t3);let t4;if($2[4]!==isExtensionInstalled)t4=!isExtensionInstalled&&jsxDEV($Fragment,{children:[jsxDEV(Newline,{},void 0,!1,void 0,this),jsxDEV(Newline,{},void 0,!1,void 0,this),"Requires the Chrome extension. Get started at"," ",jsxDEV(Link,{url:CHROME_EXTENSION_URL2},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[4]=isExtensionInstalled,$2[5]=t4;else t4=$2[5];let t5;if($2[6]!==t4)t5=jsxDEV(ThemedText,{children:["Claude in Chrome works with the Chrome extension to let you control your browser directly from Claudio. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",t4]},void 0,!0,void 0,this),$2[6]=t4,$2[7]=t5;else t5=$2[7];let t6;if($2[8]!==isExtensionInstalled)t6=isExtensionInstalled&&jsxDEV($Fragment,{children:[" ","(",jsxDEV(Link,{url:CHROME_PERMISSIONS_URL2},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),$2[8]=isExtensionInstalled,$2[9]=t6;else t6=$2[9];let t7;if($2[10]!==t6)t7=jsxDEV(ThemedText,{dimColor:!0,children:["Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on",t6,"."]},void 0,!0,void 0,this),$2[10]=t6,$2[11]=t7;else t7=$2[11];let t8;if($2[12]===Symbol.for("react.memo_cache_sentinel"))t8=jsxDEV(ThemedText,{bold:!0,color:"chromeYellow",children:"/chrome"},void 0,!1,void 0,this),$2[12]=t8;else t8=$2[12];let t9;if($2[13]===Symbol.for("react.memo_cache_sentinel"))t9=jsxDEV(ThemedText,{dimColor:!0,children:["For more info, use"," ",t8," ","or visit ",jsxDEV(Link,{url:"https://code.claude.com/docs/en/chrome"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[13]=t9;else t9=$2[13];let t10;if($2[14]!==t5||$2[15]!==t7)t10=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t5,t7,t9]},void 0,!0,void 0,this),$2[14]=t5,$2[15]=t7,$2[16]=t10;else t10=$2[16];let t11;if($2[17]!==onDone||$2[18]!==t10)t11=jsxDEV(Dialog,{title:"Claude in Chrome (Beta)",onCancel:onDone,color:"chromeYellow",children:t10},void 0,!1,void 0,this),$2[17]=onDone,$2[18]=t10,$2[19]=t11;else t11=$2[19];return t11}function _temp293(current){return{...current,hasCompletedClaudeInChromeOnboarding:!0}}var import_react_compiler_runtime349,import_react322,CHROME_EXTENSION_URL2="https://claude.ai/chrome",CHROME_PERMISSIONS_URL2="https://clau.de/chrome/permissions";var init_ClaudeInChromeOnboarding=__esm(()=>{init_ink2();init_setup2();init_config();init_Dialog();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime349=__toESM(require_dist4(),1),import_react322=__toESM(require_react_production(),1)});import{appendFileSync as appendFileSync4}from"fs";function completeOnboarding(){saveGlobalConfig((current)=>({...current,hasCompletedOnboarding:!0,lastOnboardingVersion:"99.0.0"}))}function showDialog(root2,renderer){return new Promise((resolve57)=>{let done=(result)=>void resolve57(result);root2.render(renderer(done))})}async function exitWithError2(root2,message,beforeExit){return exitWithMessage2(root2,message,{color:"error",beforeExit})}async function exitWithMessage2(root2,message,options2){let{Text:Text3}=await Promise.resolve().then(() => (init_ink2(),exports_ink)),color3=options2?.color,exitCode=options2?.exitCode??1;root2.render(color3?jsxDEV(Text3,{color:color3,children:message},void 0,!1,void 0,this):jsxDEV(Text3,{children:message},void 0,!1,void 0,this)),root2.unmount(),await options2?.beforeExit?.(),process.exit(exitCode)}function showSetupDialog(root2,renderer,options2){return showDialog(root2,(done)=>jsxDEV(AppStateProvider,{onChangeAppState:options2?.onChangeAppState,children:jsxDEV(KeybindingSetup,{children:renderer(done)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}async function renderAndRun(root2,element){root2.render(element),startDeferredPrefetches(),await root2.waitUntilExit(),await gracefulShutdown(0)}async function showSetupScreens(root2,permissionMode,allowDangerouslySkipPermissions,commands,claudeInChrome,devChannels){if(isEnvTruthy(!1)||process.env.IS_DEMO)return!1;let usesAnthropicSetup=usesAnthropicAccountFlow(),config4=getGlobalConfig(),onboardingShown=!1;if(usesAnthropicSetup&&(!config4.theme||!config4.hasCompletedOnboarding)){onboardingShown=!0;let{Onboarding:Onboarding2}=await Promise.resolve().then(() => (init_Onboarding(),exports_Onboarding));await showSetupDialog(root2,(done)=>jsxDEV(Onboarding2,{onDone:()=>{completeOnboarding(),done()}},void 0,!1,void 0,this),{onChangeAppState})}if(!isEnvTruthy(process.env.CLAUBBIT)){if(usesAnthropicSetup&&!checkHasTrustDialogAccepted()){let{TrustDialog:TrustDialog2}=await Promise.resolve().then(() => (init_TrustDialog(),exports_TrustDialog));await showSetupDialog(root2,(done)=>jsxDEV(TrustDialog2,{commands,onDone:done},void 0,!1,void 0,this))}setSessionTrustAccepted(!0),resetGrowthBook(),initializeGrowthBook(),getSystemContext();let{errors:allErrors}=getSettingsWithAllErrors();if(allErrors.length===0)await handleMcpjsonServerApprovals(root2);let warningScope=await shouldShowClaudeMdExternalIncludesWarning();if(warningScope!=="None"){let files2=await getMemoryFiles(!0),externalIncludes=warningScope==="User"?getExternalClaudeMdIncludes(files2,["User"]):getExternalClaudeMdIncludes(files2,["Project","Local"]),{ClaudeMdExternalIncludesDialog:ClaudeMdExternalIncludesDialog2}=await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(),exports_ClaudeMdExternalIncludesDialog));await showSetupDialog(root2,(done)=>jsxDEV(ClaudeMdExternalIncludesDialog2,{onDone:done,isStandaloneDialog:!0,externalIncludes,scope:warningScope},void 0,!1,void 0,this))}}if(updateGithubRepoPathMapping(),applyConfigEnvironmentVariables(),setImmediate(()=>initializeTelemetryAfterTrust()),await isQualifiedForGrove()){let{GroveDialog:GroveDialog2}=await Promise.resolve().then(() => (init_Grove(),exports_Grove));if(await showSetupDialog(root2,(done)=>jsxDEV(GroveDialog2,{showIfAlreadyViewed:!1,location:onboardingShown?"onboarding":"policy_update_modal",onDone:done},void 0,!1,void 0,this))==="escape")return logEvent("tengu_grove_policy_exited",{}),gracefulShutdownSync(0),!1}if(usesAnthropicSetup&&process.env.ANTHROPIC_API_KEY&&!isRunningOnHomespace()){let customApiKeyTruncated=normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);if(getCustomApiKeyStatus(customApiKeyTruncated)==="new"){let{ApproveApiKey:ApproveApiKey2}=await Promise.resolve().then(() => (init_ApproveApiKey(),exports_ApproveApiKey));await showSetupDialog(root2,(done)=>jsxDEV(ApproveApiKey2,{customApiKeyTruncated,onDone:done},void 0,!1,void 0,this),{onChangeAppState})}}if(await showDangerousModePromptIfNeeded(root2,permissionMode,allowDangerouslySkipPermissions,showSetupDialog),permissionMode==="auto"&&!hasAutoModeOptIn()){let{AutoModeOptInDialog:AutoModeOptInDialog2}=await Promise.resolve().then(() => (init_AutoModeOptInDialog(),exports_AutoModeOptInDialog));await showSetupDialog(root2,(done)=>jsxDEV(AutoModeOptInDialog2,{onAccept:done,onDecline:()=>gracefulShutdownSync(1),declineExits:!0},void 0,!1,void 0,this))}if(claudeInChrome&&!getGlobalConfig().hasCompletedClaudeInChromeOnboarding){let{ClaudeInChromeOnboarding:ClaudeInChromeOnboarding2}=await Promise.resolve().then(() => (init_ClaudeInChromeOnboarding(),exports_ClaudeInChromeOnboarding));await showSetupDialog(root2,(done)=>jsxDEV(ClaudeInChromeOnboarding2,{onDone:done},void 0,!1,void 0,this))}return onboardingShown}function getRenderContext(exitOnCtrlC){let lastFlickerTime=0,baseOptions=getBaseRenderOptions(exitOnCtrlC);if(baseOptions.stdin)logEvent("tengu_stdin_interactive",{});let fpsTracker=new FpsTracker,stats2=createStatsStore();setStatsStore(stats2);let frameTimingLogPath=process.env.CLAUDE_CODE_FRAME_TIMING_LOG;return{getFpsMetrics:()=>fpsTracker.getMetrics(),stats:stats2,renderOptions:{...baseOptions,onFrame:(event)=>{if(fpsTracker.record(event.durationMs),stats2.observe("frame_duration_ms",event.durationMs),frameTimingLogPath&&event.phases){let line=JSON.stringify({total:event.durationMs,...event.phases,rss:process.memoryUsage.rss(),cpu:process.cpuUsage()})+`
|
|
9328
9328
|
`;appendFileSync4(frameTimingLogPath,line)}if(isSynchronizedOutputSupported())return;for(let flicker of event.flickers){if(flicker.reason==="resize")continue;let now2=Date.now();if(now2-lastFlickerTime<1000)logEvent("tengu_flicker",{desiredHeight:flicker.desiredHeight,actualHeight:flicker.availableHeight,reason:flicker.reason});lastFlickerTime=now2}}}}}var init_interactiveHelpers=__esm(()=>{init_gracefulShutdown();init_state();init_stats4();init_context2();init_init3();init_terminal();init_KeybindingProviderSetup();init_main3();init_growthbook();init_grove();init_mcpServerApproval();init_AppState();init_onChangeAppState();init_authPortable();init_claudemd();init_config();init_terminalPreference();init_envUtils();init_githubRepoPathMapping();init_managedEnv();init_providers();init_dangerousModePromptFlow();init_renderOptions();init_devChannelRegistration();init_allErrors();init_settings3();init_reactJsxDevRuntimeProductionShim()});var exports_InvalidSettingsDialog={};__export(exports_InvalidSettingsDialog,{InvalidSettingsDialog:()=>InvalidSettingsDialog});function InvalidSettingsDialog(t0){let $2=import_react_compiler_runtime350.c(13),{settingsErrors,onContinue,onExit:onExit2}=t0,t1;if($2[0]!==onContinue||$2[1]!==onExit2)t1=function(value){if(value==="exit")onExit2();else onContinue()},$2[0]=onContinue,$2[1]=onExit2,$2[2]=t1;else t1=$2[2];let handleSelect=t1,t2;if($2[3]!==settingsErrors)t2=jsxDEV(ValidationErrorsList,{errors:settingsErrors},void 0,!1,void 0,this),$2[3]=settingsErrors,$2[4]=t2;else t2=$2[4];let t3;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t3=jsxDEV(ThemedText,{dimColor:!0,children:"Files with errors are skipped entirely, not just the invalid settings."},void 0,!1,void 0,this),$2[5]=t3;else t3=$2[5];let t4;if($2[6]===Symbol.for("react.memo_cache_sentinel"))t4=[{label:"Exit and fix manually",value:"exit"},{label:"Continue without these settings",value:"continue"}],$2[6]=t4;else t4=$2[6];let t5;if($2[7]!==handleSelect)t5=jsxDEV(Select,{options:t4,onChange:handleSelect},void 0,!1,void 0,this),$2[7]=handleSelect,$2[8]=t5;else t5=$2[8];let t6;if($2[9]!==onExit2||$2[10]!==t2||$2[11]!==t5)t6=jsxDEV(Dialog,{title:"Settings Error",onCancel:onExit2,color:"warning",children:[t2,t3,t5]},void 0,!0,void 0,this),$2[9]=onExit2,$2[10]=t2,$2[11]=t5,$2[12]=t6;else t6=$2[12];return t6}var import_react_compiler_runtime350;var init_InvalidSettingsDialog=__esm(()=>{init_ink2();init_CustomSelect();init_Dialog();init_ValidationErrorsList();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime350=__toESM(require_dist4(),1)});function useTeleportResume(source){let $2=import_react_compiler_runtime351.c(8),[isResuming,setIsResuming]=import_react323.useState(!1),[error41,setError]=import_react323.useState(null),[selectedSession,setSelectedSession]=import_react323.useState(null),t0;if($2[0]!==source)t0=async(session2)=>{setIsResuming(!0),setError(null),setSelectedSession(session2),logEvent("tengu_teleport_resume_session",{source,session_id:session2.id});try{let result=await teleportResumeCodeSession(session2.id);return setTeleportedSessionInfo({sessionId:session2.id}),setIsResuming(!1),result}catch(t12){let err2=t12,teleportError={message:err2 instanceof TeleportOperationError?err2.message:errorMessage(err2),formattedMessage:err2 instanceof TeleportOperationError?err2.formattedMessage:void 0,isOperationError:err2 instanceof TeleportOperationError};return setError(teleportError),setIsResuming(!1),null}},$2[0]=source,$2[1]=t0;else t0=$2[1];let resumeSession=t0,t1;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t1=()=>{setError(null)},$2[2]=t1;else t1=$2[2];let clearError=t1,t2;if($2[3]!==error41||$2[4]!==isResuming||$2[5]!==resumeSession||$2[6]!==selectedSession)t2={resumeSession,isResuming,error:error41,selectedSession,clearError},$2[3]=error41,$2[4]=isResuming,$2[5]=resumeSession,$2[6]=selectedSession,$2[7]=t2;else t2=$2[7];return t2}var import_react_compiler_runtime351,import_react323;var init_useTeleportResume=__esm(()=>{init_state();init_errors();init_teleport();import_react_compiler_runtime351=__toESM(require_dist4(),1),import_react323=__toESM(require_react_production(),1)});function ResumeTask({onSelect,onCancel,isEmbedded=!1}){let{rows}=useTerminalSize(),[sessions,setSessions]=import_react324.useState([]),[currentRepo,setCurrentRepo]=import_react324.useState(null),[loading,setLoading]=import_react324.useState(!0),[loadErrorType,setLoadErrorType]=import_react324.useState(null),[retrying,setRetrying]=import_react324.useState(!1),[hasCompletedTeleportErrorFlow,setHasCompletedTeleportErrorFlow]=import_react324.useState(!1),[focusedIndex,setFocusedIndex]=import_react324.useState(1),escKey=useShortcutDisplay("confirm:no","Confirmation","Esc"),loadSessions=import_react324.useCallback(async()=>{try{setLoading(!0),setLoadErrorType(null);let detectedRepo=await detectCurrentRepository();setCurrentRepo(detectedRepo),logForDebugging(`Current repository: ${detectedRepo||"not detected"}`);let codeSessions=await fetchCodeSessionsFromSessionsAPI(),filteredSessions=codeSessions;if(detectedRepo)filteredSessions=codeSessions.filter((session2)=>{if(!session2.repo)return!1;return`${session2.repo.owner.login}/${session2.repo.name}`===detectedRepo}),logForDebugging(`Filtered ${filteredSessions.length} sessions for repo ${detectedRepo} from ${codeSessions.length} total`);let sortedSessions=[...filteredSessions].sort((a2,b)=>{let dateA=new Date(a2.updated_at);return new Date(b.updated_at).getTime()-dateA.getTime()});setSessions(sortedSessions)}catch(err2){let errorMessage6=err2 instanceof Error?err2.message:String(err2);logForDebugging(`Error loading code sessions: ${errorMessage6}`),setLoadErrorType(determineErrorType(errorMessage6))}finally{setLoading(!1),setRetrying(!1)}},[]),handleRetry=()=>{setRetrying(!0),loadSessions()};useKeybinding("confirm:no",onCancel,{context:"Confirmation"}),use_input_default((input,key)=>{if(key.ctrl&&input==="c"){onCancel();return}if(key.ctrl&&input==="r"&&loadErrorType){handleRetry();return}if(loadErrorType!==null&&key.return){onCancel();return}});let handleErrorComplete=import_react324.useCallback(()=>{setHasCompletedTeleportErrorFlow(!0),loadSessions()},[setHasCompletedTeleportErrorFlow,loadSessions]);if(!hasCompletedTeleportErrorFlow)return jsxDEV(TeleportError,{onComplete:handleErrorComplete},void 0,!1,void 0,this);if(loading)return jsxDEV(ThemedBox_default,{flexDirection:"column",padding:1,children:[jsxDEV(ThemedBox_default,{flexDirection:"row",children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"Loading Claudio sessions…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:retrying?"Retrying…":"Fetching your Claudio sessions…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(loadErrorType)return jsxDEV(ThemedBox_default,{flexDirection:"column",padding:1,children:[jsxDEV(ThemedText,{bold:!0,color:"error",children:"Error loading Claudio sessions"},void 0,!1,void 0,this),renderErrorSpecificGuidance(loadErrorType),jsxDEV(ThemedText,{dimColor:!0,children:["Press ",jsxDEV(ThemedText,{bold:!0,children:"Ctrl+R"},void 0,!1,void 0,this)," to retry · Press"," ",jsxDEV(ThemedText,{bold:!0,children:escKey},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(sessions.length===0)return jsxDEV(ThemedBox_default,{flexDirection:"column",padding:1,children:[jsxDEV(ThemedText,{bold:!0,children:["No Claudio sessions found",currentRepo&&jsxDEV(ThemedText,{children:[" for ",currentRepo]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Press ",jsxDEV(ThemedText,{bold:!0,children:escKey},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let sessionMetadata=sessions.map((session_0)=>({...session_0,timeString:formatRelativeTime(new Date(session_0.updated_at))})),maxTimeStringLength=Math.max(UPDATED_STRING.length,...sessionMetadata.map((meta)=>meta.timeString.length)),options2=sessionMetadata.map(({timeString,title,id})=>{return{label:`${timeString.padEnd(maxTimeStringLength," ")} ${title}`,value:id}}),layoutOverhead=7,maxVisibleOptions=Math.max(1,isEmbedded?Math.min(sessions.length,5,rows-6-layoutOverhead):Math.min(sessions.length,rows-1-layoutOverhead)),maxHeight=maxVisibleOptions+layoutOverhead,showScrollPosition=sessions.length>maxVisibleOptions;return jsxDEV(ThemedBox_default,{flexDirection:"column",padding:1,height:maxHeight,children:[jsxDEV(ThemedText,{bold:!0,children:["Select a session to resume",showScrollPosition&&jsxDEV(ThemedText,{dimColor:!0,children:[" ","(",focusedIndex," of ",sessions.length,")"]},void 0,!0,void 0,this),currentRepo&&jsxDEV(ThemedText,{dimColor:!0,children:[" (",currentRepo,")"]},void 0,!0,void 0,this),":"]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,flexGrow:1,children:[jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{bold:!0,children:[UPDATED_STRING.padEnd(maxTimeStringLength," "),SPACE_BETWEEN_TABLE_COLUMNS,"Session Title"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),jsxDEV(Select,{visibleOptionCount:maxVisibleOptions,options:options2,onChange:(value)=>{let session_1=sessions.find((s)=>s.id===value);if(session_1)onSelect(session_1)},onFocus:(value_0)=>{let index=options2.findIndex((o2)=>o2.value===value_0);if(index>=0)setFocusedIndex(index+1)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{flexDirection:"row",children:jsxDEV(ThemedText,{dimColor:!0,children:jsxDEV(Byline,{children:[jsxDEV(KeyboardShortcutHint,{shortcut:"↑/↓",action:"select"},void 0,!1,void 0,this),jsxDEV(KeyboardShortcutHint,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),jsxDEV(ConfigurableShortcutHint,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function determineErrorType(errorMessage6){let message=errorMessage6.toLowerCase();if(message.includes("fetch")||message.includes("network")||message.includes("timeout"))return"network";if(message.includes("auth")||message.includes("token")||message.includes("permission")||message.includes("oauth")||message.includes("not authenticated")||message.includes("/login")||message.includes("console account")||message.includes("403"))return"auth";if(message.includes("api")||message.includes("rate limit")||message.includes("500")||message.includes("529"))return"api";return"other"}function renderErrorSpecificGuidance(errorType){switch(errorType){case"network":return jsxDEV(ThemedBox_default,{marginY:1,flexDirection:"column",children:jsxDEV(ThemedText,{dimColor:!0,children:"Check your internet connection"},void 0,!1,void 0,this)},void 0,!1,void 0,this);case"auth":return jsxDEV(ThemedBox_default,{marginY:1,flexDirection:"column",children:[jsxDEV(ThemedText,{dimColor:!0,children:"Teleport requires a Claude account"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["Run ",jsxDEV(ThemedText,{bold:!0,children:"/login"},void 0,!1,void 0,this),' and select "Claude account with subscription"']},void 0,!0,void 0,this)]},void 0,!0,void 0,this);case"api":return jsxDEV(ThemedBox_default,{marginY:1,flexDirection:"column",children:jsxDEV(ThemedText,{dimColor:!0,children:"Sorry, Claude encountered an error"},void 0,!1,void 0,this)},void 0,!1,void 0,this);case"other":return jsxDEV(ThemedBox_default,{marginY:1,flexDirection:"row",children:jsxDEV(ThemedText,{dimColor:!0,children:"Sorry, Claudio encountered an error"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}}var import_react324,UPDATED_STRING="Updated",SPACE_BETWEEN_TABLE_COLUMNS=" ";var init_ResumeTask=__esm(()=>{init_useTerminalSize();init_api2();init_ink2();init_useKeybinding();init_useShortcutDisplay();init_debug();init_detectRepository();init_format();init_ConfigurableShortcutHint();init_CustomSelect();init_Byline();init_KeyboardShortcutHint();init_Spinner2();init_TeleportError();init_reactJsxDevRuntimeProductionShim();import_react324=__toESM(require_react_production(),1)});var exports_TeleportResumeWrapper={};__export(exports_TeleportResumeWrapper,{TeleportResumeWrapper:()=>TeleportResumeWrapper});function TeleportResumeWrapper(t0){let $2=import_react_compiler_runtime352.c(25),{onComplete,onCancel,onError,isEmbedded:t1,source}=t0,isEmbedded=t1===void 0?!1:t1,{resumeSession,isResuming,error:error41,selectedSession}=useTeleportResume(source),t2,t3;if($2[0]!==source)t2=()=>{logEvent("tengu_teleport_started",{source})},t3=[source],$2[0]=source,$2[1]=t2,$2[2]=t3;else t2=$2[1],t3=$2[2];import_react325.useEffect(t2,t3);let t4;if($2[3]!==error41||$2[4]!==onComplete||$2[5]!==onError||$2[6]!==resumeSession)t4=async(session2)=>{let result=await resumeSession(session2);if(result)onComplete(result);else if(error41){if(onError)onError(error41.message,error41.formattedMessage)}},$2[3]=error41,$2[4]=onComplete,$2[5]=onError,$2[6]=resumeSession,$2[7]=t4;else t4=$2[7];let handleSelect=t4,t5;if($2[8]!==onCancel)t5=()=>{logEvent("tengu_teleport_cancelled",{}),onCancel()},$2[8]=onCancel,$2[9]=t5;else t5=$2[9];let handleCancel=t5,t6=!!error41&&!onError,t7;if($2[10]!==t6)t7={context:"Global",isActive:t6},$2[10]=t6,$2[11]=t7;else t7=$2[11];if(useKeybinding("app:interrupt",handleCancel,t7),isResuming&&selectedSession){let t82;if($2[12]===Symbol.for("react.memo_cache_sentinel"))t82=jsxDEV(ThemedBox_default,{flexDirection:"row",children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{bold:!0,children:"Resuming session…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[12]=t82;else t82=$2[12];let t9;if($2[13]!==selectedSession.title)t9=jsxDEV(ThemedBox_default,{flexDirection:"column",padding:1,children:[t82,jsxDEV(ThemedText,{dimColor:!0,children:['Loading "',selectedSession.title,'"…']},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[13]=selectedSession.title,$2[14]=t9;else t9=$2[14];return t9}if(error41&&!onError){let t82;if($2[15]===Symbol.for("react.memo_cache_sentinel"))t82=jsxDEV(ThemedText,{bold:!0,color:"error",children:"Failed to resume session"},void 0,!1,void 0,this),$2[15]=t82;else t82=$2[15];let t9;if($2[16]!==error41.message)t9=jsxDEV(ThemedText,{dimColor:!0,children:error41.message},void 0,!1,void 0,this),$2[16]=error41.message,$2[17]=t9;else t9=$2[17];let t10;if($2[18]===Symbol.for("react.memo_cache_sentinel"))t10=jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:["Press ",jsxDEV(ThemedText,{bold:!0,children:"Esc"},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[18]=t10;else t10=$2[18];let t11;if($2[19]!==t9)t11=jsxDEV(ThemedBox_default,{flexDirection:"column",padding:1,children:[t82,t9,t10]},void 0,!0,void 0,this),$2[19]=t9,$2[20]=t11;else t11=$2[20];return t11}let t8;if($2[21]!==handleCancel||$2[22]!==handleSelect||$2[23]!==isEmbedded)t8=jsxDEV(ResumeTask,{onSelect:handleSelect,onCancel:handleCancel,isEmbedded},void 0,!1,void 0,this),$2[21]=handleCancel,$2[22]=handleSelect,$2[23]=isEmbedded,$2[24]=t8;else t8=$2[24];return t8}var import_react_compiler_runtime352,import_react325;var init_TeleportResumeWrapper=__esm(()=>{init_useTeleportResume();init_ink2();init_useKeybinding();init_ResumeTask();init_Spinner2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime352=__toESM(require_dist4(),1),import_react325=__toESM(require_react_production(),1)});var exports_TeleportRepoMismatchDialog={};__export(exports_TeleportRepoMismatchDialog,{TeleportRepoMismatchDialog:()=>TeleportRepoMismatchDialog});function TeleportRepoMismatchDialog(t0){let $2=import_react_compiler_runtime353.c(18),{targetRepo,initialPaths,onSelectPath,onCancel}=t0,[availablePaths,setAvailablePaths]=import_react326.useState(initialPaths),[errorMessage6,setErrorMessage]=import_react326.useState(null),[validating,setValidating]=import_react326.useState(!1),t1;if($2[0]!==availablePaths||$2[1]!==onCancel||$2[2]!==onSelectPath||$2[3]!==targetRepo)t1=async(value)=>{if(value==="cancel"){onCancel();return}if(setValidating(!0),setErrorMessage(null),await validateRepoAtPath(value,targetRepo)){onSelectPath(value);return}removePathFromRepo(targetRepo,value);let updatedPaths=availablePaths.filter((p)=>p!==value);setAvailablePaths(updatedPaths),setValidating(!1),setErrorMessage(`${getDisplayPath(value)} no longer contains the correct repository. Select another path.`)},$2[0]=availablePaths,$2[1]=onCancel,$2[2]=onSelectPath,$2[3]=targetRepo,$2[4]=t1;else t1=$2[4];let handleChange4=t1,t2;if($2[5]!==availablePaths){let t32;if($2[7]===Symbol.for("react.memo_cache_sentinel"))t32={label:"Cancel",value:"cancel"},$2[7]=t32;else t32=$2[7];t2=[...availablePaths.map(_temp295),t32],$2[5]=availablePaths,$2[6]=t2}else t2=$2[6];let options2=t2,t3;if($2[8]!==availablePaths.length||$2[9]!==errorMessage6||$2[10]!==handleChange4||$2[11]!==options2||$2[12]!==targetRepo||$2[13]!==validating)t3=availablePaths.length>0?jsxDEV($Fragment,{children:[jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[errorMessage6&&jsxDEV(ThemedText,{color:"error",children:errorMessage6},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:["Open Claudio in ",jsxDEV(ThemedText,{bold:!0,children:targetRepo},void 0,!1,void 0,this),":"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),validating?jsxDEV(ThemedBox_default,{children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" Validating repository…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(Select,{options:options2,onChange:(value_0)=>void handleChange4(value_0)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[errorMessage6&&jsxDEV(ThemedText,{color:"error",children:errorMessage6},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:["Run openclaude --teleport from a checkout of ",targetRepo]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[8]=availablePaths.length,$2[9]=errorMessage6,$2[10]=handleChange4,$2[11]=options2,$2[12]=targetRepo,$2[13]=validating,$2[14]=t3;else t3=$2[14];let t4;if($2[15]!==onCancel||$2[16]!==t3)t4=jsxDEV(Dialog,{title:"Teleport to Repo",onCancel,color:"background",children:t3},void 0,!1,void 0,this),$2[15]=onCancel,$2[16]=t3,$2[17]=t4;else t4=$2[17];return t4}function _temp295(path28){return{label:jsxDEV(ThemedText,{children:["Use ",jsxDEV(ThemedText,{bold:!0,children:getDisplayPath(path28)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),value:path28}}var import_react_compiler_runtime353,import_react326;var init_TeleportRepoMismatchDialog=__esm(()=>{init_ink2();init_file();init_githubRepoPathMapping();init_CustomSelect();init_Dialog();init_Spinner2();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime353=__toESM(require_dist4(),1),import_react326=__toESM(require_react_production(),1)});function parsePrIdentifier2(value){let directNumber=parseInt(value,10);if(!isNaN(directNumber)&&directNumber>0)return directNumber;let urlMatch=value.match(/github\.com\/[^/]+\/[^/]+\/pull\/(\d+)/);if(urlMatch?.[1])return parseInt(urlMatch[1],10);return null}function filterResumeLogs(logs,filterByPr){let result=logs.filter((l)=>!l.isSidechain);if(filterByPr===void 0||filterByPr===!1)return result;if(filterByPr===!0)return result.filter((l)=>l.prNumber!==void 0);if(typeof filterByPr==="number")return result.filter((l)=>l.prNumber===filterByPr);let prNumber=parsePrIdentifier2(filterByPr);if(prNumber!==null)result=result.filter((l)=>l.prNumber===prNumber);return result}var exports_ResumeConversation={};__export(exports_ResumeConversation,{ResumeConversation:()=>ResumeConversation});import{dirname as dirname71}from"path";function ResumeConversation({commands,worktreePaths,initialTools,mcpClients,dynamicMcpConfig,debug,mainThreadAgentDefinition,baseMainLoopModel,hasExplicitModelOverride,autoConnectIdeFlag,strictMcpConfig=!1,systemPrompt,appendSystemPrompt,initialSearchQuery,disableSlashCommands=!1,forkSession:forkSession2,filterByPr,thinkingConfig,fallbackModel,maxTurns,onTurnComplete}){let{rows}=useTerminalSize(),agentDefinitions=useAppState((s)=>s.agentDefinitions),setAppState=useSetAppState(),[logs,setLogs]=import_react327.default.useState([]),[loading,setLoading]=import_react327.default.useState(!0),[resuming,setResuming]=import_react327.default.useState(!1),[showAllProjects,setShowAllProjects]=import_react327.default.useState(!1),[resumeData,setResumeData]=import_react327.default.useState(null),[resumeError,setResumeError]=import_react327.default.useState(null),[crossProjectCommand,setCrossProjectCommand]=import_react327.default.useState(null),sessionLogResultRef=import_react327.default.useRef(null),logCountRef=import_react327.default.useRef(0),filteredLogs=import_react327.default.useMemo(()=>{return filterResumeLogs(logs,filterByPr)},[logs,filterByPr]),isResumeWithRenameEnabled=isCustomTitleEnabled();import_react327.default.useEffect(()=>{loadSameRepoMessageLogsProgressive(worktreePaths).then((result_0)=>{sessionLogResultRef.current=result_0,logCountRef.current=result_0.logs.length,setLogs(result_0.logs),setLoading(!1)}).catch((error41)=>{logError(error41),setLoading(!1)})},[worktreePaths]);let loadMoreLogs=import_react327.default.useCallback((count4)=>{let ref=sessionLogResultRef.current;if(!ref||ref.nextIndex>=ref.allStatLogs.length)return;enrichLogs(ref.allStatLogs,ref.nextIndex,count4).then((result_1)=>{if(ref.nextIndex=result_1.nextIndex,result_1.logs.length>0){let offset=logCountRef.current;result_1.logs.forEach((log2,i3)=>{log2.value=offset+i3}),setLogs((prev)=>prev.concat(result_1.logs)),logCountRef.current+=result_1.logs.length}else if(ref.nextIndex<ref.allStatLogs.length)loadMoreLogs(count4)})},[]),loadLogs=import_react327.default.useCallback((allProjects)=>{setLoading(!0),(allProjects?loadAllProjectsMessageLogsProgressive():loadSameRepoMessageLogsProgressive(worktreePaths)).then((result_2)=>{sessionLogResultRef.current=result_2,logCountRef.current=result_2.logs.length,setLogs(result_2.logs)}).catch((error_0)=>{logError(error_0)}).finally(()=>{setLoading(!1)})},[worktreePaths]),handleToggleAllProjects=import_react327.default.useCallback(()=>{let newValue=!showAllProjects;setShowAllProjects(newValue),loadLogs(newValue)},[showAllProjects,loadLogs]);function onCancel(){process.exit(1)}async function onSelect(log_0){setResumeError(null),setResuming(!0);let resumeStart=performance.now(),crossProjectCheck=checkCrossProjectResume(log_0,showAllProjects,worktreePaths);if(crossProjectCheck.isCrossProject){if(!crossProjectCheck.isSameRepoWorktree){let raw=await setClipboard(crossProjectCheck.command);if(raw)process.stdout.write(raw);setCrossProjectCommand(crossProjectCheck.command);return}}try{let result_3=await loadConversationForResume(log_0,void 0);if(!result_3)throw Error("Failed to load conversation");{let warning=(init_coordinatorMode(),__toCommonJS(exports_coordinatorMode)).matchSessionMode(result_3.mode);if(warning){let{getAgentDefinitionsWithOverrides:getAgentDefinitionsWithOverrides2,getActiveAgentsFromList:getActiveAgentsFromList2}=(init_loadAgentsDir(),__toCommonJS(exports_loadAgentsDir));getAgentDefinitionsWithOverrides2.cache.clear?.();let freshAgentDefs=await getAgentDefinitionsWithOverrides2(getOriginalCwd());setAppState((prev_0)=>({...prev_0,agentDefinitions:{...freshAgentDefs,allAgents:freshAgentDefs.allAgents,activeAgents:getActiveAgentsFromList2(freshAgentDefs.allAgents)}})),result_3.messages.push(createSystemMessage(warning,"warning"))}}if(result_3.sessionId&&!forkSession2)switchSession(asSessionId(result_3.sessionId),log_0.fullPath?dirname71(log_0.fullPath):null),await renameRecordingForSession(),await resetSessionFilePointer(),restoreCostStateForSession(result_3.sessionId);else if(forkSession2&&result_3.contentReplacements?.length){if(result_3.contentReplacements=filterContentReplacementsForMessages(result_3.messages,result_3.contentReplacements),result_3.contentReplacements.length)await recordContentReplacement(result_3.contentReplacements)}if(forkSession2)result_3.messages.push(createForkSessionInfoMessage(result_3.sessionId??log_0.sessionId));let{agentDefinition:resolvedAgentDef}=restoreAgentFromSession(result_3.agentSetting,mainThreadAgentDefinition,agentDefinitions);setAppState((prev_1)=>({...prev_1,agent:resolvedAgentDef?.agentType}));{let{saveMode:saveMode2}=(init_sessionStorage(),__toCommonJS(exports_sessionStorage)),{isCoordinatorMode:isCoordinatorMode2}=(init_coordinatorMode(),__toCommonJS(exports_coordinatorMode));saveMode2(isCoordinatorMode2()?"coordinator":"normal")}let standaloneAgentContext=computeStandaloneAgentContext(result_3.agentName,result_3.agentColor);if(standaloneAgentContext)setAppState((prev_2)=>({...prev_2,standaloneAgentContext}));if(updateSessionName(result_3.agentName),restoreSessionMetadata(forkSession2?{...result_3,worktreeSession:void 0}:result_3),!forkSession2){if(restoreWorktreeForResume(result_3.worktreeSession),result_3.sessionId)adoptResumedSessionFile()}__toCommonJS(exports_persist).restoreFromEntries(result_3.contextCollapseCommits??[],result_3.contextCollapseSnapshot),logEvent("tengu_session_resumed",{entrypoint:"picker",success:!0,resume_duration_ms:Math.round(performance.now()-resumeStart)}),setLogs([]),setResumeData({messages:result_3.messages,fileHistorySnapshots:result_3.fileHistorySnapshots,contentReplacements:result_3.contentReplacements,agentName:result_3.agentName,agentColor:result_3.agentColor==="default"?void 0:result_3.agentColor,mainThreadAgentDefinition:resolvedAgentDef})}catch(e){logEvent("tengu_session_resumed",{entrypoint:"picker",success:!1}),logError(e),setResumeError(errorMessage(e)),setResuming(!1)}}if(crossProjectCommand)return jsxDEV(CrossProjectMessage,{command:crossProjectCommand},void 0,!1,void 0,this);if(resumeData)return jsxDEV(REPL,{debug,commands,initialTools,initialMessages:resumeData.messages,initialFileHistorySnapshots:resumeData.fileHistorySnapshots,initialContentReplacements:resumeData.contentReplacements,initialAgentName:resumeData.agentName,initialAgentColor:resumeData.agentColor,mcpClients,dynamicMcpConfig,strictMcpConfig,systemPrompt,appendSystemPrompt,mainThreadAgentDefinition:resumeData.mainThreadAgentDefinition,baseMainLoopModel,hasExplicitModelOverride,autoConnectIdeFlag,disableSlashCommands,thinkingConfig,fallbackModel,maxTurns,onTurnComplete},void 0,!1,void 0,this);if(loading)return jsxDEV(ThemedBox_default,{children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" Loading conversations…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(resuming)return jsxDEV(ThemedBox_default,{children:[jsxDEV(Spinner,{},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:" Resuming conversation…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let resumeErrorBanner=resumeError?jsxDEV(ThemedBox_default,{flexDirection:"column",marginBottom:1,children:[jsxDEV(ThemedText,{color:"red",children:"Failed to resume conversation."},void 0,!1,void 0,this),jsxDEV(ThemedText,{children:resumeError},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Choose a different conversation to continue."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null;if(filteredLogs.length===0)return jsxDEV(NoConversationsMessage,{},void 0,!1,void 0,this);return jsxDEV(ThemedBox_default,{flexDirection:"column",children:[resumeErrorBanner,jsxDEV(LogSelector,{logs:filteredLogs,maxHeight:rows,onCancel,onSelect,onLogsChanged:isResumeWithRenameEnabled?()=>loadLogs(showAllProjects):void 0,onLoadMore:loadMoreLogs,initialSearchQuery,showAllProjects,onToggleAllProjects:handleToggleAllProjects,onAgenticSearch:agenticSessionSearch},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function NoConversationsMessage(){let $2=import_react_compiler_runtime354.c(2),t0;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t0={context:"Global"},$2[0]=t0;else t0=$2[0];useKeybinding("app:interrupt",_temp296,t0);let t1;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{children:"No conversations found to resume."},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:"Press Ctrl+C to exit and start a new conversation."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$2[1]=t1;else t1=$2[1];return t1}function _temp296(){process.exit(1)}function CrossProjectMessage(t0){let $2=import_react_compiler_runtime354.c(8),{command:command11}=t0,t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=[],$2[0]=t1;else t1=$2[0];import_react327.default.useEffect(_temp354,t1);let t2;if($2[1]===Symbol.for("react.memo_cache_sentinel"))t2=jsxDEV(ThemedText,{children:"This conversation is from a different directory."},void 0,!1,void 0,this),$2[1]=t2;else t2=$2[1];let t3;if($2[2]===Symbol.for("react.memo_cache_sentinel"))t3=jsxDEV(ThemedText,{children:"To resume, run:"},void 0,!1,void 0,this),$2[2]=t3;else t3=$2[2];let t4;if($2[3]!==command11)t4=jsxDEV(ThemedBox_default,{flexDirection:"column",children:[t3,jsxDEV(ThemedText,{children:[" ",command11]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$2[3]=command11,$2[4]=t4;else t4=$2[4];let t5;if($2[5]===Symbol.for("react.memo_cache_sentinel"))t5=jsxDEV(ThemedText,{dimColor:!0,children:"(Command copied to clipboard)"},void 0,!1,void 0,this),$2[5]=t5;else t5=$2[5];let t6;if($2[6]!==t4)t6=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[t2,t4,t5]},void 0,!0,void 0,this),$2[6]=t4,$2[7]=t6;else t6=$2[7];return t6}function _temp354(){let timeout2=setTimeout(_temp294,100);return()=>clearTimeout(timeout2)}function _temp294(){process.exit(0)}var import_react_compiler_runtime354,import_react327;var init_ResumeConversation=__esm(()=>{init_useTerminalSize();init_state();init_LogSelector();init_Spinner2();init_cost_tracker();init_osc();init_ink2();init_useKeybinding();init_AppState();init_ids();init_agenticSessionSearch();init_concurrentSessions();init_conversationRecovery();init_crossProjectResume();init_errors();init_log2();init_messages3();init_sessionRestore();init_sessionStorage();init_toolResultStorage();init_REPL();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime354=__toESM(require_dist4(),1),import_react327=__toESM(require_react_production(),1)});async function launchInvalidSettingsDialog(root2,props){let{InvalidSettingsDialog:InvalidSettingsDialog2}=await Promise.resolve().then(() => (init_InvalidSettingsDialog(),exports_InvalidSettingsDialog));return showSetupDialog(root2,(done)=>jsxDEV(InvalidSettingsDialog2,{settingsErrors:props.settingsErrors,onContinue:done,onExit:props.onExit},void 0,!1,void 0,this))}async function launchTeleportResumeWrapper(root2){let{TeleportResumeWrapper:TeleportResumeWrapper2}=await Promise.resolve().then(() => (init_TeleportResumeWrapper(),exports_TeleportResumeWrapper));return showSetupDialog(root2,(done)=>jsxDEV(TeleportResumeWrapper2,{onComplete:done,onCancel:()=>done(null),source:"cliArg"},void 0,!1,void 0,this))}async function launchTeleportRepoMismatchDialog(root2,props){let{TeleportRepoMismatchDialog:TeleportRepoMismatchDialog2}=await Promise.resolve().then(() => (init_TeleportRepoMismatchDialog(),exports_TeleportRepoMismatchDialog));return showSetupDialog(root2,(done)=>jsxDEV(TeleportRepoMismatchDialog2,{targetRepo:props.targetRepo,initialPaths:props.initialPaths,onSelectPath:done,onCancel:()=>done(null)},void 0,!1,void 0,this))}async function launchResumeChooser(root2,appProps,worktreePathsPromise,resumeProps){let[worktreePaths,{ResumeConversation:ResumeConversation2},{App:App3}]=await Promise.all([worktreePathsPromise,Promise.resolve().then(() => (init_ResumeConversation(),exports_ResumeConversation)),Promise.resolve().then(() => (init_App2(),exports_App))]);await renderAndRun(root2,jsxDEV(App3,{getFpsMetrics:appProps.getFpsMetrics,stats:appProps.stats,initialState:appProps.initialState,children:jsxDEV(KeybindingSetup,{children:jsxDEV(ResumeConversation2,{...resumeProps,worktreePaths},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}var init_dialogLaunchers=__esm(()=>{init_interactiveHelpers();init_KeybindingProviderSetup();init_reactJsxDevRuntimeProductionShim()});function registerKarpathyGuidelinesPlugin(){registerBuiltinPlugin({name:"karpathy-guidelines",description:"Optional coding guidelines that favor simple, surgical, verifiable changes.",version:"1.0.0",defaultEnabled:!1,skills:[{name:"karpathy-guidelines",description:"Apply coding guidelines that reduce common LLM implementation mistakes.",whenToUse:"Use when writing, reviewing, or refactoring code, especially when a task could become overcomplicated or needs careful verification.",userInvocable:!0,async getPromptForCommand(args){let focus=args.trim();return[{type:"text",text:focus?`${KARPATHY_GUIDELINES_PROMPT}
|
|
9329
9329
|
|
|
9330
9330
|
## User Focus
|
|
@@ -10982,7 +10982,7 @@ Code: ${code.userCode}
|
|
|
10982
10982
|
`);for(let pluginId of pluginIds.sort()){let installations=installedData.plugins[pluginId];if(!installations||installations.length===0)continue;let pluginName=parsePluginIdentifier(pluginId).name,pluginErrors=loadErrors.filter((e)=>e.source===pluginId||("plugin"in e)&&e.plugin===pluginName);for(let installation of installations){let isEnabled=enabledPlugins.has(pluginId),status2=pluginErrors.length>0?`${figures_default.cross} failed to load`:isEnabled?`${figures_default.tick} enabled`:`${figures_default.cross} disabled`,version3=installation.version||"unknown",scope=installation.scope;console.log(` ${figures_default.pointer} ${pluginId}`),console.log(` Version: ${version3}`),console.log(` Scope: ${scope}`),console.log(` Status: ${status2}`);for(let error41 of pluginErrors)console.log(` Error: ${getPluginErrorMessage(error41)}`);console.log("")}}if(inlinePlugins.length>0||inlineLoadErrors.length>0){console.log(`Session-only plugins (--plugin-dir):
|
|
10983
10983
|
`);for(let p of inlinePlugins){let pErrors=inlineLoadErrors.filter((e)=>e.source===p.source||("plugin"in e)&&e.plugin===p.name),status2=pErrors.length>0?`${figures_default.cross} loaded with errors`:`${figures_default.tick} loaded`;console.log(` ${figures_default.pointer} ${p.source}`),console.log(` Version: ${p.manifest.version??"unknown"}`),console.log(` Path: ${p.path}`),console.log(` Status: ${status2}`);for(let e of pErrors)console.log(` Error: ${getPluginErrorMessage(e)}`);console.log("")}for(let e of inlineLoadErrors.filter((e2)=>e2.source.startsWith("inline[")))console.log(` ${figures_default.pointer} ${e.source}: ${figures_default.cross} ${getPluginErrorMessage(e)}
|
|
10984
10984
|
`)}cliOk()}async function marketplaceAddHandler(source,options2){if(options2.cowork)setUseCoworkPlugins(!0);try{let parsed=await parseMarketplaceInput(source);if(!parsed)cliError(`${figures_default.cross} Invalid marketplace source format. Try: owner/repo, https://..., or ./path`);if("error"in parsed)cliError(`${figures_default.cross} ${parsed.error}`);let scope=options2.scope??"user";if(scope!=="user"&&scope!=="project"&&scope!=="local")cliError(`${figures_default.cross} Invalid scope '${scope}'. Use: user, project, or local`);let settingSource=scopeToSettingSource(scope),marketplaceSource=parsed;if(options2.sparse&&options2.sparse.length>0)if(marketplaceSource.source==="github"||marketplaceSource.source==="git")marketplaceSource={...marketplaceSource,sparsePaths:options2.sparse};else cliError(`${figures_default.cross} --sparse is only supported for github and git marketplace sources (got: ${marketplaceSource.source})`);console.log("Adding marketplace...");let{name,alreadyMaterialized,resolvedSource}=await addMarketplaceSource(marketplaceSource,(message)=>{console.log(message)});saveMarketplaceToSettings(name,{source:resolvedSource},settingSource),clearAllCaches();let sourceType=marketplaceSource.source;if(marketplaceSource.source==="github")sourceType=marketplaceSource.repo;logEvent("tengu_marketplace_added",{source_type:sourceType}),cliOk(alreadyMaterialized?`${figures_default.tick} Marketplace '${name}' already on disk — declared in ${scope} settings`:`${figures_default.tick} Successfully added marketplace: ${name} (declared in ${scope} settings)`)}catch(error41){handleMarketplaceError(error41,"add marketplace")}}async function marketplaceListHandler(options2){if(options2.cowork)setUseCoworkPlugins(!0);try{let config4=await loadKnownMarketplacesConfig(),names=Object.keys(config4);if(options2.json){let marketplaces=names.sort().map((name)=>{let marketplace=config4[name],source=marketplace?.source;return{name,source:source?.source,...source?.source==="github"&&{repo:source.repo},...source?.source==="git"&&{url:source.url},...source?.source==="url"&&{url:source.url},...source?.source==="directory"&&{path:source.path},...source?.source==="file"&&{path:source.path},installLocation:marketplace?.installLocation}});cliOk(jsonStringify(marketplaces,null,2))}if(names.length===0)cliOk("No marketplaces configured");console.log(`Configured marketplaces:
|
|
10985
|
-
`),names.forEach((name)=>{let marketplace=config4[name];if(console.log(` ${figures_default.pointer} ${name}`),marketplace?.source){let src=marketplace.source;if(src.source==="github")console.log(` Source: GitHub (${src.repo})`);else if(src.source==="git")console.log(` Source: Git (${src.url})`);else if(src.source==="url")console.log(` Source: URL (${src.url})`);else if(src.source==="directory")console.log(` Source: Directory (${src.path})`);else if(src.source==="file")console.log(` Source: File (${src.path})`)}console.log("")}),cliOk()}catch(error41){handleMarketplaceError(error41,"list marketplaces")}}async function marketplaceRemoveHandler(name,options2){if(options2.cowork)setUseCoworkPlugins(!0);try{await removeMarketplaceSource(name),clearAllCaches(),logEvent("tengu_marketplace_removed",{marketplace_name:name}),cliOk(`${figures_default.tick} Successfully removed marketplace: ${name}`)}catch(error41){handleMarketplaceError(error41,"remove marketplace")}}async function marketplaceUpdateHandler(name,options2){if(options2.cowork)setUseCoworkPlugins(!0);try{if(name)console.log(`Updating marketplace: ${name}...`),await refreshMarketplace(name,(message)=>{console.log(message)}),clearAllCaches(),logEvent("tengu_marketplace_updated",{marketplace_name:name}),cliOk(`${figures_default.tick} Successfully updated marketplace: ${name}`);else{let config4=await loadKnownMarketplacesConfig(),marketplaceNames=Object.keys(config4);if(marketplaceNames.length===0)cliOk("No marketplaces configured");console.log(`Updating ${marketplaceNames.length} marketplace(s)...`),await refreshAllMarketplaces(),clearAllCaches(),logEvent("tengu_marketplace_updated_all",{count:marketplaceNames.length}),cliOk(`${figures_default.tick} Successfully updated ${marketplaceNames.length} marketplace(s)`)}}catch(error41){handleMarketplaceError(error41,"update marketplace(s)")}}async function pluginInstallHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let scope=options2.scope||"user";if(options2.cowork&&scope!=="user")cliError("--cowork can only be used with user scope");if(!VALID_INSTALLABLE_SCOPES.includes(scope))cliError(`Invalid scope: ${scope}. Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}.`);let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_install_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope}),await installPlugin(plugin2,scope)}async function pluginUninstallHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let scope=options2.scope||"user";if(options2.cowork&&scope!=="user")cliError("--cowork can only be used with user scope");if(!VALID_INSTALLABLE_SCOPES.includes(scope))cliError(`Invalid scope: ${scope}. Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}.`);let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_uninstall_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope}),await uninstallPlugin(plugin2,scope,options2.keepData)}async function pluginEnableHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let scope;if(options2.scope){if(!VALID_INSTALLABLE_SCOPES.includes(options2.scope))cliError(`Invalid scope "${options2.scope}". Valid scopes: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);scope=options2.scope}if(options2.cowork&&scope!==void 0&&scope!=="user")cliError("--cowork can only be used with user scope");if(options2.cowork&&scope===void 0)scope="user";let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_enable_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope:scope??"auto"}),await enablePlugin(plugin2,scope)}async function pluginDisableHandler(plugin2,options2){if(options2.all&&plugin2)cliError("Cannot use --all with a specific plugin");if(!options2.all&&!plugin2)cliError("Please specify a plugin name or use --all to disable all plugins");if(options2.cowork)setUseCoworkPlugins(!0);if(options2.all){if(options2.scope)cliError("Cannot use --scope with --all");logEvent("tengu_plugin_disable_command",{}),await disableAllPlugins();return}let scope;if(options2.scope){if(!VALID_INSTALLABLE_SCOPES.includes(options2.scope))cliError(`Invalid scope "${options2.scope}". Valid scopes: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);scope=options2.scope}if(options2.cowork&&scope!==void 0&&scope!=="user")cliError("--cowork can only be used with user scope");if(options2.cowork&&scope===void 0)scope="user";let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_disable_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope:scope??"auto"}),await disablePlugin(plugin2,scope)}async function pluginUpdateHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_update_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace}});let scope="user";if(options2.scope){if(!VALID_UPDATE_SCOPES.includes(options2.scope))cliError(`Invalid scope "${options2.scope}". Valid scopes: ${VALID_UPDATE_SCOPES.join(", ")}`);scope=options2.scope}if(options2.cowork&&scope!=="user")cliError("--cowork can only be used with user scope");await updatePluginCli(plugin2,scope)}var init_plugins=__esm(()=>{init_figures();init_state();init_pluginCliCommands();init_errors();init_log2();init_cacheUtils();init_installCounts();init_installedPluginsManager();init_marketplaceHelpers();init_marketplaceManager();init_mcpPluginIntegration();init_parseMarketplaceInput();init_pluginIdentifier();init_pluginLoader();init_validatePlugin();init_slowOperations()});var exports_install={};__export(exports_install,{install:()=>install,getInstallationPath:()=>getInstallationPath2,Install:()=>Install});import{homedir as homedir45}from"node:os";import{join as join175}from"node:path";function getInstallationPath2(){let isWindows2=env3.platform==="win32",homeDir=homedir45();if(isWindows2)return join175(homeDir,".local","bin","openclaude.exe").replace(/\//g,"\\");return"~/.local/bin/openclaude"}function SetupNotes(t0){let $2=import_react_compiler_runtime357.c(5),{messages}=t0;if(messages.length===0)return null;let t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedBox_default,{children:jsxDEV(ThemedText,{color:"warning",children:[jsxDEV(StatusIcon,{status:"warning",withSpace:!0},void 0,!1,void 0,this),"Setup notes:"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==messages)t2=messages.map(_temp297),$2[1]=messages,$2[2]=t2;else t2=$2[2];let t3;if($2[3]!==t2)t3=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:0,marginBottom:1,children:[t1,t2]},void 0,!0,void 0,this),$2[3]=t2,$2[4]=t3;else t3=$2[4];return t3}function _temp297(message,index){return jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:["• ",message]},void 0,!0,void 0,this)},index,!1,void 0,this)}function Install({onDone,force,target}){let[state3,setState]=import_react330.useState({type:"checking"});return import_react330.useEffect(()=>{async function run(){try{if(logForDebugging(`Install: Starting installation process (force=${force}, target=${target})`),!hasNativeDistribution()){logForDebugging("Install: build has no native distribution; reporting npm installation instead"),logEvent("tengu_claude_install_command",{has_version:1,forced:force?1:0}),setState({type:"success",version:"0.25.0",location:process.argv[1]||"npm global installation",setupMessages:["This build is distributed via npm (@gitlawb/openclaude) and has no native binary, so nothing was downloaded.","To update, run: npm install -g @gitlawb/openclaude@latest"]});return}let channelOrVersion=target||getInitialSettings()?.autoUpdatesChannel||"latest";setState({type:"installing",version:channelOrVersion}),logForDebugging(`Install: Calling installLatest(channelOrVersion=${channelOrVersion}, forceReinstall=${force})`);let result=await installLatest(channelOrVersion,force);if(logForDebugging(`Install: installLatest returned version=${result.latestVersion}, wasUpdated=${result.wasUpdated}, lockFailed=${result.lockFailed}`),result.lockFailed)throw Error("Could not install - another process is currently installing Claude. Please try again in a moment.");if(!result.latestVersion)logForDebugging("Install: Failed to retrieve version information during install",{level:"error"});if(!result.wasUpdated)logForDebugging("Install: Already up to date");logForDebugging("Install: Cleaning up npm installations after successful install");let{removed,errors:errors4,warnings}=await cleanupNpmInstallations();if(removed>0)logForDebugging(`Cleaned up ${removed} npm installation(s)`);if(errors4.length>0)logForDebugging(`Cleanup errors: ${errors4.join(", ")}`);if(setState({type:"setting-up"}),!result.latestVersion)throw Error("Could not repair native launcher - installed version is unknown.");logForDebugging("Install: Repairing native launcher after npm cleanup"),await repairNativeLauncher(result.latestVersion);let setupMessages=await checkInstall(!0);if(logForDebugging(`Install: Setup launcher completed with ${setupMessages.length} messages`),setupMessages.length>0)setupMessages.forEach((msg)=>logForDebugging(`Install: Setup message: ${msg.message}`));let aliasMessages=await cleanupShellAliases();if(aliasMessages.length>0)logForDebugging(`Shell alias cleanup: ${aliasMessages.map((m)=>m.message).join("; ")}`);if(logEvent("tengu_claude_install_command",{has_version:result.latestVersion?1:0,forced:force?1:0}),target==="latest"||target==="stable")updateSettingsForSource("userSettings",{autoUpdatesChannel:target}),logForDebugging(`Install: Saved autoUpdatesChannel=${target} to user settings`);let allWarnings=[...warnings,...aliasMessages.map((m_0)=>m_0.message)];if(setupMessages.length>0)setState({type:"set-up",messages:setupMessages.map((m_1)=>m_1.message)}),setTimeout(setState,2000,{type:"success",version:result.latestVersion||"current",setupMessages:[...setupMessages.map((m_2)=>m_2.message),...allWarnings]});else logForDebugging("Install: Shell PATH already configured"),setState({type:"success",version:result.latestVersion||"current",setupMessages:allWarnings.length>0?allWarnings:void 0})}catch(error41){logForDebugging(`Install command failed: ${error41}`,{level:"error"}),setState({type:"error",message:errorMessage(error41)})}}run()},[force,target]),import_react330.useEffect(()=>{if(state3.type==="success")setTimeout(onDone,2000,"Claudio installation completed successfully",{display:"system"});else if(state3.type==="error")setTimeout(onDone,3000,"Claudio installation failed",{display:"system"})},[state3,onDone]),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[state3.type==="checking"&&jsxDEV(ThemedText,{color:"claude",children:"Checking installation status..."},void 0,!1,void 0,this),state3.type==="cleaning-npm"&&jsxDEV(ThemedText,{color:"warning",children:"Cleaning up old npm installations..."},void 0,!1,void 0,this),state3.type==="installing"&&jsxDEV(ThemedText,{color:"claude",children:["Installing Claudio native build ",state3.version,"..."]},void 0,!0,void 0,this),state3.type==="setting-up"&&jsxDEV(ThemedText,{color:"claude",children:"Setting up launcher and shell integration..."},void 0,!1,void 0,this),state3.type==="set-up"&&jsxDEV(SetupNotes,{messages:state3.messages},void 0,!1,void 0,this),state3.type==="success"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"success",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"success",bold:!0,children:"Claudio successfully installed!"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,flexDirection:"column",gap:1,children:[state3.version!=="current"&&jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"Version: "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"claude",children:state3.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"Location: "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"text",children:state3.location??getInstallationPath2()},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,flexDirection:"column",gap:1,children:jsxDEV(ThemedBox_default,{marginTop:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Next: Run "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"claude",bold:!0,children:"openclaude --help"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:" to get started"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),state3.setupMessages&&jsxDEV(SetupNotes,{messages:state3.setupMessages},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state3.type==="error"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"error",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"Installation failed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"error",children:state3.message},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:"Try running with --force to override checks"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var import_react_compiler_runtime357,import_react330,install;var init_install=__esm(()=>{init_StatusIcon();init_ink2();init_debug();init_env();init_errors();init_nativeInstaller();init_settings3();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime357=__toESM(require_dist4(),1),import_react330=__toESM(require_react_production(),1);install={type:"local-jsx",name:"install",description:"Install Claudio native build",argumentHint:"[options]",async call(onDone,_context,args){let force=args.includes("--force"),target=args.filter((arg)=>!arg.startsWith("--"))[0],{unmount}=await render(jsxDEV(Install,{onDone:(result,options2)=>{unmount(),onDone(result,options2)},force,target},void 0,!1,void 0,this))}}});var exports_util2={};__export(exports_util2,{setupTokenHandler:()=>setupTokenHandler,installHandler:()=>installHandler,doctorHandler:()=>doctorHandler});import{cwd as cwd4}from"process";async function setupTokenHandler(root2){logEvent("tengu_setup_token_command",{});let showAuthWarning=!isAnthropicAuthEnabled(),{ConsoleOAuthFlow:ConsoleOAuthFlow2}=await Promise.resolve().then(() => (init_ConsoleOAuthFlow(),exports_ConsoleOAuthFlow));await new Promise((resolve57)=>{root2.render(jsxDEV(AppStateProvider,{onChangeAppState,children:jsxDEV(KeybindingSetup,{children:jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(WelcomeV2,{},void 0,!1,void 0,this),showAuthWarning&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{color:"warning",children:"Warning: You already have authentication configured via environment variable or API key helper."},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:"The setup-token command will create a new OAuth token which you can use instead."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ConsoleOAuthFlow2,{onDone:()=>{resolve57()},mode:"setup-token",startingMessage:"This will guide you through long-lived (1-year) auth token setup for your Claude account. Claude subscription required."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}),root2.unmount(),process.exit(0)}function DoctorWithPlugins(t0){let $2=import_react_compiler_runtime358.c(2),{onDone}=t0;useManagePlugins();let t1;if($2[0]!==onDone)t1=jsxDEV(import_react331.default.Suspense,{fallback:null,children:jsxDEV(DoctorLazy,{onDone},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[0]=onDone,$2[1]=t1;else t1=$2[1];return t1}async function doctorHandler(root2){logEvent("tengu_doctor_command",{}),await new Promise((resolve57)=>{root2.render(jsxDEV(AppStateProvider,{children:jsxDEV(KeybindingSetup,{children:jsxDEV(MCPConnectionManager,{dynamicMcpConfig:void 0,isStrictMcpConfig:!1,children:jsxDEV(DoctorWithPlugins,{onDone:()=>{resolve57()}},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}),root2.unmount(),process.exit(0)}async function installHandler(target,options2){let{setup:setup2}=await Promise.resolve().then(() => (init_setup3(),exports_setup2));await setup2(cwd4(),"default",!1,!1,void 0,!1);let{install:install2}=await Promise.resolve().then(() => (init_install(),exports_install));await new Promise((resolve57)=>{let args=[];if(target)args.push(target);if(options2.force)args.push("--force");install2.call((result)=>{resolve57(),process.exit(result.includes("failed")?1:0)},{},args)})}var import_react_compiler_runtime358,import_react331,DoctorLazy;var init_util3=__esm(()=>{init_WelcomeV2();init_useManagePlugins();init_ink2();init_KeybindingProviderSetup();init_MCPConnectionManager();init_AppState();init_onChangeAppState();init_auth5();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime358=__toESM(require_dist4(),1),import_react331=__toESM(require_react_production(),1);DoctorLazy=import_react331.default.lazy(()=>Promise.resolve().then(() => (init_Doctor(),exports_Doctor)).then((m)=>({default:m.Doctor})))});var exports_agents3={};__export(exports_agents3,{agentsHandler:()=>agentsHandler});function formatAgent(agent){let model=resolveAgentModelDisplay(agent),parts=[agent.agentType];if(model)parts.push(model);if(agent.memory)parts.push(`${agent.memory} memory`);return parts.join(" · ")}async function agentsHandler(){let cwd5=getCwd(),{allAgents}=await getAgentDefinitionsWithOverrides(cwd5),activeAgents=getActiveAgentsFromList(allAgents),resolvedAgents=resolveAgentOverrides(allAgents,activeAgents),lines=[],totalActive=0;for(let{label,source}of AGENT_SOURCE_GROUPS){let groupAgents=resolvedAgents.filter((a2)=>a2.source===source).sort(compareAgentsByName);if(groupAgents.length===0)continue;lines.push(`${label}:`);for(let agent of groupAgents)if(agent.overriddenBy){let winnerSource=getOverrideSourceLabel(agent.overriddenBy);lines.push(` (shadowed by ${winnerSource}) ${formatAgent(agent)}`)}else lines.push(` ${formatAgent(agent)}`),totalActive++;lines.push("")}if(lines.length===0)console.log("No agents found.");else console.log(`${totalActive} active agents
|
|
10985
|
+
`),names.forEach((name)=>{let marketplace=config4[name];if(console.log(` ${figures_default.pointer} ${name}`),marketplace?.source){let src=marketplace.source;if(src.source==="github")console.log(` Source: GitHub (${src.repo})`);else if(src.source==="git")console.log(` Source: Git (${src.url})`);else if(src.source==="url")console.log(` Source: URL (${src.url})`);else if(src.source==="directory")console.log(` Source: Directory (${src.path})`);else if(src.source==="file")console.log(` Source: File (${src.path})`)}console.log("")}),cliOk()}catch(error41){handleMarketplaceError(error41,"list marketplaces")}}async function marketplaceRemoveHandler(name,options2){if(options2.cowork)setUseCoworkPlugins(!0);try{await removeMarketplaceSource(name),clearAllCaches(),logEvent("tengu_marketplace_removed",{marketplace_name:name}),cliOk(`${figures_default.tick} Successfully removed marketplace: ${name}`)}catch(error41){handleMarketplaceError(error41,"remove marketplace")}}async function marketplaceUpdateHandler(name,options2){if(options2.cowork)setUseCoworkPlugins(!0);try{if(name)console.log(`Updating marketplace: ${name}...`),await refreshMarketplace(name,(message)=>{console.log(message)}),clearAllCaches(),logEvent("tengu_marketplace_updated",{marketplace_name:name}),cliOk(`${figures_default.tick} Successfully updated marketplace: ${name}`);else{let config4=await loadKnownMarketplacesConfig(),marketplaceNames=Object.keys(config4);if(marketplaceNames.length===0)cliOk("No marketplaces configured");console.log(`Updating ${marketplaceNames.length} marketplace(s)...`),await refreshAllMarketplaces(),clearAllCaches(),logEvent("tengu_marketplace_updated_all",{count:marketplaceNames.length}),cliOk(`${figures_default.tick} Successfully updated ${marketplaceNames.length} marketplace(s)`)}}catch(error41){handleMarketplaceError(error41,"update marketplace(s)")}}async function pluginInstallHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let scope=options2.scope||"user";if(options2.cowork&&scope!=="user")cliError("--cowork can only be used with user scope");if(!VALID_INSTALLABLE_SCOPES.includes(scope))cliError(`Invalid scope: ${scope}. Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}.`);let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_install_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope}),await installPlugin(plugin2,scope)}async function pluginUninstallHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let scope=options2.scope||"user";if(options2.cowork&&scope!=="user")cliError("--cowork can only be used with user scope");if(!VALID_INSTALLABLE_SCOPES.includes(scope))cliError(`Invalid scope: ${scope}. Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}.`);let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_uninstall_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope}),await uninstallPlugin(plugin2,scope,options2.keepData)}async function pluginEnableHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let scope;if(options2.scope){if(!VALID_INSTALLABLE_SCOPES.includes(options2.scope))cliError(`Invalid scope "${options2.scope}". Valid scopes: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);scope=options2.scope}if(options2.cowork&&scope!==void 0&&scope!=="user")cliError("--cowork can only be used with user scope");if(options2.cowork&&scope===void 0)scope="user";let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_enable_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope:scope??"auto"}),await enablePlugin(plugin2,scope)}async function pluginDisableHandler(plugin2,options2){if(options2.all&&plugin2)cliError("Cannot use --all with a specific plugin");if(!options2.all&&!plugin2)cliError("Please specify a plugin name or use --all to disable all plugins");if(options2.cowork)setUseCoworkPlugins(!0);if(options2.all){if(options2.scope)cliError("Cannot use --scope with --all");logEvent("tengu_plugin_disable_command",{}),await disableAllPlugins();return}let scope;if(options2.scope){if(!VALID_INSTALLABLE_SCOPES.includes(options2.scope))cliError(`Invalid scope "${options2.scope}". Valid scopes: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);scope=options2.scope}if(options2.cowork&&scope!==void 0&&scope!=="user")cliError("--cowork can only be used with user scope");if(options2.cowork&&scope===void 0)scope="user";let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_disable_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace},scope:scope??"auto"}),await disablePlugin(plugin2,scope)}async function pluginUpdateHandler(plugin2,options2){if(options2.cowork)setUseCoworkPlugins(!0);let{name,marketplace}=parsePluginIdentifier(plugin2);logEvent("tengu_plugin_update_command",{_PROTO_plugin_name:name,...marketplace&&{_PROTO_marketplace_name:marketplace}});let scope="user";if(options2.scope){if(!VALID_UPDATE_SCOPES.includes(options2.scope))cliError(`Invalid scope "${options2.scope}". Valid scopes: ${VALID_UPDATE_SCOPES.join(", ")}`);scope=options2.scope}if(options2.cowork&&scope!=="user")cliError("--cowork can only be used with user scope");await updatePluginCli(plugin2,scope)}var init_plugins=__esm(()=>{init_figures();init_state();init_pluginCliCommands();init_errors();init_log2();init_cacheUtils();init_installCounts();init_installedPluginsManager();init_marketplaceHelpers();init_marketplaceManager();init_mcpPluginIntegration();init_parseMarketplaceInput();init_pluginIdentifier();init_pluginLoader();init_validatePlugin();init_slowOperations()});var exports_install={};__export(exports_install,{install:()=>install,getInstallationPath:()=>getInstallationPath2,Install:()=>Install});import{homedir as homedir45}from"node:os";import{join as join175}from"node:path";function getInstallationPath2(){let isWindows2=env3.platform==="win32",homeDir=homedir45();if(isWindows2)return join175(homeDir,".local","bin","openclaude.exe").replace(/\//g,"\\");return"~/.local/bin/openclaude"}function SetupNotes(t0){let $2=import_react_compiler_runtime357.c(5),{messages}=t0;if(messages.length===0)return null;let t1;if($2[0]===Symbol.for("react.memo_cache_sentinel"))t1=jsxDEV(ThemedBox_default,{children:jsxDEV(ThemedText,{color:"warning",children:[jsxDEV(StatusIcon,{status:"warning",withSpace:!0},void 0,!1,void 0,this),"Setup notes:"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$2[0]=t1;else t1=$2[0];let t2;if($2[1]!==messages)t2=messages.map(_temp297),$2[1]=messages,$2[2]=t2;else t2=$2[2];let t3;if($2[3]!==t2)t3=jsxDEV(ThemedBox_default,{flexDirection:"column",gap:0,marginBottom:1,children:[t1,t2]},void 0,!0,void 0,this),$2[3]=t2,$2[4]=t3;else t3=$2[4];return t3}function _temp297(message,index){return jsxDEV(ThemedBox_default,{marginLeft:2,children:jsxDEV(ThemedText,{dimColor:!0,children:["• ",message]},void 0,!0,void 0,this)},index,!1,void 0,this)}function Install({onDone,force,target}){let[state3,setState]=import_react330.useState({type:"checking"});return import_react330.useEffect(()=>{async function run(){try{if(logForDebugging(`Install: Starting installation process (force=${force}, target=${target})`),!hasNativeDistribution()){logForDebugging("Install: build has no native distribution; reporting npm installation instead"),logEvent("tengu_claude_install_command",{has_version:1,forced:force?1:0}),setState({type:"success",version:"0.25.1",location:process.argv[1]||"npm global installation",setupMessages:["This build is distributed via npm (@gitlawb/openclaude) and has no native binary, so nothing was downloaded.","To update, run: npm install -g @gitlawb/openclaude@latest"]});return}let channelOrVersion=target||getInitialSettings()?.autoUpdatesChannel||"latest";setState({type:"installing",version:channelOrVersion}),logForDebugging(`Install: Calling installLatest(channelOrVersion=${channelOrVersion}, forceReinstall=${force})`);let result=await installLatest(channelOrVersion,force);if(logForDebugging(`Install: installLatest returned version=${result.latestVersion}, wasUpdated=${result.wasUpdated}, lockFailed=${result.lockFailed}`),result.lockFailed)throw Error("Could not install - another process is currently installing Claude. Please try again in a moment.");if(!result.latestVersion)logForDebugging("Install: Failed to retrieve version information during install",{level:"error"});if(!result.wasUpdated)logForDebugging("Install: Already up to date");logForDebugging("Install: Cleaning up npm installations after successful install");let{removed,errors:errors4,warnings}=await cleanupNpmInstallations();if(removed>0)logForDebugging(`Cleaned up ${removed} npm installation(s)`);if(errors4.length>0)logForDebugging(`Cleanup errors: ${errors4.join(", ")}`);if(setState({type:"setting-up"}),!result.latestVersion)throw Error("Could not repair native launcher - installed version is unknown.");logForDebugging("Install: Repairing native launcher after npm cleanup"),await repairNativeLauncher(result.latestVersion);let setupMessages=await checkInstall(!0);if(logForDebugging(`Install: Setup launcher completed with ${setupMessages.length} messages`),setupMessages.length>0)setupMessages.forEach((msg)=>logForDebugging(`Install: Setup message: ${msg.message}`));let aliasMessages=await cleanupShellAliases();if(aliasMessages.length>0)logForDebugging(`Shell alias cleanup: ${aliasMessages.map((m)=>m.message).join("; ")}`);if(logEvent("tengu_claude_install_command",{has_version:result.latestVersion?1:0,forced:force?1:0}),target==="latest"||target==="stable")updateSettingsForSource("userSettings",{autoUpdatesChannel:target}),logForDebugging(`Install: Saved autoUpdatesChannel=${target} to user settings`);let allWarnings=[...warnings,...aliasMessages.map((m_0)=>m_0.message)];if(setupMessages.length>0)setState({type:"set-up",messages:setupMessages.map((m_1)=>m_1.message)}),setTimeout(setState,2000,{type:"success",version:result.latestVersion||"current",setupMessages:[...setupMessages.map((m_2)=>m_2.message),...allWarnings]});else logForDebugging("Install: Shell PATH already configured"),setState({type:"success",version:result.latestVersion||"current",setupMessages:allWarnings.length>0?allWarnings:void 0})}catch(error41){logForDebugging(`Install command failed: ${error41}`,{level:"error"}),setState({type:"error",message:errorMessage(error41)})}}run()},[force,target]),import_react330.useEffect(()=>{if(state3.type==="success")setTimeout(onDone,2000,"Claudio installation completed successfully",{display:"system"});else if(state3.type==="error")setTimeout(onDone,3000,"Claudio installation failed",{display:"system"})},[state3,onDone]),jsxDEV(ThemedBox_default,{flexDirection:"column",marginTop:1,children:[state3.type==="checking"&&jsxDEV(ThemedText,{color:"claude",children:"Checking installation status..."},void 0,!1,void 0,this),state3.type==="cleaning-npm"&&jsxDEV(ThemedText,{color:"warning",children:"Cleaning up old npm installations..."},void 0,!1,void 0,this),state3.type==="installing"&&jsxDEV(ThemedText,{color:"claude",children:["Installing Claudio native build ",state3.version,"..."]},void 0,!0,void 0,this),state3.type==="setting-up"&&jsxDEV(ThemedText,{color:"claude",children:"Setting up launcher and shell integration..."},void 0,!1,void 0,this),state3.type==="set-up"&&jsxDEV(SetupNotes,{messages:state3.messages},void 0,!1,void 0,this),state3.type==="success"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"success",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"success",bold:!0,children:"Claudio successfully installed!"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,flexDirection:"column",gap:1,children:[state3.version!=="current"&&jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"Version: "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"claude",children:state3.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{children:[jsxDEV(ThemedText,{dimColor:!0,children:"Location: "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"text",children:state3.location??getInstallationPath2()},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedBox_default,{marginLeft:2,flexDirection:"column",gap:1,children:jsxDEV(ThemedBox_default,{marginTop:1,children:[jsxDEV(ThemedText,{dimColor:!0,children:"Next: Run "},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"claude",bold:!0,children:"openclaude --help"},void 0,!1,void 0,this),jsxDEV(ThemedText,{dimColor:!0,children:" to get started"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),state3.setupMessages&&jsxDEV(SetupNotes,{messages:state3.setupMessages},void 0,!1,void 0,this)]},void 0,!0,void 0,this),state3.type==="error"&&jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(ThemedBox_default,{children:[jsxDEV(StatusIcon,{status:"error",withSpace:!0},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"error",children:"Installation failed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ThemedText,{color:"error",children:state3.message},void 0,!1,void 0,this),jsxDEV(ThemedBox_default,{marginTop:1,children:jsxDEV(ThemedText,{dimColor:!0,children:"Try running with --force to override checks"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var import_react_compiler_runtime357,import_react330,install;var init_install=__esm(()=>{init_StatusIcon();init_ink2();init_debug();init_env();init_errors();init_nativeInstaller();init_settings3();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime357=__toESM(require_dist4(),1),import_react330=__toESM(require_react_production(),1);install={type:"local-jsx",name:"install",description:"Install Claudio native build",argumentHint:"[options]",async call(onDone,_context,args){let force=args.includes("--force"),target=args.filter((arg)=>!arg.startsWith("--"))[0],{unmount}=await render(jsxDEV(Install,{onDone:(result,options2)=>{unmount(),onDone(result,options2)},force,target},void 0,!1,void 0,this))}}});var exports_util2={};__export(exports_util2,{setupTokenHandler:()=>setupTokenHandler,installHandler:()=>installHandler,doctorHandler:()=>doctorHandler});import{cwd as cwd4}from"process";async function setupTokenHandler(root2){logEvent("tengu_setup_token_command",{});let showAuthWarning=!isAnthropicAuthEnabled(),{ConsoleOAuthFlow:ConsoleOAuthFlow2}=await Promise.resolve().then(() => (init_ConsoleOAuthFlow(),exports_ConsoleOAuthFlow));await new Promise((resolve57)=>{root2.render(jsxDEV(AppStateProvider,{onChangeAppState,children:jsxDEV(KeybindingSetup,{children:jsxDEV(ThemedBox_default,{flexDirection:"column",gap:1,children:[jsxDEV(WelcomeV2,{},void 0,!1,void 0,this),showAuthWarning&&jsxDEV(ThemedBox_default,{flexDirection:"column",children:[jsxDEV(ThemedText,{color:"warning",children:"Warning: You already have authentication configured via environment variable or API key helper."},void 0,!1,void 0,this),jsxDEV(ThemedText,{color:"warning",children:"The setup-token command will create a new OAuth token which you can use instead."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV(ConsoleOAuthFlow2,{onDone:()=>{resolve57()},mode:"setup-token",startingMessage:"This will guide you through long-lived (1-year) auth token setup for your Claude account. Claude subscription required."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}),root2.unmount(),process.exit(0)}function DoctorWithPlugins(t0){let $2=import_react_compiler_runtime358.c(2),{onDone}=t0;useManagePlugins();let t1;if($2[0]!==onDone)t1=jsxDEV(import_react331.default.Suspense,{fallback:null,children:jsxDEV(DoctorLazy,{onDone},void 0,!1,void 0,this)},void 0,!1,void 0,this),$2[0]=onDone,$2[1]=t1;else t1=$2[1];return t1}async function doctorHandler(root2){logEvent("tengu_doctor_command",{}),await new Promise((resolve57)=>{root2.render(jsxDEV(AppStateProvider,{children:jsxDEV(KeybindingSetup,{children:jsxDEV(MCPConnectionManager,{dynamicMcpConfig:void 0,isStrictMcpConfig:!1,children:jsxDEV(DoctorWithPlugins,{onDone:()=>{resolve57()}},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}),root2.unmount(),process.exit(0)}async function installHandler(target,options2){let{setup:setup2}=await Promise.resolve().then(() => (init_setup3(),exports_setup2));await setup2(cwd4(),"default",!1,!1,void 0,!1);let{install:install2}=await Promise.resolve().then(() => (init_install(),exports_install));await new Promise((resolve57)=>{let args=[];if(target)args.push(target);if(options2.force)args.push("--force");install2.call((result)=>{resolve57(),process.exit(result.includes("failed")?1:0)},{},args)})}var import_react_compiler_runtime358,import_react331,DoctorLazy;var init_util3=__esm(()=>{init_WelcomeV2();init_useManagePlugins();init_ink2();init_KeybindingProviderSetup();init_MCPConnectionManager();init_AppState();init_onChangeAppState();init_auth5();init_reactJsxDevRuntimeProductionShim();import_react_compiler_runtime358=__toESM(require_dist4(),1),import_react331=__toESM(require_react_production(),1);DoctorLazy=import_react331.default.lazy(()=>Promise.resolve().then(() => (init_Doctor(),exports_Doctor)).then((m)=>({default:m.Doctor})))});var exports_agents3={};__export(exports_agents3,{agentsHandler:()=>agentsHandler});function formatAgent(agent){let model=resolveAgentModelDisplay(agent),parts=[agent.agentType];if(model)parts.push(model);if(agent.memory)parts.push(`${agent.memory} memory`);return parts.join(" · ")}async function agentsHandler(){let cwd5=getCwd(),{allAgents}=await getAgentDefinitionsWithOverrides(cwd5),activeAgents=getActiveAgentsFromList(allAgents),resolvedAgents=resolveAgentOverrides(allAgents,activeAgents),lines=[],totalActive=0;for(let{label,source}of AGENT_SOURCE_GROUPS){let groupAgents=resolvedAgents.filter((a2)=>a2.source===source).sort(compareAgentsByName);if(groupAgents.length===0)continue;lines.push(`${label}:`);for(let agent of groupAgents)if(agent.overriddenBy){let winnerSource=getOverrideSourceLabel(agent.overriddenBy);lines.push(` (shadowed by ${winnerSource}) ${formatAgent(agent)}`)}else lines.push(` ${formatAgent(agent)}`),totalActive++;lines.push("")}if(lines.length===0)console.log("No agents found.");else console.log(`${totalActive} active agents
|
|
10986
10986
|
`),console.log(lines.join(`
|
|
10987
10987
|
`).trimEnd())}var init_agents4=__esm(()=>{init_agentDisplay();init_loadAgentsDir();init_cwd()});function sourceLabel(skill){if(!skill.source)return"-";if(skill.source==="projectSettings")return"project";if(skill.source==="userSettings")return"user";if(skill.source==="policySettings")return"managed";return skill.source}function trustLabel(skill){if(skill.source==="bundled")return"bundled";if(skill.source==="plugin")return"plugin";if(skill.source==="mcp")return"mcp";if(skill.source==="policySettings")return"managed";if(skill.skillTrust)return skill.skillTrust;return"local"}function locationLabel(skill){if(skill.skillFilePath)return getDisplayPath(skill.skillFilePath);if(skill.skillRoot)return getDisplayPath(skill.skillRoot);return"-"}function isPublicSkill(skill){return skill.source!=="bundled"}function publicSkills(skills2){return skills2.filter(isPublicSkill)}function getResolutionState(skills2){let winners=new Map,states=new Map;for(let skill of skills2){let key=getCommandName(skill),winner=winners.get(key);if(winner)states.set(skill,`shadowed by ${sourceLabel(winner)}`);else winners.set(key,skill),states.set(skill,"enabled")}return states}function normalizeDescription(text5){return(text5?.trim().replace(/\s+/g," ")??"")||"No description provided."}function descriptionSummary(text5){let normalized=normalizeDescription(text5);if(normalized==="No description provided.")return normalized;let withoutSkillPrefix=(normalized.match(/^.*?(?:\.(?:\s|$)|$)/)?.[0]??normalized).replace(/^Use this skill to\s+/i,""),summary=(withoutSkillPrefix?withoutSkillPrefix[0].toUpperCase()+withoutSkillPrefix.slice(1):withoutSkillPrefix).trim();return/[.!?]$/.test(summary)?summary:`${summary}.`}function wrapSkillDescription(text5,width){let words=text5.split(/\s+/).filter(Boolean),lines=[],current="";for(let word of words){let next=current?`${current} ${word}`:word;if(next.length>width&¤t)lines.push(current),current=word;else current=next}if(current)lines.push(current);return lines}function terminalWidth(){return process.stdout.columns&&process.stdout.columns>0?process.stdout.columns:100}function separator(width){return"─".repeat(width)}function formatSkillListRow({skill,state:state3,nameWidth,statusWidth,descriptionWidth,descriptionIndent}){let status2=state3??"enabled",prefix=`${getCommandName(skill).padEnd(nameWidth)} ${status2.padEnd(statusWidth)} `,descriptionLines=wrapSkillDescription(descriptionSummary(skill.description),descriptionWidth),lines=[`${prefix}${descriptionLines[0]??""}`];return lines.push(...descriptionLines.slice(1).map((line)=>`${descriptionIndent}${line}`)),lines.join(`
|
|
10988
10988
|
`)}function skillListJson(skill,state3){return{name:getCommandName(skill),status:state3??"enabled",source:sourceLabel(skill),trust:trustLabel(skill),version:skill.version??null,description:skill.description??null,location:locationLabel(skill),loadedFrom:skill.loadedFrom??null,userInvocable:skill.userInvocable??null,whenToUse:skill.whenToUse??null,allowedTools:skill.allowedTools??[]}}function formatSkillsListJson(skills2){let visibleSkills=publicSkills(skills2),states=getResolutionState(visibleSkills);return JSON.stringify({enabledCount:[...states.values()].filter((s)=>s==="enabled").length,skills:visibleSkills.slice().sort((a2,b)=>getCommandName(a2).localeCompare(getCommandName(b))).map((skill)=>skillListJson(skill,states.get(skill)))},null,2)}function formatSkillsListForDisplay(skills2,columns=terminalWidth()){let visibleSkills=publicSkills(skills2),states=getResolutionState(visibleSkills),sortedSkills=visibleSkills.slice().sort((a2,b)=>getCommandName(a2).localeCompare(getCommandName(b))),enabledCount=sortedSkills.filter((skill)=>states.get(skill)==="enabled").length;if(sortedSkills.length===0)return["Skills: 0 enabled","","No installed skills found."].join(`
|
|
@@ -11044,7 +11044,7 @@ For each rule, evaluate:
|
|
|
11044
11044
|
Be concise and constructive. Only comment on rules that could be improved. If all rules look good, say so.`;var init_autoMode=__esm(()=>{init_errors();init_model();init_yoloClassifier();init_settings3();init_sideQuery();init_slowOperations()});var exports_doctorReport={};__export(exports_doctorReport,{printDoctorReportError:()=>printDoctorReportError,doctorReportHandler:()=>doctorReportHandler});function formatError4(error41){return error41 instanceof Error?error41.message:String(error41)}async function doctorReportHandler(options2){if(!options2.redacted)throw Error("Unredacted diagnostic reports are not supported");let report=await buildIssueReport({includeDebug:options2.includeDebug}),content=formatIssueReport(report,options2.format);if(options2.outFile){let outputPath=writeIssueReport(options2.outFile,content);console.log(`Diagnostic report written to ${outputPath}`);return}console.log(content)}function printDoctorReportError(error41){console.error(`Failed to generate diagnostic report: ${formatError4(error41)}`)}var init_doctorReport=__esm(()=>{init_issueReport()});import{homedir as homedir46}from"os";import{dirname as dirname77,join as join179}from"path";function detectShell(){let shell=process.env.SHELL||"",home=homedir46(),claudeDir=join179(home,".openclaude");if(shell.endsWith("/zsh")||shell.endsWith("/zsh.exe")){let cacheFile=join179(claudeDir,"completion.zsh");return{name:"zsh",rcFile:join179(home,".zshrc"),cacheFile,completionLine:`[[ -f "${cacheFile}" ]] && source "${cacheFile}"`,shellFlag:"zsh"}}if(shell.endsWith("/bash")||shell.endsWith("/bash.exe")){let cacheFile=join179(claudeDir,"completion.bash");return{name:"bash",rcFile:join179(home,".bashrc"),cacheFile,completionLine:`[ -f "${cacheFile}" ] && source "${cacheFile}"`,shellFlag:"bash"}}if(shell.endsWith("/fish")||shell.endsWith("/fish.exe")){let xdg=process.env.XDG_CONFIG_HOME||join179(home,".config"),cacheFile=join179(claudeDir,"completion.fish");return{name:"fish",rcFile:join179(xdg,"fish","config.fish"),cacheFile,completionLine:`[ -f "${cacheFile}" ] && source "${cacheFile}"`,shellFlag:"fish"}}return null}async function regenerateCompletionCache(){let shell=detectShell();if(!shell)return;logForDebugging(`update: Regenerating ${shell.name} completion cache`);let claudeBin=process.argv[1]||"claude";if((await execFileNoThrow(claudeBin,["completion",shell.shellFlag,"--output",shell.cacheFile])).code!==0){logForDebugging(`update: Failed to regenerate ${shell.name} completion cache`);return}logForDebugging(`update: Regenerated ${shell.name} completion cache at ${shell.cacheFile}`)}var init_completionCache=__esm(()=>{init_color();init_supports_hyperlinks();init_debug();init_errors();init_execFileNoThrow();init_log2()});var exports_update2={};__export(exports_update2,{writePackageManagerUpdateGuidance:()=>writePackageManagerUpdateGuidance,update:()=>update2,getGlobalUpdateFailureHint:()=>getGlobalUpdateFailureHint});function getGlobalUpdateFailureHint(nativeDistributionAvailable=hasNativeDistribution()){return nativeDistributionAvailable?`Or consider using native installation with: openclaude install
|
|
11045
11045
|
`:`Or update manually with:
|
|
11046
11046
|
npm install -g @gitlawb/openclaude@latest
|
|
11047
|
-
`}async function writePackageManagerUpdateGuidance(manager,channel2,deps={}){let guidance=(deps.getGuidance??getPackageManagerUpdateGuidance)(manager),displayVersion=deps.displayVersion??"0.25.
|
|
11047
|
+
`}async function writePackageManagerUpdateGuidance(manager,channel2,deps={}){let guidance=(deps.getGuidance??getPackageManagerUpdateGuidance)(manager),displayVersion=deps.displayVersion??"0.25.1",write=deps.write??writeToStdout,bold2=deps.bold??source_default.bold;if(write(`
|
|
11048
11048
|
`),write(`${guidance.message}
|
|
11049
11049
|
`),!guidance.managerName)return;let latest=await(deps.getLatestVersion??getLatestVersion)(channel2);if(latest&&!gte(displayVersion,latest)){if(write(`Update available: ${displayVersion} → ${latest}
|
|
11050
11050
|
`),guidance.command)write(`
|
|
@@ -11052,14 +11052,14 @@ Be concise and constructive. Only comment on rules that could be improved. If al
|
|
|
11052
11052
|
`),write(bold2(` ${guidance.command}`)+`
|
|
11053
11053
|
`)}else write(`Claudio is up to date!
|
|
11054
11054
|
`)}async function update2(){if(isThirdPartyBuildBlocked())writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
|
|
11055
|
-
`)+`Current version: 0.25.
|
|
11055
|
+
`)+`Current version: 0.25.1
|
|
11056
11056
|
|
|
11057
11057
|
To update, reinstall from npm:
|
|
11058
11058
|
`+source_default.bold(" npm install -g @gitlawb/openclaude@latest")+`
|
|
11059
11059
|
|
|
11060
11060
|
Or, if you built from source, pull and rebuild:
|
|
11061
11061
|
`+source_default.bold(" git pull && bun install && bun run build")+`
|
|
11062
|
-
`),await gracefulShutdown(0);logEvent("tengu_update_check",{}),writeToStdout(`Current version: 0.25.
|
|
11062
|
+
`),await gracefulShutdown(0);logEvent("tengu_update_check",{}),writeToStdout(`Current version: 0.25.1
|
|
11063
11063
|
`);let channel2=getInitialSettings()?.autoUpdatesChannel??"latest";writeToStdout(`Checking for updates to ${channel2} version...
|
|
11064
11064
|
`),logForDebugging("update: Starting update check"),logForDebugging("update: Running diagnostic");let diagnostic=await getDoctorDiagnostic();if(logForDebugging(`update: Installation type: ${diagnostic.installationType}`),logForDebugging(`update: Config install method: ${diagnostic.configInstallMethod}`),diagnostic.multipleInstallations.length>1){writeToStdout(`
|
|
11065
11065
|
`),writeToStdout(source_default.yellow("Warning: Multiple installations found")+`
|
|
@@ -11085,8 +11085,8 @@ Or, if you built from source, pull and rebuild:
|
|
|
11085
11085
|
`),saveGlobalConfig((current)=>({...current,installMethod:normalizedRunningType})),writeToStdout(`Config updated to reflect current installation method: ${normalizedRunningType}
|
|
11086
11086
|
`)}if(diagnostic.installationType==="native"&&hasNativeDistribution()){logForDebugging("update: Detected native installation, using native updater");try{let result=await installLatest(channel2,!0);if(result.lockFailed){let pidInfo=result.lockHolderPid?` (PID ${result.lockHolderPid})`:"";writeToStdout(source_default.yellow(`Another Claude process${pidInfo} is currently running. Please try again in a moment.`)+`
|
|
11087
11087
|
`),await gracefulShutdown(0)}if(!result.latestVersion)process.stderr.write(`Failed to check for updates
|
|
11088
|
-
`),await gracefulShutdown(1);if(result.latestVersion==="0.25.
|
|
11089
|
-
`);else writeToStdout(source_default.green(`Successfully updated from 0.25.
|
|
11088
|
+
`),await gracefulShutdown(1);if(result.latestVersion==="0.25.1")writeToStdout(source_default.green("Claudio is up to date (0.25.1)")+`
|
|
11089
|
+
`);else writeToStdout(source_default.green(`Successfully updated from 0.25.1 to version ${result.latestVersion}`)+`
|
|
11090
11090
|
`),await regenerateCompletionCache();await gracefulShutdown(0)}catch(error41){process.stderr.write(`Error: Failed to install native update
|
|
11091
11091
|
`),process.stderr.write(String(error41)+`
|
|
11092
11092
|
`),process.stderr.write(`Try running "openclaude doctor" for diagnostics
|
|
@@ -11104,14 +11104,14 @@ Or, if you built from source, pull and rebuild:
|
|
|
11104
11104
|
`),process.stderr.write(` • Run with --debug flag for more details
|
|
11105
11105
|
`);let packageName="@gitlawb/openclaude";process.stderr.write(` • Manually check: npm view ${packageName} version
|
|
11106
11106
|
`),process.stderr.write(` • Check if you need to login: npm whoami
|
|
11107
|
-
`),await gracefulShutdown(1)}if(latestVersion==="0.25.
|
|
11108
|
-
`),await gracefulShutdown(0);writeToStdout(`New version available: ${latestVersion} (current: 0.25.
|
|
11107
|
+
`),await gracefulShutdown(1)}if(latestVersion==="0.25.1")writeToStdout(source_default.green("Claudio is up to date (0.25.1)")+`
|
|
11108
|
+
`),await gracefulShutdown(0);writeToStdout(`New version available: ${latestVersion} (current: 0.25.1)
|
|
11109
11109
|
`),writeToStdout(`Installing update...
|
|
11110
11110
|
`);let useLocalUpdate=!1,updateMethodName="",strategy=planUpdate({thirdPartyBlocked:!1,installationType:diagnostic.installationType,nativeDistributionAvailable:hasNativeDistribution(),packageManager:"unknown",localInstallExists:diagnostic.installationType==="unknown"?await localInstallationExists():!1});if(strategy.action==="npm"){if(useLocalUpdate=strategy.method==="local",updateMethodName=strategy.method,diagnostic.installationType==="unknown")writeToStdout(source_default.yellow("Warning: Could not determine installation type")+`
|
|
11111
11111
|
`),writeToStdout(`Attempting ${updateMethodName} update based on file detection...
|
|
11112
11112
|
`)}else process.stderr.write(`Error: Cannot update ${diagnostic.installationType} installation
|
|
11113
11113
|
`),await gracefulShutdown(1);writeToStdout(`Using ${updateMethodName} installation update method...
|
|
11114
|
-
`),logForDebugging(`update: Update method determined: ${updateMethodName}`),logForDebugging(`update: useLocalUpdate: ${useLocalUpdate}`);let status2;if(useLocalUpdate)logForDebugging("update: Calling installOrUpdateClaudePackage() for local update"),status2=await installOrUpdateClaudePackage(channel2);else logForDebugging("update: Calling installGlobalPackage() for global update"),status2=await installGlobalPackage();switch(logForDebugging(`update: Installation status: ${status2}`),status2){case"success":writeToStdout(source_default.green(`Successfully updated from 0.25.
|
|
11114
|
+
`),logForDebugging(`update: Update method determined: ${updateMethodName}`),logForDebugging(`update: useLocalUpdate: ${useLocalUpdate}`);let status2;if(useLocalUpdate)logForDebugging("update: Calling installOrUpdateClaudePackage() for local update"),status2=await installOrUpdateClaudePackage(channel2);else logForDebugging("update: Calling installGlobalPackage() for global update"),status2=await installGlobalPackage();switch(logForDebugging(`update: Installation status: ${status2}`),status2){case"success":writeToStdout(source_default.green(`Successfully updated from 0.25.1 to version ${latestVersion}`)+`
|
|
11115
11115
|
`),await regenerateCompletionCache();break;case"no_permissions":if(process.stderr.write(`Error: Insufficient permissions to install update
|
|
11116
11116
|
`),useLocalUpdate)process.stderr.write(`Try manually updating with:
|
|
11117
11117
|
`),process.stderr.write(` cd ~/.openclaude/local && npm update @gitlawb/openclaude
|
|
@@ -11167,10 +11167,10 @@ Usage: openclaude --remote "your task description"`,()=>gracefulShutdown(1));log
|
|
|
11167
11167
|
`));await validateGitState();let{teleportWithProgress:teleportWithProgress2}=await Promise.resolve().then(() => (init_TeleportProgress(),exports_TeleportProgress)),result=await teleportWithProgress2(root2,teleport);setTeleportedSessionInfo({sessionId:teleport}),messages=result.messages}catch(error41){if(error41 instanceof TeleportOperationError)process.stderr.write(error41.formattedMessage+`
|
|
11168
11168
|
`);else logError(error41),process.stderr.write(source_default.red(`Error: ${errorMessage(error41)}
|
|
11169
11169
|
`));await gracefulShutdown(1)}}}if(maybeSessionId){let sessionId2=maybeSessionId;try{let resumeStart=performance.now(),result=await loadConversationForResume(matchedLog??sessionId2,void 0);if(!result)return logEvent("tengu_session_resumed",{entrypoint:"cli_flag",success:!1}),await exitWithError2(root2,`No conversation found with session ID: ${sessionId2}`);let fullPath=matchedLog?.fullPath??result.fullPath;if(processedResume=await processResumedConversation(result,{forkSession:!!options2.forkSession,sessionIdOverride:sessionId2,transcriptPath:fullPath},resumeContext),processedResume.restoredAgentDef)mainThreadAgentDefinition=processedResume.restoredAgentDef;logEvent("tengu_session_resumed",{entrypoint:"cli_flag",success:!0,resume_duration_ms:Math.round(performance.now()-resumeStart)})}catch(error41){logEvent("tengu_session_resumed",{entrypoint:"cli_flag",success:!1}),logError(error41),await exitWithError2(root2,errorMessage(error41))}}if(fileDownloadPromise)try{let results=await fileDownloadPromise,failedCount=count2(results,(r)=>!r.success);if(failedCount>0)process.stderr.write(source_default.yellow(`Warning: ${failedCount}/${results.length} file(s) failed to download.
|
|
11170
|
-
`))}catch(error41){return await exitWithError2(root2,`Error downloading files: ${errorMessage(error41)}`)}let resumeData=processedResume??(Array.isArray(messages)?{messages,fileHistorySnapshots:void 0,agentName:void 0,agentColor:void 0,restoredAgentDef:mainThreadAgentDefinition,initialState,contentReplacements:void 0}:void 0);if(resumeData)maybeActivateProactive(options2),maybeActivateBrief(options2),await launchRepl(root2,{getFpsMetrics,stats:stats2,initialState:resumeData.initialState},{...sessionConfig,mainThreadAgentDefinition:resumeData.restoredAgentDef??mainThreadAgentDefinition,initialMessages:resumeData.messages,initialFileHistorySnapshots:resumeData.fileHistorySnapshots,initialContentReplacements:resumeData.contentReplacements,initialAgentName:resumeData.agentName,initialAgentColor:resumeData.agentColor},renderAndRun);else await launchResumeChooser(root2,{getFpsMetrics,stats:stats2,initialState},getWorktreePaths(getOriginalCwd()),{...sessionConfig,initialSearchQuery:searchTerm,forkSession:options2.forkSession,filterByPr})}else{let pendingHookMessages=hooksPromise&&hookMessages.length===0?hooksPromise:void 0;profileCheckpoint("action_after_hooks"),maybeActivateProactive(options2),maybeActivateBrief(options2),saveMode(coordinatorModeModule4?.isCoordinatorMode()?"coordinator":"normal");let deepLinkBanner=null,initialMessages=deepLinkBanner?[deepLinkBanner,...hookMessages]:hookMessages.length>0?hookMessages:void 0;await launchRepl(root2,{getFpsMetrics,stats:stats2,initialState},{...sessionConfig,initialMessages,pendingHookMessages},renderAndRun)}}).version("0.25.0 (Claudio)","-v, --version","Output the version number"),program2.option("-w, --worktree [name]","Create a new git worktree for this session (optionally specify a name)"),program2.option("--tmux","Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."),canUserConfigureAdvisor())program2.addOption(new Option("--advisor <model>","Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());program2.addOption(new Option("--enable-auto-mode","Opt in to auto mode").hideHelp()),program2.addOption(new Option("--agent-id <id>","Teammate agent ID").hideHelp()),program2.addOption(new Option("--agent-name <name>","Teammate display name").hideHelp()),program2.addOption(new Option("--team-name <name>","Team name for swarm coordination").hideHelp()),program2.addOption(new Option("--agent-color <color>","Teammate UI color").hideHelp()),program2.addOption(new Option("--plan-mode-required","Require plan mode before implementation").hideHelp()),program2.addOption(new Option("--parent-session-id <id>","Parent session ID for analytics correlation").hideHelp()),program2.addOption(new Option("--teammate-mode <mode>",'How to spawn teammates: "tmux", "in-process", or "auto"').choices(["auto","tmux","in-process"]).hideHelp()),program2.addOption(new Option("--agent-type <type>","Custom agent type for this teammate").hideHelp()),program2.addOption(new Option("--sdk-url <url>","Use remote WebSocket endpoint for SDK I/O streaming (only with -p and stream-json format)").hideHelp()),program2.addOption(new Option("--teleport [session]","Resume a teleport session, optionally specify session ID").hideHelp()),program2.addOption(new Option("--remote [description]","Create a remote session with the given description").hideHelp()),profileCheckpoint("run_main_options_built");let isPrintMode=process.argv.includes("-p")||process.argv.includes("--print"),isCcUrl=process.argv.some((a2)=>a2.startsWith("cc://")||a2.startsWith("cc+unix://"));if(isPrintMode&&!isCcUrl)return profileCheckpoint("run_before_parse"),await program2.parseAsync(process.argv),profileCheckpoint("run_after_parse"),program2;let mcp2=program2.command("mcp").description("Configure and manage MCP servers").configureHelp(createSortedHelpConfig()).enablePositionalOptions();if(mcp2.command("serve").description("Start the Claudio MCP server").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:debug2,verbose})=>{let{mcpServeHandler:mcpServeHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpServeHandler2({debug:debug2,verbose})}),registerMcpAddCommand(mcp2),registerMcpDoctorCommand(mcp2),isXaaEnabled())registerMcpXaaIdpCommand(mcp2);mcp2.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(name,options2)=>{let{mcpRemoveHandler:mcpRemoveHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpRemoveHandler2(name,options2)}),mcp2.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:mcpListHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpListHandler2()}),mcp2.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(name)=>{let{mcpGetHandler:mcpGetHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpGetHandler2(name)}),mcp2.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(name,json2,options2)=>{let{mcpAddJsonHandler:mcpAddJsonHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpAddJsonHandler2(name,json2,options2)}),mcp2.command("add-from-claude-desktop").description("Import MCP servers from Claude Desktop (macOS, Windows, and WSL)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(options2)=>{let{mcpAddFromDesktopHandler:mcpAddFromDesktopHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpAddFromDesktopHandler2(options2)}),mcp2.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async()=>{let{mcpResetChoicesHandler:mcpResetChoicesHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpResetChoicesHandler2()});let auth2=program2.command("auth").description("Manage authentication").configureHelp(createSortedHelpConfig());auth2.command("login").description("Sign in to your Anthropic account").option("--email <email>","Pre-populate email address on the login page").option("--sso","Force SSO login flow").option("--console","Use Anthropic Console (API usage billing) instead of Claude subscription").option("--claudeai","Use Claude subscription (default)").action(async({email:email3,sso,console:useConsole,claudeai})=>{let{authLogin:authLogin2}=await Promise.resolve().then(() => (init_auth4(),exports_auth));await authLogin2({email:email3,sso,console:useConsole,claudeai})}),auth2.command("status").description("Show authentication status").option("--json","Output as JSON (default)").option("--text","Output as human-readable text").action(async(opts)=>{let{authStatus:authStatus2}=await Promise.resolve().then(() => (init_auth4(),exports_auth));await authStatus2(opts)}),auth2.command("logout").description("Log out from your Anthropic account").action(async()=>{let{authLogout:authLogout2}=await Promise.resolve().then(() => (init_auth4(),exports_auth));await authLogout2()});let xaiAuth=auth2.command("xai").description("Sign in to xAI (Grok) with browser OAuth or device code").configureHelp(createSortedHelpConfig());xaiAuth.command("login").description("Browser OAuth sign-in for an xAI account").action(async()=>{let{xaiLogin:xaiLogin2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiLogin2({flow:"browser"})}),xaiAuth.command("device").description("Device-code sign-in for remote hosts (no localhost callback needed)").action(async()=>{let{xaiLogin:xaiLogin2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiLogin2({flow:"device-code"})}),xaiAuth.command("logout").description("Clear stored xAI OAuth credentials").action(async()=>{let{xaiLogout:xaiLogout2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiLogout2()}),xaiAuth.command("status").description("Show xAI OAuth credential status").action(async()=>{let{xaiStatus:xaiStatus2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiStatus2()}),program2.command("aimlapi").description("AI/ML API (aimlapi.com) — top up balance and configure the provider").configureHelp(createSortedHelpConfig()).command("topup").description("Log in, open AI/ML API top-up, then set the issued key as Claudio's provider").option("--email <email>","AI/ML API account email (or AIMLAPI_EMAIL env)").option("--amount <usd>",`Top-up amount in USD (min ${MIN_AMOUNT_USD_MINOR/100}, max ${MAX_AMOUNT_USD_MINOR/100})`).addOption(new Option("--method <method>","Payment method: card (Stripe) or crypto (NOWPayments)").choices(["card","crypto"]).default("card")).option("--model <model>","Default model id written into the provider profile","gpt-4o").option("--partner-id <id>","Partner id for rebate attribution (part_...)").option("--no-open","Do not auto-open the browser; print the payment URL instead").action(async(opts)=>{let{aimlapiTopup:aimlapiTopup2}=await Promise.resolve().then(() => (init_aimlapi3(),exports_aimlapi));await aimlapiTopup2({email:opts.email,amountUsd:opts.amount,method:opts.method==="crypto"?"crypto":"card",model:opts.model,partnerId:opts.partnerId,noOpen:opts.open===!1})});let coworkOption=()=>new Option("--cowork","Use cowork_plugins directory").hideHelp(),pluginCmd=program2.command("plugin").alias("plugins").description("Manage Claudio plugins").configureHelp(createSortedHelpConfig());pluginCmd.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(coworkOption()).action(async(manifestPath,options2)=>{let{pluginValidateHandler:pluginValidateHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginValidateHandler2(manifestPath,options2)}),pluginCmd.command("list").description("List installed plugins").option("--json","Output as JSON").option("--available","Include available plugins from marketplaces (requires --json)").addOption(coworkOption()).action(async(options2)=>{let{pluginListHandler:pluginListHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginListHandler2(options2)});let marketplaceCmd=pluginCmd.command("marketplace").description("Manage Claudio marketplaces").configureHelp(createSortedHelpConfig());marketplaceCmd.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(coworkOption()).option("--sparse <paths...>","Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .claude-plugin plugins").option("--scope <scope>","Where to declare the marketplace: user (default), project, or local").action(async(source,options2)=>{let{marketplaceAddHandler:marketplaceAddHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceAddHandler2(source,options2)}),marketplaceCmd.command("list").description("List all configured marketplaces").option("--json","Output as JSON").addOption(coworkOption()).action(async(options2)=>{let{marketplaceListHandler:marketplaceListHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceListHandler2(options2)}),marketplaceCmd.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(coworkOption()).action(async(name,options2)=>{let{marketplaceRemoveHandler:marketplaceRemoveHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceRemoveHandler2(name,options2)}),marketplaceCmd.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(coworkOption()).action(async(name,options2)=>{let{marketplaceUpdateHandler:marketplaceUpdateHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceUpdateHandler2(name,options2)}),pluginCmd.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(coworkOption()).action(async(plugin2,options2)=>{let{pluginInstallHandler:pluginInstallHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginInstallHandler2(plugin2,options2)}),pluginCmd.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 (~/.claude/plugins/data/{id}/)").addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginUninstallHandler:pluginUninstallHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginUninstallHandler2(plugin2,options2)}),pluginCmd.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>",`Installation scope: ${VALID_INSTALLABLE_SCOPES.join(", ")} (default: auto-detect)`).addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginEnableHandler:pluginEnableHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginEnableHandler2(plugin2,options2)}),pluginCmd.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all","Disable all enabled plugins").option("-s, --scope <scope>",`Installation scope: ${VALID_INSTALLABLE_SCOPES.join(", ")} (default: auto-detect)`).addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginDisableHandler:pluginDisableHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginDisableHandler2(plugin2,options2)}),pluginCmd.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>",`Installation scope: ${VALID_UPDATE_SCOPES.join(", ")} (default: user)`).addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginUpdateHandler:pluginUpdateHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginUpdateHandler2(plugin2,options2)}),program2.command("setup-token").description("Set up a long-lived authentication token (requires Claude subscription)").action(async()=>{let[{setupTokenHandler:setupTokenHandler2},{createRoot:createRoot3}]=await Promise.all([Promise.resolve().then(() => (init_util3(),exports_util2)),Promise.resolve().then(() => (init_ink2(),exports_ink))]),root2=await createRoot3(getBaseRenderOptions(!1));await setupTokenHandler2(root2)}),program2.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:agentsHandler2}=await Promise.resolve().then(() => (init_agents4(),exports_agents3));await agentsHandler2(),process.exit(0)});let runSkillsCommanderAction=async(action2)=>{let[skillsHandlers,{runSkillsCliAction:runSkillsCliAction2}]=await Promise.all([Promise.resolve().then(() => (init_skills4(),exports_skills3)),Promise.resolve().then(() => (init_skillsCli(),exports_skillsCli))]);await runSkillsCliAction2(()=>action2(skillsHandlers)),process.exit(process.exitCode??0)},skillsCmd=program2.command("skills").description("List, inspect, validate, and manage Claudio skills").configureHelp(createSortedHelpConfig());if(skillsCmd.command("list").description("List configured skills").option("--json","Output as JSON").action(async(options2)=>runSkillsCommanderAction(({skillsListHandler:skillsListHandler2})=>skillsListHandler2(options2))),skillsCmd.command("show <name>").description("Show details for a configured skill").action(async(name)=>{await runSkillsCommanderAction(({skillsShowHandler:skillsShowHandler2})=>skillsShowHandler2(name))}),skillsCmd.command("validate <path>").description("Validate a local skill directory").action(async(path28)=>{await runSkillsCommanderAction(({skillsValidateHandler:skillsValidateHandler2})=>skillsValidateHandler2(path28))}),skillsCmd.command("install <idOrUrlOrPath>").description("Install a skill from the registry, URL, or local path").option("--registry <urlOrPath>","Registry JSON URL/path for registry ID installs").option("--sha256 <hash>","Expected SHA-256 digest for direct HTTP(S) URL installs").option("--global","Install to the user-global skills directory").option("--force","Overwrite an existing installed skill").action(async(idOrUrlOrPath,options2)=>{await runSkillsCommanderAction(({skillsInstallHandler:skillsInstallHandler2})=>skillsInstallHandler2(idOrUrlOrPath,options2))}),skillsCmd.command("remove <name>").description("Remove a local project skill").option("--global","Remove from the user-global skills directory").action(async(name,options2)=>{await runSkillsCommanderAction(({skillsRemoveHandler:skillsRemoveHandler2})=>skillsRemoveHandler2(name,options2))}),getAutoModeEnabledStateIfCached()!=="disabled"){let autoModeCmd=program2.command("auto-mode").description("Inspect auto mode classifier configuration");autoModeCmd.command("defaults").description("Print the default auto mode environment, allow, and deny rules as JSON").action(async()=>{let{autoModeDefaultsHandler:autoModeDefaultsHandler2}=await Promise.resolve().then(() => (init_autoMode(),exports_autoMode));autoModeDefaultsHandler2(),process.exit(0)}),autoModeCmd.command("config").description("Print the effective auto mode config as JSON: your settings where set, defaults otherwise").action(async()=>{let{autoModeConfigHandler:autoModeConfigHandler2}=await Promise.resolve().then(() => (init_autoMode(),exports_autoMode));autoModeConfigHandler2(),process.exit(0)}),autoModeCmd.command("critique").description("Get AI feedback on your custom auto mode rules").option("--model <model>","Override which model is used").action(async(options2)=>{let{autoModeCritiqueHandler:autoModeCritiqueHandler2}=await Promise.resolve().then(() => (init_autoMode(),exports_autoMode));await autoModeCritiqueHandler2(options2),process.exit()})}registerTaskReportCommand(program2);let doctorCommand=program2.command("doctor").description("Check the health of your Claudio 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.");return doctorCommand.command("report").description("Print a redacted diagnostic report for GitHub issues").addOption(new Option("--json","Print JSON output").conflicts("markdown")).addOption(new Option("--markdown","Print Markdown output").conflicts("json")).option("--out <file>","Write the report to a file").addOption(new Option("--redacted","Keep redaction enabled (default)").default(!0).hideHelp()).option("--include-debug","Include redacted recent error summaries").action(async(options2)=>{let{doctorReportHandler:doctorReportHandler2,printDoctorReportError:printDoctorReportError2}=await Promise.resolve().then(() => (init_doctorReport(),exports_doctorReport));try{await doctorReportHandler2({format:options2.json?"json":"markdown",outFile:options2.out??null,includeDebug:options2.includeDebug===!0,redacted:options2.redacted!==!1}),process.exit(0)}catch(error41){printDoctorReportError2(error41),process.exit(1)}}),doctorCommand.action(async()=>{let[{doctorHandler:doctorHandler2},{createRoot:createRoot3}]=await Promise.all([Promise.resolve().then(() => (init_util3(),exports_util2)),Promise.resolve().then(() => (init_ink2(),exports_ink))]),root2=await createRoot3(getBaseRenderOptions(!1));await doctorHandler2(root2)}),program2.command("update").alias("upgrade").description("Check for updates and install if available").action(async()=>{let{update:update3}=await Promise.resolve().then(() => (init_update3(),exports_update2));await update3()}),program2.command("install [target]").description("Install Claudio native build. Use [target] to specify version (stable, latest, or specific version)").option("--force","Force installation even if already installed").action(async(target,options2)=>{let{installHandler:installHandler2}=await Promise.resolve().then(() => (init_util3(),exports_util2));await installHandler2(target,options2)}),profileCheckpoint("run_before_parse"),await program2.parseAsync(process.argv),profileCheckpoint("run_after_parse"),profileCheckpoint("main_after_run"),profileReport(),program2}async function logTenguInit({hasInitialPrompt,hasStdin,verbose,debug:debug2,debugToStderr,print,outputFormat,inputFormat,numAllowedTools,numDisallowedTools,mcpClientCount,worktreeEnabled,skipWebFetchPreflight,githubActionInputs,dangerouslySkipPermissionsPassed,permissionMode,modeIsBypass,allowDangerouslySkipPermissionsPassed,systemPromptFlag,appendSystemPromptFlag,thinkingConfig,assistantActivationPath}){try{logEvent("tengu_init",{entrypoint:"claude",hasInitialPrompt,hasStdin,verbose,debug:debug2,debugToStderr,print,outputFormat,inputFormat,numAllowedTools,numDisallowedTools,mcpClientCount,worktree:worktreeEnabled,skipWebFetchPreflight,...githubActionInputs&&{githubActionInputs},dangerouslySkipPermissionsPassed,permissionMode,modeIsBypass,inProtectedNamespace:isInProtectedNamespace(),allowDangerouslySkipPermissionsPassed,thinkingType:thinkingConfig.type,...systemPromptFlag&&{systemPromptFlag},...appendSystemPromptFlag&&{appendSystemPromptFlag},is_simple:isBareMode()||void 0,is_coordinator:coordinatorModeModule4?.isCoordinatorMode()?!0:void 0,...assistantActivationPath&&{assistantActivationPath},autoUpdatesChannel:getInitialSettings().autoUpdatesChannel??"latest"})}catch(error41){logError(error41)}}function maybeActivateProactive(options2){}function maybeActivateBrief(options2){return}function resetCursor(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(SHOW_CURSOR)}function extractTeammateOptions(options2){if(typeof options2!=="object"||options2===null)return{};let opts=options2,teammateMode=opts.teammateMode;return{agentId:typeof opts.agentId==="string"?opts.agentId:void 0,agentName:typeof opts.agentName==="string"?opts.agentName:void 0,teamName:typeof opts.teamName==="string"?opts.teamName:void 0,agentColor:typeof opts.agentColor==="string"?opts.agentColor:void 0,planModeRequired:typeof opts.planModeRequired==="boolean"?opts.planModeRequired:void 0,parentSessionId:typeof opts.parentSessionId==="string"?opts.parentSessionId:void 0,teammateMode:teammateMode==="auto"||teammateMode==="tmux"||teammateMode==="in-process"?teammateMode:void 0,agentType:typeof opts.agentType==="string"?opts.agentType:void 0}}var getTeammateUtils=()=>(init_teammate(),__toCommonJS(exports_teammate)),getTeammatePromptAddendum=()=>__toCommonJS(exports_teammatePromptAddendum),getTeammateModeSnapshot=()=>(init_teammateModeSnapshot(),__toCommonJS(exports_teammateModeSnapshot)),coordinatorModeModule4,autoModeStateModule7,CURRENT_MIGRATION_VERSION=11;var init_main3=__esm(()=>{init_startupProfiler();init_rawRead();init_keychainPrefetch();init_esm5();init_source2();init_mapValues();init_pickBy();init_uniqBy();init_oauth();init_context2();init_init3();init_history();init_replLauncher();init_growthbook();init_bootstrap();init_discoveryService();init_config4();init_ollamaModels();init_filesApi();init_officialRegistry();init_policyLimits();init_remoteManagedSettings();init_SyntheticOutputTool();init_taskReport3();init_tools2();init_advisor();init_agentSwarmsEnabled();init_auth5();init_config();init_earlyInput();init_effort();init_fastMode();init_managedEnv();init_messages3();init_providers();init_platform2();init_renderOptions();init_sessionIngressAuth();init_changeDetector();init_skillChangeDetector();init_slowOperations();init_reconnection();init_warningHandler();init_config9();init_growthbook();init_state();init_commands();init_dialogLaunchers();init_dec();init_interactiveHelpers();init_bundled();init_claudeAiLimits();init_client5();init_pluginCliCommands();init_bundled2();init_loadAgentsDir();init_setup2();init_startup();init_context();init_conversationRecovery();init_banner();init_combinedAbortSignal();init_envUtils();init_exampleCommands();init_getWorktreePaths();init_git();init_ghAuthStatus();init_json();init_log2();init_deprecation();init_model();init_modelStrings();init_PermissionMode();init_permissionSetup();init_cacheUtils();init_installedPluginsManager();init_managedPlugins();init_orphanedPluginFilter();init_pluginDirectories();init_ripgrep2();init_sessionStart();init_sessionStorage();init_settings2();init_flagSettings();init_settings3();init_pluginTelemetry();init_skillLoadedEvent();init_uuid();init_addCommand();init_xaaIdpCommand();init_claudeai();init_client5();init_config2();init_utils4();init_xaaIdpLogin();init_tipRegistry();init_api3();init_common2();init_cleanupRegistry();init_commitAttribution();init_concurrentSessions();init_cwd();init_debug();init_errors();init_gracefulShutdown();init_hookEvents();init_headlessHeartbeat();init_Shell();init_sessionRestore();init_state();init_migrateAutoUpdatesToSettings();init_migrateBypassPermissionsAcceptedToSettings();init_migrateEnableAllProjectMcpServersToSettings();init_migrateLegacyOpusToCurrent();init_migrateOpusToOpus1m();init_migrateReplBridgeEnabledToRemoteControlAtStartup();init_migrateSonnet1mToSonnet45();init_migrateSonnet45ToSonnet46();init_resetAutoModeOptInForDefaultOffer();init_resetProToOpusDefault();init_RemoteSessionManager();init_createDirectConnectSession();init_manager();init_promptSuggestion();init_AppStateStore();init_onChangeAppState();init_ids();init_betas2();init_diagLogs();init_githubRepoPathMapping();init_pluginLoader();init_releaseNotes();init_sandbox_adapter();init_api2();init_teleport();init_thinking();init_user();init_worktree();profileCheckpoint("main_tsx_entry");startMdmRawRead();startKeychainPrefetch();coordinatorModeModule4=(init_coordinatorMode(),__toCommonJS(exports_coordinatorMode)),autoModeStateModule7=__toCommonJS(exports_autoModeState);profileCheckpoint("main_tsx_imports_loaded");if(isBeingDebugged())process.stderr.write(`[openclaude] Debugger detected. Attaching a debugger is not supported in external builds. Exiting.
|
|
11170
|
+
`))}catch(error41){return await exitWithError2(root2,`Error downloading files: ${errorMessage(error41)}`)}let resumeData=processedResume??(Array.isArray(messages)?{messages,fileHistorySnapshots:void 0,agentName:void 0,agentColor:void 0,restoredAgentDef:mainThreadAgentDefinition,initialState,contentReplacements:void 0}:void 0);if(resumeData)maybeActivateProactive(options2),maybeActivateBrief(options2),await launchRepl(root2,{getFpsMetrics,stats:stats2,initialState:resumeData.initialState},{...sessionConfig,mainThreadAgentDefinition:resumeData.restoredAgentDef??mainThreadAgentDefinition,initialMessages:resumeData.messages,initialFileHistorySnapshots:resumeData.fileHistorySnapshots,initialContentReplacements:resumeData.contentReplacements,initialAgentName:resumeData.agentName,initialAgentColor:resumeData.agentColor},renderAndRun);else await launchResumeChooser(root2,{getFpsMetrics,stats:stats2,initialState},getWorktreePaths(getOriginalCwd()),{...sessionConfig,initialSearchQuery:searchTerm,forkSession:options2.forkSession,filterByPr})}else{let pendingHookMessages=hooksPromise&&hookMessages.length===0?hooksPromise:void 0;profileCheckpoint("action_after_hooks"),maybeActivateProactive(options2),maybeActivateBrief(options2),saveMode(coordinatorModeModule4?.isCoordinatorMode()?"coordinator":"normal");let deepLinkBanner=null,initialMessages=deepLinkBanner?[deepLinkBanner,...hookMessages]:hookMessages.length>0?hookMessages:void 0;await launchRepl(root2,{getFpsMetrics,stats:stats2,initialState},{...sessionConfig,initialMessages,pendingHookMessages},renderAndRun)}}).version("0.25.1 (Claudio)","-v, --version","Output the version number"),program2.option("-w, --worktree [name]","Create a new git worktree for this session (optionally specify a name)"),program2.option("--tmux","Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."),canUserConfigureAdvisor())program2.addOption(new Option("--advisor <model>","Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());program2.addOption(new Option("--enable-auto-mode","Opt in to auto mode").hideHelp()),program2.addOption(new Option("--agent-id <id>","Teammate agent ID").hideHelp()),program2.addOption(new Option("--agent-name <name>","Teammate display name").hideHelp()),program2.addOption(new Option("--team-name <name>","Team name for swarm coordination").hideHelp()),program2.addOption(new Option("--agent-color <color>","Teammate UI color").hideHelp()),program2.addOption(new Option("--plan-mode-required","Require plan mode before implementation").hideHelp()),program2.addOption(new Option("--parent-session-id <id>","Parent session ID for analytics correlation").hideHelp()),program2.addOption(new Option("--teammate-mode <mode>",'How to spawn teammates: "tmux", "in-process", or "auto"').choices(["auto","tmux","in-process"]).hideHelp()),program2.addOption(new Option("--agent-type <type>","Custom agent type for this teammate").hideHelp()),program2.addOption(new Option("--sdk-url <url>","Use remote WebSocket endpoint for SDK I/O streaming (only with -p and stream-json format)").hideHelp()),program2.addOption(new Option("--teleport [session]","Resume a teleport session, optionally specify session ID").hideHelp()),program2.addOption(new Option("--remote [description]","Create a remote session with the given description").hideHelp()),profileCheckpoint("run_main_options_built");let isPrintMode=process.argv.includes("-p")||process.argv.includes("--print"),isCcUrl=process.argv.some((a2)=>a2.startsWith("cc://")||a2.startsWith("cc+unix://"));if(isPrintMode&&!isCcUrl)return profileCheckpoint("run_before_parse"),await program2.parseAsync(process.argv),profileCheckpoint("run_after_parse"),program2;let mcp2=program2.command("mcp").description("Configure and manage MCP servers").configureHelp(createSortedHelpConfig()).enablePositionalOptions();if(mcp2.command("serve").description("Start the Claudio MCP server").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:debug2,verbose})=>{let{mcpServeHandler:mcpServeHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpServeHandler2({debug:debug2,verbose})}),registerMcpAddCommand(mcp2),registerMcpDoctorCommand(mcp2),isXaaEnabled())registerMcpXaaIdpCommand(mcp2);mcp2.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(name,options2)=>{let{mcpRemoveHandler:mcpRemoveHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpRemoveHandler2(name,options2)}),mcp2.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:mcpListHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpListHandler2()}),mcp2.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(name)=>{let{mcpGetHandler:mcpGetHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpGetHandler2(name)}),mcp2.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(name,json2,options2)=>{let{mcpAddJsonHandler:mcpAddJsonHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpAddJsonHandler2(name,json2,options2)}),mcp2.command("add-from-claude-desktop").description("Import MCP servers from Claude Desktop (macOS, Windows, and WSL)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(options2)=>{let{mcpAddFromDesktopHandler:mcpAddFromDesktopHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpAddFromDesktopHandler2(options2)}),mcp2.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async()=>{let{mcpResetChoicesHandler:mcpResetChoicesHandler2}=await Promise.resolve().then(() => (init_mcp5(),exports_mcp3));await mcpResetChoicesHandler2()});let auth2=program2.command("auth").description("Manage authentication").configureHelp(createSortedHelpConfig());auth2.command("login").description("Sign in to your Anthropic account").option("--email <email>","Pre-populate email address on the login page").option("--sso","Force SSO login flow").option("--console","Use Anthropic Console (API usage billing) instead of Claude subscription").option("--claudeai","Use Claude subscription (default)").action(async({email:email3,sso,console:useConsole,claudeai})=>{let{authLogin:authLogin2}=await Promise.resolve().then(() => (init_auth4(),exports_auth));await authLogin2({email:email3,sso,console:useConsole,claudeai})}),auth2.command("status").description("Show authentication status").option("--json","Output as JSON (default)").option("--text","Output as human-readable text").action(async(opts)=>{let{authStatus:authStatus2}=await Promise.resolve().then(() => (init_auth4(),exports_auth));await authStatus2(opts)}),auth2.command("logout").description("Log out from your Anthropic account").action(async()=>{let{authLogout:authLogout2}=await Promise.resolve().then(() => (init_auth4(),exports_auth));await authLogout2()});let xaiAuth=auth2.command("xai").description("Sign in to xAI (Grok) with browser OAuth or device code").configureHelp(createSortedHelpConfig());xaiAuth.command("login").description("Browser OAuth sign-in for an xAI account").action(async()=>{let{xaiLogin:xaiLogin2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiLogin2({flow:"browser"})}),xaiAuth.command("device").description("Device-code sign-in for remote hosts (no localhost callback needed)").action(async()=>{let{xaiLogin:xaiLogin2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiLogin2({flow:"device-code"})}),xaiAuth.command("logout").description("Clear stored xAI OAuth credentials").action(async()=>{let{xaiLogout:xaiLogout2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiLogout2()}),xaiAuth.command("status").description("Show xAI OAuth credential status").action(async()=>{let{xaiStatus:xaiStatus2}=await Promise.resolve().then(() => (init_xaiAuth(),exports_xaiAuth));await xaiStatus2()}),program2.command("aimlapi").description("AI/ML API (aimlapi.com) — top up balance and configure the provider").configureHelp(createSortedHelpConfig()).command("topup").description("Log in, open AI/ML API top-up, then set the issued key as Claudio's provider").option("--email <email>","AI/ML API account email (or AIMLAPI_EMAIL env)").option("--amount <usd>",`Top-up amount in USD (min ${MIN_AMOUNT_USD_MINOR/100}, max ${MAX_AMOUNT_USD_MINOR/100})`).addOption(new Option("--method <method>","Payment method: card (Stripe) or crypto (NOWPayments)").choices(["card","crypto"]).default("card")).option("--model <model>","Default model id written into the provider profile","gpt-4o").option("--partner-id <id>","Partner id for rebate attribution (part_...)").option("--no-open","Do not auto-open the browser; print the payment URL instead").action(async(opts)=>{let{aimlapiTopup:aimlapiTopup2}=await Promise.resolve().then(() => (init_aimlapi3(),exports_aimlapi));await aimlapiTopup2({email:opts.email,amountUsd:opts.amount,method:opts.method==="crypto"?"crypto":"card",model:opts.model,partnerId:opts.partnerId,noOpen:opts.open===!1})});let coworkOption=()=>new Option("--cowork","Use cowork_plugins directory").hideHelp(),pluginCmd=program2.command("plugin").alias("plugins").description("Manage Claudio plugins").configureHelp(createSortedHelpConfig());pluginCmd.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(coworkOption()).action(async(manifestPath,options2)=>{let{pluginValidateHandler:pluginValidateHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginValidateHandler2(manifestPath,options2)}),pluginCmd.command("list").description("List installed plugins").option("--json","Output as JSON").option("--available","Include available plugins from marketplaces (requires --json)").addOption(coworkOption()).action(async(options2)=>{let{pluginListHandler:pluginListHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginListHandler2(options2)});let marketplaceCmd=pluginCmd.command("marketplace").description("Manage Claudio marketplaces").configureHelp(createSortedHelpConfig());marketplaceCmd.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(coworkOption()).option("--sparse <paths...>","Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .claude-plugin plugins").option("--scope <scope>","Where to declare the marketplace: user (default), project, or local").action(async(source,options2)=>{let{marketplaceAddHandler:marketplaceAddHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceAddHandler2(source,options2)}),marketplaceCmd.command("list").description("List all configured marketplaces").option("--json","Output as JSON").addOption(coworkOption()).action(async(options2)=>{let{marketplaceListHandler:marketplaceListHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceListHandler2(options2)}),marketplaceCmd.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(coworkOption()).action(async(name,options2)=>{let{marketplaceRemoveHandler:marketplaceRemoveHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceRemoveHandler2(name,options2)}),marketplaceCmd.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(coworkOption()).action(async(name,options2)=>{let{marketplaceUpdateHandler:marketplaceUpdateHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await marketplaceUpdateHandler2(name,options2)}),pluginCmd.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(coworkOption()).action(async(plugin2,options2)=>{let{pluginInstallHandler:pluginInstallHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginInstallHandler2(plugin2,options2)}),pluginCmd.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 (~/.claude/plugins/data/{id}/)").addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginUninstallHandler:pluginUninstallHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginUninstallHandler2(plugin2,options2)}),pluginCmd.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>",`Installation scope: ${VALID_INSTALLABLE_SCOPES.join(", ")} (default: auto-detect)`).addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginEnableHandler:pluginEnableHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginEnableHandler2(plugin2,options2)}),pluginCmd.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all","Disable all enabled plugins").option("-s, --scope <scope>",`Installation scope: ${VALID_INSTALLABLE_SCOPES.join(", ")} (default: auto-detect)`).addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginDisableHandler:pluginDisableHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginDisableHandler2(plugin2,options2)}),pluginCmd.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>",`Installation scope: ${VALID_UPDATE_SCOPES.join(", ")} (default: user)`).addOption(coworkOption()).action(async(plugin2,options2)=>{let{pluginUpdateHandler:pluginUpdateHandler2}=await Promise.resolve().then(() => (init_plugins(),exports_plugins));await pluginUpdateHandler2(plugin2,options2)}),program2.command("setup-token").description("Set up a long-lived authentication token (requires Claude subscription)").action(async()=>{let[{setupTokenHandler:setupTokenHandler2},{createRoot:createRoot3}]=await Promise.all([Promise.resolve().then(() => (init_util3(),exports_util2)),Promise.resolve().then(() => (init_ink2(),exports_ink))]),root2=await createRoot3(getBaseRenderOptions(!1));await setupTokenHandler2(root2)}),program2.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:agentsHandler2}=await Promise.resolve().then(() => (init_agents4(),exports_agents3));await agentsHandler2(),process.exit(0)});let runSkillsCommanderAction=async(action2)=>{let[skillsHandlers,{runSkillsCliAction:runSkillsCliAction2}]=await Promise.all([Promise.resolve().then(() => (init_skills4(),exports_skills3)),Promise.resolve().then(() => (init_skillsCli(),exports_skillsCli))]);await runSkillsCliAction2(()=>action2(skillsHandlers)),process.exit(process.exitCode??0)},skillsCmd=program2.command("skills").description("List, inspect, validate, and manage Claudio skills").configureHelp(createSortedHelpConfig());if(skillsCmd.command("list").description("List configured skills").option("--json","Output as JSON").action(async(options2)=>runSkillsCommanderAction(({skillsListHandler:skillsListHandler2})=>skillsListHandler2(options2))),skillsCmd.command("show <name>").description("Show details for a configured skill").action(async(name)=>{await runSkillsCommanderAction(({skillsShowHandler:skillsShowHandler2})=>skillsShowHandler2(name))}),skillsCmd.command("validate <path>").description("Validate a local skill directory").action(async(path28)=>{await runSkillsCommanderAction(({skillsValidateHandler:skillsValidateHandler2})=>skillsValidateHandler2(path28))}),skillsCmd.command("install <idOrUrlOrPath>").description("Install a skill from the registry, URL, or local path").option("--registry <urlOrPath>","Registry JSON URL/path for registry ID installs").option("--sha256 <hash>","Expected SHA-256 digest for direct HTTP(S) URL installs").option("--global","Install to the user-global skills directory").option("--force","Overwrite an existing installed skill").action(async(idOrUrlOrPath,options2)=>{await runSkillsCommanderAction(({skillsInstallHandler:skillsInstallHandler2})=>skillsInstallHandler2(idOrUrlOrPath,options2))}),skillsCmd.command("remove <name>").description("Remove a local project skill").option("--global","Remove from the user-global skills directory").action(async(name,options2)=>{await runSkillsCommanderAction(({skillsRemoveHandler:skillsRemoveHandler2})=>skillsRemoveHandler2(name,options2))}),getAutoModeEnabledStateIfCached()!=="disabled"){let autoModeCmd=program2.command("auto-mode").description("Inspect auto mode classifier configuration");autoModeCmd.command("defaults").description("Print the default auto mode environment, allow, and deny rules as JSON").action(async()=>{let{autoModeDefaultsHandler:autoModeDefaultsHandler2}=await Promise.resolve().then(() => (init_autoMode(),exports_autoMode));autoModeDefaultsHandler2(),process.exit(0)}),autoModeCmd.command("config").description("Print the effective auto mode config as JSON: your settings where set, defaults otherwise").action(async()=>{let{autoModeConfigHandler:autoModeConfigHandler2}=await Promise.resolve().then(() => (init_autoMode(),exports_autoMode));autoModeConfigHandler2(),process.exit(0)}),autoModeCmd.command("critique").description("Get AI feedback on your custom auto mode rules").option("--model <model>","Override which model is used").action(async(options2)=>{let{autoModeCritiqueHandler:autoModeCritiqueHandler2}=await Promise.resolve().then(() => (init_autoMode(),exports_autoMode));await autoModeCritiqueHandler2(options2),process.exit()})}registerTaskReportCommand(program2);let doctorCommand=program2.command("doctor").description("Check the health of your Claudio 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.");return doctorCommand.command("report").description("Print a redacted diagnostic report for GitHub issues").addOption(new Option("--json","Print JSON output").conflicts("markdown")).addOption(new Option("--markdown","Print Markdown output").conflicts("json")).option("--out <file>","Write the report to a file").addOption(new Option("--redacted","Keep redaction enabled (default)").default(!0).hideHelp()).option("--include-debug","Include redacted recent error summaries").action(async(options2)=>{let{doctorReportHandler:doctorReportHandler2,printDoctorReportError:printDoctorReportError2}=await Promise.resolve().then(() => (init_doctorReport(),exports_doctorReport));try{await doctorReportHandler2({format:options2.json?"json":"markdown",outFile:options2.out??null,includeDebug:options2.includeDebug===!0,redacted:options2.redacted!==!1}),process.exit(0)}catch(error41){printDoctorReportError2(error41),process.exit(1)}}),doctorCommand.action(async()=>{let[{doctorHandler:doctorHandler2},{createRoot:createRoot3}]=await Promise.all([Promise.resolve().then(() => (init_util3(),exports_util2)),Promise.resolve().then(() => (init_ink2(),exports_ink))]),root2=await createRoot3(getBaseRenderOptions(!1));await doctorHandler2(root2)}),program2.command("update").alias("upgrade").description("Check for updates and install if available").action(async()=>{let{update:update3}=await Promise.resolve().then(() => (init_update3(),exports_update2));await update3()}),program2.command("install [target]").description("Install Claudio native build. Use [target] to specify version (stable, latest, or specific version)").option("--force","Force installation even if already installed").action(async(target,options2)=>{let{installHandler:installHandler2}=await Promise.resolve().then(() => (init_util3(),exports_util2));await installHandler2(target,options2)}),profileCheckpoint("run_before_parse"),await program2.parseAsync(process.argv),profileCheckpoint("run_after_parse"),profileCheckpoint("main_after_run"),profileReport(),program2}async function logTenguInit({hasInitialPrompt,hasStdin,verbose,debug:debug2,debugToStderr,print,outputFormat,inputFormat,numAllowedTools,numDisallowedTools,mcpClientCount,worktreeEnabled,skipWebFetchPreflight,githubActionInputs,dangerouslySkipPermissionsPassed,permissionMode,modeIsBypass,allowDangerouslySkipPermissionsPassed,systemPromptFlag,appendSystemPromptFlag,thinkingConfig,assistantActivationPath}){try{logEvent("tengu_init",{entrypoint:"claude",hasInitialPrompt,hasStdin,verbose,debug:debug2,debugToStderr,print,outputFormat,inputFormat,numAllowedTools,numDisallowedTools,mcpClientCount,worktree:worktreeEnabled,skipWebFetchPreflight,...githubActionInputs&&{githubActionInputs},dangerouslySkipPermissionsPassed,permissionMode,modeIsBypass,inProtectedNamespace:isInProtectedNamespace(),allowDangerouslySkipPermissionsPassed,thinkingType:thinkingConfig.type,...systemPromptFlag&&{systemPromptFlag},...appendSystemPromptFlag&&{appendSystemPromptFlag},is_simple:isBareMode()||void 0,is_coordinator:coordinatorModeModule4?.isCoordinatorMode()?!0:void 0,...assistantActivationPath&&{assistantActivationPath},autoUpdatesChannel:getInitialSettings().autoUpdatesChannel??"latest"})}catch(error41){logError(error41)}}function maybeActivateProactive(options2){}function maybeActivateBrief(options2){return}function resetCursor(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(SHOW_CURSOR)}function extractTeammateOptions(options2){if(typeof options2!=="object"||options2===null)return{};let opts=options2,teammateMode=opts.teammateMode;return{agentId:typeof opts.agentId==="string"?opts.agentId:void 0,agentName:typeof opts.agentName==="string"?opts.agentName:void 0,teamName:typeof opts.teamName==="string"?opts.teamName:void 0,agentColor:typeof opts.agentColor==="string"?opts.agentColor:void 0,planModeRequired:typeof opts.planModeRequired==="boolean"?opts.planModeRequired:void 0,parentSessionId:typeof opts.parentSessionId==="string"?opts.parentSessionId:void 0,teammateMode:teammateMode==="auto"||teammateMode==="tmux"||teammateMode==="in-process"?teammateMode:void 0,agentType:typeof opts.agentType==="string"?opts.agentType:void 0}}var getTeammateUtils=()=>(init_teammate(),__toCommonJS(exports_teammate)),getTeammatePromptAddendum=()=>__toCommonJS(exports_teammatePromptAddendum),getTeammateModeSnapshot=()=>(init_teammateModeSnapshot(),__toCommonJS(exports_teammateModeSnapshot)),coordinatorModeModule4,autoModeStateModule7,CURRENT_MIGRATION_VERSION=11;var init_main3=__esm(()=>{init_startupProfiler();init_rawRead();init_keychainPrefetch();init_esm5();init_source2();init_mapValues();init_pickBy();init_uniqBy();init_oauth();init_context2();init_init3();init_history();init_replLauncher();init_growthbook();init_bootstrap();init_discoveryService();init_config4();init_ollamaModels();init_filesApi();init_officialRegistry();init_policyLimits();init_remoteManagedSettings();init_SyntheticOutputTool();init_taskReport3();init_tools2();init_advisor();init_agentSwarmsEnabled();init_auth5();init_config();init_earlyInput();init_effort();init_fastMode();init_managedEnv();init_messages3();init_providers();init_platform2();init_renderOptions();init_sessionIngressAuth();init_changeDetector();init_skillChangeDetector();init_slowOperations();init_reconnection();init_warningHandler();init_config9();init_growthbook();init_state();init_commands();init_dialogLaunchers();init_dec();init_interactiveHelpers();init_bundled();init_claudeAiLimits();init_client5();init_pluginCliCommands();init_bundled2();init_loadAgentsDir();init_setup2();init_startup();init_context();init_conversationRecovery();init_banner();init_combinedAbortSignal();init_envUtils();init_exampleCommands();init_getWorktreePaths();init_git();init_ghAuthStatus();init_json();init_log2();init_deprecation();init_model();init_modelStrings();init_PermissionMode();init_permissionSetup();init_cacheUtils();init_installedPluginsManager();init_managedPlugins();init_orphanedPluginFilter();init_pluginDirectories();init_ripgrep2();init_sessionStart();init_sessionStorage();init_settings2();init_flagSettings();init_settings3();init_pluginTelemetry();init_skillLoadedEvent();init_uuid();init_addCommand();init_xaaIdpCommand();init_claudeai();init_client5();init_config2();init_utils4();init_xaaIdpLogin();init_tipRegistry();init_api3();init_common2();init_cleanupRegistry();init_commitAttribution();init_concurrentSessions();init_cwd();init_debug();init_errors();init_gracefulShutdown();init_hookEvents();init_headlessHeartbeat();init_Shell();init_sessionRestore();init_state();init_migrateAutoUpdatesToSettings();init_migrateBypassPermissionsAcceptedToSettings();init_migrateEnableAllProjectMcpServersToSettings();init_migrateLegacyOpusToCurrent();init_migrateOpusToOpus1m();init_migrateReplBridgeEnabledToRemoteControlAtStartup();init_migrateSonnet1mToSonnet45();init_migrateSonnet45ToSonnet46();init_resetAutoModeOptInForDefaultOffer();init_resetProToOpusDefault();init_RemoteSessionManager();init_createDirectConnectSession();init_manager();init_promptSuggestion();init_AppStateStore();init_onChangeAppState();init_ids();init_betas2();init_diagLogs();init_githubRepoPathMapping();init_pluginLoader();init_releaseNotes();init_sandbox_adapter();init_api2();init_teleport();init_thinking();init_user();init_worktree();profileCheckpoint("main_tsx_entry");startMdmRawRead();startKeychainPrefetch();coordinatorModeModule4=(init_coordinatorMode(),__toCommonJS(exports_coordinatorMode)),autoModeStateModule7=__toCommonJS(exports_autoModeState);profileCheckpoint("main_tsx_imports_loaded");if(isBeingDebugged())process.stderr.write(`[openclaude] Debugger detected. Attaching a debugger is not supported in external builds. Exiting.
|
|
11171
11171
|
`),process.exit(1)});var exports_chromeNativeHost={};__export(exports_chromeNativeHost,{sendChromeMessage:()=>sendChromeMessage,runChromeNativeHost:()=>runChromeNativeHost});import{appendFile as appendFile6,chmod as chmod12,mkdir as mkdir51,readdir as readdir36,rmdir as rmdir3,stat as stat61,unlink as unlink31}from"fs/promises";import{createServer as createServer9}from"net";import{homedir as homedir47,platform as platform6}from"os";import{join as join180}from"path";function log2(message,...args){if(LOG_FILE){let timestamp=new Date().toISOString(),formattedArgs=args.length>0?" "+jsonStringify(args):"",logLine2=`[${timestamp}] [Claude Chrome Native Host] ${message}${formattedArgs}
|
|
11172
|
-
`;appendFile6(LOG_FILE,logLine2).catch(()=>{})}console.error(`[Claude Chrome Native Host] ${message}`,...args)}function sendChromeMessage(message){let jsonBytes=Buffer.from(message,"utf-8"),lengthBuffer=Buffer.alloc(4);lengthBuffer.writeUInt32LE(jsonBytes.length,0),process.stdout.write(lengthBuffer),process.stdout.write(jsonBytes)}async function runChromeNativeHost(){log2("Initializing...");let host=new ChromeNativeHost,messageReader=new ChromeMessageReader;await host.start();while(!0){let message=await messageReader.read();if(message===null)break;await host.handleMessage(message)}await host.stop()}class ChromeNativeHost{mcpClients=new Map;nextClientId=1;server=null;running=!1;socketPath=null;async start(){if(this.running)return;if(this.socketPath=getSecureSocketPath(),platform6()!=="win32"){let socketDir=getSocketDir();try{if(!(await stat61(socketDir)).isDirectory())await unlink31(socketDir)}catch{}await mkdir51(socketDir,{recursive:!0,mode:448}),await chmod12(socketDir,448).catch(()=>{});try{let files2=await readdir36(socketDir);for(let file2 of files2){if(!file2.endsWith(".sock"))continue;let pid=parseInt(file2.replace(".sock",""),10);if(isNaN(pid))continue;try{process.kill(pid,0)}catch{await unlink31(join180(socketDir,file2)).catch(()=>{}),log2(`Removed stale socket for PID ${pid}`)}}}catch{}}if(log2(`Creating socket listener: ${this.socketPath}`),this.server=createServer9((socket)=>this.handleMcpClient(socket)),await new Promise((resolve61,reject2)=>{this.server.listen(this.socketPath,()=>{log2("Socket server listening for connections"),this.running=!0,resolve61()}),this.server.on("error",(err2)=>{log2("Socket server error:",err2),reject2(err2)})}),platform6()!=="win32")try{await chmod12(this.socketPath,384),log2("Socket permissions set to 0600")}catch(e){log2("Failed to set socket permissions:",e)}}async stop(){if(!this.running)return;for(let[,client]of this.mcpClients)client.socket.destroy();if(this.mcpClients.clear(),this.server)await new Promise((resolve61)=>{this.server.close(()=>resolve61())}),this.server=null;if(platform6()!=="win32"&&this.socketPath){try{await unlink31(this.socketPath),log2("Cleaned up socket file")}catch{}try{let socketDir=getSocketDir();if((await readdir36(socketDir)).length===0)await rmdir3(socketDir),log2("Removed empty socket directory")}catch{}}this.running=!1}async isRunning(){return this.running}async getClientCount(){return this.mcpClients.size}async handleMessage(messageJson){let rawMessage;try{rawMessage=jsonParse(messageJson)}catch(e){log2("Invalid JSON from Chrome:",e.message),sendChromeMessage(jsonStringify({type:"error",error:"Invalid message format"}));return}let parsed=messageSchema().safeParse(rawMessage);if(!parsed.success){log2("Invalid message from Chrome:",parsed.error.message),sendChromeMessage(jsonStringify({type:"error",error:"Invalid message format"}));return}let message=parsed.data;switch(log2(`Handling Chrome message type: ${message.type}`),message.type){case"ping":log2("Responding to ping"),sendChromeMessage(jsonStringify({type:"pong",timestamp:Date.now()}));break;case"get_status":sendChromeMessage(jsonStringify({type:"status_response",native_host_version:VERSION5}));break;case"tool_response":{if(this.mcpClients.size>0){log2(`Forwarding tool response to ${this.mcpClients.size} MCP clients`);let{type:_,...data}=message,responseData=Buffer.from(jsonStringify(data),"utf-8"),lengthBuffer=Buffer.alloc(4);lengthBuffer.writeUInt32LE(responseData.length,0);let responseMsg=Buffer.concat([lengthBuffer,responseData]);for(let[id,client]of this.mcpClients)try{client.socket.write(responseMsg)}catch(e){log2(`Failed to send to MCP client ${id}:`,e)}}break}case"notification":{if(this.mcpClients.size>0){log2(`Forwarding notification to ${this.mcpClients.size} MCP clients`);let{type:_,...data}=message,notificationData=Buffer.from(jsonStringify(data),"utf-8"),lengthBuffer=Buffer.alloc(4);lengthBuffer.writeUInt32LE(notificationData.length,0);let notificationMsg=Buffer.concat([lengthBuffer,notificationData]);for(let[id,client]of this.mcpClients)try{client.socket.write(notificationMsg)}catch(e){log2(`Failed to send notification to MCP client ${id}:`,e)}}break}default:log2(`Unknown message type: ${message.type}`),sendChromeMessage(jsonStringify({type:"error",error:`Unknown message type: ${message.type}`}))}}handleMcpClient(socket){let clientId=this.nextClientId++,client={id:clientId,socket,buffer:Buffer.alloc(0)};this.mcpClients.set(clientId,client),log2(`MCP client ${clientId} connected. Total clients: ${this.mcpClients.size}`),sendChromeMessage(jsonStringify({type:"mcp_connected"})),socket.on("data",(data)=>{client.buffer=Buffer.concat([client.buffer,data]);while(client.buffer.length>=4){let length=client.buffer.readUInt32LE(0);if(length===0||length>MAX_MESSAGE_SIZE){log2(`Invalid message length from MCP client ${clientId}: ${length}`),socket.destroy();return}if(client.buffer.length<4+length)break;let messageBytes=client.buffer.slice(4,4+length);client.buffer=client.buffer.slice(4+length);try{let request=jsonParse(messageBytes.toString("utf-8"));log2(`Forwarding tool request from MCP client ${clientId}: ${request.method}`),sendChromeMessage(jsonStringify({type:"tool_request",method:request.method,params:request.params}))}catch(e){log2(`Failed to parse tool request from MCP client ${clientId}:`,e)}}}),socket.on("error",(err2)=>{log2(`MCP client ${clientId} error: ${err2}`)}),socket.on("close",()=>{log2(`MCP client ${clientId} disconnected. Remaining clients: ${this.mcpClients.size-1}`),this.mcpClients.delete(clientId),sendChromeMessage(jsonStringify({type:"mcp_disconnected"}))})}}class ChromeMessageReader{buffer=Buffer.alloc(0);pendingResolve=null;closed=!1;constructor(){process.stdin.on("data",(chunk2)=>{this.buffer=Buffer.concat([this.buffer,chunk2]),this.tryProcessMessage()}),process.stdin.on("end",()=>{if(this.closed=!0,this.pendingResolve)this.pendingResolve(null),this.pendingResolve=null}),process.stdin.on("error",()=>{if(this.closed=!0,this.pendingResolve)this.pendingResolve(null),this.pendingResolve=null})}tryProcessMessage(){if(!this.pendingResolve)return;if(this.buffer.length<4)return;let length=this.buffer.readUInt32LE(0);if(length===0||length>MAX_MESSAGE_SIZE){log2(`Invalid message length: ${length}`),this.pendingResolve(null),this.pendingResolve=null;return}if(this.buffer.length<4+length)return;let messageBytes=this.buffer.subarray(4,4+length);this.buffer=this.buffer.subarray(4+length);let message=messageBytes.toString("utf-8");this.pendingResolve(message),this.pendingResolve=null}async read(){if(this.closed)return null;if(this.buffer.length>=4){let length=this.buffer.readUInt32LE(0);if(length>0&&length<=MAX_MESSAGE_SIZE&&this.buffer.length>=4+length){let messageBytes=this.buffer.subarray(4,4+length);return this.buffer=this.buffer.subarray(4+length),messageBytes.toString("utf-8")}}return new Promise((resolve61)=>{this.pendingResolve=resolve61,this.tryProcessMessage()})}}var VERSION5="1.0.0",MAX_MESSAGE_SIZE=1048576,LOG_FILE,messageSchema;var init_chromeNativeHost=__esm(()=>{init_zod();init_slowOperations();init_common2();LOG_FILE=process.env.USER_TYPE==="ant"?join180(homedir47(),".openclaude","debug","chrome-native-host.txt"):void 0;messageSchema=lazySchema(()=>exports_external2.object({type:exports_external2.string()}).passthrough())});if(typeof globalThis.File>"u")try{let{File:NodeFile}=__require("node:buffer");globalThis.File=NodeFile}catch{globalThis.File=class extends Blob{name;lastModified;constructor(parts,name,opts){super(parts,opts);this.name=name,this.lastModified=opts?.lastModified??Date.now()}}}process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS??="true";process.env.COREPACK_ENABLE_AUTO_PIN="0";var SKILLS_LEADING_BOOLEAN_FLAGS=new Set(["--bare","--debug","--debug-to-stderr","--dangerously-skip-permissions","--allow-dangerously-skip-permissions","--disable-slash-commands","--enable-auth-status","--fork-session","--ide","--include-hook-events","--include-partial-messages","--init","--init-only","--maintenance","--mcp-debug","--no-chrome","--no-session-persistence","--replay-user-messages","--strict-mcp-config","--verbose"]),SKILLS_LEADING_VALUE_FLAGS=new Set(["--agent","--append-system-prompt","--append-system-prompt-file","--debug-file","--effort","--fallback-model","--heartbeat","--input-format","--json-schema","--max-budget-usd","--max-thinking-tokens","--max-turns","--model","--output-format","--permission-mode","--permission-prompt-tool","--provider","--resume-session-at","--session-id","--settings","--setting-sources","--system-prompt","--system-prompt-file","--thinking","--workload","-n","--name"]),SKILLS_LEADING_OPTIONAL_VALUE_FLAGS=new Set(["--continue","--from-pr","--print","-c","-p","-r","--resume"]),SKILLS_LEADING_MULTI_VALUE_FLAGS=new Set(["--add-dir","--allowedTools","--allowed-tools","--betas","--disallowedTools","--disallowed-tools","--file","--mcp-config","--plugin-dir","--provider-env-file","--tools"]);function getSkillsCliArgs(args){let additionalDirectories=[],sawPromptModeFlag=!1;for(let index=0;index<args.length;index+=1){let arg=args[index];if(arg==="skills"){if(sawPromptModeFlag)return;return{additionalDirectories,args:args.slice(index)}}if(SKILLS_LEADING_BOOLEAN_FLAGS.has(arg))continue;if(SKILLS_LEADING_MULTI_VALUE_FLAGS.has(arg)){let consumed=!1;while(args[index+1]&&!args[index+1].startsWith("-")){index+=1;let value=args[index];if(value==="skills"){if(sawPromptModeFlag)return;return{additionalDirectories,args:args.slice(index)}}if(value&&arg==="--add-dir")additionalDirectories.push(value);consumed=!0}if(!consumed)return;continue}let multiValueEqualsFlag=Array.from(SKILLS_LEADING_MULTI_VALUE_FLAGS).find((flag)=>arg?.startsWith(`${flag}=`));if(multiValueEqualsFlag){let value=arg.slice(`${multiValueEqualsFlag}=`.length);if(!value)return;if(multiValueEqualsFlag==="--add-dir")additionalDirectories.push(value);continue}if(SKILLS_LEADING_VALUE_FLAGS.has(arg)&&args[index+1]&&!args[index+1].startsWith("-")){index+=1;continue}if(Array.from(SKILLS_LEADING_VALUE_FLAGS).some((flag)=>arg?.startsWith(`${flag}=`)))continue;if(SKILLS_LEADING_OPTIONAL_VALUE_FLAGS.has(arg)){if(sawPromptModeFlag=!0,args[index+1]&&args[index+1]!=="skills"&&!args[index+1].startsWith("-"))index+=1;continue}if(Array.from(SKILLS_LEADING_OPTIONAL_VALUE_FLAGS).some((flag)=>arg?.startsWith(`${flag}=`))){sawPromptModeFlag=!0;continue}return}return}if(!process.env.NODE_OPTIONS?.includes("--max-old-space-size")){let existing=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=existing?`${existing} --max-old-space-size=8192`:"--max-old-space-size=8192"}var defaultCliEntrypointImporters={startupProfiler:()=>Promise.resolve().then(() => (init_startupProfiler(),exports_startupProfiler)),bg:()=>Promise.resolve().then(() => (init_bg(),exports_bg)),providerFlag:()=>Promise.resolve().then(() => (init_providerFlag(),exports_providerFlag)),envFile:()=>Promise.resolve().then(() => (init_envFile(),exports_envFile)),config:()=>Promise.resolve().then(() => (init_config(),exports_config)),managedEnv:()=>Promise.resolve().then(() => (init_managedEnv(),exports_managedEnv)),providerProfile:()=>Promise.resolve().then(() => (init_providerProfile(),exports_providerProfile)),providerValidation:()=>Promise.resolve().then(() => (init_providerValidation(),exports_providerValidation)),flagSettings:()=>Promise.resolve().then(() => (init_flagSettings(),exports_flagSettings)),agentRouting:()=>Promise.resolve().then(() => (init_agentRouting(),exports_agentRouting)),settings:()=>Promise.resolve().then(() => (init_settings3(),exports_settings)),cliArgs:()=>Promise.resolve().then(() => exports_cliArgs),githubModelsCredentials:()=>Promise.resolve().then(() => (init_githubModelsCredentials(),exports_githubModelsCredentials)),startupScreen:()=>Promise.resolve().then(() => (init_StartupScreen(),exports_StartupScreen)),earlyInput:()=>Promise.resolve().then(() => (init_earlyInput(),exports_earlyInput)),main:()=>Promise.resolve().then(() => (init_main3(),exports_main))};function getCliEntrypointImporters(overrides){return{...defaultCliEntrypointImporters,...overrides}}function isBgSessionsEnabled(options2){if(options2.bgSessionsEnabled!==void 0)return options2.bgSessionsEnabled;return!0}async function main2(args=process.argv.slice(2),options2={}){let bgSessionsEnabled=isBgSessionsEnabled(options2),importers=getCliEntrypointImporters(options2.importers),reapplyProviderEnvFileValues=()=>{},reapplyProviderFlagValues=()=>{},reapplyExplicitProviderInputs=()=>{reapplyProviderEnvFileValues(),reapplyProviderFlagValues()};if(args.length===1&&(args[0]==="--version"||args[0]==="-v"||args[0]==="-V")){console.log("0.25.0 (Claudio)");return}if(bgSessionsEnabled&&(args[0]==="ps"||args[0]==="logs"||args[0]==="attach"||args[0]==="kill")){let{profileCheckpoint:profileCheckpoint3}=await importers.startupProfiler();profileCheckpoint3("cli_bg_path");let bg=await importers.bg();switch(args[0]){case"ps":await bg.psHandler(args.slice(1));break;case"logs":await bg.logsHandler(args.slice(1));break;case"attach":await bg.attachHandler(args.slice(1));break;case"kill":await bg.killHandler(args.slice(1));break}return}{let{loadEnvFile:loadEnvFile2,parseProviderEnvFileArgs:parseProviderEnvFileArgs2,reapplyRememberedEnvFileValues:reapplyRememberedEnvFileValues2,rememberLoadedEnvFileValues:rememberLoadedEnvFileValues2}=await importers.envFile();reapplyProviderEnvFileValues=reapplyRememberedEnvFileValues2;let providerEnvFiles=parseProviderEnvFileArgs2(args);if(providerEnvFiles.error)console.error(providerEnvFiles.error),process.exit(1);for(let filePath of providerEnvFiles.paths)try{rememberLoadedEnvFileValues2(loadEnvFile2(filePath))}catch(err2){console.error(err2 instanceof Error?err2.message:String(err2)),process.exit(1)}}if(args.includes("--provider")){let{applyProviderFlagFromArgs:applyProviderFlagFromArgs2,reapplyRememberedProviderFlag:reapplyRememberedProviderFlag2}=await importers.providerFlag();reapplyProviderFlagValues=reapplyRememberedProviderFlag2;let result=applyProviderFlagFromArgs2(args,{rememberForSettingsEnv:!0});if(result?.error)console.error(`Error: ${result.error}`),process.exit(1)}{let{enableConfigs:enableConfigs2}=await importers.config();enableConfigs2()}{let{applySafeConfigEnvironmentVariables:applySafeConfigEnvironmentVariables2}=await importers.managedEnv();applySafeConfigEnvironmentVariables2()}reapplyExplicitProviderInputs();let skillsCliArgs=getSkillsCliArgs(args);if(skillsCliArgs){let{setAdditionalDirectoriesForClaudeMd:setAdditionalDirectoriesForClaudeMd2}=await Promise.resolve().then(() => (init_state(),exports_state));setAdditionalDirectoriesForClaudeMd2(skillsCliArgs.additionalDirectories);let{runSkillsCli:runSkillsCli2}=await Promise.resolve().then(() => (init_skillsCli(),exports_skillsCli));process.argv=[process.argv[0],process.argv[1],...skillsCliArgs.args],await runSkillsCli2(skillsCliArgs.args);return}let{applyStartupEnvFromProfile:applyStartupEnvFromProfile2}=await importers.providerProfile();await applyStartupEnvFromProfile2({processEnv:process.env,onValidationError:(message)=>{console.error(message)}}),reapplyExplicitProviderInputs();{let{eagerLoadSettingsFromArgs:eagerLoadSettingsFromArgs2}=await importers.flagSettings(),settingsLoadResult=eagerLoadSettingsFromArgs2(args);if(!settingsLoadResult.ok){if(settingsLoadResult.cause instanceof Error){let{logError:logError4}=await Promise.resolve().then(() => (init_log2(),exports_log));logError4(settingsLoadResult.cause)}let{default:chalk2}=await Promise.resolve().then(() => (init_source2(),exports_source));process.stderr.write(chalk2.red(`${settingsLoadResult.message}
|
|
11172
|
+
`;appendFile6(LOG_FILE,logLine2).catch(()=>{})}console.error(`[Claude Chrome Native Host] ${message}`,...args)}function sendChromeMessage(message){let jsonBytes=Buffer.from(message,"utf-8"),lengthBuffer=Buffer.alloc(4);lengthBuffer.writeUInt32LE(jsonBytes.length,0),process.stdout.write(lengthBuffer),process.stdout.write(jsonBytes)}async function runChromeNativeHost(){log2("Initializing...");let host=new ChromeNativeHost,messageReader=new ChromeMessageReader;await host.start();while(!0){let message=await messageReader.read();if(message===null)break;await host.handleMessage(message)}await host.stop()}class ChromeNativeHost{mcpClients=new Map;nextClientId=1;server=null;running=!1;socketPath=null;async start(){if(this.running)return;if(this.socketPath=getSecureSocketPath(),platform6()!=="win32"){let socketDir=getSocketDir();try{if(!(await stat61(socketDir)).isDirectory())await unlink31(socketDir)}catch{}await mkdir51(socketDir,{recursive:!0,mode:448}),await chmod12(socketDir,448).catch(()=>{});try{let files2=await readdir36(socketDir);for(let file2 of files2){if(!file2.endsWith(".sock"))continue;let pid=parseInt(file2.replace(".sock",""),10);if(isNaN(pid))continue;try{process.kill(pid,0)}catch{await unlink31(join180(socketDir,file2)).catch(()=>{}),log2(`Removed stale socket for PID ${pid}`)}}}catch{}}if(log2(`Creating socket listener: ${this.socketPath}`),this.server=createServer9((socket)=>this.handleMcpClient(socket)),await new Promise((resolve61,reject2)=>{this.server.listen(this.socketPath,()=>{log2("Socket server listening for connections"),this.running=!0,resolve61()}),this.server.on("error",(err2)=>{log2("Socket server error:",err2),reject2(err2)})}),platform6()!=="win32")try{await chmod12(this.socketPath,384),log2("Socket permissions set to 0600")}catch(e){log2("Failed to set socket permissions:",e)}}async stop(){if(!this.running)return;for(let[,client]of this.mcpClients)client.socket.destroy();if(this.mcpClients.clear(),this.server)await new Promise((resolve61)=>{this.server.close(()=>resolve61())}),this.server=null;if(platform6()!=="win32"&&this.socketPath){try{await unlink31(this.socketPath),log2("Cleaned up socket file")}catch{}try{let socketDir=getSocketDir();if((await readdir36(socketDir)).length===0)await rmdir3(socketDir),log2("Removed empty socket directory")}catch{}}this.running=!1}async isRunning(){return this.running}async getClientCount(){return this.mcpClients.size}async handleMessage(messageJson){let rawMessage;try{rawMessage=jsonParse(messageJson)}catch(e){log2("Invalid JSON from Chrome:",e.message),sendChromeMessage(jsonStringify({type:"error",error:"Invalid message format"}));return}let parsed=messageSchema().safeParse(rawMessage);if(!parsed.success){log2("Invalid message from Chrome:",parsed.error.message),sendChromeMessage(jsonStringify({type:"error",error:"Invalid message format"}));return}let message=parsed.data;switch(log2(`Handling Chrome message type: ${message.type}`),message.type){case"ping":log2("Responding to ping"),sendChromeMessage(jsonStringify({type:"pong",timestamp:Date.now()}));break;case"get_status":sendChromeMessage(jsonStringify({type:"status_response",native_host_version:VERSION5}));break;case"tool_response":{if(this.mcpClients.size>0){log2(`Forwarding tool response to ${this.mcpClients.size} MCP clients`);let{type:_,...data}=message,responseData=Buffer.from(jsonStringify(data),"utf-8"),lengthBuffer=Buffer.alloc(4);lengthBuffer.writeUInt32LE(responseData.length,0);let responseMsg=Buffer.concat([lengthBuffer,responseData]);for(let[id,client]of this.mcpClients)try{client.socket.write(responseMsg)}catch(e){log2(`Failed to send to MCP client ${id}:`,e)}}break}case"notification":{if(this.mcpClients.size>0){log2(`Forwarding notification to ${this.mcpClients.size} MCP clients`);let{type:_,...data}=message,notificationData=Buffer.from(jsonStringify(data),"utf-8"),lengthBuffer=Buffer.alloc(4);lengthBuffer.writeUInt32LE(notificationData.length,0);let notificationMsg=Buffer.concat([lengthBuffer,notificationData]);for(let[id,client]of this.mcpClients)try{client.socket.write(notificationMsg)}catch(e){log2(`Failed to send notification to MCP client ${id}:`,e)}}break}default:log2(`Unknown message type: ${message.type}`),sendChromeMessage(jsonStringify({type:"error",error:`Unknown message type: ${message.type}`}))}}handleMcpClient(socket){let clientId=this.nextClientId++,client={id:clientId,socket,buffer:Buffer.alloc(0)};this.mcpClients.set(clientId,client),log2(`MCP client ${clientId} connected. Total clients: ${this.mcpClients.size}`),sendChromeMessage(jsonStringify({type:"mcp_connected"})),socket.on("data",(data)=>{client.buffer=Buffer.concat([client.buffer,data]);while(client.buffer.length>=4){let length=client.buffer.readUInt32LE(0);if(length===0||length>MAX_MESSAGE_SIZE){log2(`Invalid message length from MCP client ${clientId}: ${length}`),socket.destroy();return}if(client.buffer.length<4+length)break;let messageBytes=client.buffer.slice(4,4+length);client.buffer=client.buffer.slice(4+length);try{let request=jsonParse(messageBytes.toString("utf-8"));log2(`Forwarding tool request from MCP client ${clientId}: ${request.method}`),sendChromeMessage(jsonStringify({type:"tool_request",method:request.method,params:request.params}))}catch(e){log2(`Failed to parse tool request from MCP client ${clientId}:`,e)}}}),socket.on("error",(err2)=>{log2(`MCP client ${clientId} error: ${err2}`)}),socket.on("close",()=>{log2(`MCP client ${clientId} disconnected. Remaining clients: ${this.mcpClients.size-1}`),this.mcpClients.delete(clientId),sendChromeMessage(jsonStringify({type:"mcp_disconnected"}))})}}class ChromeMessageReader{buffer=Buffer.alloc(0);pendingResolve=null;closed=!1;constructor(){process.stdin.on("data",(chunk2)=>{this.buffer=Buffer.concat([this.buffer,chunk2]),this.tryProcessMessage()}),process.stdin.on("end",()=>{if(this.closed=!0,this.pendingResolve)this.pendingResolve(null),this.pendingResolve=null}),process.stdin.on("error",()=>{if(this.closed=!0,this.pendingResolve)this.pendingResolve(null),this.pendingResolve=null})}tryProcessMessage(){if(!this.pendingResolve)return;if(this.buffer.length<4)return;let length=this.buffer.readUInt32LE(0);if(length===0||length>MAX_MESSAGE_SIZE){log2(`Invalid message length: ${length}`),this.pendingResolve(null),this.pendingResolve=null;return}if(this.buffer.length<4+length)return;let messageBytes=this.buffer.subarray(4,4+length);this.buffer=this.buffer.subarray(4+length);let message=messageBytes.toString("utf-8");this.pendingResolve(message),this.pendingResolve=null}async read(){if(this.closed)return null;if(this.buffer.length>=4){let length=this.buffer.readUInt32LE(0);if(length>0&&length<=MAX_MESSAGE_SIZE&&this.buffer.length>=4+length){let messageBytes=this.buffer.subarray(4,4+length);return this.buffer=this.buffer.subarray(4+length),messageBytes.toString("utf-8")}}return new Promise((resolve61)=>{this.pendingResolve=resolve61,this.tryProcessMessage()})}}var VERSION5="1.0.0",MAX_MESSAGE_SIZE=1048576,LOG_FILE,messageSchema;var init_chromeNativeHost=__esm(()=>{init_zod();init_slowOperations();init_common2();LOG_FILE=process.env.USER_TYPE==="ant"?join180(homedir47(),".openclaude","debug","chrome-native-host.txt"):void 0;messageSchema=lazySchema(()=>exports_external2.object({type:exports_external2.string()}).passthrough())});if(typeof globalThis.File>"u")try{let{File:NodeFile}=__require("node:buffer");globalThis.File=NodeFile}catch{globalThis.File=class extends Blob{name;lastModified;constructor(parts,name,opts){super(parts,opts);this.name=name,this.lastModified=opts?.lastModified??Date.now()}}}process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS??="true";process.env.COREPACK_ENABLE_AUTO_PIN="0";var SKILLS_LEADING_BOOLEAN_FLAGS=new Set(["--bare","--debug","--debug-to-stderr","--dangerously-skip-permissions","--allow-dangerously-skip-permissions","--disable-slash-commands","--enable-auth-status","--fork-session","--ide","--include-hook-events","--include-partial-messages","--init","--init-only","--maintenance","--mcp-debug","--no-chrome","--no-session-persistence","--replay-user-messages","--strict-mcp-config","--verbose"]),SKILLS_LEADING_VALUE_FLAGS=new Set(["--agent","--append-system-prompt","--append-system-prompt-file","--debug-file","--effort","--fallback-model","--heartbeat","--input-format","--json-schema","--max-budget-usd","--max-thinking-tokens","--max-turns","--model","--output-format","--permission-mode","--permission-prompt-tool","--provider","--resume-session-at","--session-id","--settings","--setting-sources","--system-prompt","--system-prompt-file","--thinking","--workload","-n","--name"]),SKILLS_LEADING_OPTIONAL_VALUE_FLAGS=new Set(["--continue","--from-pr","--print","-c","-p","-r","--resume"]),SKILLS_LEADING_MULTI_VALUE_FLAGS=new Set(["--add-dir","--allowedTools","--allowed-tools","--betas","--disallowedTools","--disallowed-tools","--file","--mcp-config","--plugin-dir","--provider-env-file","--tools"]);function getSkillsCliArgs(args){let additionalDirectories=[],sawPromptModeFlag=!1;for(let index=0;index<args.length;index+=1){let arg=args[index];if(arg==="skills"){if(sawPromptModeFlag)return;return{additionalDirectories,args:args.slice(index)}}if(SKILLS_LEADING_BOOLEAN_FLAGS.has(arg))continue;if(SKILLS_LEADING_MULTI_VALUE_FLAGS.has(arg)){let consumed=!1;while(args[index+1]&&!args[index+1].startsWith("-")){index+=1;let value=args[index];if(value==="skills"){if(sawPromptModeFlag)return;return{additionalDirectories,args:args.slice(index)}}if(value&&arg==="--add-dir")additionalDirectories.push(value);consumed=!0}if(!consumed)return;continue}let multiValueEqualsFlag=Array.from(SKILLS_LEADING_MULTI_VALUE_FLAGS).find((flag)=>arg?.startsWith(`${flag}=`));if(multiValueEqualsFlag){let value=arg.slice(`${multiValueEqualsFlag}=`.length);if(!value)return;if(multiValueEqualsFlag==="--add-dir")additionalDirectories.push(value);continue}if(SKILLS_LEADING_VALUE_FLAGS.has(arg)&&args[index+1]&&!args[index+1].startsWith("-")){index+=1;continue}if(Array.from(SKILLS_LEADING_VALUE_FLAGS).some((flag)=>arg?.startsWith(`${flag}=`)))continue;if(SKILLS_LEADING_OPTIONAL_VALUE_FLAGS.has(arg)){if(sawPromptModeFlag=!0,args[index+1]&&args[index+1]!=="skills"&&!args[index+1].startsWith("-"))index+=1;continue}if(Array.from(SKILLS_LEADING_OPTIONAL_VALUE_FLAGS).some((flag)=>arg?.startsWith(`${flag}=`))){sawPromptModeFlag=!0;continue}return}return}if(!process.env.NODE_OPTIONS?.includes("--max-old-space-size")){let existing=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=existing?`${existing} --max-old-space-size=8192`:"--max-old-space-size=8192"}var defaultCliEntrypointImporters={startupProfiler:()=>Promise.resolve().then(() => (init_startupProfiler(),exports_startupProfiler)),bg:()=>Promise.resolve().then(() => (init_bg(),exports_bg)),providerFlag:()=>Promise.resolve().then(() => (init_providerFlag(),exports_providerFlag)),envFile:()=>Promise.resolve().then(() => (init_envFile(),exports_envFile)),config:()=>Promise.resolve().then(() => (init_config(),exports_config)),managedEnv:()=>Promise.resolve().then(() => (init_managedEnv(),exports_managedEnv)),providerProfile:()=>Promise.resolve().then(() => (init_providerProfile(),exports_providerProfile)),providerValidation:()=>Promise.resolve().then(() => (init_providerValidation(),exports_providerValidation)),flagSettings:()=>Promise.resolve().then(() => (init_flagSettings(),exports_flagSettings)),agentRouting:()=>Promise.resolve().then(() => (init_agentRouting(),exports_agentRouting)),settings:()=>Promise.resolve().then(() => (init_settings3(),exports_settings)),cliArgs:()=>Promise.resolve().then(() => exports_cliArgs),githubModelsCredentials:()=>Promise.resolve().then(() => (init_githubModelsCredentials(),exports_githubModelsCredentials)),startupScreen:()=>Promise.resolve().then(() => (init_StartupScreen(),exports_StartupScreen)),earlyInput:()=>Promise.resolve().then(() => (init_earlyInput(),exports_earlyInput)),main:()=>Promise.resolve().then(() => (init_main3(),exports_main))};function getCliEntrypointImporters(overrides){return{...defaultCliEntrypointImporters,...overrides}}function isBgSessionsEnabled(options2){if(options2.bgSessionsEnabled!==void 0)return options2.bgSessionsEnabled;return!0}async function main2(args=process.argv.slice(2),options2={}){let bgSessionsEnabled=isBgSessionsEnabled(options2),importers=getCliEntrypointImporters(options2.importers),reapplyProviderEnvFileValues=()=>{},reapplyProviderFlagValues=()=>{},reapplyExplicitProviderInputs=()=>{reapplyProviderEnvFileValues(),reapplyProviderFlagValues()};if(args.length===1&&(args[0]==="--version"||args[0]==="-v"||args[0]==="-V")){console.log("0.25.1 (Claudio)");return}if(bgSessionsEnabled&&(args[0]==="ps"||args[0]==="logs"||args[0]==="attach"||args[0]==="kill")){let{profileCheckpoint:profileCheckpoint3}=await importers.startupProfiler();profileCheckpoint3("cli_bg_path");let bg=await importers.bg();switch(args[0]){case"ps":await bg.psHandler(args.slice(1));break;case"logs":await bg.logsHandler(args.slice(1));break;case"attach":await bg.attachHandler(args.slice(1));break;case"kill":await bg.killHandler(args.slice(1));break}return}{let{loadEnvFile:loadEnvFile2,parseProviderEnvFileArgs:parseProviderEnvFileArgs2,reapplyRememberedEnvFileValues:reapplyRememberedEnvFileValues2,rememberLoadedEnvFileValues:rememberLoadedEnvFileValues2}=await importers.envFile();reapplyProviderEnvFileValues=reapplyRememberedEnvFileValues2;let providerEnvFiles=parseProviderEnvFileArgs2(args);if(providerEnvFiles.error)console.error(providerEnvFiles.error),process.exit(1);for(let filePath of providerEnvFiles.paths)try{rememberLoadedEnvFileValues2(loadEnvFile2(filePath))}catch(err2){console.error(err2 instanceof Error?err2.message:String(err2)),process.exit(1)}}if(args.includes("--provider")){let{applyProviderFlagFromArgs:applyProviderFlagFromArgs2,reapplyRememberedProviderFlag:reapplyRememberedProviderFlag2}=await importers.providerFlag();reapplyProviderFlagValues=reapplyRememberedProviderFlag2;let result=applyProviderFlagFromArgs2(args,{rememberForSettingsEnv:!0});if(result?.error)console.error(`Error: ${result.error}`),process.exit(1)}{let{enableConfigs:enableConfigs2}=await importers.config();enableConfigs2()}{let{applySafeConfigEnvironmentVariables:applySafeConfigEnvironmentVariables2}=await importers.managedEnv();applySafeConfigEnvironmentVariables2()}reapplyExplicitProviderInputs();let skillsCliArgs=getSkillsCliArgs(args);if(skillsCliArgs){let{setAdditionalDirectoriesForClaudeMd:setAdditionalDirectoriesForClaudeMd2}=await Promise.resolve().then(() => (init_state(),exports_state));setAdditionalDirectoriesForClaudeMd2(skillsCliArgs.additionalDirectories);let{runSkillsCli:runSkillsCli2}=await Promise.resolve().then(() => (init_skillsCli(),exports_skillsCli));process.argv=[process.argv[0],process.argv[1],...skillsCliArgs.args],await runSkillsCli2(skillsCliArgs.args);return}let{applyStartupEnvFromProfile:applyStartupEnvFromProfile2}=await importers.providerProfile();await applyStartupEnvFromProfile2({processEnv:process.env,onValidationError:(message)=>{console.error(message)}}),reapplyExplicitProviderInputs();{let{eagerLoadSettingsFromArgs:eagerLoadSettingsFromArgs2}=await importers.flagSettings(),settingsLoadResult=eagerLoadSettingsFromArgs2(args);if(!settingsLoadResult.ok){if(settingsLoadResult.cause instanceof Error){let{logError:logError4}=await Promise.resolve().then(() => (init_log2(),exports_log));logError4(settingsLoadResult.cause)}let{default:chalk2}=await Promise.resolve().then(() => (init_source2(),exports_source));process.stderr.write(chalk2.red(`${settingsLoadResult.message}
|
|
11173
11173
|
`)),process.exit(1)}let{applyAgentProviderOverrideToEnv:applyAgentProviderOverrideToEnv2,resolveOutOfProcessTeammateProviderFromCliArgs:resolveOutOfProcessTeammateProviderFromCliArgs2}=await importers.agentRouting(),{getInitialSettings:getInitialSettings2}=await importers.settings(),providerOverride=resolveOutOfProcessTeammateProviderFromCliArgs2(args,getInitialSettings2());if(providerOverride)applyAgentProviderOverrideToEnv2(providerOverride)}if(bgSessionsEnabled){let{argsBeforeDelimiter:argsBeforeDelimiter2}=await importers.cliArgs(),optionArgs=argsBeforeDelimiter2(args);if(optionArgs.includes("--bg")||optionArgs.includes("--background")){let{profileCheckpoint:profileCheckpoint3}=await importers.startupProfiler();profileCheckpoint3("cli_bg_path"),await(await importers.bg()).handleBgFlag(args);return}}{let{hydrateGithubModelsTokenFromSecureStorage:hydrateGithubModelsTokenFromSecureStorage2,refreshGithubModelsTokenIfNeeded:refreshGithubModelsTokenIfNeeded2}=await importers.githubModelsCredentials();await refreshGithubModelsTokenIfNeeded2(),hydrateGithubModelsTokenFromSecureStorage2()}let{validateProviderEnvForStartupOrExit:validateProviderEnvForStartupOrExit2}=await importers.providerValidation();if(await validateProviderEnvForStartupOrExit2(),args.includes("--model")){let{applyModelFlagFromArgs:applyModelFlagFromArgs2}=await importers.providerFlag();applyModelFlagFromArgs2(args)}let{eagerParseCliFlag:eagerParseCliFlag2}=await importers.cliArgs(),earlyModelFlag=eagerParseCliFlag2("--model");if(args[0]!=="skills"){let{printStartupScreen:printStartupScreen2}=await importers.startupScreen();printStartupScreen2(earlyModelFlag)}let{profileCheckpoint:profileCheckpoint2}=await importers.startupProfiler();if(profileCheckpoint2("cli_entry"),args[0]==="--dump-system-prompt"){profileCheckpoint2("cli_dump_system_prompt_path");let{enableConfigs:enableConfigs2}=await Promise.resolve().then(() => (init_config(),exports_config));enableConfigs2();let{getMainLoopModel:getMainLoopModel2}=await Promise.resolve().then(() => (init_model(),exports_model)),modelIdx=args.indexOf("--model"),model=modelIdx!==-1&&args[modelIdx+1]||getMainLoopModel2(),{getSystemPrompt:getSystemPrompt2}=await Promise.resolve().then(() => (init_prompts4(),exports_prompts)),prompt=await getSystemPrompt2([],model);console.log(prompt.join(`
|
|
11174
11174
|
`));return}if(process.argv[2]==="--claude-in-chrome-mcp"){profileCheckpoint2("cli_claude_in_chrome_mcp_path");let{runClaudeInChromeMcpServer:runClaudeInChromeMcpServer2}=await Promise.resolve().then(() => (init_mcpServer(),exports_mcpServer));await runClaudeInChromeMcpServer2();return}else if(process.argv[2]==="--chrome-native-host"){profileCheckpoint2("cli_chrome_native_host_path");let{runChromeNativeHost:runChromeNativeHost2}=await Promise.resolve().then(() => (init_chromeNativeHost(),exports_chromeNativeHost));await runChromeNativeHost2();return}if((args.includes("--tmux")||args.includes("--tmux=classic"))&&(args.includes("-w")||args.includes("--worktree")||args.some((a2)=>a2.startsWith("--worktree=")))){profileCheckpoint2("cli_tmux_worktree_fast_path");let{enableConfigs:enableConfigs2}=await Promise.resolve().then(() => (init_config(),exports_config));enableConfigs2();let{isWorktreeModeEnabled:isWorktreeModeEnabled2}=await Promise.resolve().then(() => exports_worktreeModeEnabled);if(isWorktreeModeEnabled2()){let{execIntoTmuxWorktree:execIntoTmuxWorktree2}=await Promise.resolve().then(() => (init_worktree(),exports_worktree)),result=await execIntoTmuxWorktree2(args);if(result.handled)return;if(result.error){let{exitWithError:exitWithError3}=await Promise.resolve().then(() => exports_process);exitWithError3(result.error)}}}if(args.length===1&&(args[0]==="--update"||args[0]==="--upgrade"))process.argv=[process.argv[0],process.argv[1],"update"];if(args.includes("--bare"))process.env.CLAUDE_CODE_SIMPLE="1";if(process.env.OPENCLAUDE_DISABLE_EARLY_INPUT!=="1"){let{startCapturingEarlyInput:startCapturingEarlyInput2}=await importers.earlyInput();startCapturingEarlyInput2()}profileCheckpoint2("cli_before_main_import");let{main:cliMain}=await importers.main();profileCheckpoint2("cli_after_main_import"),await cliMain(),profileCheckpoint2("cli_after_main_complete")}if(process.env.OPENCLAUDE_DISABLE_CLI_ENTRYPOINT_AUTO_RUN!=="1")await main2();export{main2 as main};
|
|
11175
11175
|
|
|
11176
|
-
//# debugId=
|
|
11176
|
+
//# debugId=F41DACD8AF5E60E064756E2164756E21
|