iclavue 11.2.19 → 11.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __createRequire } from "node:module";
2
2
  const require = __createRequire(import.meta.url);
3
- // clavue v11.2.19 openai-responses-adapter (built from source)
3
+ // clavue v11.2.21 openai-responses-adapter (built from source)
4
4
  var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __knownSymbol=(name,symbol2)=>(symbol2=Symbol[name])?symbol2:Symbol.for("Symbol."+name),__typeError=msg=>{throw TypeError(msg)};var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0}),__require=(x2=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x2,{get:(a2,b)=>(typeof require<"u"?require:a2)[b]}):x2)(function(x2){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x2+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all3)=>{for(var name in all3)__defProp(target,name,{get:all3[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var __using=(stack,value,async)=>{if(value!=null){typeof value!="object"&&typeof value!="function"&&__typeError("Object expected");var dispose,inner;async&&(dispose=value[__knownSymbol("asyncDispose")]),dispose===void 0&&(dispose=value[__knownSymbol("dispose")],async&&(inner=dispose)),typeof dispose!="function"&&__typeError("Object not disposable"),inner&&(dispose=function(){try{inner.call(this)}catch(e2){return Promise.reject(e2)}}),stack.push([async,dispose,value])}else async&&stack.push([async]);return value},__callDispose=(stack,error40,hasError)=>{var E=typeof SuppressedError=="function"?SuppressedError:function(e2,s2,m2,_){return _=Error(m2),_.name="SuppressedError",_.error=e2,_.suppressed=s2,_},fail=e2=>error40=hasError?new E(e2,error40,"An error was suppressed during disposal"):(hasError=!0,e2),next=it=>{for(;it=stack.pop();)try{var result2=it[1]&&it[1].call(it[2]);if(it[0])return Promise.resolve(result2).then(next,e2=>(fail(e2),next()))}catch(e2){fail(e2)}if(hasError)throw error40};return next()};var freeGlobal,freeGlobal_default,init_freeGlobal=__esm({"../../node_modules/lodash-es/_freeGlobal.js"(){freeGlobal=typeof global=="object"&&global&&global.Object===Object&&global,freeGlobal_default=freeGlobal}});var freeSelf,root,root_default,init_root=__esm({"../../node_modules/lodash-es/_root.js"(){init_freeGlobal();freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root=freeGlobal_default||freeSelf||Function("return this")(),root_default=root}});var Symbol2,Symbol_default,init_Symbol=__esm({"../../node_modules/lodash-es/_Symbol.js"(){init_root();Symbol2=root_default.Symbol,Symbol_default=Symbol2}});function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=void 0;var unmasked=!0}catch{}var result2=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result2}var objectProto,hasOwnProperty,nativeObjectToString,symToStringTag,getRawTag_default,init_getRawTag=__esm({"../../node_modules/lodash-es/_getRawTag.js"(){init_Symbol();objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=Symbol_default?Symbol_default.toStringTag:void 0;__name(getRawTag,"getRawTag");getRawTag_default=getRawTag}});function objectToString(value){return nativeObjectToString2.call(value)}var objectProto2,nativeObjectToString2,objectToString_default,init_objectToString=__esm({"../../node_modules/lodash-es/_objectToString.js"(){objectProto2=Object.prototype,nativeObjectToString2=objectProto2.toString;__name(objectToString,"objectToString");objectToString_default=objectToString}});function baseGetTag(value){return value==null?value===void 0?undefinedTag:nullTag:symToStringTag2&&symToStringTag2 in Object(value)?getRawTag_default(value):objectToString_default(value)}var nullTag,undefinedTag,symToStringTag2,baseGetTag_default,init_baseGetTag=__esm({"../../node_modules/lodash-es/_baseGetTag.js"(){init_Symbol();init_getRawTag();init_objectToString();nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag2=Symbol_default?Symbol_default.toStringTag:void 0;__name(baseGetTag,"baseGetTag");baseGetTag_default=baseGetTag}});function isObject(value){var type=typeof value;return value!=null&&(type=="object"||type=="function")}var isObject_default,init_isObject=__esm({"../../node_modules/lodash-es/isObject.js"(){__name(isObject,"isObject");isObject_default=isObject}});function isFunction(value){if(!isObject_default(value))return!1;var tag=baseGetTag_default(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}var asyncTag,funcTag,genTag,proxyTag,isFunction_default,init_isFunction=__esm({"../../node_modules/lodash-es/isFunction.js"(){init_baseGetTag();init_isObject();asyncTag="[object AsyncFunction]",funcTag="[object Function]",genTag="[object GeneratorFunction]",proxyTag="[object Proxy]";__name(isFunction,"isFunction");isFunction_default=isFunction}});var coreJsData,coreJsData_default,init_coreJsData=__esm({"../../node_modules/lodash-es/_coreJsData.js"(){init_root();coreJsData=root_default["__core-js_shared__"],coreJsData_default=coreJsData}});function isMasked(func){return!!maskSrcKey&&maskSrcKey in func}var maskSrcKey,isMasked_default,init_isMasked=__esm({"../../node_modules/lodash-es/_isMasked.js"(){init_coreJsData();maskSrcKey=(function(){var uid=/[^.]+$/.exec(coreJsData_default&&coreJsData_default.keys&&coreJsData_default.keys.IE_PROTO||"");return uid?"Symbol(src)_1."+uid:""})();__name(isMasked,"isMasked");isMasked_default=isMasked}});function toSource(func){if(func!=null){try{return funcToString.call(func)}catch{}try{return func+""}catch{}}return""}var funcProto,funcToString,toSource_default,init_toSource=__esm({"../../node_modules/lodash-es/_toSource.js"(){funcProto=Function.prototype,funcToString=funcProto.toString;__name(toSource,"toSource");toSource_default=toSource}});function baseIsNative(value){if(!isObject_default(value)||isMasked_default(value))return!1;var pattern=isFunction_default(value)?reIsNative:reIsHostCtor;return pattern.test(toSource_default(value))}var reRegExpChar,reIsHostCtor,funcProto2,objectProto3,funcToString2,hasOwnProperty2,reIsNative,baseIsNative_default,init_baseIsNative=__esm({"../../node_modules/lodash-es/_baseIsNative.js"(){init_isFunction();init_isMasked();init_isObject();init_toSource();reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor=/^\[object .+?Constructor\]$/,funcProto2=Function.prototype,objectProto3=Object.prototype,funcToString2=funcProto2.toString,hasOwnProperty2=objectProto3.hasOwnProperty,reIsNative=RegExp("^"+funcToString2.call(hasOwnProperty2).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");__name(baseIsNative,"baseIsNative");baseIsNative_default=baseIsNative}});function getValue(object2,key){return object2?.[key]}var getValue_default,init_getValue=__esm({"../../node_modules/lodash-es/_getValue.js"(){__name(getValue,"getValue");getValue_default=getValue}});function getNative(object2,key){var value=getValue_default(object2,key);return baseIsNative_default(value)?value:void 0}var getNative_default,init_getNative=__esm({"../../node_modules/lodash-es/_getNative.js"(){init_baseIsNative();init_getValue();__name(getNative,"getNative");getNative_default=getNative}});var nativeCreate,nativeCreate_default,init_nativeCreate=__esm({"../../node_modules/lodash-es/_nativeCreate.js"(){init_getNative();nativeCreate=getNative_default(Object,"create"),nativeCreate_default=nativeCreate}});function hashClear(){this.__data__=nativeCreate_default?nativeCreate_default(null):{},this.size=0}var hashClear_default,init_hashClear=__esm({"../../node_modules/lodash-es/_hashClear.js"(){init_nativeCreate();__name(hashClear,"hashClear");hashClear_default=hashClear}});function hashDelete(key){var result2=this.has(key)&&delete this.__data__[key];return this.size-=result2?1:0,result2}var hashDelete_default,init_hashDelete=__esm({"../../node_modules/lodash-es/_hashDelete.js"(){__name(hashDelete,"hashDelete");hashDelete_default=hashDelete}});function hashGet(key){var data=this.__data__;if(nativeCreate_default){var result2=data[key];return result2===HASH_UNDEFINED?void 0:result2}return hasOwnProperty3.call(data,key)?data[key]:void 0}var HASH_UNDEFINED,objectProto4,hasOwnProperty3,hashGet_default,init_hashGet=__esm({"../../node_modules/lodash-es/_hashGet.js"(){init_nativeCreate();HASH_UNDEFINED="__lodash_hash_undefined__",objectProto4=Object.prototype,hasOwnProperty3=objectProto4.hasOwnProperty;__name(hashGet,"hashGet");hashGet_default=hashGet}});function hashHas(key){var data=this.__data__;return nativeCreate_default?data[key]!==void 0:hasOwnProperty4.call(data,key)}var objectProto5,hasOwnProperty4,hashHas_default,init_hashHas=__esm({"../../node_modules/lodash-es/_hashHas.js"(){init_nativeCreate();objectProto5=Object.prototype,hasOwnProperty4=objectProto5.hasOwnProperty;__name(hashHas,"hashHas");hashHas_default=hashHas}});function hashSet(key,value){var data=this.__data__;return this.size+=this.has(key)?0:1,data[key]=nativeCreate_default&&value===void 0?HASH_UNDEFINED2:value,this}var HASH_UNDEFINED2,hashSet_default,init_hashSet=__esm({"../../node_modules/lodash-es/_hashSet.js"(){init_nativeCreate();HASH_UNDEFINED2="__lodash_hash_undefined__";__name(hashSet,"hashSet");hashSet_default=hashSet}});function Hash(entries){var index=-1,length=entries==null?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}var Hash_default,init_Hash=__esm({"../../node_modules/lodash-es/_Hash.js"(){init_hashClear();init_hashDelete();init_hashGet();init_hashHas();init_hashSet();__name(Hash,"Hash");Hash.prototype.clear=hashClear_default;Hash.prototype.delete=hashDelete_default;Hash.prototype.get=hashGet_default;Hash.prototype.has=hashHas_default;Hash.prototype.set=hashSet_default;Hash_default=Hash}});function listCacheClear(){this.__data__=[],this.size=0}var listCacheClear_default,init_listCacheClear=__esm({"../../node_modules/lodash-es/_listCacheClear.js"(){__name(listCacheClear,"listCacheClear");listCacheClear_default=listCacheClear}});function eq(value,other){return value===other||value!==value&&other!==other}var eq_default,init_eq=__esm({"../../node_modules/lodash-es/eq.js"(){__name(eq,"eq");eq_default=eq}});function assocIndexOf(array2,key){for(var length=array2.length;length--;)if(eq_default(array2[length][0],key))return length;return-1}var assocIndexOf_default,init_assocIndexOf=__esm({"../../node_modules/lodash-es/_assocIndexOf.js"(){init_eq();__name(assocIndexOf,"assocIndexOf");assocIndexOf_default=assocIndexOf}});function listCacheDelete(key){var data=this.__data__,index=assocIndexOf_default(data,key);if(index<0)return!1;var lastIndex=data.length-1;return index==lastIndex?data.pop():splice.call(data,index,1),--this.size,!0}var arrayProto,splice,listCacheDelete_default,init_listCacheDelete=__esm({"../../node_modules/lodash-es/_listCacheDelete.js"(){init_assocIndexOf();arrayProto=Array.prototype,splice=arrayProto.splice;__name(listCacheDelete,"listCacheDelete");listCacheDelete_default=listCacheDelete}});function listCacheGet(key){var data=this.__data__,index=assocIndexOf_default(data,key);return index<0?void 0:data[index][1]}var listCacheGet_default,init_listCacheGet=__esm({"../../node_modules/lodash-es/_listCacheGet.js"(){init_assocIndexOf();__name(listCacheGet,"listCacheGet");listCacheGet_default=listCacheGet}});function listCacheHas(key){return assocIndexOf_default(this.__data__,key)>-1}var listCacheHas_default,init_listCacheHas=__esm({"../../node_modules/lodash-es/_listCacheHas.js"(){init_assocIndexOf();__name(listCacheHas,"listCacheHas");listCacheHas_default=listCacheHas}});function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf_default(data,key);return index<0?(++this.size,data.push([key,value])):data[index][1]=value,this}var listCacheSet_default,init_listCacheSet=__esm({"../../node_modules/lodash-es/_listCacheSet.js"(){init_assocIndexOf();__name(listCacheSet,"listCacheSet");listCacheSet_default=listCacheSet}});function ListCache(entries){var index=-1,length=entries==null?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}var ListCache_default,init_ListCache=__esm({"../../node_modules/lodash-es/_ListCache.js"(){init_listCacheClear();init_listCacheDelete();init_listCacheGet();init_listCacheHas();init_listCacheSet();__name(ListCache,"ListCache");ListCache.prototype.clear=listCacheClear_default;ListCache.prototype.delete=listCacheDelete_default;ListCache.prototype.get=listCacheGet_default;ListCache.prototype.has=listCacheHas_default;ListCache.prototype.set=listCacheSet_default;ListCache_default=ListCache}});var Map2,Map_default,init_Map=__esm({"../../node_modules/lodash-es/_Map.js"(){init_getNative();init_root();Map2=getNative_default(root_default,"Map"),Map_default=Map2}});function mapCacheClear(){this.size=0,this.__data__={hash:new Hash_default,map:new(Map_default||ListCache_default),string:new Hash_default}}var mapCacheClear_default,init_mapCacheClear=__esm({"../../node_modules/lodash-es/_mapCacheClear.js"(){init_Hash();init_ListCache();init_Map();__name(mapCacheClear,"mapCacheClear");mapCacheClear_default=mapCacheClear}});function isKeyable(value){var type=typeof value;return type=="string"||type=="number"||type=="symbol"||type=="boolean"?value!=="__proto__":value===null}var isKeyable_default,init_isKeyable=__esm({"../../node_modules/lodash-es/_isKeyable.js"(){__name(isKeyable,"isKeyable");isKeyable_default=isKeyable}});function getMapData(map3,key){var data=map3.__data__;return isKeyable_default(key)?data[typeof key=="string"?"string":"hash"]:data.map}var getMapData_default,init_getMapData=__esm({"../../node_modules/lodash-es/_getMapData.js"(){init_isKeyable();__name(getMapData,"getMapData");getMapData_default=getMapData}});function mapCacheDelete(key){var result2=getMapData_default(this,key).delete(key);return this.size-=result2?1:0,result2}var mapCacheDelete_default,init_mapCacheDelete=__esm({"../../node_modules/lodash-es/_mapCacheDelete.js"(){init_getMapData();__name(mapCacheDelete,"mapCacheDelete");mapCacheDelete_default=mapCacheDelete}});function mapCacheGet(key){return getMapData_default(this,key).get(key)}var mapCacheGet_default,init_mapCacheGet=__esm({"../../node_modules/lodash-es/_mapCacheGet.js"(){init_getMapData();__name(mapCacheGet,"mapCacheGet");mapCacheGet_default=mapCacheGet}});function mapCacheHas(key){return getMapData_default(this,key).has(key)}var mapCacheHas_default,init_mapCacheHas=__esm({"../../node_modules/lodash-es/_mapCacheHas.js"(){init_getMapData();__name(mapCacheHas,"mapCacheHas");mapCacheHas_default=mapCacheHas}});function mapCacheSet(key,value){var data=getMapData_default(this,key),size2=data.size;return data.set(key,value),this.size+=data.size==size2?0:1,this}var mapCacheSet_default,init_mapCacheSet=__esm({"../../node_modules/lodash-es/_mapCacheSet.js"(){init_getMapData();__name(mapCacheSet,"mapCacheSet");mapCacheSet_default=mapCacheSet}});function MapCache(entries){var index=-1,length=entries==null?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}var MapCache_default,init_MapCache=__esm({"../../node_modules/lodash-es/_MapCache.js"(){init_mapCacheClear();init_mapCacheDelete();init_mapCacheGet();init_mapCacheHas();init_mapCacheSet();__name(MapCache,"MapCache");MapCache.prototype.clear=mapCacheClear_default;MapCache.prototype.delete=mapCacheDelete_default;MapCache.prototype.get=mapCacheGet_default;MapCache.prototype.has=mapCacheHas_default;MapCache.prototype.set=mapCacheSet_default;MapCache_default=MapCache}});function memoize(func,resolver){if(typeof func!="function"||resolver!=null&&typeof resolver!="function")throw new TypeError(FUNC_ERROR_TEXT);var memoized=__name(function(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache2=memoized.cache;if(cache2.has(key))return cache2.get(key);var result2=func.apply(this,args);return memoized.cache=cache2.set(key,result2)||cache2,result2},"memoized");return memoized.cache=new(memoize.Cache||MapCache_default),memoized}var FUNC_ERROR_TEXT,memoize_default,init_memoize=__esm({"../../node_modules/lodash-es/memoize.js"(){init_MapCache();FUNC_ERROR_TEXT="Expected a function";__name(memoize,"memoize");memoize.Cache=MapCache_default;memoize_default=memoize}});function arrayMap(array2,iteratee2){for(var index=-1,length=array2==null?0:array2.length,result2=Array(length);++index<length;)result2[index]=iteratee2(array2[index],index,array2);return result2}var arrayMap_default,init_arrayMap=__esm({"../../node_modules/lodash-es/_arrayMap.js"(){__name(arrayMap,"arrayMap");arrayMap_default=arrayMap}});function stackClear(){this.__data__=new ListCache_default,this.size=0}var stackClear_default,init_stackClear=__esm({"../../node_modules/lodash-es/_stackClear.js"(){init_ListCache();__name(stackClear,"stackClear");stackClear_default=stackClear}});function stackDelete(key){var data=this.__data__,result2=data.delete(key);return this.size=data.size,result2}var stackDelete_default,init_stackDelete=__esm({"../../node_modules/lodash-es/_stackDelete.js"(){__name(stackDelete,"stackDelete");stackDelete_default=stackDelete}});function stackGet(key){return this.__data__.get(key)}var stackGet_default,init_stackGet=__esm({"../../node_modules/lodash-es/_stackGet.js"(){__name(stackGet,"stackGet");stackGet_default=stackGet}});function stackHas(key){return this.__data__.has(key)}var stackHas_default,init_stackHas=__esm({"../../node_modules/lodash-es/_stackHas.js"(){__name(stackHas,"stackHas");stackHas_default=stackHas}});function stackSet(key,value){var data=this.__data__;if(data instanceof ListCache_default){var pairs=data.__data__;if(!Map_default||pairs.length<LARGE_ARRAY_SIZE-1)return pairs.push([key,value]),this.size=++data.size,this;data=this.__data__=new MapCache_default(pairs)}return data.set(key,value),this.size=data.size,this}var LARGE_ARRAY_SIZE,stackSet_default,init_stackSet=__esm({"../../node_modules/lodash-es/_stackSet.js"(){init_ListCache();init_Map();init_MapCache();LARGE_ARRAY_SIZE=200;__name(stackSet,"stackSet");stackSet_default=stackSet}});function Stack(entries){var data=this.__data__=new ListCache_default(entries);this.size=data.size}var Stack_default,init_Stack=__esm({"../../node_modules/lodash-es/_Stack.js"(){init_ListCache();init_stackClear();init_stackDelete();init_stackGet();init_stackHas();init_stackSet();__name(Stack,"Stack");Stack.prototype.clear=stackClear_default;Stack.prototype.delete=stackDelete_default;Stack.prototype.get=stackGet_default;Stack.prototype.has=stackHas_default;Stack.prototype.set=stackSet_default;Stack_default=Stack}});function setCacheAdd(value){return this.__data__.set(value,HASH_UNDEFINED3),this}var HASH_UNDEFINED3,setCacheAdd_default,init_setCacheAdd=__esm({"../../node_modules/lodash-es/_setCacheAdd.js"(){HASH_UNDEFINED3="__lodash_hash_undefined__";__name(setCacheAdd,"setCacheAdd");setCacheAdd_default=setCacheAdd}});function setCacheHas(value){return this.__data__.has(value)}var setCacheHas_default,init_setCacheHas=__esm({"../../node_modules/lodash-es/_setCacheHas.js"(){__name(setCacheHas,"setCacheHas");setCacheHas_default=setCacheHas}});function SetCache(values2){var index=-1,length=values2==null?0:values2.length;for(this.__data__=new MapCache_default;++index<length;)this.add(values2[index])}var SetCache_default,init_SetCache=__esm({"../../node_modules/lodash-es/_SetCache.js"(){init_MapCache();init_setCacheAdd();init_setCacheHas();__name(SetCache,"SetCache");SetCache.prototype.add=SetCache.prototype.push=setCacheAdd_default;SetCache.prototype.has=setCacheHas_default;SetCache_default=SetCache}});function arraySome(array2,predicate){for(var index=-1,length=array2==null?0:array2.length;++index<length;)if(predicate(array2[index],index,array2))return!0;return!1}var arraySome_default,init_arraySome=__esm({"../../node_modules/lodash-es/_arraySome.js"(){__name(arraySome,"arraySome");arraySome_default=arraySome}});function cacheHas(cache2,key){return cache2.has(key)}var cacheHas_default,init_cacheHas=__esm({"../../node_modules/lodash-es/_cacheHas.js"(){__name(cacheHas,"cacheHas");cacheHas_default=cacheHas}});function equalArrays(array2,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,arrLength=array2.length,othLength=other.length;if(arrLength!=othLength&&!(isPartial&&othLength>arrLength))return!1;var arrStacked=stack.get(array2),othStacked=stack.get(other);if(arrStacked&&othStacked)return arrStacked==other&&othStacked==array2;var index=-1,result2=!0,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache_default:void 0;for(stack.set(array2,other),stack.set(other,array2);++index<arrLength;){var arrValue=array2[index],othValue=other[index];if(customizer)var compared=isPartial?customizer(othValue,arrValue,index,other,array2,stack):customizer(arrValue,othValue,index,array2,other,stack);if(compared!==void 0){if(compared)continue;result2=!1;break}if(seen){if(!arraySome_default(other,function(othValue2,othIndex){if(!cacheHas_default(seen,othIndex)&&(arrValue===othValue2||equalFunc(arrValue,othValue2,bitmask,customizer,stack)))return seen.push(othIndex)})){result2=!1;break}}else if(!(arrValue===othValue||equalFunc(arrValue,othValue,bitmask,customizer,stack))){result2=!1;break}}return stack.delete(array2),stack.delete(other),result2}var COMPARE_PARTIAL_FLAG,COMPARE_UNORDERED_FLAG,equalArrays_default,init_equalArrays=__esm({"../../node_modules/lodash-es/_equalArrays.js"(){init_SetCache();init_arraySome();init_cacheHas();COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2;__name(equalArrays,"equalArrays");equalArrays_default=equalArrays}});var Uint8Array2,Uint8Array_default,init_Uint8Array=__esm({"../../node_modules/lodash-es/_Uint8Array.js"(){init_root();Uint8Array2=root_default.Uint8Array,Uint8Array_default=Uint8Array2}});function mapToArray(map3){var index=-1,result2=Array(map3.size);return map3.forEach(function(value,key){result2[++index]=[key,value]}),result2}var mapToArray_default,init_mapToArray=__esm({"../../node_modules/lodash-es/_mapToArray.js"(){__name(mapToArray,"mapToArray");mapToArray_default=mapToArray}});function setToArray(set3){var index=-1,result2=Array(set3.size);return set3.forEach(function(value){result2[++index]=value}),result2}var setToArray_default,init_setToArray=__esm({"../../node_modules/lodash-es/_setToArray.js"(){__name(setToArray,"setToArray");setToArray_default=setToArray}});function equalByTag(object2,other,tag,bitmask,customizer,equalFunc,stack){switch(tag){case dataViewTag:if(object2.byteLength!=other.byteLength||object2.byteOffset!=other.byteOffset)return!1;object2=object2.buffer,other=other.buffer;case arrayBufferTag:return!(object2.byteLength!=other.byteLength||!equalFunc(new Uint8Array_default(object2),new Uint8Array_default(other)));case boolTag:case dateTag:case numberTag:return eq_default(+object2,+other);case errorTag:return object2.name==other.name&&object2.message==other.message;case regexpTag:case stringTag:return object2==other+"";case mapTag:var convert=mapToArray_default;case setTag:var isPartial=bitmask&COMPARE_PARTIAL_FLAG2;if(convert||(convert=setToArray_default),object2.size!=other.size&&!isPartial)return!1;var stacked=stack.get(object2);if(stacked)return stacked==other;bitmask|=COMPARE_UNORDERED_FLAG2,stack.set(object2,other);var result2=equalArrays_default(convert(object2),convert(other),bitmask,customizer,equalFunc,stack);return stack.delete(object2),result2;case symbolTag:if(symbolValueOf)return symbolValueOf.call(object2)==symbolValueOf.call(other)}return!1}var COMPARE_PARTIAL_FLAG2,COMPARE_UNORDERED_FLAG2,boolTag,dateTag,errorTag,mapTag,numberTag,regexpTag,setTag,stringTag,symbolTag,arrayBufferTag,dataViewTag,symbolProto,symbolValueOf,equalByTag_default,init_equalByTag=__esm({"../../node_modules/lodash-es/_equalByTag.js"(){init_Symbol();init_Uint8Array();init_eq();init_equalArrays();init_mapToArray();init_setToArray();COMPARE_PARTIAL_FLAG2=1,COMPARE_UNORDERED_FLAG2=2,boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",mapTag="[object Map]",numberTag="[object Number]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",symbolProto=Symbol_default?Symbol_default.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;__name(equalByTag,"equalByTag");equalByTag_default=equalByTag}});function arrayPush(array2,values2){for(var index=-1,length=values2.length,offset=array2.length;++index<length;)array2[offset+index]=values2[index];return array2}var arrayPush_default,init_arrayPush=__esm({"../../node_modules/lodash-es/_arrayPush.js"(){__name(arrayPush,"arrayPush");arrayPush_default=arrayPush}});var isArray,isArray_default,init_isArray=__esm({"../../node_modules/lodash-es/isArray.js"(){isArray=Array.isArray,isArray_default=isArray}});function baseGetAllKeys(object2,keysFunc,symbolsFunc){var result2=keysFunc(object2);return isArray_default(object2)?result2:arrayPush_default(result2,symbolsFunc(object2))}var baseGetAllKeys_default,init_baseGetAllKeys=__esm({"../../node_modules/lodash-es/_baseGetAllKeys.js"(){init_arrayPush();init_isArray();__name(baseGetAllKeys,"baseGetAllKeys");baseGetAllKeys_default=baseGetAllKeys}});function arrayFilter(array2,predicate){for(var index=-1,length=array2==null?0:array2.length,resIndex=0,result2=[];++index<length;){var value=array2[index];predicate(value,index,array2)&&(result2[resIndex++]=value)}return result2}var arrayFilter_default,init_arrayFilter=__esm({"../../node_modules/lodash-es/_arrayFilter.js"(){__name(arrayFilter,"arrayFilter");arrayFilter_default=arrayFilter}});function stubArray(){return[]}var stubArray_default,init_stubArray=__esm({"../../node_modules/lodash-es/stubArray.js"(){__name(stubArray,"stubArray");stubArray_default=stubArray}});var objectProto6,propertyIsEnumerable,nativeGetSymbols,getSymbols,getSymbols_default,init_getSymbols=__esm({"../../node_modules/lodash-es/_getSymbols.js"(){init_arrayFilter();init_stubArray();objectProto6=Object.prototype,propertyIsEnumerable=objectProto6.propertyIsEnumerable,nativeGetSymbols=Object.getOwnPropertySymbols,getSymbols=nativeGetSymbols?function(object2){return object2==null?[]:(object2=Object(object2),arrayFilter_default(nativeGetSymbols(object2),function(symbol2){return propertyIsEnumerable.call(object2,symbol2)}))}:stubArray_default,getSymbols_default=getSymbols}});function baseTimes(n2,iteratee2){for(var index=-1,result2=Array(n2);++index<n2;)result2[index]=iteratee2(index);return result2}var baseTimes_default,init_baseTimes=__esm({"../../node_modules/lodash-es/_baseTimes.js"(){__name(baseTimes,"baseTimes");baseTimes_default=baseTimes}});function isObjectLike(value){return value!=null&&typeof value=="object"}var isObjectLike_default,init_isObjectLike=__esm({"../../node_modules/lodash-es/isObjectLike.js"(){__name(isObjectLike,"isObjectLike");isObjectLike_default=isObjectLike}});function baseIsArguments(value){return isObjectLike_default(value)&&baseGetTag_default(value)==argsTag}var argsTag,baseIsArguments_default,init_baseIsArguments=__esm({"../../node_modules/lodash-es/_baseIsArguments.js"(){init_baseGetTag();init_isObjectLike();argsTag="[object Arguments]";__name(baseIsArguments,"baseIsArguments");baseIsArguments_default=baseIsArguments}});var objectProto7,hasOwnProperty5,propertyIsEnumerable2,isArguments,isArguments_default,init_isArguments=__esm({"../../node_modules/lodash-es/isArguments.js"(){init_baseIsArguments();init_isObjectLike();objectProto7=Object.prototype,hasOwnProperty5=objectProto7.hasOwnProperty,propertyIsEnumerable2=objectProto7.propertyIsEnumerable,isArguments=baseIsArguments_default((function(){return arguments})())?baseIsArguments_default:function(value){return isObjectLike_default(value)&&hasOwnProperty5.call(value,"callee")&&!propertyIsEnumerable2.call(value,"callee")},isArguments_default=isArguments}});function stubFalse(){return!1}var stubFalse_default,init_stubFalse=__esm({"../../node_modules/lodash-es/stubFalse.js"(){__name(stubFalse,"stubFalse");stubFalse_default=stubFalse}});var freeExports,freeModule,moduleExports,Buffer2,nativeIsBuffer,isBuffer,isBuffer_default,init_isBuffer=__esm({"../../node_modules/lodash-es/isBuffer.js"(){init_root();init_stubFalse();freeExports=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,Buffer2=moduleExports?root_default.Buffer:void 0,nativeIsBuffer=Buffer2?Buffer2.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse_default,isBuffer_default=isBuffer}});function isIndex(value,length){var type=typeof value;return length=length??MAX_SAFE_INTEGER,!!length&&(type=="number"||type!="symbol"&&reIsUint.test(value))&&value>-1&&value%1==0&&value<length}var MAX_SAFE_INTEGER,reIsUint,isIndex_default,init_isIndex=__esm({"../../node_modules/lodash-es/_isIndex.js"(){MAX_SAFE_INTEGER=9007199254740991,reIsUint=/^(?:0|[1-9]\d*)$/;__name(isIndex,"isIndex");isIndex_default=isIndex}});function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER2}var MAX_SAFE_INTEGER2,isLength_default,init_isLength=__esm({"../../node_modules/lodash-es/isLength.js"(){MAX_SAFE_INTEGER2=9007199254740991;__name(isLength,"isLength");isLength_default=isLength}});function baseIsTypedArray(value){return isObjectLike_default(value)&&isLength_default(value.length)&&!!typedArrayTags[baseGetTag_default(value)]}var argsTag2,arrayTag,boolTag2,dateTag2,errorTag2,funcTag2,mapTag2,numberTag2,objectTag,regexpTag2,setTag2,stringTag2,weakMapTag,arrayBufferTag2,dataViewTag2,float32Tag,float64Tag,int8Tag,int16Tag,int32Tag,uint8Tag,uint8ClampedTag,uint16Tag,uint32Tag,typedArrayTags,baseIsTypedArray_default,init_baseIsTypedArray=__esm({"../../node_modules/lodash-es/_baseIsTypedArray.js"(){init_baseGetTag();init_isLength();init_isObjectLike();argsTag2="[object Arguments]",arrayTag="[object Array]",boolTag2="[object Boolean]",dateTag2="[object Date]",errorTag2="[object Error]",funcTag2="[object Function]",mapTag2="[object Map]",numberTag2="[object Number]",objectTag="[object Object]",regexpTag2="[object RegExp]",setTag2="[object Set]",stringTag2="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag2="[object ArrayBuffer]",dataViewTag2="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0;typedArrayTags[argsTag2]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag2]=typedArrayTags[boolTag2]=typedArrayTags[dataViewTag2]=typedArrayTags[dateTag2]=typedArrayTags[errorTag2]=typedArrayTags[funcTag2]=typedArrayTags[mapTag2]=typedArrayTags[numberTag2]=typedArrayTags[objectTag]=typedArrayTags[regexpTag2]=typedArrayTags[setTag2]=typedArrayTags[stringTag2]=typedArrayTags[weakMapTag]=!1;__name(baseIsTypedArray,"baseIsTypedArray");baseIsTypedArray_default=baseIsTypedArray}});function baseUnary(func){return function(value){return func(value)}}var baseUnary_default,init_baseUnary=__esm({"../../node_modules/lodash-es/_baseUnary.js"(){__name(baseUnary,"baseUnary");baseUnary_default=baseUnary}});var freeExports2,freeModule2,moduleExports2,freeProcess,nodeUtil,nodeUtil_default,init_nodeUtil=__esm({"../../node_modules/lodash-es/_nodeUtil.js"(){init_freeGlobal();freeExports2=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule2=freeExports2&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports2=freeModule2&&freeModule2.exports===freeExports2,freeProcess=moduleExports2&&freeGlobal_default.process,nodeUtil=(function(){try{var types3=freeModule2&&freeModule2.require&&freeModule2.require("util").types;return types3||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch{}})(),nodeUtil_default=nodeUtil}});var nodeIsTypedArray,isTypedArray,isTypedArray_default,init_isTypedArray=__esm({"../../node_modules/lodash-es/isTypedArray.js"(){init_baseIsTypedArray();init_baseUnary();init_nodeUtil();nodeIsTypedArray=nodeUtil_default&&nodeUtil_default.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary_default(nodeIsTypedArray):baseIsTypedArray_default,isTypedArray_default=isTypedArray}});function arrayLikeKeys(value,inherited){var isArr=isArray_default(value),isArg=!isArr&&isArguments_default(value),isBuff=!isArr&&!isArg&&isBuffer_default(value),isType=!isArr&&!isArg&&!isBuff&&isTypedArray_default(value),skipIndexes=isArr||isArg||isBuff||isType,result2=skipIndexes?baseTimes_default(value.length,String):[],length=result2.length;for(var key in value)(inherited||hasOwnProperty6.call(value,key))&&!(skipIndexes&&(key=="length"||isBuff&&(key=="offset"||key=="parent")||isType&&(key=="buffer"||key=="byteLength"||key=="byteOffset")||isIndex_default(key,length)))&&result2.push(key);return result2}var objectProto8,hasOwnProperty6,arrayLikeKeys_default,init_arrayLikeKeys=__esm({"../../node_modules/lodash-es/_arrayLikeKeys.js"(){init_baseTimes();init_isArguments();init_isArray();init_isBuffer();init_isIndex();init_isTypedArray();objectProto8=Object.prototype,hasOwnProperty6=objectProto8.hasOwnProperty;__name(arrayLikeKeys,"arrayLikeKeys");arrayLikeKeys_default=arrayLikeKeys}});function isPrototype(value){var Ctor=value&&value.constructor,proto2=typeof Ctor=="function"&&Ctor.prototype||objectProto9;return value===proto2}var objectProto9,isPrototype_default,init_isPrototype=__esm({"../../node_modules/lodash-es/_isPrototype.js"(){objectProto9=Object.prototype;__name(isPrototype,"isPrototype");isPrototype_default=isPrototype}});function overArg(func,transform3){return function(arg){return func(transform3(arg))}}var overArg_default,init_overArg=__esm({"../../node_modules/lodash-es/_overArg.js"(){__name(overArg,"overArg");overArg_default=overArg}});var nativeKeys,nativeKeys_default,init_nativeKeys=__esm({"../../node_modules/lodash-es/_nativeKeys.js"(){init_overArg();nativeKeys=overArg_default(Object.keys,Object),nativeKeys_default=nativeKeys}});function baseKeys(object2){if(!isPrototype_default(object2))return nativeKeys_default(object2);var result2=[];for(var key in Object(object2))hasOwnProperty7.call(object2,key)&&key!="constructor"&&result2.push(key);return result2}var objectProto10,hasOwnProperty7,baseKeys_default,init_baseKeys=__esm({"../../node_modules/lodash-es/_baseKeys.js"(){init_isPrototype();init_nativeKeys();objectProto10=Object.prototype,hasOwnProperty7=objectProto10.hasOwnProperty;__name(baseKeys,"baseKeys");baseKeys_default=baseKeys}});function isArrayLike(value){return value!=null&&isLength_default(value.length)&&!isFunction_default(value)}var isArrayLike_default,init_isArrayLike=__esm({"../../node_modules/lodash-es/isArrayLike.js"(){init_isFunction();init_isLength();__name(isArrayLike,"isArrayLike");isArrayLike_default=isArrayLike}});function keys(object2){return isArrayLike_default(object2)?arrayLikeKeys_default(object2):baseKeys_default(object2)}var keys_default,init_keys=__esm({"../../node_modules/lodash-es/keys.js"(){init_arrayLikeKeys();init_baseKeys();init_isArrayLike();__name(keys,"keys");keys_default=keys}});function getAllKeys(object2){return baseGetAllKeys_default(object2,keys_default,getSymbols_default)}var getAllKeys_default,init_getAllKeys=__esm({"../../node_modules/lodash-es/_getAllKeys.js"(){init_baseGetAllKeys();init_getSymbols();init_keys();__name(getAllKeys,"getAllKeys");getAllKeys_default=getAllKeys}});function equalObjects(object2,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG3,objProps=getAllKeys_default(object2),objLength=objProps.length,othProps=getAllKeys_default(other),othLength=othProps.length;if(objLength!=othLength&&!isPartial)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isPartial?key in other:hasOwnProperty8.call(other,key)))return!1}var objStacked=stack.get(object2),othStacked=stack.get(other);if(objStacked&&othStacked)return objStacked==other&&othStacked==object2;var result2=!0;stack.set(object2,other),stack.set(other,object2);for(var skipCtor=isPartial;++index<objLength;){key=objProps[index];var objValue=object2[key],othValue=other[key];if(customizer)var compared=isPartial?customizer(othValue,objValue,key,other,object2,stack):customizer(objValue,othValue,key,object2,other,stack);if(!(compared===void 0?objValue===othValue||equalFunc(objValue,othValue,bitmask,customizer,stack):compared)){result2=!1;break}skipCtor||(skipCtor=key=="constructor")}if(result2&&!skipCtor){var objCtor=object2.constructor,othCtor=other.constructor;objCtor!=othCtor&&"constructor"in object2&&"constructor"in other&&!(typeof objCtor=="function"&&objCtor instanceof objCtor&&typeof othCtor=="function"&&othCtor instanceof othCtor)&&(result2=!1)}return stack.delete(object2),stack.delete(other),result2}var COMPARE_PARTIAL_FLAG3,objectProto11,hasOwnProperty8,equalObjects_default,init_equalObjects=__esm({"../../node_modules/lodash-es/_equalObjects.js"(){init_getAllKeys();COMPARE_PARTIAL_FLAG3=1,objectProto11=Object.prototype,hasOwnProperty8=objectProto11.hasOwnProperty;__name(equalObjects,"equalObjects");equalObjects_default=equalObjects}});var DataView2,DataView_default,init_DataView=__esm({"../../node_modules/lodash-es/_DataView.js"(){init_getNative();init_root();DataView2=getNative_default(root_default,"DataView"),DataView_default=DataView2}});var Promise2,Promise_default,init_Promise=__esm({"../../node_modules/lodash-es/_Promise.js"(){init_getNative();init_root();Promise2=getNative_default(root_default,"Promise"),Promise_default=Promise2}});var Set2,Set_default,init_Set=__esm({"../../node_modules/lodash-es/_Set.js"(){init_getNative();init_root();Set2=getNative_default(root_default,"Set"),Set_default=Set2}});var WeakMap2,WeakMap_default,init_WeakMap=__esm({"../../node_modules/lodash-es/_WeakMap.js"(){init_getNative();init_root();WeakMap2=getNative_default(root_default,"WeakMap"),WeakMap_default=WeakMap2}});var mapTag3,objectTag2,promiseTag,setTag3,weakMapTag2,dataViewTag3,dataViewCtorString,mapCtorString,promiseCtorString,setCtorString,weakMapCtorString,getTag,getTag_default,init_getTag=__esm({"../../node_modules/lodash-es/_getTag.js"(){init_DataView();init_Map();init_Promise();init_Set();init_WeakMap();init_baseGetTag();init_toSource();mapTag3="[object Map]",objectTag2="[object Object]",promiseTag="[object Promise]",setTag3="[object Set]",weakMapTag2="[object WeakMap]",dataViewTag3="[object DataView]",dataViewCtorString=toSource_default(DataView_default),mapCtorString=toSource_default(Map_default),promiseCtorString=toSource_default(Promise_default),setCtorString=toSource_default(Set_default),weakMapCtorString=toSource_default(WeakMap_default),getTag=baseGetTag_default;(DataView_default&&getTag(new DataView_default(new ArrayBuffer(1)))!=dataViewTag3||Map_default&&getTag(new Map_default)!=mapTag3||Promise_default&&getTag(Promise_default.resolve())!=promiseTag||Set_default&&getTag(new Set_default)!=setTag3||WeakMap_default&&getTag(new WeakMap_default)!=weakMapTag2)&&(getTag=__name(function(value){var result2=baseGetTag_default(value),Ctor=result2==objectTag2?value.constructor:void 0,ctorString=Ctor?toSource_default(Ctor):"";if(ctorString)switch(ctorString){case dataViewCtorString:return dataViewTag3;case mapCtorString:return mapTag3;case promiseCtorString:return promiseTag;case setCtorString:return setTag3;case weakMapCtorString:return weakMapTag2}return result2},"getTag"));getTag_default=getTag}});function baseIsEqualDeep(object2,other,bitmask,customizer,equalFunc,stack){var objIsArr=isArray_default(object2),othIsArr=isArray_default(other),objTag=objIsArr?arrayTag2:getTag_default(object2),othTag=othIsArr?arrayTag2:getTag_default(other);objTag=objTag==argsTag3?objectTag3:objTag,othTag=othTag==argsTag3?objectTag3:othTag;var objIsObj=objTag==objectTag3,othIsObj=othTag==objectTag3,isSameTag=objTag==othTag;if(isSameTag&&isBuffer_default(object2)){if(!isBuffer_default(other))return!1;objIsArr=!0,objIsObj=!1}if(isSameTag&&!objIsObj)return stack||(stack=new Stack_default),objIsArr||isTypedArray_default(object2)?equalArrays_default(object2,other,bitmask,customizer,equalFunc,stack):equalByTag_default(object2,other,objTag,bitmask,customizer,equalFunc,stack);if(!(bitmask&COMPARE_PARTIAL_FLAG4)){var objIsWrapped=objIsObj&&hasOwnProperty9.call(object2,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty9.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped){var objUnwrapped=objIsWrapped?object2.value():object2,othUnwrapped=othIsWrapped?other.value():other;return stack||(stack=new Stack_default),equalFunc(objUnwrapped,othUnwrapped,bitmask,customizer,stack)}}return isSameTag?(stack||(stack=new Stack_default),equalObjects_default(object2,other,bitmask,customizer,equalFunc,stack)):!1}var COMPARE_PARTIAL_FLAG4,argsTag3,arrayTag2,objectTag3,objectProto12,hasOwnProperty9,baseIsEqualDeep_default,init_baseIsEqualDeep=__esm({"../../node_modules/lodash-es/_baseIsEqualDeep.js"(){init_Stack();init_equalArrays();init_equalByTag();init_equalObjects();init_getTag();init_isArray();init_isBuffer();init_isTypedArray();COMPARE_PARTIAL_FLAG4=1,argsTag3="[object Arguments]",arrayTag2="[object Array]",objectTag3="[object Object]",objectProto12=Object.prototype,hasOwnProperty9=objectProto12.hasOwnProperty;__name(baseIsEqualDeep,"baseIsEqualDeep");baseIsEqualDeep_default=baseIsEqualDeep}});function baseIsEqual(value,other,bitmask,customizer,stack){return value===other?!0:value==null||other==null||!isObjectLike_default(value)&&!isObjectLike_default(other)?value!==value&&other!==other:baseIsEqualDeep_default(value,other,bitmask,customizer,baseIsEqual,stack)}var baseIsEqual_default,init_baseIsEqual=__esm({"../../node_modules/lodash-es/_baseIsEqual.js"(){init_baseIsEqualDeep();init_isObjectLike();__name(baseIsEqual,"baseIsEqual");baseIsEqual_default=baseIsEqual}});function baseIsMatch(object2,source,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(object2==null)return!length;for(object2=Object(object2);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object2[data[0]]:!(data[0]in object2))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object2[key],srcValue=data[1];if(noCustomizer&&data[2]){if(objValue===void 0&&!(key in object2))return!1}else{var stack=new Stack_default;if(customizer)var result2=customizer(objValue,srcValue,key,object2,source,stack);if(!(result2===void 0?baseIsEqual_default(srcValue,objValue,COMPARE_PARTIAL_FLAG5|COMPARE_UNORDERED_FLAG3,customizer,stack):result2))return!1}}return!0}var COMPARE_PARTIAL_FLAG5,COMPARE_UNORDERED_FLAG3,baseIsMatch_default,init_baseIsMatch=__esm({"../../node_modules/lodash-es/_baseIsMatch.js"(){init_Stack();init_baseIsEqual();COMPARE_PARTIAL_FLAG5=1,COMPARE_UNORDERED_FLAG3=2;__name(baseIsMatch,"baseIsMatch");baseIsMatch_default=baseIsMatch}});function isStrictComparable(value){return value===value&&!isObject_default(value)}var isStrictComparable_default,init_isStrictComparable=__esm({"../../node_modules/lodash-es/_isStrictComparable.js"(){init_isObject();__name(isStrictComparable,"isStrictComparable");isStrictComparable_default=isStrictComparable}});function getMatchData(object2){for(var result2=keys_default(object2),length=result2.length;length--;){var key=result2[length],value=object2[key];result2[length]=[key,value,isStrictComparable_default(value)]}return result2}var getMatchData_default,init_getMatchData=__esm({"../../node_modules/lodash-es/_getMatchData.js"(){init_isStrictComparable();init_keys();__name(getMatchData,"getMatchData");getMatchData_default=getMatchData}});function matchesStrictComparable(key,srcValue){return function(object2){return object2==null?!1:object2[key]===srcValue&&(srcValue!==void 0||key in Object(object2))}}var matchesStrictComparable_default,init_matchesStrictComparable=__esm({"../../node_modules/lodash-es/_matchesStrictComparable.js"(){__name(matchesStrictComparable,"matchesStrictComparable");matchesStrictComparable_default=matchesStrictComparable}});function baseMatches(source){var matchData=getMatchData_default(source);return matchData.length==1&&matchData[0][2]?matchesStrictComparable_default(matchData[0][0],matchData[0][1]):function(object2){return object2===source||baseIsMatch_default(object2,source,matchData)}}var baseMatches_default,init_baseMatches=__esm({"../../node_modules/lodash-es/_baseMatches.js"(){init_baseIsMatch();init_getMatchData();init_matchesStrictComparable();__name(baseMatches,"baseMatches");baseMatches_default=baseMatches}});function isSymbol(value){return typeof value=="symbol"||isObjectLike_default(value)&&baseGetTag_default(value)==symbolTag2}var symbolTag2,isSymbol_default,init_isSymbol=__esm({"../../node_modules/lodash-es/isSymbol.js"(){init_baseGetTag();init_isObjectLike();symbolTag2="[object Symbol]";__name(isSymbol,"isSymbol");isSymbol_default=isSymbol}});function isKey(value,object2){if(isArray_default(value))return!1;var type=typeof value;return type=="number"||type=="symbol"||type=="boolean"||value==null||isSymbol_default(value)?!0:reIsPlainProp.test(value)||!reIsDeepProp.test(value)||object2!=null&&value in Object(object2)}var reIsDeepProp,reIsPlainProp,isKey_default,init_isKey=__esm({"../../node_modules/lodash-es/_isKey.js"(){init_isArray();init_isSymbol();reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;__name(isKey,"isKey");isKey_default=isKey}});function memoizeCapped(func){var result2=memoize_default(func,function(key){return cache2.size===MAX_MEMOIZE_SIZE&&cache2.clear(),key}),cache2=result2.cache;return result2}var MAX_MEMOIZE_SIZE,memoizeCapped_default,init_memoizeCapped=__esm({"../../node_modules/lodash-es/_memoizeCapped.js"(){init_memoize();MAX_MEMOIZE_SIZE=500;__name(memoizeCapped,"memoizeCapped");memoizeCapped_default=memoizeCapped}});var rePropName,reEscapeChar,stringToPath,stringToPath_default,init_stringToPath=__esm({"../../node_modules/lodash-es/_stringToPath.js"(){init_memoizeCapped();rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=memoizeCapped_default(function(string4){var result2=[];return string4.charCodeAt(0)===46&&result2.push(""),string4.replace(rePropName,function(match,number4,quote,subString){result2.push(quote?subString.replace(reEscapeChar,"$1"):number4||match)}),result2}),stringToPath_default=stringToPath}});function baseToString(value){if(typeof value=="string")return value;if(isArray_default(value))return arrayMap_default(value,baseToString)+"";if(isSymbol_default(value))return symbolToString?symbolToString.call(value):"";var result2=value+"";return result2=="0"&&1/value==-INFINITY?"-0":result2}var INFINITY,symbolProto2,symbolToString,baseToString_default,init_baseToString=__esm({"../../node_modules/lodash-es/_baseToString.js"(){init_Symbol();init_arrayMap();init_isArray();init_isSymbol();INFINITY=1/0,symbolProto2=Symbol_default?Symbol_default.prototype:void 0,symbolToString=symbolProto2?symbolProto2.toString:void 0;__name(baseToString,"baseToString");baseToString_default=baseToString}});function toString(value){return value==null?"":baseToString_default(value)}var toString_default,init_toString=__esm({"../../node_modules/lodash-es/toString.js"(){init_baseToString();__name(toString,"toString");toString_default=toString}});function castPath(value,object2){return isArray_default(value)?value:isKey_default(value,object2)?[value]:stringToPath_default(toString_default(value))}var castPath_default,init_castPath=__esm({"../../node_modules/lodash-es/_castPath.js"(){init_isArray();init_isKey();init_stringToPath();init_toString();__name(castPath,"castPath");castPath_default=castPath}});function toKey(value){if(typeof value=="string"||isSymbol_default(value))return value;var result2=value+"";return result2=="0"&&1/value==-INFINITY2?"-0":result2}var INFINITY2,toKey_default,init_toKey=__esm({"../../node_modules/lodash-es/_toKey.js"(){init_isSymbol();INFINITY2=1/0;__name(toKey,"toKey");toKey_default=toKey}});function baseGet(object2,path10){path10=castPath_default(path10,object2);for(var index=0,length=path10.length;object2!=null&&index<length;)object2=object2[toKey_default(path10[index++])];return index&&index==length?object2:void 0}var baseGet_default,init_baseGet=__esm({"../../node_modules/lodash-es/_baseGet.js"(){init_castPath();init_toKey();__name(baseGet,"baseGet");baseGet_default=baseGet}});function get(object2,path10,defaultValue){var result2=object2==null?void 0:baseGet_default(object2,path10);return result2===void 0?defaultValue:result2}var get_default,init_get=__esm({"../../node_modules/lodash-es/get.js"(){init_baseGet();__name(get,"get");get_default=get}});function baseHasIn(object2,key){return object2!=null&&key in Object(object2)}var baseHasIn_default,init_baseHasIn=__esm({"../../node_modules/lodash-es/_baseHasIn.js"(){__name(baseHasIn,"baseHasIn");baseHasIn_default=baseHasIn}});function hasPath(object2,path10,hasFunc){path10=castPath_default(path10,object2);for(var index=-1,length=path10.length,result2=!1;++index<length;){var key=toKey_default(path10[index]);if(!(result2=object2!=null&&hasFunc(object2,key)))break;object2=object2[key]}return result2||++index!=length?result2:(length=object2==null?0:object2.length,!!length&&isLength_default(length)&&isIndex_default(key,length)&&(isArray_default(object2)||isArguments_default(object2)))}var hasPath_default,init_hasPath=__esm({"../../node_modules/lodash-es/_hasPath.js"(){init_castPath();init_isArguments();init_isArray();init_isIndex();init_isLength();init_toKey();__name(hasPath,"hasPath");hasPath_default=hasPath}});function hasIn(object2,path10){return object2!=null&&hasPath_default(object2,path10,baseHasIn_default)}var hasIn_default,init_hasIn=__esm({"../../node_modules/lodash-es/hasIn.js"(){init_baseHasIn();init_hasPath();__name(hasIn,"hasIn");hasIn_default=hasIn}});function baseMatchesProperty(path10,srcValue){return isKey_default(path10)&&isStrictComparable_default(srcValue)?matchesStrictComparable_default(toKey_default(path10),srcValue):function(object2){var objValue=get_default(object2,path10);return objValue===void 0&&objValue===srcValue?hasIn_default(object2,path10):baseIsEqual_default(srcValue,objValue,COMPARE_PARTIAL_FLAG6|COMPARE_UNORDERED_FLAG4)}}var COMPARE_PARTIAL_FLAG6,COMPARE_UNORDERED_FLAG4,baseMatchesProperty_default,init_baseMatchesProperty=__esm({"../../node_modules/lodash-es/_baseMatchesProperty.js"(){init_baseIsEqual();init_get();init_hasIn();init_isKey();init_isStrictComparable();init_matchesStrictComparable();init_toKey();COMPARE_PARTIAL_FLAG6=1,COMPARE_UNORDERED_FLAG4=2;__name(baseMatchesProperty,"baseMatchesProperty");baseMatchesProperty_default=baseMatchesProperty}});function identity(value){return value}var identity_default,init_identity=__esm({"../../node_modules/lodash-es/identity.js"(){__name(identity,"identity");identity_default=identity}});function baseProperty(key){return function(object2){return object2?.[key]}}var baseProperty_default,init_baseProperty=__esm({"../../node_modules/lodash-es/_baseProperty.js"(){__name(baseProperty,"baseProperty");baseProperty_default=baseProperty}});function basePropertyDeep(path10){return function(object2){return baseGet_default(object2,path10)}}var basePropertyDeep_default,init_basePropertyDeep=__esm({"../../node_modules/lodash-es/_basePropertyDeep.js"(){init_baseGet();__name(basePropertyDeep,"basePropertyDeep");basePropertyDeep_default=basePropertyDeep}});function property(path10){return isKey_default(path10)?baseProperty_default(toKey_default(path10)):basePropertyDeep_default(path10)}var property_default,init_property=__esm({"../../node_modules/lodash-es/property.js"(){init_baseProperty();init_basePropertyDeep();init_isKey();init_toKey();__name(property,"property");property_default=property}});function baseIteratee(value){return typeof value=="function"?value:value==null?identity_default:typeof value=="object"?isArray_default(value)?baseMatchesProperty_default(value[0],value[1]):baseMatches_default(value):property_default(value)}var baseIteratee_default,init_baseIteratee=__esm({"../../node_modules/lodash-es/_baseIteratee.js"(){init_baseMatches();init_baseMatchesProperty();init_identity();init_isArray();init_property();__name(baseIteratee,"baseIteratee");baseIteratee_default=baseIteratee}});var defineProperty,defineProperty_default,init_defineProperty=__esm({"../../node_modules/lodash-es/_defineProperty.js"(){init_getNative();defineProperty=(function(){try{var func=getNative_default(Object,"defineProperty");return func({},"",{}),func}catch{}})(),defineProperty_default=defineProperty}});function baseAssignValue(object2,key,value){key=="__proto__"&&defineProperty_default?defineProperty_default(object2,key,{configurable:!0,enumerable:!0,value,writable:!0}):object2[key]=value}var baseAssignValue_default,init_baseAssignValue=__esm({"../../node_modules/lodash-es/_baseAssignValue.js"(){init_defineProperty();__name(baseAssignValue,"baseAssignValue");baseAssignValue_default=baseAssignValue}});function assignValue(object2,key,value){var objValue=object2[key];(!(hasOwnProperty10.call(object2,key)&&eq_default(objValue,value))||value===void 0&&!(key in object2))&&baseAssignValue_default(object2,key,value)}var objectProto13,hasOwnProperty10,assignValue_default,init_assignValue=__esm({"../../node_modules/lodash-es/_assignValue.js"(){init_baseAssignValue();init_eq();objectProto13=Object.prototype,hasOwnProperty10=objectProto13.hasOwnProperty;__name(assignValue,"assignValue");assignValue_default=assignValue}});function baseSet(object2,path10,value,customizer){if(!isObject_default(object2))return object2;path10=castPath_default(path10,object2);for(var index=-1,length=path10.length,lastIndex=length-1,nested=object2;nested!=null&&++index<length;){var key=toKey_default(path10[index]),newValue=value;if(key==="__proto__"||key==="constructor"||key==="prototype")return object2;if(index!=lastIndex){var objValue=nested[key];newValue=customizer?customizer(objValue,key,nested):void 0,newValue===void 0&&(newValue=isObject_default(objValue)?objValue:isIndex_default(path10[index+1])?[]:{})}assignValue_default(nested,key,newValue),nested=nested[key]}return object2}var baseSet_default,init_baseSet=__esm({"../../node_modules/lodash-es/_baseSet.js"(){init_assignValue();init_castPath();init_isIndex();init_isObject();init_toKey();__name(baseSet,"baseSet");baseSet_default=baseSet}});function basePickBy(object2,paths2,predicate){for(var index=-1,length=paths2.length,result2={};++index<length;){var path10=paths2[index],value=baseGet_default(object2,path10);predicate(value,path10)&&baseSet_default(result2,castPath_default(path10,object2),value)}return result2}var basePickBy_default,init_basePickBy=__esm({"../../node_modules/lodash-es/_basePickBy.js"(){init_baseGet();init_baseSet();init_castPath();__name(basePickBy,"basePickBy");basePickBy_default=basePickBy}});var getPrototype,getPrototype_default,init_getPrototype=__esm({"../../node_modules/lodash-es/_getPrototype.js"(){init_overArg();getPrototype=overArg_default(Object.getPrototypeOf,Object),getPrototype_default=getPrototype}});var nativeGetSymbols2,getSymbolsIn,getSymbolsIn_default,init_getSymbolsIn=__esm({"../../node_modules/lodash-es/_getSymbolsIn.js"(){init_arrayPush();init_getPrototype();init_getSymbols();init_stubArray();nativeGetSymbols2=Object.getOwnPropertySymbols,getSymbolsIn=nativeGetSymbols2?function(object2){for(var result2=[];object2;)arrayPush_default(result2,getSymbols_default(object2)),object2=getPrototype_default(object2);return result2}:stubArray_default,getSymbolsIn_default=getSymbolsIn}});function nativeKeysIn(object2){var result2=[];if(object2!=null)for(var key in Object(object2))result2.push(key);return result2}var nativeKeysIn_default,init_nativeKeysIn=__esm({"../../node_modules/lodash-es/_nativeKeysIn.js"(){__name(nativeKeysIn,"nativeKeysIn");nativeKeysIn_default=nativeKeysIn}});function baseKeysIn(object2){if(!isObject_default(object2))return nativeKeysIn_default(object2);var isProto=isPrototype_default(object2),result2=[];for(var key in object2)key=="constructor"&&(isProto||!hasOwnProperty11.call(object2,key))||result2.push(key);return result2}var objectProto14,hasOwnProperty11,baseKeysIn_default,init_baseKeysIn=__esm({"../../node_modules/lodash-es/_baseKeysIn.js"(){init_isObject();init_isPrototype();init_nativeKeysIn();objectProto14=Object.prototype,hasOwnProperty11=objectProto14.hasOwnProperty;__name(baseKeysIn,"baseKeysIn");baseKeysIn_default=baseKeysIn}});function keysIn(object2){return isArrayLike_default(object2)?arrayLikeKeys_default(object2,!0):baseKeysIn_default(object2)}var keysIn_default,init_keysIn=__esm({"../../node_modules/lodash-es/keysIn.js"(){init_arrayLikeKeys();init_baseKeysIn();init_isArrayLike();__name(keysIn,"keysIn");keysIn_default=keysIn}});function getAllKeysIn(object2){return baseGetAllKeys_default(object2,keysIn_default,getSymbolsIn_default)}var getAllKeysIn_default,init_getAllKeysIn=__esm({"../../node_modules/lodash-es/_getAllKeysIn.js"(){init_baseGetAllKeys();init_getSymbolsIn();init_keysIn();__name(getAllKeysIn,"getAllKeysIn");getAllKeysIn_default=getAllKeysIn}});function pickBy(object2,predicate){if(object2==null)return{};var props=arrayMap_default(getAllKeysIn_default(object2),function(prop){return[prop]});return predicate=baseIteratee_default(predicate),basePickBy_default(object2,props,function(value,path10){return predicate(value,path10[0])})}var pickBy_default,init_pickBy=__esm({"../../node_modules/lodash-es/pickBy.js"(){init_arrayMap();init_baseIteratee();init_basePickBy();init_getAllKeysIn();__name(pickBy,"pickBy");pickBy_default=pickBy}});function baseSum(array2,iteratee2){for(var result2,index=-1,length=array2.length;++index<length;){var current=iteratee2(array2[index]);current!==void 0&&(result2=result2===void 0?current:result2+current)}return result2}var baseSum_default,init_baseSum=__esm({"../../node_modules/lodash-es/_baseSum.js"(){__name(baseSum,"baseSum");baseSum_default=baseSum}});function sumBy(array2,iteratee2){return array2&&array2.length?baseSum_default(array2,baseIteratee_default(iteratee2,2)):0}var sumBy_default,init_sumBy=__esm({"../../node_modules/lodash-es/sumBy.js"(){init_baseIteratee();init_baseSum();__name(sumBy,"sumBy");sumBy_default=sumBy}});import{homedir}from"os";import{join}from"path";function hasNodeOption(flag){let nodeOptions=process.env.NODE_OPTIONS;return nodeOptions?nodeOptions.split(/\s+/).includes(flag):!1}function isEnvTruthy(envVar){if(!envVar)return!1;if(typeof envVar=="boolean")return envVar;let normalizedValue=envVar.toLowerCase().trim();return["1","true","yes","on"].includes(normalizedValue)}function isEnvDefinedFalsy(envVar){if(envVar===void 0)return!1;if(typeof envVar=="boolean")return!envVar;if(!envVar)return!1;let normalizedValue=envVar.toLowerCase().trim();return["0","false","no","off"].includes(normalizedValue)}function isBareMode(){return isEnvTruthy(process.env.CLAUDE_CODE_SIMPLE)||process.argv.includes("--bare")}function shouldUseMacOSKeychain(){return process.platform!=="darwin"?!1:!!(isEnvTruthy(process.env.CLAVUE_USE_KEYCHAIN)||isEnvDefinedFalsy(process.env.CLAVUE_DISABLE_KEYCHAIN))}function getAWSRegion(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||"us-east-1"}function isRunningOnHomespace(){return process.env.USER_TYPE==="ant"&&isEnvTruthy(process.env.COO_RUNNING_ON_HOMESPACE)}var getClavueConfigHomeDir,getClaudeConfigHomeDir,init_envUtils=__esm({"src/utils/envUtils.ts"(){init_memoize();getClavueConfigHomeDir=memoize_default(()=>(process.env.CLAVUE_CONFIG_DIR??join(homedir(),".clavue")).normalize("NFC"),()=>`${process.env.CLAVUE_CONFIG_DIR??""}\0${process.env.HOME??""}`),getClaudeConfigHomeDir=getClavueConfigHomeDir;__name(hasNodeOption,"hasNodeOption");__name(isEnvTruthy,"isEnvTruthy");__name(isEnvDefinedFalsy,"isEnvDefinedFalsy");__name(isBareMode,"isBareMode");__name(shouldUseMacOSKeychain,"shouldUseMacOSKeychain");__name(getAWSRegion,"getAWSRegion");__name(isRunningOnHomespace,"isRunningOnHomespace")}});var init_reviewFindingsGate=__esm({"src/runtime/reviewFindingsGate.ts"(){}});var init_reviewHardGate=__esm({"src/runtime/reviewHardGate.ts"(){init_honestCompletion();init_reviewFindingsGate()}});var init_imageGenerationIntent=__esm({"src/utils/imageGenerationIntent.ts"(){}});var init_turnQualityGates=__esm({"src/utils/turnQualityGates.ts"(){init_imageGenerationIntent()}});var init_falseSuccessGate=__esm({"src/runtime/falseSuccessGate.ts"(){}});var init_executionPipeline=__esm({"src/services/plan/executionPipeline.ts"(){init_envUtils()}});var init_honestCompletion=__esm({"src/services/plan/honestCompletion.ts"(){init_envUtils();init_reviewHardGate();init_turnQualityGates();init_falseSuccessGate();init_executionPipeline()}});var init_outcomeDiscipline=__esm({"src/constants/outcomeDiscipline.ts"(){init_honestCompletion()}});function citedPathSource(body,opts){return`${opts?.allowPathCharLead?String.raw`(?:^|[^\w-])`:String.raw`(?:^|[^${PATH_BODY_CHARS}])`}(?:${body})${TRAILING_BOUNDARY}`}function citedPathRegExp(body,flags,opts){return new RegExp(citedPathSource(body,opts),flags)}function dirQualifiedBody(minDepth,maxDepth,extAlternation=String.raw`[\w]{1,12}`){return String.raw`(?:[\w.-]+\/){${minDepth},${maxDepth}}[\w.-]+\.(?:${extAlternation})`}var PATH_BODY_CHARS,TRAILING_BOUNDARY,init_citedPathPattern=__esm({"src/utils/citedPathPattern.ts"(){PATH_BODY_CHARS=String.raw`\w./-`,TRAILING_BOUNDARY=String.raw`(?!\.?[\w/-])`;__name(citedPathSource,"citedPathSource");__name(citedPathRegExp,"citedPathRegExp");__name(dirQualifiedBody,"dirQualifiedBody")}});var init_supervisor=__esm({"src/services/mao/supervisor.ts"(){}});var MULTI_AREA_PATH_RE,SIMPLE_SHAPE_PATH_RE,init_parallelDevelopment=__esm({"src/utils/parallelDevelopment.ts"(){init_citedPathPattern();init_supervisor();MULTI_AREA_PATH_RE=citedPathRegExp(dirQualifiedBody(1,6),"g"),SIMPLE_SHAPE_PATH_RE=citedPathRegExp(dirQualifiedBody(1,8),"g")}});function escapeRegExp(value){return String(value).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function compileEnglishPhraseMatchers(phrases){return phrases.map(phrase=>({label:phrase,regex:new RegExp(`(?:^|\\s)${escapeRegExp(phrase).replace(/\\ /g,"\\s+")}(?=\\s|$)`,"i")}))}function compileCompactPhraseMatchers(phrases){return phrases.map(phrase=>({label:phrase,compactPhrase:phrase.replace(/\s+/g,"")}))}function compileWordMatchers(words2){return words2.map(word=>({label:word,word}))}function compileRegexMatchers(regexes){return regexes.map(entry=>entry instanceof RegExp?{label:entry.source,regex:entry}:entry)}function compileSignalDefinition(definition){return{exactMatches:definition.exactMatches??null,englishPhrases:compileEnglishPhraseMatchers(definition.englishPhrases??[]),compactPhrases:compileCompactPhraseMatchers(definition.compactPhrases??[]),englishWords:compileWordMatchers(definition.englishWords??[]),regexes:compileRegexMatchers(definition.regexes??[])}}function hasBroadMutationProhibition(input){let text=String(input??"");if(!text.trim())return!1;if(READ_ONLY_DECLARATION_RE.lastIndex=0,READ_ONLY_DECLARATION_RE.test(text))return!0;let match=BROAD_MUTATION_PROHIBITION_RE.exec(text);if(!match)return!1;let tail2=text.slice(match.index+match[0].length);return!(/^[\s:,,]*(?:的|the|any|those|these)?[\sA-Za-z0-9_./\\-]{0,12}?(?:测试|配置|文档|(?:tests?|spec|config|docs?)\b)/i.test(tail2)||/^[\s]+(?:[\w./\\-]+|[\u4e00-\u9fff]{1,12})/u.test(tail2))}var HAN_CHARACTER_RE,CONTINUATION_EXACT_MATCHES,SIGNAL_DEFINITIONS,READ_ONLY_DECLARATION_RE,BROAD_MUTATION_PROHIBITION_RE,init_userTurnIntent=__esm({"src/utils/userTurnIntent.ts"(){init_parallelDevelopment();HAN_CHARACTER_RE=new RegExp("\\p{Script=Han}","u"),CONTINUATION_EXACT_MATCHES=new Set(["continue","resume","keep going","keep pushing","keep iterating","keep working","keep building","go on","start developing","start coding","continue developing","continue coding","continue working","continue building","resume developing","resume coding","let's continue","\u7EE7\u7EED","\u7EE7\u7EED\u5F00\u53D1","\u7EE7\u7EED\u7F16\u7801","\u7EE7\u7EED\u5B9E\u73B0","\u7EE7\u7EED\u5904\u7406","\u7EE7\u7EED\u4FEE","\u7EE7\u7EED\u4FEE\u590D","\u7EE7\u7EED\u641E","\u63A5\u7740\u505A","\u63A5\u7740\u5F00\u53D1","\u63A5\u7740\u7F16\u7801","\u63A5\u7740\u5B9E\u73B0","\u63A5\u7740\u5904\u7406","\u63A5\u7740\u4FEE","\u63A5\u7740\u5199","\u63A5\u7740\u6539","\u7EE7\u7EED\u5E72","\u7EE7\u7EED\u505A","\u5F00\u59CB\u5F00\u53D1","\u5F00\u59CB\u7F16\u7801","\u76F4\u63A5\u5F00\u59CB\u5F00\u53D1","\u76F4\u63A5\u5F00\u59CB\u7F16\u7801","\u5F00\u5DE5","\u7EE7\u7EED\u63A8\u8FDB","\u63A5\u7740\u63A8\u8FDB","\u7EE7\u7EED\u4F18\u5316","\u63A5\u7740\u4F18\u5316","\u7EE7\u7EED\u5347\u7EA7","\u63A5\u7740\u5347\u7EA7","\u7EE7\u7EED\u5B8C\u5584","\u63A5\u7740\u5B8C\u5584","\u628A\u5B83\u505A\u5B8C","\u628A\u8FD9\u4E2A\u7A0B\u5E8F\u505A\u5B8C","\u5F00\u53D1\u5B8C\u8FD9\u4E2A\u7A0B\u5E8F","\u6301\u7EED\u5F00\u53D1","\u6301\u7EED\u7F16\u7801","\u7EE7\u7EED \u6301\u7EED\u5F00\u53D1","\u7EE7\u7EED \u6301\u7EED\u7F16\u7801","\u7D9A\u3051\u3066","\u9032\u3081\u3066","\u7D9A\u304D\u3092","\u958B\u767A\u3092\u7D9A\u3051\u3066","\u5B9F\u88C5\u3092\u7D9A\u3051\u3066","\u4F5C\u696D\u3092\u7D9A\u3051\u3066","\u7D9A\u3051\u3066\u5B9F\u88C5","\u7D9A\u3051\u3066\u958B\u767A"]);__name(escapeRegExp,"escapeRegExp");__name(compileEnglishPhraseMatchers,"compileEnglishPhraseMatchers");__name(compileCompactPhraseMatchers,"compileCompactPhraseMatchers");__name(compileWordMatchers,"compileWordMatchers");__name(compileRegexMatchers,"compileRegexMatchers");__name(compileSignalDefinition,"compileSignalDefinition");SIGNAL_DEFINITIONS={continuationIntent:compileSignalDefinition({exactMatches:CONTINUATION_EXACT_MATCHES,englishPhrases:["continue","resume","keep going","keep pushing","keep iterating","keep working","keep building","go on","start developing","start coding","continue developing","continue coding","continue working","continue building","resume developing","resume coding","let's continue"],compactPhrases:["\u7EE7\u7EED\u5F00\u53D1","\u7EE7\u7EED\u7F16\u7801","\u7EE7\u7EED\u5B9E\u73B0","\u7EE7\u7EED\u5904\u7406","\u7EE7\u7EED\u4FEE","\u7EE7\u7EED\u4FEE\u590D","\u7EE7\u7EED\u641E","\u63A5\u7740\u505A","\u63A5\u7740\u5F00\u53D1","\u63A5\u7740\u7F16\u7801","\u63A5\u7740\u5B9E\u73B0","\u63A5\u7740\u5904\u7406","\u63A5\u7740\u4FEE","\u63A5\u7740\u5199","\u63A5\u7740\u6539","\u7EE7\u7EED\u5E72","\u7EE7\u7EED\u505A","\u5F00\u59CB\u5F00\u53D1","\u5F00\u59CB\u7F16\u7801","\u76F4\u63A5\u5F00\u59CB\u5F00\u53D1","\u76F4\u63A5\u5F00\u59CB\u7F16\u7801","\u5F00\u5DE5","\u7EE7\u7EED\u63A8\u8FDB","\u63A5\u7740\u63A8\u8FDB","\u7EE7\u7EED\u4F18\u5316","\u63A5\u7740\u4F18\u5316","\u7EE7\u7EED\u5347\u7EA7","\u63A5\u7740\u5347\u7EA7","\u7EE7\u7EED\u5B8C\u5584","\u63A5\u7740\u5B8C\u5584","\u628A\u5B83\u505A\u5B8C","\u628A\u8FD9\u4E2A\u7A0B\u5E8F\u505A\u5B8C","\u5F00\u53D1\u5B8C\u8FD9\u4E2A\u7A0B\u5E8F","\u6301\u7EED\u5F00\u53D1","\u6301\u7EED\u7F16\u7801","\u7D9A\u3051\u3066\u5B9F\u88C5","\u7D9A\u3051\u3066\u958B\u767A","\u958B\u767A\u3092\u7D9A\u3051","\u5B9F\u88C5\u3092\u7D9A\u3051","\u4F5C\u696D\u3092\u7D9A\u3051"],regexes:[{label:"finish the task",regex:/\b(finish|complete|ship|polish)\s+(it|this|the task|the bug|the change|the fix|the program|the product)\b/i},{label:"chinese continuation with completion target",regex:/(?:^|[\s,。!?、;:])(?:很好|好|可以|行|那就|嗯|ok|okay)?\s*(?:继续|接着|持续|直接开始|开始)\s*(?:持续)?\s*(?:开发|编码|写|改|推进|优化|升级|完善|做|干|处理|修|修复|实现)?(?:\s*(?:到|直到|直至)?\s*(?:全部|完全|彻底)?\s*(?:完成|结束|做完|搞定|收尾))?(?:吧|啊|一下|下去|起来)?(?:$|[\s,。!?、;:])/iu},{label:"general chinese continuation",regex:/^(?:继续|接着|持续|直接开始|开始)\s*(?:持续)?\s*(?:开发|编码|写|改|推进|优化|升级|完善|做|干|处理|修|修复|实现)(?:[^\s,。!?、;:]{0,12})?(?:吧|啊|一下|下去|起来)?$/u},{label:"japanese coding continuation",regex:/(?:続けて|進めて|続きを)(?:\s*(?:実装|開発|作業|修正|直して))?|(?:実装|開発|作業)を続/u}]}),directExecutionIntent:compileSignalDefinition({englishPhrases:["do it","execute","fix it now","get started","go ahead","just start","start now","skip the plan","plan later","just fix it","just implement it","just ship it","fix this now","go ahead and fix","go ahead and implement","no plan first","do not plan first","don't plan first","go with that plan","go with this plan","follow that plan","follow this plan","implement that plan","implement this plan","use that plan","use this plan","use that approach","use this approach","do it that way"],compactPhrases:["\u76F4\u63A5\u5F00\u59CB","\u76F4\u63A5\u5F00\u53D1","\u76F4\u63A5\u7F16\u7801","\u76F4\u63A5\u4FEE\u590D","\u76F4\u63A5\u6539","\u76F4\u63A5\u6267\u884C","\u76F4\u63A5\u505A","\u76F4\u63A5\u5904\u7406","\u9A6C\u4E0A\u4FEE","\u9A6C\u4E0A\u6539","\u76F4\u63A5\u4E0A","\u4E0D\u8981\u65B9\u6848","\u4E0D\u7528\u65B9\u6848","\u522B\u5148\u8BA1\u5212","\u4E0D\u7528\u5148\u8BA1\u5212","\u4E0D\u8981\u5148\u8BA1\u5212","\u4E0D\u8981\u5148\u65B9\u6848","\u5148\u505A","\u5148\u4FEE","\u5148\u5F00\u53D1","\u5148\u6539","\u6309\u8FD9\u4E2A\u65B9\u6848\u505A","\u6309\u8FD9\u4E2A\u8BA1\u5212\u505A","\u6309\u8FD9\u4E2A\u601D\u8DEF\u505A","\u6309\u8FD9\u4E2A\u6587\u6863\u505A","\u6309\u7167\u8FD9\u4E2A\u65B9\u6848\u505A","\u6309\u7167\u8FD9\u4E2A\u8BA1\u5212\u505A","\u6309\u7167\u8FD9\u4E2A\u601D\u8DEF\u505A","\u6309\u7167\u8FD9\u4E2A\u6587\u6863\u505A","\u5C31\u6309\u8FD9\u4E2A\u65B9\u6848\u505A","\u5C31\u6309\u8FD9\u4E2A\u8BA1\u5212\u505A","\u5C31\u6309\u8FD9\u4E2A\u601D\u8DEF\u505A","\u5C31\u6309\u8FD9\u4E2A\u6587\u6863\u505A","\u6309\u65B9\u6848\u505A","\u6309\u8BA1\u5212\u505A","\u6309\u601D\u8DEF\u505A","\u6309\u6587\u6863\u505A","\u7167\u8FD9\u4E2A\u65B9\u6848\u505A","\u7167\u8FD9\u4E2A\u8BA1\u5212\u505A","\u7167\u8FD9\u4E2A\u601D\u8DEF\u505A","\u6309\u8FD9\u4E2A\u6765\u505A","\u5C31\u6309\u8FD9\u4E2A\u6765\u505A","\u7167\u8FD9\u4E2A\u6765\u505A"],regexes:[{label:"chinese direct action regex",regex:/(?:^|[\s,。!?、;:])(?:请|帮我|麻烦)?(?:直接|马上|现在|立刻)(?:开始)?(?:修|修复|改|修改|处理|解决|搞定|开发|编码|实现|优化|升级|完善|做|执行)(?:一下|下|掉|好)?(?:$|[\s,。!?、;:/])/u},{label:"skip planning regex",regex:/\b(?:don't|do not|no need to|skip)\s+(?:write|make|give|start)?\s*(?:a\s+)?(?:plan|proposal|design doc|architecture review)\b/i},{label:"do the fix regex",regex:/\b(?:just|please|go ahead and)\s+(?:fix|implement|ship|build|patch|code)\b/i},{label:"approved plan execution regex",regex:/\b(?:go with|follow|use|implement|execute)\s+(?:that|this|the)\s+(?:plan|approach|proposal|design|document)\b/i},{label:"do it that way regex",regex:/\bdo\s+it\s+(?:that|this)\s+way\b/i},{label:"approved chinese plan execution regex",regex:/(?:就)?按(?:照)?(?:这个|这个方案|这个计划|这个思路|这个文档|上面(?:的)?方案|上面(?:的)?计划|当前方案|当前计划|上述方案|上述计划)?(?:来)?(?:做|开发|实现|推进|执行|改|开始)/u}]}),implementationIntent:compileSignalDefinition({englishWords:["add","build","create","delete","design","develop","extract","fix","implement","improve","migrate","move","redesign","refactor","remove","rename","rewrite","ship","update","upgrade"],compactPhrases:["\u6DFB\u52A0","\u65B0\u589E","\u5B9E\u73B0","\u8BBE\u8BA1","\u4FEE\u4E00\u4E0B","\u6539\u4E00\u4E0B","\u4FEE\u8FD9\u4E2A","\u6539\u8FD9\u4E2A","\u4FEE\u95EE\u9898","\u6539\u95EE\u9898","\u4FEE\u590D","\u4FEE\u6539","\u5904\u7406\u8FD9\u4E2A","\u5904\u7406\u95EE\u9898","\u89E3\u51B3\u8FD9\u4E2A","\u89E3\u51B3\u95EE\u9898","\u641E\u5B9A\u8FD9\u4E2A","\u641E\u5B9A\u95EE\u9898","\u4F18\u5316","\u91CD\u6784","\u8FC1\u79FB","\u53D1\u5E03","\u5F00\u53D1","\u7F16\u7801","\u5347\u7EA7","\u5B8C\u5584","\u8865\u4E01","\u5904\u7406\u6389","\u505A\u5B8C"],regexes:[{label:"work on feature",regex:/\bwork on\b/i},{label:"start implementing",regex:/\bstart\s+(?:implementing|building|fixing|coding)\b/i},{label:"chinese action imperative",regex:/(?:^|[\s,。!?、;:])(?:请|帮我|麻烦)?(?:直接|马上|现在|立刻|先)?(?:修|修复|改|修改|处理|解决|搞定|弄好|补上|完善|优化|升级|实现)(?:一下|下|掉|好|了)?(?:这个|这|该|它|当前|上述)?(?:问题|错误|bug|文件|功能|逻辑|流程|配置|项目|代码)?(?:$|[\s,。!?、;:/])/iu},{label:"chinese ba-disposal mutation",regex:/(?<!(?:为什么|为何|怎么|怎样)要?)把[^,。!?\n]{1,48}?(?:修了|改了|删了|改成|提取成|抽成|拆成|合并成|重命名为?|删掉|去掉|加上|换成|改掉|移到|挪到)/u},{label:"chinese verb-complement mutation",regex:/(?<!(?:为什么|为何|怎么|怎样)(?:要|会|能)?)(?:^|[\s,。!?、;:])(?:请|帮我|麻烦)?(?:给[^,。!?\n]{1,32})?(?:删掉|去掉|拿掉|删除|移除|加个|加一个|加上一?个|加上|补个|补一个|添加一?个)/u},{label:"path scoped issue request",regex:/(?:(?:问题|错误|报错|bug|不能|无法|失败|异常)[\s\S]{0,120}(?:\/[^\s,。!?;:]+|[A-Za-z]:\\[^\s,。!?;:]+)|(?:\/[^\s,。!?;:]+|[A-Za-z]:\\[^\s,。!?;:]+)[\s\S]{0,120}(?:问题|错误|报错|bug|不能|无法|失败|异常))/iu},{label:"icon image product work",regex:/\b(?:app\s+icon|launcher\s+icon|generate\s+(?:an?\s+)?(?:app\s+)?(?:icon|logo|image|wallpaper)|create\s+(?:an?\s+)?(?:app\s+)?(?:icon|logo)|draw\s+(?:an?\s+)?(?:app\s+)?(?:icon|logo|image)|make\s+(?:me\s+)?(?:an?\s+)?(?:app\s+)?(?:icon|logo))\b|(?:生成|画|做|优化|改|换)(?:一个|张|个)?\s*(?:app\s*)?(?:图标|logo|壁纸|图片)|生图|改图标|优化图标/iu}]}),explicitPlanIntent:compileSignalDefinition({englishPhrases:["approach","architecture","design doc","implementation plan","plan","plan first","proposal","strategy","trade off","trade-off","give me a plan","before you code","before coding","compare options","compare approaches","review architecture options"],compactPhrases:["\u8BA1\u5212","\u65B9\u6848","\u4FEE\u590D\u65B9\u6848","\u5B9E\u73B0\u65B9\u6848","\u6539\u9020\u65B9\u6848","\u67B6\u6784\u65B9\u6848","\u8BBE\u8BA1\u6587\u6863","\u67B6\u6784","\u601D\u8DEF","\u5148\u7ED9\u65B9\u6848","\u5148\u7ED9\u8BA1\u5212","\u5148\u51FA\u65B9\u6848","\u5148\u505A\u65B9\u6848","\u5148\u5199\u65B9\u6848","\u5148\u5206\u6790\u65B9\u6848","\u5BF9\u6BD4\u65B9\u6848","\u6BD4\u8F83\u65B9\u6848"],regexes:[{label:"before you code regex",regex:/\bbefore\s+you\s+(?:code|implement|edit|change|fix|start)\b/i},{label:"give me plan regex",regex:/\b(?:give|show|write|draft|prepare)\s+(?:me\s+)?(?:an?\s+)?(?:implementation\s+)?plan\b/i},{label:"compare tradeoffs regex",regex:/\b(?:compare|evaluate)\b[\s\S]{0,80}\b(?:options|approaches|trade[\s-]?offs)\b/i},{label:"chinese plan first regex",regex:/先(?:给|出|做|写|整理)(?:我)?(?:一(?:个|份))?(?:方案|计划|设计|思路)|先(?:对比|比较|分析)(?:一下)?(?:方案|思路|架构|选项)/u},{label:"chinese produce a plan document regex",regex:/(?:请|帮我|麻烦|你)?(?:给|出|做|写|整理|设计|制定|拟)(?:我|出来|出|来)?(?:一(?:个|份|套|版))[^,。!?\n]{0,48}?(?:方案|计划|设计|思路|规划)/u}]}),planRevisionIntent:compileSignalDefinition({englishPhrases:["adjust the plan","change the plan","edit the plan","expand the plan","modify the plan","refine the plan","revise the plan","rewrite the plan","update the plan","update the document","revise the document","edit the document","rewrite the document","adjust the document","change the document","replan","re-plan"],compactPhrases:["\u4FEE\u6539\u65B9\u6848","\u8C03\u6574\u65B9\u6848","\u66F4\u65B0\u65B9\u6848","\u8865\u5145\u65B9\u6848","\u91CD\u5199\u65B9\u6848","\u5B8C\u5584\u65B9\u6848","\u4FEE\u6539\u8BA1\u5212","\u8C03\u6574\u8BA1\u5212","\u66F4\u65B0\u8BA1\u5212","\u8865\u5145\u8BA1\u5212","\u91CD\u65B0\u89C4\u5212","\u4FEE\u6539\u6587\u6863","\u8C03\u6574\u6587\u6863","\u66F4\u65B0\u6587\u6863","\u8865\u5145\u6587\u6863","\u91CD\u5199\u6587\u6863","\u4FEE\u6539\u5F00\u53D1\u6587\u6863","\u66F4\u65B0\u5F00\u53D1\u6587\u6863","\u8C03\u6574\u5F00\u53D1\u6587\u6863","\u8865\u5145\u5F00\u53D1\u6587\u6863"],regexes:[{label:"revise plan regex",regex:/\b(?:revise|rewrite|refine|edit|adjust|modify|update|expand)\s+(?:the\s+)?(?:plan|proposal|doc|document|design)\b/i},{label:"chinese revise plan regex",regex:/(?:修改|调整|更新|补充|重写|完善)(?:一下)?(?:方案|计划|文档|开发文档)|重新(?:规划|整理)(?:一下)?(?:方案|计划|文档)?/u}]}),diagnosticIntent:compileSignalDefinition({englishPhrases:["debug","diagnose","error","errors","incident","investigate","log","logs","runtime","stalled","stuck","trace","triage","root cause","what happened","why is","why are","why did","why was"],compactPhrases:["\u62A5\u9519","\u9519\u8BEF","\u600E\u4E48\u56DE\u4E8B","\u6392\u67E5","\u65E5\u5FD7","\u751F\u6210\u60C5\u51B5","\u5361\u4F4F","\u8C03\u8BD5","\u8BCA\u65AD","\u8FD0\u884C\u60C5\u51B5","\u4E3A\u4EC0\u4E48","\u539F\u56E0","\u6839\u56E0"],regexes:[{label:"inspect logs or runtime",regex:/\b(?:check|inspect|investigate|debug|diagnose|triage)\b[\s\S]{0,40}\b(?:log|logs|runtime|state|status|stuck|error|trace)\b/i},{label:"chinese inspect logs or status",regex:/(?:看看|检查|排查|诊断).{0,20}(?:日志|报错|错误|状态|运行情况|卡住|异常)|(?:日志|报错|错误|状态).{0,20}(?:看看|检查|排查|诊断|怎么回事)/u},{label:"current project incident",regex:/当前项目.{0,24}(?:报错|错误|异常|问题|状态|情况|怎么回事|排查|卡住|失败|崩溃|不对)|(?:排查|诊断|检查|看看).{0,16}当前项目.{0,24}(?:报错|错误|异常|问题|卡住|失败|崩溃)/u},{label:"current runtime situation",regex:/当前(?:情况|状态).{0,20}(?:报错|错误|异常|问题|排查|卡住|失败|不对|怎么回事)/u}]}),analysisIntent:compileSignalDefinition({englishPhrases:["compare","comparison","benchmark","competitive landscape","product analysis","evaluate the product","how friendly","market position","horizontal comparison","objective analysis"],compactPhrases:["\u5BA2\u89C2\u5206\u6790","\u6A2A\u5411\u5BF9\u6BD4","\u6A2A\u5411\u6BD4\u8F83","\u7ADE\u54C1\u5BF9\u6BD4","\u7ADE\u54C1\u5206\u6790","\u4EA7\u54C1\u529B","\u53CB\u597D\u7A0B\u5EA6","\u7528\u6237\u4F53\u9A8C","\u5BF9\u6BD4\u5206\u6790","\u6BD4\u8F83\u5206\u6790","\u4E3B\u6D41cli","\u7AF6\u5408\u5206\u6790","\u88FD\u54C1\u5206\u6790","\u6A2A\u65AD\u6BD4\u8F03","\u30E6\u30FC\u30B6\u30FC\u4F53\u9A13"],regexes:[{label:"chinese product or project analysis",regex:/(?:客观)?分析(?:一下)?(?:当前|这个|本)?(?:项目|产品|竞品|cli|工具)/iu},{label:"chinese comparison request",regex:/(?:横向|全面|详细|客观)(?:对比|比较)|(?:对比|比较)(?:一下)?(?:全部|所有|主流|各家|几个|竞品|产品|方案|架构|工具|版本|cli)|(?:和|与|vs\.?)[^,。?!\n]{0,24}的(?:对比|比较)/iu},{label:"english analyze or compare products",regex:/\b(?:analyze|analysis|compare|comparison|benchmark|evaluate)\b[\s\S]{0,80}\b(?:product|cli|tool|competitor|competitors|landscape|market|project)\b/i},{label:"user friendliness evaluation",regex:/(?:对|面向)(?:中国|国内)?(?:用户|开发者).{0,24}(?:友好|体验|适配)|(?:用户|产品)(?:友好|体验).{0,24}(?:如何|怎么样)/iu},{label:"japanese product analysis",regex:/(?:競合|製品|プロダクト|cli|ツール).{0,12}(?:分析|比較)|(?:横断|水平).{0,6}(?:比較|分析)/u}]}),researchIntent:compileSignalDefinition({englishPhrases:["explain","show me","what files","where is","where are","which files","locate","point me to"],compactPhrases:["\u4EC0\u4E48\u6587\u4EF6","\u54EA\u4E9B\u6587\u4EF6","\u5728\u54EA\u91CC","\u89E3\u91CA","\u54EA\u4E2A\u6587\u4EF6","\u54EA\u4E9B\u5730\u65B9","\u7ED9\u6211\u770B\u770B","\u3069\u306E\u30D5\u30A1\u30A4\u30EB","\u3069\u3053\u306B\u3042\u308B","\u8AAC\u660E\u3057\u3066"]}),reviewIntent:compileSignalDefinition({englishPhrases:["audit","code review","review this","review the","review my","review our","sanity check","review this patch","review the diff","review the pr","review the change","review the changes"],compactPhrases:["\u4EE3\u7801\u5BA1\u67E5","\u5BA1\u67E5\u4EE3\u7801","\u5BA1\u67E5\u4E00\u4E0B","\u5BA1\u67E5\u4E0B","\u5BA1\u67E5\u8FD9\u4E2A","\u5BA1\u67E5\u8FD9\u6BB5","\u5BA1\u67E5\u6539\u52A8","\u5BA1\u67E5\u53D8\u66F4","\u5BA1\u67E5diff","\u5BA1\u67E5pr","\u505A\u5BA1\u67E5","\u505A\u4E2A\u5BA1\u67E5","\u505A\u4E00\u6B21\u5BA1\u67E5","\u8BF7\u5BA1\u67E5","\u5E2E\u6211\u5BA1\u67E5","\u5E2E\u5FD9\u5BA1\u67E5","\u5B89\u5168\u5BA1\u67E5","\u4EE3\u7801\u8BC4\u5BA1","\u8BC4\u5BA1\u4EE3\u7801","\u8BC4\u5BA1\u4E00\u4E0B","\u8BC4\u5BA1\u6539\u52A8","\u8FC7\u4E00\u904D\u4EE3\u7801","\u8FC7\u4E00\u904D\u6539\u52A8","\u68C0\u67E5\u6539\u52A8","\u770B\u6539\u52A8","\u98CE\u9669\u70B9","\u30B3\u30FC\u30C9\u30EC\u30D3\u30E5\u30FC","\u30EC\u30D3\u30E5\u30FC\u3057\u3066","\u30EC\u30D3\u30E5\u30FC\u304A\u9858\u3044","\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u308C","\u3053\u306E\u5909\u66F4\u3092\u30EC\u30D3\u30E5\u30FC","\u5DEE\u5206\u3092\u30EC\u30D3\u30E5\u30FC","\u5909\u66F4\u3092\u30EC\u30D3\u30E5\u30FC","\u5BE9\u67FB\u3057\u3066","\u30B3\u30FC\u30C9\u5BE9\u67FB"],regexes:[{label:"english review/audit with code object",regex:/\b(review|audit)\b[\s\S]{0,40}\b(this|the|my|our|code|patch|diff|pr|change|changes|pull request)\b/i},{label:"chinese review collocation",regex:/(?:请|帮我|帮忙)?(?:审查|评审)(?:一下|下)?(?:这个|这段|本次)?(?:代码|改动|变更|diff|pr|补丁)|(?:代码|改动|变更).{0,6}(?:审查|评审)/iu}]})},READ_ONLY_DECLARATION_RE=/(?:read[- ]only|只读|仅查看|只看不改)/gi,BROAD_MUTATION_PROHIBITION_RE=/(?:不需要|不用|不要|无需|别|勿|请不要|no need to|don'?t|do not|without)\s*(?:去)?(?:修改|改动|改写|变更|修|改|动|edit|editing|modify|modifying|change|changing|touch|touching)(?:\s*(?:任何|any)?\s*(?:文件|代码|源码|东西|files?|code|anything|it))?(?=$|[\s,。!?、;:,.!?]|$)/i;__name(hasBroadMutationProhibition,"hasBroadMutationProhibition")}});function normalizeWhitespace(value){return String(value||"").trim().replace(/\s+/g," ")}function normalizeMaoSupervisorProof(value){let source=value&&typeof value=="object"?value:{},proof={ledgerPath:normalizeWhitespace(source.ledgerPath),workflowRunId:normalizeWhitespace(source.workflowRunId),workflowRunPath:normalizeWhitespace(source.workflowRunPath),finalGateStatus:normalizeWhitespace(source.finalGateStatus)};return Object.values(proof).some(Boolean)?proof:null}function scopeSessionWorkflowContinuityContext({context=null,sessionId=null,projectRoot=null}={}){if(!context)return null;let scopedSessionId=context.sessionId??sessionId??void 0,scopedProjectRoot=context.projectRoot??projectRoot??null;if(sessionId&&scopedSessionId&&scopedSessionId!==sessionId||projectRoot&&scopedProjectRoot&&scopedProjectRoot!==projectRoot)return null;if((context.sessionId??null)===(scopedSessionId??null)&&(context.projectRoot??null)===(scopedProjectRoot??null)){let maoSupervisorProof=normalizeMaoSupervisorProof(context.maoSupervisorProof);return maoSupervisorProof===context.maoSupervisorProof?context:{...context,maoSupervisorProof}}return{...context,maoSupervisorProof:normalizeMaoSupervisorProof(context.maoSupervisorProof),sessionId:scopedSessionId,projectRoot:scopedProjectRoot}}var init_sessionWorkflowContinuityCore=__esm({"src/utils/sessionWorkflowContinuityCore.ts"(){init_outcomeDiscipline();init_userTurnIntent();__name(normalizeWhitespace,"normalizeWhitespace");__name(normalizeMaoSupervisorProof,"normalizeMaoSupervisorProof");__name(scopeSessionWorkflowContinuityContext,"scopeSessionWorkflowContinuityContext")}});import{randomUUID}from"crypto";var init_crypto=__esm({"src/utils/crypto.ts"(){}});function getSessionSettingsCache(){return sessionSettingsCache}function setSessionSettingsCache(value){sessionSettingsCache=value}function getCachedSettingsForSource(source){return perSourceCache.has(source)?perSourceCache.get(source):void 0}function setCachedSettingsForSource(source,value){perSourceCache.set(source,value)}function getCachedParsedFile(path10){return parseFileCache.get(path10)}function setCachedParsedFile(path10,value){parseFileCache.set(path10,value)}function resetSettingsCache(){sessionSettingsCache=null,perSourceCache.clear(),parseFileCache.clear()}function getPluginSettingsBase(){return pluginSettingsBase}var sessionSettingsCache,perSourceCache,parseFileCache,pluginSettingsBase,init_settingsCache=__esm({"src/utils/settings/settingsCache.ts"(){sessionSettingsCache=null;__name(getSessionSettingsCache,"getSessionSettingsCache");__name(setSessionSettingsCache,"setSessionSettingsCache");perSourceCache=new Map;__name(getCachedSettingsForSource,"getCachedSettingsForSource");__name(setCachedSettingsForSource,"setCachedSettingsForSource");parseFileCache=new Map;__name(getCachedParsedFile,"getCachedParsedFile");__name(setCachedParsedFile,"setCachedParsedFile");__name(resetSettingsCache,"resetSettingsCache");__name(getPluginSettingsBase,"getPluginSettingsBase")}});function createSignal(){let listeners2=new Set;return{subscribe(listener){return listeners2.add(listener),()=>{listeners2.delete(listener)}},emit(...args){for(let listener of listeners2)listener(...args)},clear(){listeners2.clear()}}}var init_signal=__esm({"src/utils/signal.ts"(){__name(createSignal,"createSignal")}});var state_exports={};__export(state_exports,{addInvokedSkill:()=>addInvokedSkill,addSessionCronTask:()=>addSessionCronTask,addSlowOperation:()=>addSlowOperation,addToInMemoryErrorLog:()=>addToInMemoryErrorLog,addToToolDuration:()=>addToToolDuration,addToTotalCostState:()=>addToTotalCostState,addToTotalDurationState:()=>addToTotalDurationState,addToTotalLinesChanged:()=>addToTotalLinesChanged,addToTurnClassifierDuration:()=>addToTurnClassifierDuration,addToTurnHookDuration:()=>addToTurnHookDuration,clearBetaHeaderLatches:()=>clearBetaHeaderLatches,clearInvokedSkills:()=>clearInvokedSkills,clearInvokedSkillsForAgent:()=>clearInvokedSkillsForAgent,clearRegisteredHooks:()=>clearRegisteredHooks,clearRegisteredPluginHooks:()=>clearRegisteredPluginHooks,clearSystemPromptSectionState:()=>clearSystemPromptSectionState,consumePostCompaction:()=>consumePostCompaction,flushInteractionTime:()=>flushInteractionTime,getActiveTimeCounter:()=>getActiveTimeCounter,getAdditionalDirectoriesForClaudeMd:()=>getAdditionalDirectoriesForClaudeMd,getAfkModeHeaderLatched:()=>getAfkModeHeaderLatched,getAgentColorMap:()=>getAgentColorMap,getAllowedChannels:()=>getAllowedChannels,getAllowedSettingSources:()=>getAllowedSettingSources,getApiKeyFromFd:()=>getApiKeyFromFd,getBudgetContinuationCount:()=>getBudgetContinuationCount,getCacheEditingHeaderLatched:()=>getCacheEditingHeaderLatched,getCachedClaudeMdContent:()=>getCachedClaudeMdContent,getChromeFlagOverride:()=>getChromeFlagOverride,getClientType:()=>getClientType,getCodeEditToolDecisionCounter:()=>getCodeEditToolDecisionCounter,getCommitCounter:()=>getCommitCounter,getCostCounter:()=>getCostCounter,getCurrentTurnTokenBudget:()=>getCurrentTurnTokenBudget,getCwdState:()=>getCwdState,getDirectConnectServerUrl:()=>getDirectConnectServerUrl,getEventLogger:()=>getEventLogger,getFastModeHeaderLatched:()=>getFastModeHeaderLatched,getFlagSettingsInline:()=>getFlagSettingsInline,getFlagSettingsPath:()=>getFlagSettingsPath,getHasDevChannels:()=>getHasDevChannels,getInitJsonSchema:()=>getInitJsonSchema,getInitialMainLoopModel:()=>getInitialMainLoopModel,getInlinePlugins:()=>getInlinePlugins,getInvokedSkills:()=>getInvokedSkills,getInvokedSkillsForAgent:()=>getInvokedSkillsForAgent,getIsInteractive:()=>getIsInteractive,getIsNonInteractiveSession:()=>getIsNonInteractiveSession,getIsRemoteMode:()=>getIsRemoteMode,getIsScrollDraining:()=>getIsScrollDraining,getKairosActive:()=>getKairosActive,getLastAPIRequest:()=>getLastAPIRequest,getLastAPIRequestMessages:()=>getLastAPIRequestMessages,getLastApiCompletionTimestamp:()=>getLastApiCompletionTimestamp,getLastClassifierRequests:()=>getLastClassifierRequests,getLastEmittedDate:()=>getLastEmittedDate,getLastInteractionTime:()=>getLastInteractionTime,getLastMainRequestId:()=>getLastMainRequestId,getLocCounter:()=>getLocCounter,getLoggerProvider:()=>getLoggerProvider,getMainLoopModelOverride:()=>getMainLoopModelOverride,getMainThreadAgentType:()=>getMainThreadAgentType,getMeter:()=>getMeter,getMeterProvider:()=>getMeterProvider,getModelLaunchMeta:()=>getModelLaunchMeta,getModelStrings:()=>getModelStrings,getModelUsage:()=>getModelUsage,getOauthTokenFromFd:()=>getOauthTokenFromFd,getOriginalCwd:()=>getOriginalCwd,getParentSessionId:()=>getParentSessionId,getPlanSlugCache:()=>getPlanSlugCache,getPostCompactionAutoCompactState:()=>getPostCompactionAutoCompactState,getPrCounter:()=>getPrCounter,getProjectRoot:()=>getProjectRoot,getPromptCache1hAllowlist:()=>getPromptCache1hAllowlist,getPromptCache1hEligible:()=>getPromptCache1hEligible,getPromptId:()=>getPromptId,getQuestionPreviewFormat:()=>getQuestionPreviewFormat,getRegisteredHooks:()=>getRegisteredHooks,getScheduledTasksEnabled:()=>getScheduledTasksEnabled,getSdkAgentProgressSummariesEnabled:()=>getSdkAgentProgressSummariesEnabled,getSdkBetas:()=>getSdkBetas,getSessionBypassPermissionsMode:()=>getSessionBypassPermissionsMode,getSessionCompactionCount:()=>getSessionCompactionCount,getSessionCounter:()=>getSessionCounter,getSessionCreatedTeams:()=>getSessionCreatedTeams,getSessionCronTasks:()=>getSessionCronTasks,getSessionId:()=>getSessionId,getSessionIngressToken:()=>getSessionIngressToken,getSessionProjectDir:()=>getSessionProjectDir,getSessionSource:()=>getSessionSource,getSessionToolCallCount:()=>getSessionToolCallCount,getSessionTrustAccepted:()=>getSessionTrustAccepted,getSessionTurnCount:()=>getSessionTurnCount,getSessionWorkflowContinuityContext:()=>getSessionWorkflowContinuityContext,getSlowOperations:()=>getSlowOperations,getStatsStore:()=>getStatsStore,getStrictToolResultPairing:()=>getStrictToolResultPairing,getSystemPromptSectionCache:()=>getSystemPromptSectionCache,getTeleportedSessionInfo:()=>getTeleportedSessionInfo,getThinkingClearLatched:()=>getThinkingClearLatched,getTokenCounter:()=>getTokenCounter,getTotalAPIDuration:()=>getTotalAPIDuration,getTotalAPIDurationWithoutRetries:()=>getTotalAPIDurationWithoutRetries,getTotalCacheCreationInputTokens:()=>getTotalCacheCreationInputTokens,getTotalCacheReadInputTokens:()=>getTotalCacheReadInputTokens,getTotalCostUSD:()=>getTotalCostUSD,getTotalDuration:()=>getTotalDuration,getTotalInputTokens:()=>getTotalInputTokens,getTotalLinesAdded:()=>getTotalLinesAdded,getTotalLinesRemoved:()=>getTotalLinesRemoved,getTotalOutputTokens:()=>getTotalOutputTokens,getTotalToolDuration:()=>getTotalToolDuration,getTotalWebSearchRequests:()=>getTotalWebSearchRequests,getTracerProvider:()=>getTracerProvider,getTurnClassifierCount:()=>getTurnClassifierCount,getTurnClassifierDurationMs:()=>getTurnClassifierDurationMs,getTurnHookCount:()=>getTurnHookCount,getTurnHookDurationMs:()=>getTurnHookDurationMs,getTurnOutputTokens:()=>getTurnOutputTokens,getTurnToolCount:()=>getTurnToolCount,getTurnToolDurationMs:()=>getTurnToolDurationMs,getUsageForModel:()=>getUsageForModel,getUseCoworkPlugins:()=>getUseCoworkPlugins,getUserMsgOptIn:()=>getUserMsgOptIn,handleAutoModeTransition:()=>handleAutoModeTransition,handlePlanModeTransition:()=>handlePlanModeTransition,hasExitedPlanModeInSession:()=>hasExitedPlanModeInSession,hasShownLspRecommendationThisSession:()=>hasShownLspRecommendationThisSession,hasUnknownModelCost:()=>hasUnknownModelCost,incSessionCompaction:()=>incSessionCompaction,incSessionToolCall:()=>incSessionToolCall,incSessionTurn:()=>incSessionTurn,incrementBudgetContinuationCount:()=>incrementBudgetContinuationCount,isCostStateRestored:()=>isCostStateRestored,isReplBridgeActive:()=>isReplBridgeActive,isSessionPersistenceDisabled:()=>isSessionPersistenceDisabled,markFirstTeleportMessageLogged:()=>markFirstTeleportMessageLogged,markPostCompaction:()=>markPostCompaction,markScrollActivity:()=>markScrollActivity,needsAutoModeExitAttachment:()=>needsAutoModeExitAttachment,needsPlanModeExitAttachment:()=>needsPlanModeExitAttachment,onSessionSwitch:()=>onSessionSwitch,preferThirdPartyAuthentication:()=>preferThirdPartyAuthentication,regenerateSessionId:()=>regenerateSessionId,registerHookCallbacks:()=>registerHookCallbacks,removeSessionCronTasks:()=>removeSessionCronTasks,resetCostState:()=>resetCostState,resetModelStrings:()=>resetModelStrings,resetModelStringsForTestingOnly:()=>resetModelStringsForTestingOnly,resetSdkInitState:()=>resetSdkInitState,resetStateForTests:()=>resetStateForTests,resetTotalDurationStateAndCost_FOR_TESTS_ONLY:()=>resetTotalDurationStateAndCost_FOR_TESTS_ONLY,resetTurnClassifierDuration:()=>resetTurnClassifierDuration,resetTurnHookDuration:()=>resetTurnHookDuration,resetTurnToolDuration:()=>resetTurnToolDuration,setAdditionalDirectoriesForClaudeMd:()=>setAdditionalDirectoriesForClaudeMd,setAfkModeHeaderLatched:()=>setAfkModeHeaderLatched,setAllowedChannels:()=>setAllowedChannels,setAllowedSettingSources:()=>setAllowedSettingSources,setApiKeyFromFd:()=>setApiKeyFromFd,setCacheEditingHeaderLatched:()=>setCacheEditingHeaderLatched,setCachedClaudeMdContent:()=>setCachedClaudeMdContent,setChromeFlagOverride:()=>setChromeFlagOverride,setClientType:()=>setClientType,setCostStateForRestore:()=>setCostStateForRestore,setCwdState:()=>setCwdState,setDirectConnectServerUrl:()=>setDirectConnectServerUrl,setEventLogger:()=>setEventLogger,setFastModeHeaderLatched:()=>setFastModeHeaderLatched,setFlagSettingsInline:()=>setFlagSettingsInline,setFlagSettingsPath:()=>setFlagSettingsPath,setHasDevChannels:()=>setHasDevChannels,setHasExitedPlanMode:()=>setHasExitedPlanMode,setHasUnknownModelCost:()=>setHasUnknownModelCost,setInitJsonSchema:()=>setInitJsonSchema,setInitialMainLoopModel:()=>setInitialMainLoopModel,setInlinePlugins:()=>setInlinePlugins,setIsInteractive:()=>setIsInteractive,setIsRemoteMode:()=>setIsRemoteMode,setKairosActive:()=>setKairosActive,setLastAPIRequest:()=>setLastAPIRequest,setLastAPIRequestMessages:()=>setLastAPIRequestMessages,setLastApiCompletionTimestamp:()=>setLastApiCompletionTimestamp,setLastClassifierRequests:()=>setLastClassifierRequests,setLastEmittedDate:()=>setLastEmittedDate,setLastMainRequestId:()=>setLastMainRequestId,setLoggerProvider:()=>setLoggerProvider,setLspRecommendationShownThisSession:()=>setLspRecommendationShownThisSession,setMainLoopModelOverride:()=>setMainLoopModelOverride,setMainThreadAgentType:()=>setMainThreadAgentType,setMeter:()=>setMeter,setMeterProvider:()=>setMeterProvider,setModelLaunchMeta:()=>setModelLaunchMeta,setModelStrings:()=>setModelStrings,setNeedsAutoModeExitAttachment:()=>setNeedsAutoModeExitAttachment,setNeedsPlanModeExitAttachment:()=>setNeedsPlanModeExitAttachment,setOauthTokenFromFd:()=>setOauthTokenFromFd,setOriginalCwd:()=>setOriginalCwd,setPostCompactionAutoCompactState:()=>setPostCompactionAutoCompactState,setProjectRoot:()=>setProjectRoot,setPromptCache1hAllowlist:()=>setPromptCache1hAllowlist,setPromptCache1hEligible:()=>setPromptCache1hEligible,setPromptId:()=>setPromptId,setQuestionPreviewFormat:()=>setQuestionPreviewFormat,setReplBridgeActive:()=>setReplBridgeActive,setScheduledTasksEnabled:()=>setScheduledTasksEnabled,setSdkAgentProgressSummariesEnabled:()=>setSdkAgentProgressSummariesEnabled,setSdkBetas:()=>setSdkBetas,setSessionBypassPermissionsMode:()=>setSessionBypassPermissionsMode,setSessionIngressToken:()=>setSessionIngressToken,setSessionPersistenceDisabled:()=>setSessionPersistenceDisabled,setSessionSource:()=>setSessionSource,setSessionTrustAccepted:()=>setSessionTrustAccepted,setSessionWorkflowContinuityContext:()=>setSessionWorkflowContinuityContext,setStatsStore:()=>setStatsStore,setStrictToolResultPairing:()=>setStrictToolResultPairing,setSystemPromptSectionCacheEntry:()=>setSystemPromptSectionCacheEntry,setTeleportedSessionInfo:()=>setTeleportedSessionInfo,setThinkingClearLatched:()=>setThinkingClearLatched,setTracerProvider:()=>setTracerProvider,setUseCoworkPlugins:()=>setUseCoworkPlugins,setUserMsgOptIn:()=>setUserMsgOptIn,snapshotOutputTokensForTurn:()=>snapshotOutputTokensForTurn,switchSession:()=>switchSession,updateLastInteractionTime:()=>updateLastInteractionTime,waitForScrollIdle:()=>waitForScrollIdle});import{realpathSync}from"fs";import{cwd}from"process";function getInitialState(){let resolvedCwd="";if(typeof process<"u"&&typeof process.cwd=="function"&&typeof realpathSync=="function"){let rawCwd=cwd();try{resolvedCwd=realpathSync(rawCwd).normalize("NFC")}catch{resolvedCwd=rawCwd.normalize("NFC")}}return{originalCwd:resolvedCwd,projectRoot:resolvedCwd,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,turnHookDurationMs:0,turnToolDurationMs:0,turnClassifierDurationMs:0,turnToolCount:0,turnHookCount:0,turnClassifierCount:0,sessionTurnCount:0,sessionToolCallCount:0,sessionCompactionCount:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,costStateRestored:!1,cwd:resolvedCwd,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,kairosActive:!1,strictToolResultPairing:!1,sdkAgentProgressSummariesEnabled:!1,userMsgOptIn:!1,clientType:"cli",sessionSource:void 0,questionPreviewFormat:void 0,sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,flagSettingsInline:null,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,statsStore:null,sessionId:randomUUID(),parentSessionId:void 0,loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,lastAPIRequest:null,lastAPIRequestMessages:null,lastClassifierRequests:null,cachedClaudeMdContent:null,inMemoryErrorLog:[],inlinePlugins:[],chromeFlagOverride:void 0,modelLaunch:{requested:null,effective:null,source:null},useCoworkPlugins:!1,sessionBypassPermissionsMode:!1,scheduledTasksEnabled:!1,sessionCronTasks:[],sessionCreatedTeams:new Set,sessionTrustAccepted:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,needsAutoModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sessionWorkflowContinuityContext:null,sdkBetas:void 0,mainThreadAgentType:void 0,isRemoteMode:!1,...process.env.USER_TYPE==="ant"?{replBridgeActive:!1}:{},directConnectServerUrl:void 0,systemPromptSectionCache:new Map,lastEmittedDate:null,additionalDirectoriesForClaudeMd:[],allowedChannels:[],hasDevChannels:!1,sessionProjectDir:null,promptCache1hAllowlist:null,promptCache1hEligible:null,afkModeHeaderLatched:null,fastModeHeaderLatched:null,cacheEditingHeaderLatched:null,thinkingClearLatched:null,promptId:null,lastMainRequestId:void 0,lastApiCompletionTimestamp:null,pendingPostCompaction:!1,postCompactionAutoCompactState:null}}function getSessionId(){return STATE.sessionId}function regenerateSessionId(options={}){return options.setCurrentAsParent&&(STATE.parentSessionId=STATE.sessionId),STATE.planSlugCache.delete(STATE.sessionId),STATE.sessionId=randomUUID(),STATE.sessionProjectDir=null,STATE.sessionWorkflowContinuityContext=null,STATE.sessionId}function getParentSessionId(){return STATE.parentSessionId}function switchSession(sessionId,projectDir=null){STATE.planSlugCache.delete(STATE.sessionId),STATE.sessionId=sessionId,STATE.sessionProjectDir=projectDir,STATE.sessionWorkflowContinuityContext=null,sessionSwitched.emit(sessionId)}function getSessionProjectDir(){return STATE.sessionProjectDir}function getOriginalCwd(){return STATE.originalCwd}function getProjectRoot(){return STATE.projectRoot}function setOriginalCwd(cwd2){STATE.originalCwd=cwd2.normalize("NFC")}function setProjectRoot(cwd2){let nextProjectRoot=cwd2.normalize("NFC");STATE.projectRoot!==nextProjectRoot&&(STATE.sessionWorkflowContinuityContext=null,resetSettingsCache()),STATE.projectRoot=nextProjectRoot}function getCwdState(){return STATE.cwd}function setCwdState(cwd2){STATE.cwd=cwd2.normalize("NFC")}function getDirectConnectServerUrl(){return STATE.directConnectServerUrl}function setDirectConnectServerUrl(url3){STATE.directConnectServerUrl=url3}function addToTotalDurationState(duration3,durationWithoutRetries){STATE.totalAPIDuration+=duration3,STATE.totalAPIDurationWithoutRetries+=durationWithoutRetries}function resetTotalDurationStateAndCost_FOR_TESTS_ONLY(){STATE.totalAPIDuration=0,STATE.totalAPIDurationWithoutRetries=0,STATE.totalCostUSD=0}function addToTotalCostState(cost,modelUsage,model){STATE.modelUsage[model]=modelUsage,STATE.totalCostUSD+=cost}function getTotalCostUSD(){return STATE.totalCostUSD}function getTotalAPIDuration(){return STATE.totalAPIDuration}function getTotalDuration(){return Date.now()-STATE.startTime}function getTotalAPIDurationWithoutRetries(){return STATE.totalAPIDurationWithoutRetries}function getTotalToolDuration(){return STATE.totalToolDuration}function addToToolDuration(duration3){STATE.totalToolDuration+=duration3,STATE.turnToolDurationMs+=duration3,STATE.turnToolCount++,STATE.sessionToolCallCount=(STATE.sessionToolCallCount??0)+1}function getTurnHookDurationMs(){return STATE.turnHookDurationMs}function addToTurnHookDuration(duration3){STATE.turnHookDurationMs+=duration3,STATE.turnHookCount++}function resetTurnHookDuration(){STATE.turnHookDurationMs=0,STATE.turnHookCount=0}function getTurnHookCount(){return STATE.turnHookCount}function getTurnToolDurationMs(){return STATE.turnToolDurationMs}function resetTurnToolDuration(){STATE.turnToolDurationMs=0,STATE.turnToolCount=0}function getTurnToolCount(){return STATE.turnToolCount}function getTurnClassifierDurationMs(){return STATE.turnClassifierDurationMs}function addToTurnClassifierDuration(duration3){STATE.turnClassifierDurationMs+=duration3,STATE.turnClassifierCount++}function resetTurnClassifierDuration(){STATE.turnClassifierDurationMs=0,STATE.turnClassifierCount=0}function getTurnClassifierCount(){return STATE.turnClassifierCount}function incSessionTurn(){STATE.sessionTurnCount=(STATE.sessionTurnCount??0)+1}function getSessionTurnCount(){return STATE.sessionTurnCount??0}function incSessionToolCall(){STATE.sessionToolCallCount=(STATE.sessionToolCallCount??0)+1}function getSessionToolCallCount(){return STATE.sessionToolCallCount??0}function incSessionCompaction(){STATE.sessionCompactionCount=(STATE.sessionCompactionCount??0)+1}function getSessionCompactionCount(){return STATE.sessionCompactionCount??0}function getStatsStore(){return STATE.statsStore}function setStatsStore(store){STATE.statsStore=store}function updateLastInteractionTime(immediate){immediate?flushInteractionTime_inner():interactionTimeDirty=!0}function flushInteractionTime(){interactionTimeDirty&&flushInteractionTime_inner()}function flushInteractionTime_inner(){STATE.lastInteractionTime=Date.now(),interactionTimeDirty=!1}function addToTotalLinesChanged(added,removed){STATE.totalLinesAdded+=added,STATE.totalLinesRemoved+=removed}function getTotalLinesAdded(){return STATE.totalLinesAdded}function getTotalLinesRemoved(){return STATE.totalLinesRemoved}function getTotalInputTokens(){return sumBy_default(Object.values(STATE.modelUsage),"inputTokens")}function getTotalOutputTokens(){return sumBy_default(Object.values(STATE.modelUsage),"outputTokens")}function getTotalCacheReadInputTokens(){return sumBy_default(Object.values(STATE.modelUsage),"cacheReadInputTokens")}function getTotalCacheCreationInputTokens(){return sumBy_default(Object.values(STATE.modelUsage),"cacheCreationInputTokens")}function getTotalWebSearchRequests(){return sumBy_default(Object.values(STATE.modelUsage),"webSearchRequests")}function getTurnOutputTokens(){return getTotalOutputTokens()-outputTokensAtTurnStart}function getCurrentTurnTokenBudget(){return currentTurnTokenBudget}function snapshotOutputTokensForTurn(budget){outputTokensAtTurnStart=getTotalOutputTokens(),currentTurnTokenBudget=budget,budgetContinuationCount=0}function getBudgetContinuationCount(){return budgetContinuationCount}function incrementBudgetContinuationCount(){budgetContinuationCount++}function setHasUnknownModelCost(){STATE.hasUnknownModelCost=!0}function hasUnknownModelCost(){return STATE.hasUnknownModelCost}function isCostStateRestored(){return STATE.costStateRestored}function getLastMainRequestId(){return STATE.lastMainRequestId}function setLastMainRequestId(requestId){STATE.lastMainRequestId=requestId}function getLastApiCompletionTimestamp(){return STATE.lastApiCompletionTimestamp}function setLastApiCompletionTimestamp(timestamp){STATE.lastApiCompletionTimestamp=timestamp}function markPostCompaction(){STATE.pendingPostCompaction=!0}function consumePostCompaction(){let was=STATE.pendingPostCompaction;return STATE.pendingPostCompaction=!1,was}function getPostCompactionAutoCompactState(){return STATE.postCompactionAutoCompactState}function setPostCompactionAutoCompactState(value){STATE.postCompactionAutoCompactState=value}function getLastInteractionTime(){return STATE.lastInteractionTime}function markScrollActivity(){scrollDraining=!0,scrollDrainTimer&&clearTimeout(scrollDrainTimer),scrollDrainTimer=setTimeout(()=>{scrollDraining=!1,scrollDrainTimer=void 0},SCROLL_DRAIN_IDLE_MS),scrollDrainTimer.unref?.()}function getIsScrollDraining(){return scrollDraining}async function waitForScrollIdle(){for(;scrollDraining;)await new Promise(r2=>setTimeout(r2,SCROLL_DRAIN_IDLE_MS).unref?.())}function getModelUsage(){return STATE.modelUsage}function getUsageForModel(model){return STATE.modelUsage[model]}function getMainLoopModelOverride(){return STATE.mainLoopModelOverride}function getInitialMainLoopModel(){return STATE.initialMainLoopModel}function setMainLoopModelOverride(model){STATE.mainLoopModelOverride=model}function setInitialMainLoopModel(model){STATE.initialMainLoopModel=model}function getSdkBetas(){return STATE.sdkBetas}function setSdkBetas(betas){STATE.sdkBetas=betas}function resetCostState(){STATE.totalCostUSD=0,STATE.totalAPIDuration=0,STATE.totalAPIDurationWithoutRetries=0,STATE.totalToolDuration=0,STATE.startTime=Date.now(),STATE.totalLinesAdded=0,STATE.totalLinesRemoved=0,STATE.hasUnknownModelCost=!1,STATE.costStateRestored=!1,STATE.modelUsage={},STATE.promptId=null}function setCostStateForRestore({totalCostUSD,totalAPIDuration,totalAPIDurationWithoutRetries,totalToolDuration,totalLinesAdded,totalLinesRemoved,lastDuration,modelUsage}){STATE.totalCostUSD=totalCostUSD,STATE.totalAPIDuration=totalAPIDuration,STATE.totalAPIDurationWithoutRetries=totalAPIDurationWithoutRetries,STATE.totalToolDuration=totalToolDuration,STATE.totalLinesAdded=totalLinesAdded,STATE.totalLinesRemoved=totalLinesRemoved,STATE.costStateRestored=!0,modelUsage&&(STATE.modelUsage=modelUsage),lastDuration&&(STATE.startTime=Date.now()-lastDuration)}function resetStateForTests(){if(process.env.NODE_ENV!=="test")throw new Error("resetStateForTests can only be called in tests");Object.entries(getInitialState()).forEach(([key,value])=>{STATE[key]=value}),outputTokensAtTurnStart=0,currentTurnTokenBudget=null,budgetContinuationCount=0,sessionSwitched.clear()}function getModelStrings(){return STATE.modelStrings}function setModelStrings(modelStrings){STATE.modelStrings=modelStrings}function resetModelStrings(){STATE.modelStrings=null}function setMeter(meter,createCounter){STATE.meter=meter,STATE.sessionCounter=createCounter("claude_code.session.count",{description:"Count of CLI sessions started"}),STATE.locCounter=createCounter("claude_code.lines_of_code.count",{description:"Count of lines of code modified, with the 'type' attribute indicating whether lines were added or removed"}),STATE.prCounter=createCounter("claude_code.pull_request.count",{description:"Number of pull requests created"}),STATE.commitCounter=createCounter("claude_code.commit.count",{description:"Number of git commits created"}),STATE.costCounter=createCounter("claude_code.cost.usage",{description:"Cost of the Clavue session",unit:"USD"}),STATE.tokenCounter=createCounter("claude_code.token.usage",{description:"Number of tokens used",unit:"tokens"}),STATE.codeEditToolDecisionCounter=createCounter("claude_code.code_edit_tool.decision",{description:"Count of code editing tool permission decisions (accept/reject) for Edit, Write, and NotebookEdit tools"}),STATE.activeTimeCounter=createCounter("claude_code.active_time.total",{description:"Total active time in seconds",unit:"s"})}function getMeter(){return STATE.meter}function getSessionCounter(){return STATE.sessionCounter}function getLocCounter(){return STATE.locCounter}function getPrCounter(){return STATE.prCounter}function getCommitCounter(){return STATE.commitCounter}function getCostCounter(){return STATE.costCounter}function getTokenCounter(){return STATE.tokenCounter}function getCodeEditToolDecisionCounter(){return STATE.codeEditToolDecisionCounter}function getActiveTimeCounter(){return STATE.activeTimeCounter}function getLoggerProvider(){return STATE.loggerProvider}function setLoggerProvider(provider){STATE.loggerProvider=provider}function getEventLogger(){return STATE.eventLogger}function setEventLogger(logger){STATE.eventLogger=logger}function getMeterProvider(){return STATE.meterProvider}function setMeterProvider(provider){STATE.meterProvider=provider}function getTracerProvider(){return STATE.tracerProvider}function setTracerProvider(provider){STATE.tracerProvider=provider}function getIsNonInteractiveSession(){return!STATE.isInteractive}function getIsInteractive(){return STATE.isInteractive}function setIsInteractive(value){STATE.isInteractive=value}function getClientType(){return STATE.clientType}function setClientType(type){STATE.clientType=type}function getSdkAgentProgressSummariesEnabled(){return STATE.sdkAgentProgressSummariesEnabled}function setSdkAgentProgressSummariesEnabled(value){STATE.sdkAgentProgressSummariesEnabled=value}function getKairosActive(){return STATE.kairosActive}function setKairosActive(value){STATE.kairosActive=value}function getStrictToolResultPairing(){return STATE.strictToolResultPairing}function setStrictToolResultPairing(value){STATE.strictToolResultPairing=value}function getUserMsgOptIn(){return STATE.userMsgOptIn}function setUserMsgOptIn(value){STATE.userMsgOptIn=value}function getSessionSource(){return STATE.sessionSource}function setSessionSource(source){STATE.sessionSource=source}function getQuestionPreviewFormat(){return STATE.questionPreviewFormat}function setQuestionPreviewFormat(format3){STATE.questionPreviewFormat=format3}function getAgentColorMap(){return STATE.agentColorMap}function getFlagSettingsPath(){return STATE.flagSettingsPath}function setFlagSettingsPath(path10){STATE.flagSettingsPath=path10}function getFlagSettingsInline(){return STATE.flagSettingsInline}function setFlagSettingsInline(settings){STATE.flagSettingsInline=settings}function getSessionIngressToken(){return STATE.sessionIngressToken}function setSessionIngressToken(token){STATE.sessionIngressToken=token}function getOauthTokenFromFd(){return STATE.oauthTokenFromFd}function setOauthTokenFromFd(token){STATE.oauthTokenFromFd=token}function getApiKeyFromFd(){return STATE.apiKeyFromFd}function setApiKeyFromFd(key){STATE.apiKeyFromFd=key}function setLastAPIRequest(params){STATE.lastAPIRequest=params}function getLastAPIRequest(){return STATE.lastAPIRequest}function setLastAPIRequestMessages(messages){STATE.lastAPIRequestMessages=messages}function getLastAPIRequestMessages(){return STATE.lastAPIRequestMessages}function setLastClassifierRequests(requests){STATE.lastClassifierRequests=requests}function getLastClassifierRequests(){return STATE.lastClassifierRequests}function setCachedClaudeMdContent(content){STATE.cachedClaudeMdContent=content}function getCachedClaudeMdContent(){return STATE.cachedClaudeMdContent}function addToInMemoryErrorLog(errorInfo){STATE.inMemoryErrorLog.length>=100&&STATE.inMemoryErrorLog.shift(),STATE.inMemoryErrorLog.push(errorInfo)}function getAllowedSettingSources(){return STATE.allowedSettingSources}function setAllowedSettingSources(sources){STATE.allowedSettingSources=sources}function preferThirdPartyAuthentication(){return getIsNonInteractiveSession()&&STATE.clientType!=="claude-vscode"}function setInlinePlugins(plugins){STATE.inlinePlugins=plugins}function getInlinePlugins(){return STATE.inlinePlugins}function setChromeFlagOverride(value){STATE.chromeFlagOverride=value}function getChromeFlagOverride(){return STATE.chromeFlagOverride}function setModelLaunchMeta(meta){STATE.modelLaunch={requested:meta.requested!==void 0?meta.requested:STATE.modelLaunch.requested,effective:meta.effective!==void 0?meta.effective:STATE.modelLaunch.effective,source:meta.source!==void 0?meta.source:STATE.modelLaunch.source}}function getModelLaunchMeta(){return STATE.modelLaunch}function setUseCoworkPlugins(value){STATE.useCoworkPlugins=value,resetSettingsCache()}function getUseCoworkPlugins(){return STATE.useCoworkPlugins}function setSessionBypassPermissionsMode(enabled){STATE.sessionBypassPermissionsMode=enabled}function getSessionBypassPermissionsMode(){return STATE.sessionBypassPermissionsMode}function setScheduledTasksEnabled(enabled){STATE.scheduledTasksEnabled=enabled}function getScheduledTasksEnabled(){return STATE.scheduledTasksEnabled}function getSessionCronTasks(){return STATE.sessionCronTasks}function addSessionCronTask(task){STATE.sessionCronTasks.push(task)}function removeSessionCronTasks(ids){if(ids.length===0)return 0;let idSet=new Set(ids),remaining=STATE.sessionCronTasks.filter(t2=>!idSet.has(t2.id)),removed=STATE.sessionCronTasks.length-remaining.length;return removed===0?0:(STATE.sessionCronTasks=remaining,removed)}function setSessionTrustAccepted(accepted){STATE.sessionTrustAccepted=accepted}function getSessionTrustAccepted(){return STATE.sessionTrustAccepted}function setSessionPersistenceDisabled(disabled){STATE.sessionPersistenceDisabled=disabled}function isSessionPersistenceDisabled(){return STATE.sessionPersistenceDisabled}function hasExitedPlanModeInSession(){return STATE.hasExitedPlanMode}function setHasExitedPlanMode(value){STATE.hasExitedPlanMode=value}function needsPlanModeExitAttachment(){return STATE.needsPlanModeExitAttachment}function setNeedsPlanModeExitAttachment(value){STATE.needsPlanModeExitAttachment=value}function handlePlanModeTransition(fromMode,toMode){toMode==="plan"&&fromMode!=="plan"&&(STATE.needsPlanModeExitAttachment=!1),fromMode==="plan"&&toMode!=="plan"&&(STATE.needsPlanModeExitAttachment=!0)}function needsAutoModeExitAttachment(){return STATE.needsAutoModeExitAttachment}function setNeedsAutoModeExitAttachment(value){STATE.needsAutoModeExitAttachment=value}function handleAutoModeTransition(fromMode,toMode){if(fromMode==="auto"&&toMode==="plan"||fromMode==="plan"&&toMode==="auto")return;let fromIsAuto=fromMode==="auto",toIsAuto=toMode==="auto";toIsAuto&&!fromIsAuto&&(STATE.needsAutoModeExitAttachment=!1),fromIsAuto&&!toIsAuto&&(STATE.needsAutoModeExitAttachment=!0)}function hasShownLspRecommendationThisSession(){return STATE.lspRecommendationShownThisSession}function setLspRecommendationShownThisSession(value){STATE.lspRecommendationShownThisSession=value}function setInitJsonSchema(schema){STATE.initJsonSchema=schema}function getInitJsonSchema(){return STATE.initJsonSchema}function registerHookCallbacks(hooks){STATE.registeredHooks||(STATE.registeredHooks={});for(let[event,matchers]of Object.entries(hooks)){let eventKey=event;STATE.registeredHooks[eventKey]||(STATE.registeredHooks[eventKey]=[]),STATE.registeredHooks[eventKey].push(...matchers)}}function getRegisteredHooks(){return STATE.registeredHooks}function clearRegisteredHooks(){STATE.registeredHooks=null}function clearRegisteredPluginHooks(){if(!STATE.registeredHooks)return;let filtered={};for(let[event,matchers]of Object.entries(STATE.registeredHooks)){let callbackHooks=matchers.filter(m2=>!("pluginRoot"in m2));callbackHooks.length>0&&(filtered[event]=callbackHooks)}STATE.registeredHooks=Object.keys(filtered).length>0?filtered:null}function resetSdkInitState(){STATE.initJsonSchema=null,STATE.registeredHooks=null}function getPlanSlugCache(){return STATE.planSlugCache}function getSessionCreatedTeams(){return STATE.sessionCreatedTeams}function setTeleportedSessionInfo(info){STATE.teleportedSessionInfo={isTeleported:!0,hasLoggedFirstMessage:!1,sessionId:info.sessionId}}function getTeleportedSessionInfo(){return STATE.teleportedSessionInfo}function markFirstTeleportMessageLogged(){STATE.teleportedSessionInfo&&(STATE.teleportedSessionInfo.hasLoggedFirstMessage=!0)}function addInvokedSkill(skillName,skillPath,content,agentId=null){let key=`${agentId??""}:${skillName}`;STATE.invokedSkills.set(key,{skillName,skillPath,content,invokedAt:Date.now(),agentId})}function getInvokedSkills(){return STATE.invokedSkills}function getInvokedSkillsForAgent(agentId){let normalizedId=agentId??null,filtered=new Map;for(let[key,skill]of STATE.invokedSkills)skill.agentId===normalizedId&&filtered.set(key,skill);return filtered}function clearInvokedSkills(preservedAgentIds){if(!preservedAgentIds||preservedAgentIds.size===0){STATE.invokedSkills.clear();return}for(let[key,skill]of STATE.invokedSkills)(skill.agentId===null||!preservedAgentIds.has(skill.agentId))&&STATE.invokedSkills.delete(key)}function clearInvokedSkillsForAgent(agentId){for(let[key,skill]of STATE.invokedSkills)skill.agentId===agentId&&STATE.invokedSkills.delete(key)}function scopeCurrentSessionWorkflowContinuityContext(context){return scopeSessionWorkflowContinuityContext({context,sessionId:STATE.sessionId,projectRoot:STATE.projectRoot})}function getSessionWorkflowContinuityContext(){let scopedContext=scopeCurrentSessionWorkflowContinuityContext(STATE.sessionWorkflowContinuityContext);return scopedContext!==STATE.sessionWorkflowContinuityContext&&(STATE.sessionWorkflowContinuityContext=scopedContext),scopedContext}function setSessionWorkflowContinuityContext(context){STATE.sessionWorkflowContinuityContext=scopeCurrentSessionWorkflowContinuityContext(context)}function addSlowOperation(operation,durationMs){if(process.env.USER_TYPE!=="ant"||operation.includes("exec")&&operation.includes("claude-prompt-"))return;let now2=Date.now();STATE.slowOperations=STATE.slowOperations.filter(op=>now2-op.timestamp<SLOW_OPERATION_TTL_MS),STATE.slowOperations.push({operation,durationMs,timestamp:now2}),STATE.slowOperations.length>MAX_SLOW_OPERATIONS&&(STATE.slowOperations=STATE.slowOperations.slice(-MAX_SLOW_OPERATIONS))}function getSlowOperations(){if(STATE.slowOperations.length===0)return EMPTY_SLOW_OPERATIONS;let now2=Date.now();return STATE.slowOperations.some(op=>now2-op.timestamp>=SLOW_OPERATION_TTL_MS)&&(STATE.slowOperations=STATE.slowOperations.filter(op=>now2-op.timestamp<SLOW_OPERATION_TTL_MS),STATE.slowOperations.length===0)?EMPTY_SLOW_OPERATIONS:STATE.slowOperations}function getMainThreadAgentType(){return STATE.mainThreadAgentType}function setMainThreadAgentType(agentType){STATE.mainThreadAgentType=agentType}function getIsRemoteMode(){return STATE.isRemoteMode}function setIsRemoteMode(value){STATE.isRemoteMode=value}function isReplBridgeActive(){return STATE.replBridgeActive??!1}function setReplBridgeActive(value){STATE.replBridgeActive=value}function getSystemPromptSectionCache(){return STATE.systemPromptSectionCache}function setSystemPromptSectionCacheEntry(name,value){STATE.systemPromptSectionCache.set(name,value)}function clearSystemPromptSectionState(){STATE.systemPromptSectionCache.clear()}function getLastEmittedDate(){return STATE.lastEmittedDate}function setLastEmittedDate(date5){STATE.lastEmittedDate=date5}function getAdditionalDirectoriesForClaudeMd(){return STATE.additionalDirectoriesForClaudeMd}function setAdditionalDirectoriesForClaudeMd(directories){STATE.additionalDirectoriesForClaudeMd=directories}function getAllowedChannels(){return STATE.allowedChannels}function setAllowedChannels(entries){STATE.allowedChannels=entries}function getHasDevChannels(){return STATE.hasDevChannels}function setHasDevChannels(value){STATE.hasDevChannels=value}function getPromptCache1hAllowlist(){return STATE.promptCache1hAllowlist}function setPromptCache1hAllowlist(allowlist){STATE.promptCache1hAllowlist=allowlist}function getPromptCache1hEligible(){return STATE.promptCache1hEligible}function setPromptCache1hEligible(eligible2){STATE.promptCache1hEligible=eligible2}function getAfkModeHeaderLatched(){return STATE.afkModeHeaderLatched}function setAfkModeHeaderLatched(v){STATE.afkModeHeaderLatched=v}function getFastModeHeaderLatched(){return STATE.fastModeHeaderLatched}function setFastModeHeaderLatched(v){STATE.fastModeHeaderLatched=v}function getCacheEditingHeaderLatched(){return STATE.cacheEditingHeaderLatched}function setCacheEditingHeaderLatched(v){STATE.cacheEditingHeaderLatched=v}function getThinkingClearLatched(){return STATE.thinkingClearLatched}function setThinkingClearLatched(v){STATE.thinkingClearLatched=v}function clearBetaHeaderLatches(){STATE.afkModeHeaderLatched=null,STATE.fastModeHeaderLatched=null,STATE.cacheEditingHeaderLatched=null,STATE.thinkingClearLatched=null}function getPromptId(){return STATE.promptId}function setPromptId(id){STATE.promptId=id}var STATE,sessionSwitched,onSessionSwitch,interactionTimeDirty,outputTokensAtTurnStart,currentTurnTokenBudget,budgetContinuationCount,scrollDraining,scrollDrainTimer,SCROLL_DRAIN_IDLE_MS,resetModelStringsForTestingOnly,MAX_SLOW_OPERATIONS,SLOW_OPERATION_TTL_MS,EMPTY_SLOW_OPERATIONS,init_state=__esm({"src/bootstrap/state.ts"(){init_sumBy();init_sessionWorkflowContinuityCore();init_crypto();init_settingsCache();init_signal();__name(getInitialState,"getInitialState");STATE=getInitialState();__name(getSessionId,"getSessionId");__name(regenerateSessionId,"regenerateSessionId");__name(getParentSessionId,"getParentSessionId");__name(switchSession,"switchSession");sessionSwitched=createSignal(),onSessionSwitch=sessionSwitched.subscribe;__name(getSessionProjectDir,"getSessionProjectDir");__name(getOriginalCwd,"getOriginalCwd");__name(getProjectRoot,"getProjectRoot");__name(setOriginalCwd,"setOriginalCwd");__name(setProjectRoot,"setProjectRoot");__name(getCwdState,"getCwdState");__name(setCwdState,"setCwdState");__name(getDirectConnectServerUrl,"getDirectConnectServerUrl");__name(setDirectConnectServerUrl,"setDirectConnectServerUrl");__name(addToTotalDurationState,"addToTotalDurationState");__name(resetTotalDurationStateAndCost_FOR_TESTS_ONLY,"resetTotalDurationStateAndCost_FOR_TESTS_ONLY");__name(addToTotalCostState,"addToTotalCostState");__name(getTotalCostUSD,"getTotalCostUSD");__name(getTotalAPIDuration,"getTotalAPIDuration");__name(getTotalDuration,"getTotalDuration");__name(getTotalAPIDurationWithoutRetries,"getTotalAPIDurationWithoutRetries");__name(getTotalToolDuration,"getTotalToolDuration");__name(addToToolDuration,"addToToolDuration");__name(getTurnHookDurationMs,"getTurnHookDurationMs");__name(addToTurnHookDuration,"addToTurnHookDuration");__name(resetTurnHookDuration,"resetTurnHookDuration");__name(getTurnHookCount,"getTurnHookCount");__name(getTurnToolDurationMs,"getTurnToolDurationMs");__name(resetTurnToolDuration,"resetTurnToolDuration");__name(getTurnToolCount,"getTurnToolCount");__name(getTurnClassifierDurationMs,"getTurnClassifierDurationMs");__name(addToTurnClassifierDuration,"addToTurnClassifierDuration");__name(resetTurnClassifierDuration,"resetTurnClassifierDuration");__name(getTurnClassifierCount,"getTurnClassifierCount");__name(incSessionTurn,"incSessionTurn");__name(getSessionTurnCount,"getSessionTurnCount");__name(incSessionToolCall,"incSessionToolCall");__name(getSessionToolCallCount,"getSessionToolCallCount");__name(incSessionCompaction,"incSessionCompaction");__name(getSessionCompactionCount,"getSessionCompactionCount");__name(getStatsStore,"getStatsStore");__name(setStatsStore,"setStatsStore");interactionTimeDirty=!1;__name(updateLastInteractionTime,"updateLastInteractionTime");__name(flushInteractionTime,"flushInteractionTime");__name(flushInteractionTime_inner,"flushInteractionTime_inner");__name(addToTotalLinesChanged,"addToTotalLinesChanged");__name(getTotalLinesAdded,"getTotalLinesAdded");__name(getTotalLinesRemoved,"getTotalLinesRemoved");__name(getTotalInputTokens,"getTotalInputTokens");__name(getTotalOutputTokens,"getTotalOutputTokens");__name(getTotalCacheReadInputTokens,"getTotalCacheReadInputTokens");__name(getTotalCacheCreationInputTokens,"getTotalCacheCreationInputTokens");__name(getTotalWebSearchRequests,"getTotalWebSearchRequests");outputTokensAtTurnStart=0,currentTurnTokenBudget=null;__name(getTurnOutputTokens,"getTurnOutputTokens");__name(getCurrentTurnTokenBudget,"getCurrentTurnTokenBudget");budgetContinuationCount=0;__name(snapshotOutputTokensForTurn,"snapshotOutputTokensForTurn");__name(getBudgetContinuationCount,"getBudgetContinuationCount");__name(incrementBudgetContinuationCount,"incrementBudgetContinuationCount");__name(setHasUnknownModelCost,"setHasUnknownModelCost");__name(hasUnknownModelCost,"hasUnknownModelCost");__name(isCostStateRestored,"isCostStateRestored");__name(getLastMainRequestId,"getLastMainRequestId");__name(setLastMainRequestId,"setLastMainRequestId");__name(getLastApiCompletionTimestamp,"getLastApiCompletionTimestamp");__name(setLastApiCompletionTimestamp,"setLastApiCompletionTimestamp");__name(markPostCompaction,"markPostCompaction");__name(consumePostCompaction,"consumePostCompaction");__name(getPostCompactionAutoCompactState,"getPostCompactionAutoCompactState");__name(setPostCompactionAutoCompactState,"setPostCompactionAutoCompactState");__name(getLastInteractionTime,"getLastInteractionTime");scrollDraining=!1,SCROLL_DRAIN_IDLE_MS=150;__name(markScrollActivity,"markScrollActivity");__name(getIsScrollDraining,"getIsScrollDraining");__name(waitForScrollIdle,"waitForScrollIdle");__name(getModelUsage,"getModelUsage");__name(getUsageForModel,"getUsageForModel");__name(getMainLoopModelOverride,"getMainLoopModelOverride");__name(getInitialMainLoopModel,"getInitialMainLoopModel");__name(setMainLoopModelOverride,"setMainLoopModelOverride");__name(setInitialMainLoopModel,"setInitialMainLoopModel");__name(getSdkBetas,"getSdkBetas");__name(setSdkBetas,"setSdkBetas");__name(resetCostState,"resetCostState");__name(setCostStateForRestore,"setCostStateForRestore");__name(resetStateForTests,"resetStateForTests");__name(getModelStrings,"getModelStrings");__name(setModelStrings,"setModelStrings");__name(resetModelStrings,"resetModelStrings");resetModelStringsForTestingOnly=resetModelStrings;__name(setMeter,"setMeter");__name(getMeter,"getMeter");__name(getSessionCounter,"getSessionCounter");__name(getLocCounter,"getLocCounter");__name(getPrCounter,"getPrCounter");__name(getCommitCounter,"getCommitCounter");__name(getCostCounter,"getCostCounter");__name(getTokenCounter,"getTokenCounter");__name(getCodeEditToolDecisionCounter,"getCodeEditToolDecisionCounter");__name(getActiveTimeCounter,"getActiveTimeCounter");__name(getLoggerProvider,"getLoggerProvider");__name(setLoggerProvider,"setLoggerProvider");__name(getEventLogger,"getEventLogger");__name(setEventLogger,"setEventLogger");__name(getMeterProvider,"getMeterProvider");__name(setMeterProvider,"setMeterProvider");__name(getTracerProvider,"getTracerProvider");__name(setTracerProvider,"setTracerProvider");__name(getIsNonInteractiveSession,"getIsNonInteractiveSession");__name(getIsInteractive,"getIsInteractive");__name(setIsInteractive,"setIsInteractive");__name(getClientType,"getClientType");__name(setClientType,"setClientType");__name(getSdkAgentProgressSummariesEnabled,"getSdkAgentProgressSummariesEnabled");__name(setSdkAgentProgressSummariesEnabled,"setSdkAgentProgressSummariesEnabled");__name(getKairosActive,"getKairosActive");__name(setKairosActive,"setKairosActive");__name(getStrictToolResultPairing,"getStrictToolResultPairing");__name(setStrictToolResultPairing,"setStrictToolResultPairing");__name(getUserMsgOptIn,"getUserMsgOptIn");__name(setUserMsgOptIn,"setUserMsgOptIn");__name(getSessionSource,"getSessionSource");__name(setSessionSource,"setSessionSource");__name(getQuestionPreviewFormat,"getQuestionPreviewFormat");__name(setQuestionPreviewFormat,"setQuestionPreviewFormat");__name(getAgentColorMap,"getAgentColorMap");__name(getFlagSettingsPath,"getFlagSettingsPath");__name(setFlagSettingsPath,"setFlagSettingsPath");__name(getFlagSettingsInline,"getFlagSettingsInline");__name(setFlagSettingsInline,"setFlagSettingsInline");__name(getSessionIngressToken,"getSessionIngressToken");__name(setSessionIngressToken,"setSessionIngressToken");__name(getOauthTokenFromFd,"getOauthTokenFromFd");__name(setOauthTokenFromFd,"setOauthTokenFromFd");__name(getApiKeyFromFd,"getApiKeyFromFd");__name(setApiKeyFromFd,"setApiKeyFromFd");__name(setLastAPIRequest,"setLastAPIRequest");__name(getLastAPIRequest,"getLastAPIRequest");__name(setLastAPIRequestMessages,"setLastAPIRequestMessages");__name(getLastAPIRequestMessages,"getLastAPIRequestMessages");__name(setLastClassifierRequests,"setLastClassifierRequests");__name(getLastClassifierRequests,"getLastClassifierRequests");__name(setCachedClaudeMdContent,"setCachedClaudeMdContent");__name(getCachedClaudeMdContent,"getCachedClaudeMdContent");__name(addToInMemoryErrorLog,"addToInMemoryErrorLog");__name(getAllowedSettingSources,"getAllowedSettingSources");__name(setAllowedSettingSources,"setAllowedSettingSources");__name(preferThirdPartyAuthentication,"preferThirdPartyAuthentication");__name(setInlinePlugins,"setInlinePlugins");__name(getInlinePlugins,"getInlinePlugins");__name(setChromeFlagOverride,"setChromeFlagOverride");__name(getChromeFlagOverride,"getChromeFlagOverride");__name(setModelLaunchMeta,"setModelLaunchMeta");__name(getModelLaunchMeta,"getModelLaunchMeta");__name(setUseCoworkPlugins,"setUseCoworkPlugins");__name(getUseCoworkPlugins,"getUseCoworkPlugins");__name(setSessionBypassPermissionsMode,"setSessionBypassPermissionsMode");__name(getSessionBypassPermissionsMode,"getSessionBypassPermissionsMode");__name(setScheduledTasksEnabled,"setScheduledTasksEnabled");__name(getScheduledTasksEnabled,"getScheduledTasksEnabled");__name(getSessionCronTasks,"getSessionCronTasks");__name(addSessionCronTask,"addSessionCronTask");__name(removeSessionCronTasks,"removeSessionCronTasks");__name(setSessionTrustAccepted,"setSessionTrustAccepted");__name(getSessionTrustAccepted,"getSessionTrustAccepted");__name(setSessionPersistenceDisabled,"setSessionPersistenceDisabled");__name(isSessionPersistenceDisabled,"isSessionPersistenceDisabled");__name(hasExitedPlanModeInSession,"hasExitedPlanModeInSession");__name(setHasExitedPlanMode,"setHasExitedPlanMode");__name(needsPlanModeExitAttachment,"needsPlanModeExitAttachment");__name(setNeedsPlanModeExitAttachment,"setNeedsPlanModeExitAttachment");__name(handlePlanModeTransition,"handlePlanModeTransition");__name(needsAutoModeExitAttachment,"needsAutoModeExitAttachment");__name(setNeedsAutoModeExitAttachment,"setNeedsAutoModeExitAttachment");__name(handleAutoModeTransition,"handleAutoModeTransition");__name(hasShownLspRecommendationThisSession,"hasShownLspRecommendationThisSession");__name(setLspRecommendationShownThisSession,"setLspRecommendationShownThisSession");__name(setInitJsonSchema,"setInitJsonSchema");__name(getInitJsonSchema,"getInitJsonSchema");__name(registerHookCallbacks,"registerHookCallbacks");__name(getRegisteredHooks,"getRegisteredHooks");__name(clearRegisteredHooks,"clearRegisteredHooks");__name(clearRegisteredPluginHooks,"clearRegisteredPluginHooks");__name(resetSdkInitState,"resetSdkInitState");__name(getPlanSlugCache,"getPlanSlugCache");__name(getSessionCreatedTeams,"getSessionCreatedTeams");__name(setTeleportedSessionInfo,"setTeleportedSessionInfo");__name(getTeleportedSessionInfo,"getTeleportedSessionInfo");__name(markFirstTeleportMessageLogged,"markFirstTeleportMessageLogged");__name(addInvokedSkill,"addInvokedSkill");__name(getInvokedSkills,"getInvokedSkills");__name(getInvokedSkillsForAgent,"getInvokedSkillsForAgent");__name(clearInvokedSkills,"clearInvokedSkills");__name(clearInvokedSkillsForAgent,"clearInvokedSkillsForAgent");__name(scopeCurrentSessionWorkflowContinuityContext,"scopeCurrentSessionWorkflowContinuityContext");__name(getSessionWorkflowContinuityContext,"getSessionWorkflowContinuityContext");__name(setSessionWorkflowContinuityContext,"setSessionWorkflowContinuityContext");MAX_SLOW_OPERATIONS=10,SLOW_OPERATION_TTL_MS=1e4;__name(addSlowOperation,"addSlowOperation");EMPTY_SLOW_OPERATIONS=[];__name(getSlowOperations,"getSlowOperations");__name(getMainThreadAgentType,"getMainThreadAgentType");__name(setMainThreadAgentType,"setMainThreadAgentType");__name(getIsRemoteMode,"getIsRemoteMode");__name(setIsRemoteMode,"setIsRemoteMode");__name(isReplBridgeActive,"isReplBridgeActive");__name(setReplBridgeActive,"setReplBridgeActive");__name(getSystemPromptSectionCache,"getSystemPromptSectionCache");__name(setSystemPromptSectionCacheEntry,"setSystemPromptSectionCacheEntry");__name(clearSystemPromptSectionState,"clearSystemPromptSectionState");__name(getLastEmittedDate,"getLastEmittedDate");__name(setLastEmittedDate,"setLastEmittedDate");__name(getAdditionalDirectoriesForClaudeMd,"getAdditionalDirectoriesForClaudeMd");__name(setAdditionalDirectoriesForClaudeMd,"setAdditionalDirectoriesForClaudeMd");__name(getAllowedChannels,"getAllowedChannels");__name(setAllowedChannels,"setAllowedChannels");__name(getHasDevChannels,"getHasDevChannels");__name(setHasDevChannels,"setHasDevChannels");__name(getPromptCache1hAllowlist,"getPromptCache1hAllowlist");__name(setPromptCache1hAllowlist,"setPromptCache1hAllowlist");__name(getPromptCache1hEligible,"getPromptCache1hEligible");__name(setPromptCache1hEligible,"setPromptCache1hEligible");__name(getAfkModeHeaderLatched,"getAfkModeHeaderLatched");__name(setAfkModeHeaderLatched,"setAfkModeHeaderLatched");__name(getFastModeHeaderLatched,"getFastModeHeaderLatched");__name(setFastModeHeaderLatched,"setFastModeHeaderLatched");__name(getCacheEditingHeaderLatched,"getCacheEditingHeaderLatched");__name(setCacheEditingHeaderLatched,"setCacheEditingHeaderLatched");__name(getThinkingClearLatched,"getThinkingClearLatched");__name(setThinkingClearLatched,"setThinkingClearLatched");__name(clearBetaHeaderLatches,"clearBetaHeaderLatches");__name(getPromptId,"getPromptId");__name(setPromptId,"setPromptId")}});function getPolyfills(){return polyfills}function hashFnv32a(str){let hval=2166136261,l=str.length;for(let i3=0;i3<l;i3++)hval^=str.charCodeAt(i3),hval+=(hval<<1)+(hval<<4)+(hval<<7)+(hval<<8)+(hval<<24);return hval>>>0}function hash(seed,value,version2){return version2===2?hashFnv32a(hashFnv32a(seed+value)+"")%1e4/1e4:version2===1?hashFnv32a(value+seed)%1e3/1e3:null}function getEqualWeights(n2){return n2<=0?[]:new Array(n2).fill(1/n2)}function inRange(n2,range2){return n2>=range2[0]&&n2<range2[1]}function inNamespace(hashValue,namespace){let n2=hash("__"+namespace[0],hashValue,1);return n2===null?!1:n2>=namespace[1]&&n2<namespace[2]}function chooseVariation(n2,ranges){for(let i3=0;i3<ranges.length;i3++)if(inRange(n2,ranges[i3]))return i3;return-1}function getUrlRegExp(regexString){try{let escaped=regexString.replace(/([^\\])\//g,"$1\\/");return new RegExp(escaped)}catch(e2){console.error(e2);return}}function isURLTargeted(url3,targets){if(!targets.length)return!1;let hasIncludeRules=!1,isIncluded2=!1;for(let i3=0;i3<targets.length;i3++){let match=_evalURLTarget(url3,targets[i3].type,targets[i3].pattern);if(targets[i3].include===!1){if(match)return!1}else hasIncludeRules=!0,match&&(isIncluded2=!0)}return isIncluded2||!hasIncludeRules}function _evalSimpleUrlPart(actual,pattern,isPath){try{let escaped=pattern.replace(/[*.+?^${}()|[\]\\]/g,"\\$&").replace(/_____/g,".*");return isPath&&(escaped="\\/?"+escaped.replace(/(^\/|\/$)/g,"")+"\\/?"),new RegExp("^"+escaped+"$","i").test(actual)}catch{return!1}}function _evalSimpleUrlTarget(actual,pattern){try{let expected=new URL(pattern.replace(/^([^:/?]*)\./i,"https://$1.").replace(/\*/g,"_____"),"https://_____"),comps=[[actual.host,expected.host,!1],[actual.pathname,expected.pathname,!0]];return expected.hash&&comps.push([actual.hash,expected.hash,!1]),expected.searchParams.forEach((v,k)=>{comps.push([actual.searchParams.get(k)||"",v,!1])}),!comps.some(data=>!_evalSimpleUrlPart(data[0],data[1],data[2]))}catch{return!1}}function _evalURLTarget(url3,type,pattern){try{let parsed=new URL(url3,"https://_");if(type==="regex"){let regex=getUrlRegExp(pattern);return regex?regex.test(parsed.href)||regex.test(parsed.href.substring(parsed.origin.length)):!1}else if(type==="simple")return _evalSimpleUrlTarget(parsed,pattern);return!1}catch{return!1}}function getBucketRanges(numVariations,coverage,weights){coverage=coverage===void 0?1:coverage,coverage<0?(process.env.NODE_ENV!=="production"&&console.error("Experiment.coverage must be greater than or equal to 0"),coverage=0):coverage>1&&(process.env.NODE_ENV!=="production"&&console.error("Experiment.coverage must be less than or equal to 1"),coverage=1);let equal=getEqualWeights(numVariations);weights=weights||equal,weights.length!==numVariations&&(process.env.NODE_ENV!=="production"&&console.error("Experiment.weights array must be the same length as Experiment.variations"),weights=equal);let totalWeight=weights.reduce((w,sum2)=>sum2+w,0);(totalWeight<.99||totalWeight>1.01)&&(process.env.NODE_ENV!=="production"&&console.error("Experiment.weights must add up to 1"),weights=equal);let cumulative=0;return weights.map(w=>{let start=cumulative;return cumulative+=w,[start,start+coverage*w]})}function getQueryStringOverride(id,url3,numVariations){if(!url3)return null;let search=url3.split("?")[1];if(!search)return null;let match=search.replace(/#.*/,"").split("&").map(kv=>kv.split("=",2)).filter(([k])=>k===id).map(([,v])=>parseInt(v));return match.length>0&&match[0]>=0&&match[0]<numVariations?match[0]:null}function isIncluded(include){try{return include()}catch(e2){return console.error(e2),!1}}async function decrypt(encryptedString,decryptionKey,subtle){if(decryptionKey=decryptionKey||"",subtle=subtle||globalThis.crypto&&globalThis.crypto.subtle||polyfills.SubtleCrypto,!subtle)throw new Error("No SubtleCrypto implementation found");try{let key=await subtle.importKey("raw",base64ToBuf(decryptionKey),{name:"AES-CBC",length:128},!0,["encrypt","decrypt"]),[iv,cipherText]=encryptedString.split("."),plainTextBuffer=await subtle.decrypt({name:"AES-CBC",iv:base64ToBuf(iv)},key,base64ToBuf(cipherText));return new TextDecoder().decode(plainTextBuffer)}catch{throw new Error("Failed to decrypt")}}function toString2(input){return typeof input=="string"?input:JSON.stringify(input)}function paddedVersionString(input){typeof input=="number"&&(input=input+""),(!input||typeof input!="string")&&(input="0");let parts=input.replace(/(^v|\+.*$)/g,"").split(/[-.]/);return parts.length===3&&parts.push("~"),parts.map(v=>v.match(/^[0-9]+$/)?v.padStart(5," "):v).join("-")}function loadSDKVersion(){let version2;try{version2="1.6.5"}catch{version2=""}return version2}function mergeQueryStrings(oldUrl,newUrl){let currUrl,redirectUrl;try{currUrl=new URL(oldUrl),redirectUrl=new URL(newUrl)}catch(e2){return console.error(`Unable to merge query strings: ${e2}`),newUrl}return currUrl.searchParams.forEach((value,key)=>{redirectUrl.searchParams.has(key)||redirectUrl.searchParams.set(key,value)}),redirectUrl.toString()}function isObj(x2){return typeof x2=="object"&&x2!==null}function getAutoExperimentChangeType(exp){return exp.urlPatterns&&exp.variations.some(variation=>isObj(variation)&&"urlRedirect"in variation)?"redirect":exp.variations.some(variation=>isObj(variation)&&(variation.domMutations||"js"in variation||"css"in variation))?"visual":"unknown"}async function promiseTimeout(promise2,timeout){return new Promise(resolve9=>{let resolved=!1,timer2,finish=__name(data=>{resolved||(resolved=!0,timer2&&clearTimeout(timer2),resolve9(data||null))},"finish");timeout&&(timer2=setTimeout(()=>finish(),timeout)),promise2.then(data=>finish(data)).catch(()=>finish())})}var polyfills,base64ToBuf,init_util=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/util.mjs"(){polyfills={fetch:globalThis.fetch?globalThis.fetch.bind(globalThis):void 0,SubtleCrypto:globalThis.crypto?globalThis.crypto.subtle:void 0,EventSource:globalThis.EventSource};__name(getPolyfills,"getPolyfills");__name(hashFnv32a,"hashFnv32a");__name(hash,"hash");__name(getEqualWeights,"getEqualWeights");__name(inRange,"inRange");__name(inNamespace,"inNamespace");__name(chooseVariation,"chooseVariation");__name(getUrlRegExp,"getUrlRegExp");__name(isURLTargeted,"isURLTargeted");__name(_evalSimpleUrlPart,"_evalSimpleUrlPart");__name(_evalSimpleUrlTarget,"_evalSimpleUrlTarget");__name(_evalURLTarget,"_evalURLTarget");__name(getBucketRanges,"getBucketRanges");__name(getQueryStringOverride,"getQueryStringOverride");__name(isIncluded,"isIncluded");base64ToBuf=__name(b=>Uint8Array.from(atob(b),c3=>c3.charCodeAt(0)),"base64ToBuf");__name(decrypt,"decrypt");__name(toString2,"toString");__name(paddedVersionString,"paddedVersionString");__name(loadSDKVersion,"loadSDKVersion");__name(mergeQueryStrings,"mergeQueryStrings");__name(isObj,"isObj");__name(getAutoExperimentChangeType,"getAutoExperimentChangeType");__name(promiseTimeout,"promiseTimeout")}});function configureCache(overrides){Object.assign(cacheSettings,overrides),cacheSettings.backgroundSync||clearAutoRefresh()}async function refreshFeatures({instance,timeout,skipCache,allowStale,backgroundSync}){return backgroundSync||(cacheSettings.backgroundSync=!1),fetchFeaturesWithCache({instance,allowStale,timeout,skipCache})}function subscribe(instance){let key=getKey(instance),subs=subscribedInstances.get(key)||new Set;subs.add(instance),subscribedInstances.set(key,subs)}function unsubscribe(instance){subscribedInstances.forEach(s2=>s2.delete(instance))}function onHidden(){streams.forEach(channel=>{channel&&(channel.state="idle",disableChannel(channel))})}function onVisible(){streams.forEach(channel=>{channel&&channel.state==="idle"&&enableChannel(channel)})}async function updatePersistentCache(){try{if(!polyfills2.localStorage)return;await polyfills2.localStorage.setItem(cacheSettings.cacheKey,JSON.stringify(Array.from(cache.entries())))}catch{}}async function fetchFeaturesWithCache({instance,allowStale,timeout,skipCache}){let key=getKey(instance),cacheKey=getCacheKey(instance),now2=new Date,minStaleAt=new Date(now2.getTime()-cacheSettings.maxAge+cacheSettings.staleTTL);await initializeCache();let existing=!cacheSettings.disableCache&&!skipCache?cache.get(cacheKey):void 0;return existing&&(allowStale||existing.staleAt>now2)&&existing.staleAt>minStaleAt?(existing.sse&&supportsSSE.add(key),existing.staleAt<now2?fetchFeatures(instance):startAutoRefresh(instance),{data:existing.data,success:!0,source:"cache"}):await promiseTimeout(fetchFeatures(instance),timeout)||{data:null,success:!1,source:"timeout",error:new Error("Timeout")}}function getKey(instance){let[apiHost,clientKey]=instance.getApiInfo();return`${apiHost}||${clientKey}`}function getCacheKey(instance){let baseKey=getKey(instance);if(!("isRemoteEval"in instance)||!instance.isRemoteEval())return baseKey;let attributes=instance.getAttributes(),cacheKeyAttributes=instance.getCacheKeyAttributes()||Object.keys(instance.getAttributes()),ca={};cacheKeyAttributes.forEach(key=>{ca[key]=attributes[key]});let fv=instance.getForcedVariations(),url3=instance.getUrl();return`${baseKey}||${JSON.stringify({ca,fv,url:url3})}`}async function initializeCache(){if(!cacheInitialized){cacheInitialized=!0;try{if(polyfills2.localStorage){let value=await polyfills2.localStorage.getItem(cacheSettings.cacheKey);if(!cacheSettings.disableCache&&value){let parsed=JSON.parse(value);parsed&&Array.isArray(parsed)&&parsed.forEach(([key,data])=>{cache.set(key,{...data,staleAt:new Date(data.staleAt)})}),cleanupCache()}}}catch{}if(!cacheSettings.disableIdleStreams){let cleanupFn=helpers.startIdleListener();cleanupFn&&(helpers.stopIdleListener=cleanupFn)}}}function cleanupCache(){let entriesWithTimestamps=Array.from(cache.entries()).map(([key,value])=>({key,staleAt:value.staleAt.getTime()})).sort((a2,b)=>a2.staleAt-b.staleAt),entriesToRemoveCount=Math.min(Math.max(0,cache.size-cacheSettings.maxEntries),cache.size);for(let i3=0;i3<entriesToRemoveCount;i3++)cache.delete(entriesWithTimestamps[i3].key)}function onNewFeatureData(key,cacheKey,data){let version2=data.dateUpdated||"",staleAt=new Date(Date.now()+cacheSettings.staleTTL),existing=cacheSettings.disableCache?void 0:cache.get(cacheKey);if(existing&&version2&&existing.version===version2){existing.staleAt=staleAt,updatePersistentCache();return}cacheSettings.disableCache||(cache.set(cacheKey,{data,version:version2,staleAt,sse:supportsSSE.has(key)}),cleanupCache()),updatePersistentCache();let instances=subscribedInstances.get(key);instances&&instances.forEach(instance=>refreshInstance(instance,data))}async function refreshInstance(instance,data){await instance.setPayload(data||instance.getPayload())}async function fetchFeatures(instance){let{apiHost,apiRequestHeaders}=instance.getApiHosts(),clientKey=instance.getClientKey(),remoteEval="isRemoteEval"in instance&&instance.isRemoteEval(),key=getKey(instance),cacheKey=getCacheKey(instance),promise2=activeFetches.get(cacheKey);return promise2||(promise2=(remoteEval?helpers.fetchRemoteEvalCall({host:apiHost,clientKey,payload:{attributes:instance.getAttributes(),forcedVariations:instance.getForcedVariations(),forcedFeatures:Array.from(instance.getForcedFeatures().entries()),url:instance.getUrl()},headers:apiRequestHeaders}):helpers.fetchFeaturesCall({host:apiHost,clientKey,headers:apiRequestHeaders})).then(res=>{if(!res.ok)throw new Error(`HTTP error: ${res.status}`);return res.headers.get("x-sse-support")==="enabled"&&supportsSSE.add(key),res.json()}).then(data=>(onNewFeatureData(key,cacheKey,data),startAutoRefresh(instance),activeFetches.delete(cacheKey),{data,success:!0,source:"network"})).catch(e2=>(process.env.NODE_ENV!=="production"&&instance.log("Error fetching features",{apiHost,clientKey,error:e2?e2.message:null}),activeFetches.delete(cacheKey),{data:null,source:"error",success:!1,error:e2})),activeFetches.set(cacheKey,promise2)),promise2}function startAutoRefresh(instance,forceSSE=!1){let key=getKey(instance),cacheKey=getCacheKey(instance),{streamingHost,streamingHostRequestHeaders}=instance.getApiHosts(),clientKey=instance.getClientKey();if(forceSSE&&supportsSSE.add(key),cacheSettings.backgroundSync&&supportsSSE.has(key)&&polyfills2.EventSource){if(streams.has(key))return;let channel={src:null,host:streamingHost,clientKey,headers:streamingHostRequestHeaders,cb:__name(event=>{try{if(event.type==="features-updated"){let instances=subscribedInstances.get(key);instances&&instances.forEach(instance2=>{fetchFeatures(instance2)})}else if(event.type==="features"){let json2=JSON.parse(event.data);onNewFeatureData(key,cacheKey,json2)}channel.errors=0}catch(e2){process.env.NODE_ENV!=="production"&&instance.log("SSE Error",{streamingHost,clientKey,error:e2?e2.message:null}),onSSEError(channel)}},"cb"),errors:0,state:"active"};streams.set(key,channel),enableChannel(channel)}}function onSSEError(channel){if(channel.state!=="idle"&&(channel.errors++,channel.errors>3||channel.src&&channel.src.readyState===2)){let delay2=Math.pow(3,channel.errors-3)*(1e3+Math.random()*1e3);disableChannel(channel),setTimeout(()=>{["idle","active"].includes(channel.state)||enableChannel(channel)},Math.min(delay2,3e5))}}function disableChannel(channel){channel.src&&(channel.src.onopen=null,channel.src.onerror=null,channel.src.close(),channel.src=null,channel.state==="active"&&(channel.state="disabled"))}function enableChannel(channel){channel.src=helpers.eventSourceCall({host:channel.host,clientKey:channel.clientKey,headers:channel.headers}),channel.state="active",channel.src.addEventListener("features",channel.cb),channel.src.addEventListener("features-updated",channel.cb),channel.src.onerror=()=>onSSEError(channel),channel.src.onopen=()=>{channel.errors=0}}function destroyChannel(channel,key){disableChannel(channel),streams.delete(key)}function clearAutoRefresh(){supportsSSE.clear(),streams.forEach(destroyChannel),subscribedInstances.clear(),helpers.stopIdleListener()}function startStreaming(instance,options){if(options.streaming){if(!instance.getClientKey())throw new Error("Must specify clientKey to enable streaming");options.payload&&startAutoRefresh(instance,!0),subscribe(instance)}}var cacheSettings,polyfills2,helpers,subscribedInstances,cacheInitialized,cache,activeFetches,streams,supportsSSE,init_feature_repository=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/feature-repository.mjs"(){init_util();cacheSettings={staleTTL:1e3*60,maxAge:1e3*60*60*4,cacheKey:"gbFeaturesCache",backgroundSync:!0,maxEntries:10,disableIdleStreams:!1,idleStreamInterval:2e4,disableCache:!1},polyfills2=getPolyfills(),helpers={fetchFeaturesCall:__name(({host,clientKey,headers})=>polyfills2.fetch(`${host}/api/features/${clientKey}`,{headers}),"fetchFeaturesCall"),fetchRemoteEvalCall:__name(({host,clientKey,payload,headers})=>{let options={method:"POST",headers:{"Content-Type":"application/json",...headers},body:JSON.stringify(payload)};return polyfills2.fetch(`${host}/api/eval/${clientKey}`,options)},"fetchRemoteEvalCall"),eventSourceCall:__name(({host,clientKey,headers})=>headers?new polyfills2.EventSource(`${host}/sub/${clientKey}`,{headers}):new polyfills2.EventSource(`${host}/sub/${clientKey}`),"eventSourceCall"),startIdleListener:__name(()=>{let idleTimeout;if(!(typeof window<"u"&&typeof document<"u"))return;let onVisibilityChange=__name(()=>{document.visibilityState==="visible"?(window.clearTimeout(idleTimeout),onVisible()):document.visibilityState==="hidden"&&(idleTimeout=window.setTimeout(onHidden,cacheSettings.idleStreamInterval))},"onVisibilityChange");return document.addEventListener("visibilitychange",onVisibilityChange),()=>document.removeEventListener("visibilitychange",onVisibilityChange)},"startIdleListener"),stopIdleListener:__name(()=>{},"stopIdleListener")};try{globalThis.localStorage&&(polyfills2.localStorage=globalThis.localStorage)}catch{}subscribedInstances=new Map,cacheInitialized=!1,cache=new Map,activeFetches=new Map,streams=new Map,supportsSSE=new Set;__name(configureCache,"configureCache");__name(refreshFeatures,"refreshFeatures");__name(subscribe,"subscribe");__name(unsubscribe,"unsubscribe");__name(onHidden,"onHidden");__name(onVisible,"onVisible");__name(updatePersistentCache,"updatePersistentCache");__name(fetchFeaturesWithCache,"fetchFeaturesWithCache");__name(getKey,"getKey");__name(getCacheKey,"getCacheKey");__name(initializeCache,"initializeCache");__name(cleanupCache,"cleanupCache");__name(onNewFeatureData,"onNewFeatureData");__name(refreshInstance,"refreshInstance");__name(fetchFeatures,"fetchFeatures");__name(startAutoRefresh,"startAutoRefresh");__name(onSSEError,"onSSEError");__name(disableChannel,"disableChannel");__name(enableChannel,"enableChannel");__name(destroyChannel,"destroyChannel");__name(clearAutoRefresh,"clearAutoRefresh");__name(startStreaming,"startStreaming")}});var require_dom_mutator_cjs_production_min=__commonJS({"../../node_modules/dom-mutator/dist/dom-mutator.cjs.production.min.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});var e2=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,t2={revert:__name(function(){},"revert")},n2=new Map,r2=new Set;function i3(e3){var t3=n2.get(e3);return t3||n2.set(e3,t3={element:e3,attributes:{}}),t3}__name(i3,"i");function o2(e3,t3,n3,r3,i4){var o3=n3(e3),u3={isDirty:!1,originalValue:o3,virtualValue:o3,mutations:[],el:e3,_positionTimeout:null,observer:new MutationObserver((function(){if(t3!=="position"||!u3._positionTimeout){t3==="position"&&(u3._positionTimeout=setTimeout((function(){u3._positionTimeout=null}),1e3));var r4=n3(e3);t3==="position"&&r4.parentNode===u3.virtualValue.parentNode&&r4.insertBeforeNode===u3.virtualValue.insertBeforeNode||r4!==u3.virtualValue&&(u3.originalValue=r4,i4(u3))}})),mutationRunner:i4,setValue:r3,getCurrentValue:n3};return t3==="position"&&e3.parentNode?u3.observer.observe(e3.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):u3.observer.observe(e3,(function(e4){return e4==="html"?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[e4]}})(t3)),u3}__name(o2,"o");function u2(e3,t3){var n3=t3.getCurrentValue(t3.el);t3.virtualValue=e3,e3&&typeof e3!="string"?n3&&e3.parentNode===n3.parentNode&&e3.insertBeforeNode===n3.insertBeforeNode||(t3.isDirty=!0,E()):e3!==n3&&(t3.isDirty=!0,E())}__name(u2,"u");function a2(e3){var t3=e3.originalValue;e3.mutations.forEach((function(e4){return t3=e4.mutate(t3)})),u2((function(e4){return h3||(h3=document.createElement("div")),h3.innerHTML=e4,h3.innerHTML})(t3),e3)}__name(a2,"a");function l(e3){var t3=new Set(e3.originalValue.split(/\s+/).filter(Boolean));e3.mutations.forEach((function(e4){return e4.mutate(t3)})),u2(Array.from(t3).filter(Boolean).join(" "),e3)}__name(l,"l");function s2(e3){var t3=e3.originalValue;e3.mutations.forEach((function(e4){return t3=e4.mutate(t3)})),u2(t3,e3)}__name(s2,"s");function c3(e3){var t3=e3.originalValue;e3.mutations.forEach((function(e4){var n3=(function(e5){var t4=e5.insertBeforeSelector,n4=document.querySelector(e5.parentSelector);if(!n4)return null;var r3=t4?document.querySelector(t4):null;return t4&&!r3?null:{parentNode:n4,insertBeforeNode:r3}})(e4.mutate());t3=n3||t3})),u2(t3,e3)}__name(c3,"c");var f3=__name(function(e3){return e3.innerHTML},"f"),d=__name(function(e3,t3){return e3.innerHTML=t3},"d");function m2(e3){var t3=i3(e3);return t3.html||(t3.html=o2(e3,"html",f3,d,a2)),t3.html}__name(m2,"m");var v=__name(function(e3){return{parentNode:e3.parentElement,insertBeforeNode:e3.nextElementSibling}},"v"),p=__name(function(e3,t3){t3.insertBeforeNode&&!t3.parentNode.contains(t3.insertBeforeNode)||t3.parentNode.insertBefore(e3,t3.insertBeforeNode)},"p");function b(e3){var t3=i3(e3);return t3.position||(t3.position=o2(e3,"position",v,p,c3)),t3.position}__name(b,"b");var h3,N,S2=__name(function(e3,t3){return t3?e3.className=t3:e3.removeAttribute("class")},"S"),B=__name(function(e3){return e3.className},"B");function V(e3){var t3=i3(e3);return t3.classes||(t3.classes=o2(e3,"class",B,S2,l)),t3.classes}__name(V,"V");function g(e3,t3){var n3,r3=i3(e3);return r3.attributes[t3]||(r3.attributes[t3]=o2(e3,t3,(n3=t3,function(e4){var t4;return(t4=e4.getAttribute(n3))!=null?t4:null}),(function(e4){return function(t4,n4){return n4!==null?t4.setAttribute(e4,n4):t4.removeAttribute(e4)}})(t3),s2)),r3.attributes[t3]}__name(g,"g");function y(e3,t3,r3){if(r3.isDirty){r3.isDirty=!1;var i4=r3.virtualValue;r3.mutations.length||(function(e4,t4){var r4,i5,o3=n2.get(e4);if(o3)if(t4==="html")(r4=o3.html)==null||(i5=r4.observer)==null||i5.disconnect(),delete o3.html;else if(t4==="class"){var u3,a3;(u3=o3.classes)==null||(a3=u3.observer)==null||a3.disconnect(),delete o3.classes}else if(t4==="position"){var l2,s3;(l2=o3.position)==null||(s3=l2.observer)==null||s3.disconnect(),delete o3.position}else{var c4,f4,d2;(c4=o3.attributes)==null||(f4=c4[t4])==null||(d2=f4.observer)==null||d2.disconnect(),delete o3.attributes[t4]}})(e3,t3),r3.setValue(e3,i4)}}__name(y,"y");function k(e3,t3){e3.html&&y(t3,"html",e3.html),e3.classes&&y(t3,"class",e3.classes),e3.position&&y(t3,"position",e3.position),Object.keys(e3.attributes).forEach((function(n3){y(t3,n3,e3.attributes[n3])}))}__name(k,"k");function E(){n2.forEach(k)}__name(E,"E");function w(e3){if(e3.kind!=="position"||e3.elements.size!==1){var t3=new Set(e3.elements);document.querySelectorAll(e3.selector).forEach((function(n3){t3.has(n3)||(e3.elements.add(n3),(function(e4,t4){var n4=null;e4.kind==="html"?n4=m2(t4):e4.kind==="class"?n4=V(t4):e4.kind==="attribute"?n4=g(t4,e4.attribute):e4.kind==="position"&&(n4=b(t4)),n4&&(n4.mutations.push(e4),n4.mutationRunner(n4))})(e3,n3))}))}}__name(w,"w");function A2(){r2.forEach(w)}__name(A2,"A");function T(){typeof document<"u"&&(N||(N=new MutationObserver((function(){A2()}))),A2(),N.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}__name(T,"T");function D(e3){return typeof document>"u"?t2:(r2.add(e3),w(e3),{revert:__name(function(){var t3;(t3=e3).elements.forEach((function(e4){return(function(e5,t4){var n3=null;if(e5.kind==="html"?n3=m2(t4):e5.kind==="class"?n3=V(t4):e5.kind==="attribute"?n3=g(t4,e5.attribute):e5.kind==="position"&&(n3=b(t4)),n3){var r3=n3.mutations.indexOf(e5);r3!==-1&&n3.mutations.splice(r3,1),n3.mutationRunner(n3)}})(t3,e4)})),t3.elements.clear(),r2.delete(t3)},"revert")})}__name(D,"D");function L(e3,t3){return D({kind:"html",elements:new Set,mutate:t3,selector:e3})}__name(L,"L");function M(e3,t3){return D({kind:"position",elements:new Set,mutate:t3,selector:e3})}__name(M,"M");function _(e3,t3){return D({kind:"class",elements:new Set,mutate:t3,selector:e3})}__name(_,"_");function x2(n3,r3,i4){return e2.test(r3)?r3==="class"||r3==="className"?_(n3,(function(e3){var t3=i4(Array.from(e3).join(" "));e3.clear(),t3&&t3.split(/\s+/g).filter(Boolean).forEach((function(t4){return e3.add(t4)}))})):D({kind:"attribute",attribute:r3,elements:new Set,mutate:i4,selector:n3}):t2}__name(x2,"x");T();var O={html:L,classes:_,attribute:x2,position:M,declarative:__name(function(e3){var n3=e3.selector,r3=e3.action,i4=e3.value,o3=e3.attribute,u3=e3.parentSelector,a3=e3.insertBeforeSelector;if(o3==="html"){if(r3==="append")return L(n3,(function(e4){return e4+(i4??"")}));if(r3==="set")return L(n3,(function(){return i4??""}))}else if(o3==="class"){if(r3==="append")return _(n3,(function(e4){i4&&e4.add(i4)}));if(r3==="remove")return _(n3,(function(e4){i4&&e4.delete(i4)}));if(r3==="set")return _(n3,(function(e4){e4.clear(),i4&&e4.add(i4)}))}else if(o3==="position"){if(r3==="set"&&u3)return M(n3,(function(){return{insertBeforeSelector:a3,parentSelector:u3}}))}else{if(r3==="append")return x2(n3,o3,(function(e4){return e4!==null?e4+(i4??""):i4??""}));if(r3==="set")return x2(n3,o3,(function(){return i4??""}));if(r3==="remove")return x2(n3,o3,(function(){return null}))}return t2},"declarative")};exports2.connectGlobalObserver=T,exports2.default=O,exports2.disconnectGlobalObserver=function(){N&&N.disconnect()},exports2.validAttributeName=e2}});var require_dom_mutator_cjs_development=__commonJS({"../../node_modules/dom-mutator/dist/dom-mutator.cjs.development.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});var validAttributeName=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,nullController={revert:__name(function(){},"revert")},elements=new Map,mutations=new Set;function getObserverInit(attr){return attr==="html"?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[attr]}}__name(getObserverInit,"getObserverInit");function getElementRecord(element){var record2=elements.get(element);return record2||(record2={element,attributes:{}},elements.set(element,record2)),record2}__name(getElementRecord,"getElementRecord");function createElementPropertyRecord(el,attr,getCurrentValue,setValue2,mutationRunner){var currentValue=getCurrentValue(el),record2={isDirty:!1,originalValue:currentValue,virtualValue:currentValue,mutations:[],el,_positionTimeout:null,observer:new MutationObserver(function(){if(!(attr==="position"&&record2._positionTimeout)){attr==="position"&&(record2._positionTimeout=setTimeout(function(){record2._positionTimeout=null},1e3));var currentValue2=getCurrentValue(el);attr==="position"&&currentValue2.parentNode===record2.virtualValue.parentNode&&currentValue2.insertBeforeNode===record2.virtualValue.insertBeforeNode||currentValue2!==record2.virtualValue&&(record2.originalValue=currentValue2,mutationRunner(record2))}}),mutationRunner,setValue:setValue2,getCurrentValue};return attr==="position"&&el.parentNode?record2.observer.observe(el.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):record2.observer.observe(el,getObserverInit(attr)),record2}__name(createElementPropertyRecord,"createElementPropertyRecord");function queueIfNeeded(val,record2){var currentVal=record2.getCurrentValue(record2.el);record2.virtualValue=val,val&&typeof val!="string"?(!currentVal||val.parentNode!==currentVal.parentNode||val.insertBeforeNode!==currentVal.insertBeforeNode)&&(record2.isDirty=!0,runDOMUpdates()):val!==currentVal&&(record2.isDirty=!0,runDOMUpdates())}__name(queueIfNeeded,"queueIfNeeded");function htmlMutationRunner(record2){var val=record2.originalValue;record2.mutations.forEach(function(m2){return val=m2.mutate(val)}),queueIfNeeded(getTransformedHTML(val),record2)}__name(htmlMutationRunner,"htmlMutationRunner");function classMutationRunner(record2){var val=new Set(record2.originalValue.split(/\s+/).filter(Boolean));record2.mutations.forEach(function(m2){return m2.mutate(val)}),queueIfNeeded(Array.from(val).filter(Boolean).join(" "),record2)}__name(classMutationRunner,"classMutationRunner");function attrMutationRunner(record2){var val=record2.originalValue;record2.mutations.forEach(function(m2){return val=m2.mutate(val)}),queueIfNeeded(val,record2)}__name(attrMutationRunner,"attrMutationRunner");function _loadDOMNodes(_ref){var parentSelector=_ref.parentSelector,insertBeforeSelector=_ref.insertBeforeSelector,parentNode=document.querySelector(parentSelector);if(!parentNode)return null;var insertBeforeNode=insertBeforeSelector?document.querySelector(insertBeforeSelector):null;return insertBeforeSelector&&!insertBeforeNode?null:{parentNode,insertBeforeNode}}__name(_loadDOMNodes,"_loadDOMNodes");function positionMutationRunner(record2){var val=record2.originalValue;record2.mutations.forEach(function(m2){var selectors=m2.mutate(),newNodes=_loadDOMNodes(selectors);val=newNodes||val}),queueIfNeeded(val,record2)}__name(positionMutationRunner,"positionMutationRunner");var getHTMLValue=__name(function(el){return el.innerHTML},"getHTMLValue"),setHTMLValue=__name(function(el,value){return el.innerHTML=value},"setHTMLValue");function getElementHTMLRecord(element){var elementRecord=getElementRecord(element);return elementRecord.html||(elementRecord.html=createElementPropertyRecord(element,"html",getHTMLValue,setHTMLValue,htmlMutationRunner)),elementRecord.html}__name(getElementHTMLRecord,"getElementHTMLRecord");var getElementPosition=__name(function(el){return{parentNode:el.parentElement,insertBeforeNode:el.nextElementSibling}},"getElementPosition"),setElementPosition=__name(function(el,value){value.insertBeforeNode&&!value.parentNode.contains(value.insertBeforeNode)||value.parentNode.insertBefore(el,value.insertBeforeNode)},"setElementPosition");function getElementPositionRecord(element){var elementRecord=getElementRecord(element);return elementRecord.position||(elementRecord.position=createElementPropertyRecord(element,"position",getElementPosition,setElementPosition,positionMutationRunner)),elementRecord.position}__name(getElementPositionRecord,"getElementPositionRecord");var setClassValue=__name(function(el,val){return val?el.className=val:el.removeAttribute("class")},"setClassValue"),getClassValue=__name(function(el){return el.className},"getClassValue");function getElementClassRecord(el){var elementRecord=getElementRecord(el);return elementRecord.classes||(elementRecord.classes=createElementPropertyRecord(el,"class",getClassValue,setClassValue,classMutationRunner)),elementRecord.classes}__name(getElementClassRecord,"getElementClassRecord");var getAttrValue=__name(function(attrName){return function(el){var _el$getAttribute;return(_el$getAttribute=el.getAttribute(attrName))!=null?_el$getAttribute:null}},"getAttrValue"),setAttrValue=__name(function(attrName){return function(el,val){return val!==null?el.setAttribute(attrName,val):el.removeAttribute(attrName)}},"setAttrValue");function getElementAttributeRecord(el,attr){var elementRecord=getElementRecord(el);return elementRecord.attributes[attr]||(elementRecord.attributes[attr]=createElementPropertyRecord(el,attr,getAttrValue(attr),setAttrValue(attr),attrMutationRunner)),elementRecord.attributes[attr]}__name(getElementAttributeRecord,"getElementAttributeRecord");function deleteElementPropertyRecord(el,attr){var element=elements.get(el);if(element)if(attr==="html"){var _element$html,_element$html$observe;(_element$html=element.html)==null||(_element$html$observe=_element$html.observer)==null||_element$html$observe.disconnect(),delete element.html}else if(attr==="class"){var _element$classes,_element$classes$obse;(_element$classes=element.classes)==null||(_element$classes$obse=_element$classes.observer)==null||_element$classes$obse.disconnect(),delete element.classes}else if(attr==="position"){var _element$position,_element$position$obs;(_element$position=element.position)==null||(_element$position$obs=_element$position.observer)==null||_element$position$obs.disconnect(),delete element.position}else{var _element$attributes,_element$attributes$a,_element$attributes$a2;(_element$attributes=element.attributes)==null||(_element$attributes$a=_element$attributes[attr])==null||(_element$attributes$a2=_element$attributes$a.observer)==null||_element$attributes$a2.disconnect(),delete element.attributes[attr]}}__name(deleteElementPropertyRecord,"deleteElementPropertyRecord");var transformContainer;function getTransformedHTML(html2){return transformContainer||(transformContainer=document.createElement("div")),transformContainer.innerHTML=html2,transformContainer.innerHTML}__name(getTransformedHTML,"getTransformedHTML");function setPropertyValue(el,attr,m2){if(m2.isDirty){m2.isDirty=!1;var val=m2.virtualValue;m2.mutations.length||deleteElementPropertyRecord(el,attr),m2.setValue(el,val)}}__name(setPropertyValue,"setPropertyValue");function setValue(m2,el){m2.html&&setPropertyValue(el,"html",m2.html),m2.classes&&setPropertyValue(el,"class",m2.classes),m2.position&&setPropertyValue(el,"position",m2.position),Object.keys(m2.attributes).forEach(function(attr){setPropertyValue(el,attr,m2.attributes[attr])})}__name(setValue,"setValue");function runDOMUpdates(){elements.forEach(setValue)}__name(runDOMUpdates,"runDOMUpdates");function startMutating(mutation,element){var record2=null;mutation.kind==="html"?record2=getElementHTMLRecord(element):mutation.kind==="class"?record2=getElementClassRecord(element):mutation.kind==="attribute"?record2=getElementAttributeRecord(element,mutation.attribute):mutation.kind==="position"&&(record2=getElementPositionRecord(element)),record2&&(record2.mutations.push(mutation),record2.mutationRunner(record2))}__name(startMutating,"startMutating");function stopMutating(mutation,el){var record2=null;if(mutation.kind==="html"?record2=getElementHTMLRecord(el):mutation.kind==="class"?record2=getElementClassRecord(el):mutation.kind==="attribute"?record2=getElementAttributeRecord(el,mutation.attribute):mutation.kind==="position"&&(record2=getElementPositionRecord(el)),!!record2){var index2=record2.mutations.indexOf(mutation);index2!==-1&&record2.mutations.splice(index2,1),record2.mutationRunner(record2)}}__name(stopMutating,"stopMutating");function refreshElementsSet(mutation){if(!(mutation.kind==="position"&&mutation.elements.size===1)){var existingElements=new Set(mutation.elements),matchingElements=document.querySelectorAll(mutation.selector);matchingElements.forEach(function(el){existingElements.has(el)||(mutation.elements.add(el),startMutating(mutation,el))})}}__name(refreshElementsSet,"refreshElementsSet");function revertMutation(mutation){mutation.elements.forEach(function(el){return stopMutating(mutation,el)}),mutation.elements.clear(),mutations.delete(mutation)}__name(revertMutation,"revertMutation");function refreshAllElementSets(){mutations.forEach(refreshElementsSet)}__name(refreshAllElementSets,"refreshAllElementSets");var observer;function disconnectGlobalObserver(){observer&&observer.disconnect()}__name(disconnectGlobalObserver,"disconnectGlobalObserver");function connectGlobalObserver(){typeof document>"u"||(observer||(observer=new MutationObserver(function(){refreshAllElementSets()})),refreshAllElementSets(),observer.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}__name(connectGlobalObserver,"connectGlobalObserver");connectGlobalObserver();function newMutation(m2){return typeof document>"u"?nullController:(mutations.add(m2),refreshElementsSet(m2),{revert:__name(function(){revertMutation(m2)},"revert")})}__name(newMutation,"newMutation");function html(selector,mutate2){return newMutation({kind:"html",elements:new Set,mutate:mutate2,selector})}__name(html,"html");function position(selector,mutate2){return newMutation({kind:"position",elements:new Set,mutate:mutate2,selector})}__name(position,"position");function classes(selector,mutate2){return newMutation({kind:"class",elements:new Set,mutate:mutate2,selector})}__name(classes,"classes");function attribute(selector,attribute2,mutate2){return validAttributeName.test(attribute2)?attribute2==="class"||attribute2==="className"?classes(selector,function(classnames){var mutatedClassnames=mutate2(Array.from(classnames).join(" "));classnames.clear(),mutatedClassnames&&mutatedClassnames.split(/\s+/g).filter(Boolean).forEach(function(c3){return classnames.add(c3)})}):newMutation({kind:"attribute",attribute:attribute2,elements:new Set,mutate:mutate2,selector}):nullController}__name(attribute,"attribute");function declarative(_ref2){var selector=_ref2.selector,action=_ref2.action,value=_ref2.value,attr=_ref2.attribute,parentSelector=_ref2.parentSelector,insertBeforeSelector=_ref2.insertBeforeSelector;if(attr==="html"){if(action==="append")return html(selector,function(val){return val+(value??"")});if(action==="set")return html(selector,function(){return value??""})}else if(attr==="class"){if(action==="append")return classes(selector,function(val){value&&val.add(value)});if(action==="remove")return classes(selector,function(val){value&&val.delete(value)});if(action==="set")return classes(selector,function(val){val.clear(),value&&val.add(value)})}else if(attr==="position"){if(action==="set"&&parentSelector)return position(selector,function(){return{insertBeforeSelector,parentSelector}})}else{if(action==="append")return attribute(selector,attr,function(val){return val!==null?val+(value??""):value??""});if(action==="set")return attribute(selector,attr,function(){return value??""});if(action==="remove")return attribute(selector,attr,function(){return null})}return nullController}__name(declarative,"declarative");var index={html,classes,attribute,position,declarative};exports2.connectGlobalObserver=connectGlobalObserver;exports2.default=index;exports2.disconnectGlobalObserver=disconnectGlobalObserver;exports2.validAttributeName=validAttributeName}});var require_dist=__commonJS({"../../node_modules/dom-mutator/dist/index.js"(exports2,module2){"use strict";process.env.NODE_ENV==="production"?module2.exports=require_dom_mutator_cjs_production_min():module2.exports=require_dom_mutator_cjs_development()}});function evalCondition(obj,condition,savedGroups){savedGroups=savedGroups||{};for(let[k,v]of Object.entries(condition))switch(k){case"$or":if(!evalOr(obj,v,savedGroups))return!1;break;case"$nor":if(evalOr(obj,v,savedGroups))return!1;break;case"$and":if(!evalAnd(obj,v,savedGroups))return!1;break;case"$not":if(evalCondition(obj,v,savedGroups))return!1;break;default:if(!evalConditionValue(v,getPath(obj,k),savedGroups))return!1}return!0}function getPath(obj,path10){let parts=path10.split("."),current=obj;for(let i3=0;i3<parts.length;i3++)if(current&&typeof current=="object"&&parts[i3]in current)current=current[parts[i3]];else return null;return current}function getRegex(regex,insensitive=!1){let cacheKey=`${regex}${insensitive?"/i":""}`;return _regexCache[cacheKey]||(_regexCache[cacheKey]=new RegExp(regex.replace(/([^\\])\//g,"$1\\/"),insensitive?"i":void 0)),_regexCache[cacheKey]}function evalConditionValue(condition,value,savedGroups,insensitive=!1){if(typeof condition=="string")return insensitive?String(value).toLowerCase()===condition.toLowerCase():value+""===condition;if(typeof condition=="number")return value*1===condition;if(typeof condition=="boolean")return value!==null&&!!value===condition;if(condition===null)return value===null;if(Array.isArray(condition)||!isOperatorObject(condition))return JSON.stringify(value)===JSON.stringify(condition);for(let op in condition)if(!evalOperatorCondition(op,value,condition[op],savedGroups))return!1;return!0}function isOperatorObject(obj){let keys2=Object.keys(obj);return keys2.length>0&&keys2.filter(k=>k[0]==="$").length===keys2.length}function getType(v){if(v===null)return"null";if(Array.isArray(v))return"array";let t2=typeof v;return["string","number","boolean","object","undefined"].includes(t2)?t2:"unknown"}function elemMatch(actual,expected,savedGroups){if(!Array.isArray(actual))return!1;let check2=isOperatorObject(expected)?v=>evalConditionValue(expected,v,savedGroups):v=>evalCondition(v,expected,savedGroups);for(let i3=0;i3<actual.length;i3++)if(actual[i3]&&check2(actual[i3]))return!0;return!1}function isIn(actual,expected,insensitive=!1){if(insensitive){let caseFold=__name(val=>typeof val=="string"?val.toLowerCase():val,"caseFold");return Array.isArray(actual)?actual.some(el=>expected.some(exp=>caseFold(el)===caseFold(exp))):expected.some(exp=>caseFold(actual)===caseFold(exp))}return Array.isArray(actual)?actual.some(el=>expected.includes(el)):expected.includes(actual)}function isInAll(actual,expected,savedGroups,insensitive=!1){if(!Array.isArray(actual))return!1;for(let i3=0;i3<expected.length;i3++){let passed=!1;for(let j=0;j<actual.length;j++)if(evalConditionValue(expected[i3],actual[j],savedGroups,insensitive)){passed=!0;break}if(!passed)return!1}return!0}function evalOperatorCondition(operator,actual,expected,savedGroups){switch(operator){case"$veq":return paddedVersionString(actual)===paddedVersionString(expected);case"$vne":return paddedVersionString(actual)!==paddedVersionString(expected);case"$vgt":return paddedVersionString(actual)>paddedVersionString(expected);case"$vgte":return paddedVersionString(actual)>=paddedVersionString(expected);case"$vlt":return paddedVersionString(actual)<paddedVersionString(expected);case"$vlte":return paddedVersionString(actual)<=paddedVersionString(expected);case"$eq":return actual===expected;case"$ne":return actual!==expected;case"$lt":return actual<expected;case"$lte":return actual<=expected;case"$gt":return actual>expected;case"$gte":return actual>=expected;case"$exists":return expected?actual!=null:actual==null;case"$in":return Array.isArray(expected)?isIn(actual,expected):!1;case"$ini":return Array.isArray(expected)?isIn(actual,expected,!0):!1;case"$inGroup":return isIn(actual,savedGroups[expected]||[]);case"$notInGroup":return!isIn(actual,savedGroups[expected]||[]);case"$nin":return Array.isArray(expected)?!isIn(actual,expected):!1;case"$nini":return Array.isArray(expected)?!isIn(actual,expected,!0):!1;case"$not":return!evalConditionValue(expected,actual,savedGroups);case"$size":return Array.isArray(actual)?evalConditionValue(expected,actual.length,savedGroups):!1;case"$elemMatch":return elemMatch(actual,expected,savedGroups);case"$all":return Array.isArray(expected)?isInAll(actual,expected,savedGroups):!1;case"$alli":return Array.isArray(expected)?isInAll(actual,expected,savedGroups,!0):!1;case"$regex":try{return getRegex(expected).test(actual)}catch{return!1}case"$regexi":try{return getRegex(expected,!0).test(actual)}catch{return!1}case"$type":return getType(actual)===expected;default:return console.error("Unknown operator: "+operator),!1}}function evalOr(obj,conditions,savedGroups){if(!conditions.length)return!0;for(let i3=0;i3<conditions.length;i3++)if(evalCondition(obj,conditions[i3],savedGroups))return!0;return!1}function evalAnd(obj,conditions,savedGroups){for(let i3=0;i3<conditions.length;i3++)if(!evalCondition(obj,conditions[i3],savedGroups))return!1;return!0}var _regexCache,init_mongrule=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/mongrule.mjs"(){init_util();_regexCache={};__name(evalCondition,"evalCondition");__name(getPath,"getPath");__name(getRegex,"getRegex");__name(evalConditionValue,"evalConditionValue");__name(isOperatorObject,"isOperatorObject");__name(getType,"getType");__name(elemMatch,"elemMatch");__name(isIn,"isIn");__name(isInAll,"isInAll");__name(evalOperatorCondition,"evalOperatorCondition");__name(evalOr,"evalOr");__name(evalAnd,"evalAnd")}});function getForcedFeatureValues(ctx){let ret=new Map;return ctx.global.forcedFeatureValues&&ctx.global.forcedFeatureValues.forEach((v,k)=>ret.set(k,v)),ctx.user.forcedFeatureValues&&ctx.user.forcedFeatureValues.forEach((v,k)=>ret.set(k,v)),ret}function getForcedVariations(ctx){return ctx.global.forcedVariations&&ctx.user.forcedVariations?{...ctx.global.forcedVariations,...ctx.user.forcedVariations}:ctx.global.forcedVariations?ctx.global.forcedVariations:ctx.user.forcedVariations?ctx.user.forcedVariations:{}}async function safeCall(fn){try{await fn()}catch{}}function onExperimentViewed(ctx,experiment,result2){if(ctx.user.trackedExperiments){let k=getExperimentDedupeKey(experiment,result2);if(ctx.user.trackedExperiments.has(k))return[];ctx.user.trackedExperiments.add(k)}ctx.user.enableDevMode&&ctx.user.devLogs&&ctx.user.devLogs.push({experiment,result:result2,timestamp:Date.now().toString(),logType:"experiment"});let calls=[];if(ctx.global.trackingCallback){let cb=ctx.global.trackingCallback;calls.push(safeCall(()=>cb(experiment,result2,ctx.user)))}if(ctx.user.trackingCallback){let cb=ctx.user.trackingCallback;calls.push(safeCall(()=>cb(experiment,result2)))}if(ctx.global.eventLogger){let cb=ctx.global.eventLogger;calls.push(safeCall(()=>cb(EVENT_EXPERIMENT_VIEWED,{experimentId:experiment.key,variationId:result2.key,hashAttribute:result2.hashAttribute,hashValue:result2.hashValue},ctx.user)))}return calls}function onFeatureUsage(ctx,key,ret){if(ctx.user.trackedFeatureUsage){let stringifiedValue=JSON.stringify(ret.value);if(ctx.user.trackedFeatureUsage[key]===stringifiedValue)return;ctx.user.trackedFeatureUsage[key]=stringifiedValue,ctx.user.enableDevMode&&ctx.user.devLogs&&ctx.user.devLogs.push({featureKey:key,result:ret,timestamp:Date.now().toString(),logType:"feature"})}if(ctx.global.onFeatureUsage){let cb=ctx.global.onFeatureUsage;safeCall(()=>cb(key,ret,ctx.user))}if(ctx.user.onFeatureUsage){let cb=ctx.user.onFeatureUsage;safeCall(()=>cb(key,ret))}if(ctx.global.eventLogger){let cb=ctx.global.eventLogger;safeCall(()=>cb(EVENT_FEATURE_EVALUATED,{feature:key,source:ret.source,value:ret.value,ruleId:ret.source==="defaultValue"?"$default":ret.ruleId||"",variationId:ret.experimentResult?ret.experimentResult.key:""},ctx.user))}}function evalFeature(id,ctx){if(ctx.stack.evaluatedFeatures.has(id))return process.env.NODE_ENV!=="production"&&ctx.global.log(`evalFeature: circular dependency detected: ${ctx.stack.id} -> ${id}`,{from:ctx.stack.id,to:id}),getFeatureResult(ctx,id,null,"cyclicPrerequisite");ctx.stack.evaluatedFeatures.add(id),ctx.stack.id=id;let forcedValues=getForcedFeatureValues(ctx);if(forcedValues.has(id))return process.env.NODE_ENV!=="production"&&ctx.global.log("Global override",{id,value:forcedValues.get(id)}),getFeatureResult(ctx,id,forcedValues.get(id),"override");if(!ctx.global.features||!ctx.global.features[id])return process.env.NODE_ENV!=="production"&&ctx.global.log("Unknown feature",{id}),getFeatureResult(ctx,id,null,"unknownFeature");let feature=ctx.global.features[id];if(feature.rules){let evaluatedFeatures=new Set(ctx.stack.evaluatedFeatures);rules:for(let rule of feature.rules){if(rule.parentConditions)for(let parentCondition of rule.parentConditions){ctx.stack.evaluatedFeatures=new Set(evaluatedFeatures);let parentResult=evalFeature(parentCondition.id,ctx);if(parentResult.source==="cyclicPrerequisite")return getFeatureResult(ctx,id,null,"cyclicPrerequisite");let evalObj={value:parentResult.value};if(!evalCondition(evalObj,parentCondition.condition||{})){if(parentCondition.gate)return process.env.NODE_ENV!=="production"&&ctx.global.log("Feature blocked by prerequisite",{id,rule}),getFeatureResult(ctx,id,null,"prerequisite");process.env.NODE_ENV!=="production"&&ctx.global.log("Skip rule because prerequisite evaluation fails",{id,rule});continue rules}}if(rule.filters&&isFilteredOut(rule.filters,ctx)){process.env.NODE_ENV!=="production"&&ctx.global.log("Skip rule because of filters",{id,rule});continue}if("force"in rule){if(rule.condition&&!conditionPasses(rule.condition,ctx)){process.env.NODE_ENV!=="production"&&ctx.global.log("Skip rule because of condition ff",{id,rule});continue}if(!isIncludedInRollout(ctx,rule.seed||id,rule.hashAttribute,ctx.user.saveStickyBucketAssignmentDoc&&!rule.disableStickyBucketing?rule.fallbackAttribute:void 0,rule.range,rule.coverage,rule.hashVersion)){process.env.NODE_ENV!=="production"&&ctx.global.log("Skip rule because user not included in rollout",{id,rule});continue}return process.env.NODE_ENV!=="production"&&ctx.global.log("Force value from rule",{id,rule}),rule.tracks&&rule.tracks.forEach(t2=>{!onExperimentViewed(ctx,t2.experiment,t2.result).length&&ctx.global.saveDeferredTrack&&ctx.global.saveDeferredTrack({experiment:t2.experiment,result:t2.result})}),getFeatureResult(ctx,id,rule.force,"force",rule.id)}if(!rule.variations){process.env.NODE_ENV!=="production"&&ctx.global.log("Skip invalid rule",{id,rule});continue}let exp={variations:rule.variations,key:rule.key||id};"coverage"in rule&&(exp.coverage=rule.coverage),rule.weights&&(exp.weights=rule.weights),rule.hashAttribute&&(exp.hashAttribute=rule.hashAttribute),rule.fallbackAttribute&&(exp.fallbackAttribute=rule.fallbackAttribute),rule.disableStickyBucketing&&(exp.disableStickyBucketing=rule.disableStickyBucketing),rule.bucketVersion!==void 0&&(exp.bucketVersion=rule.bucketVersion),rule.minBucketVersion!==void 0&&(exp.minBucketVersion=rule.minBucketVersion),rule.namespace&&(exp.namespace=rule.namespace),rule.meta&&(exp.meta=rule.meta),rule.ranges&&(exp.ranges=rule.ranges),rule.name&&(exp.name=rule.name),rule.phase&&(exp.phase=rule.phase),rule.seed&&(exp.seed=rule.seed),rule.hashVersion&&(exp.hashVersion=rule.hashVersion),rule.filters&&(exp.filters=rule.filters),rule.condition&&(exp.condition=rule.condition);let{result:result2}=runExperiment(exp,id,ctx);if(ctx.global.onExperimentEval&&ctx.global.onExperimentEval(exp,result2),result2.inExperiment&&!result2.passthrough)return getFeatureResult(ctx,id,result2.value,"experiment",rule.id,exp,result2)}}return process.env.NODE_ENV!=="production"&&ctx.global.log("Use default value",{id,value:feature.defaultValue}),getFeatureResult(ctx,id,feature.defaultValue===void 0?null:feature.defaultValue,"defaultValue")}function runExperiment(experiment,featureId,ctx){let key=experiment.key,numVariations=experiment.variations.length;if(numVariations<2)return process.env.NODE_ENV!=="production"&&ctx.global.log("Invalid experiment",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(ctx.global.enabled===!1||ctx.user.enabled===!1)return process.env.NODE_ENV!=="production"&&ctx.global.log("Context disabled",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(experiment=mergeOverrides(experiment,ctx),experiment.urlPatterns&&!isURLTargeted(ctx.user.url||"",experiment.urlPatterns))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of url targeting",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};let qsOverride=getQueryStringOverride(key,ctx.user.url||"",numVariations);if(qsOverride!==null)return process.env.NODE_ENV!=="production"&&ctx.global.log("Force via querystring",{id:key,variation:qsOverride}),{result:getExperimentResult(ctx,experiment,qsOverride,!1,featureId)};let forcedVariations=getForcedVariations(ctx);if(key in forcedVariations){let variation=forcedVariations[key];return process.env.NODE_ENV!=="production"&&ctx.global.log("Force via dev tools",{id:key,variation}),{result:getExperimentResult(ctx,experiment,variation,!1,featureId)}}if(experiment.status==="draft"||experiment.active===!1)return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because inactive",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};let{hashAttribute,hashValue}=getHashAttribute(ctx,experiment.hashAttribute,ctx.user.saveStickyBucketAssignmentDoc&&!experiment.disableStickyBucketing?experiment.fallbackAttribute:void 0);if(!hashValue)return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because missing hashAttribute",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};let assigned=-1,foundStickyBucket=!1,stickyBucketVersionIsBlocked=!1;if(ctx.user.saveStickyBucketAssignmentDoc&&!experiment.disableStickyBucketing){let{variation,versionIsBlocked}=getStickyBucketVariation({ctx,expKey:experiment.key,expBucketVersion:experiment.bucketVersion,expHashAttribute:experiment.hashAttribute,expFallbackAttribute:experiment.fallbackAttribute,expMinBucketVersion:experiment.minBucketVersion,expMeta:experiment.meta});foundStickyBucket=variation>=0,assigned=variation,stickyBucketVersionIsBlocked=!!versionIsBlocked}if(!foundStickyBucket){if(experiment.filters){if(isFilteredOut(experiment.filters,ctx))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of filters",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)}}else if(experiment.namespace&&!inNamespace(hashValue,experiment.namespace))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of namespace",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(experiment.include&&!isIncluded(experiment.include))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of include function",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(experiment.condition&&!conditionPasses(experiment.condition,ctx))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of condition exp",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(experiment.parentConditions){let evaluatedFeatures=new Set(ctx.stack.evaluatedFeatures);for(let parentCondition of experiment.parentConditions){ctx.stack.evaluatedFeatures=new Set(evaluatedFeatures);let parentResult=evalFeature(parentCondition.id,ctx);if(parentResult.source==="cyclicPrerequisite")return{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};let evalObj={value:parentResult.value};if(!evalCondition(evalObj,parentCondition.condition||{}))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because prerequisite evaluation fails",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)}}}if(experiment.groups&&!hasGroupOverlap(experiment.groups,ctx))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of groups",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)}}if(experiment.url&&!urlIsValid(experiment.url,ctx))return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of url",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};let n2=hash(experiment.seed||key,hashValue,experiment.hashVersion||1);if(n2===null)return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of invalid hash version",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(!foundStickyBucket){let ranges=experiment.ranges||getBucketRanges(numVariations,experiment.coverage===void 0?1:experiment.coverage,experiment.weights);assigned=chooseVariation(n2,ranges)}if(stickyBucketVersionIsBlocked)return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because sticky bucket version is blocked",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId,void 0,!0)};if(assigned<0)return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because of coverage",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if("force"in experiment)return process.env.NODE_ENV!=="production"&&ctx.global.log("Force variation",{id:key,variation:experiment.force}),{result:getExperimentResult(ctx,experiment,experiment.force===void 0?-1:experiment.force,!1,featureId)};if(ctx.global.qaMode||ctx.user.qaMode)return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because QA mode",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};if(experiment.status==="stopped")return process.env.NODE_ENV!=="production"&&ctx.global.log("Skip because stopped",{id:key}),{result:getExperimentResult(ctx,experiment,-1,!1,featureId)};let result2=getExperimentResult(ctx,experiment,assigned,!0,featureId,n2,foundStickyBucket);if(ctx.user.saveStickyBucketAssignmentDoc&&!experiment.disableStickyBucketing){let{changed,key:attrKey,doc}=generateStickyBucketAssignmentDoc(ctx,hashAttribute,toString2(hashValue),{[getStickyBucketExperimentKey(experiment.key,experiment.bucketVersion)]:result2.key});changed&&(ctx.user.stickyBucketAssignmentDocs=ctx.user.stickyBucketAssignmentDocs||{},ctx.user.stickyBucketAssignmentDocs[attrKey]=doc,ctx.user.saveStickyBucketAssignmentDoc(doc))}let trackingCalls=onExperimentViewed(ctx,experiment,result2);trackingCalls.length===0&&ctx.global.saveDeferredTrack&&ctx.global.saveDeferredTrack({experiment,result:result2});let trackingCall=trackingCalls.length?trackingCalls.length===1?trackingCalls[0]:Promise.all(trackingCalls).then(()=>{}):void 0;return"changeId"in experiment&&experiment.changeId&&ctx.global.recordChangeId&&ctx.global.recordChangeId(experiment.changeId),process.env.NODE_ENV!=="production"&&ctx.global.log("In experiment",{id:key,variation:result2.variationId}),{result:result2,trackingCall}}function getFeatureResult(ctx,key,value,source,ruleId,experiment,result2){let ret={value,on:!!value,off:!value,source,ruleId:ruleId||""};return experiment&&(ret.experiment=experiment),result2&&(ret.experimentResult=result2),source!=="override"&&onFeatureUsage(ctx,key,ret),ret}function getAttributes(ctx){return{...ctx.user.attributes,...ctx.user.attributeOverrides}}function conditionPasses(condition,ctx){return evalCondition(getAttributes(ctx),condition,ctx.global.savedGroups||{})}function isFilteredOut(filters,ctx){return filters.some(filter3=>{let{hashValue}=getHashAttribute(ctx,filter3.attribute);if(!hashValue)return!0;let n2=hash(filter3.seed,hashValue,filter3.hashVersion||2);return n2===null?!0:!filter3.ranges.some(r2=>inRange(n2,r2))})}function isIncludedInRollout(ctx,seed,hashAttribute,fallbackAttribute,range2,coverage,hashVersion){if(!range2&&coverage===void 0)return!0;if(!range2&&coverage===0)return!1;let{hashValue}=getHashAttribute(ctx,hashAttribute,fallbackAttribute);if(!hashValue)return!1;let n2=hash(seed,hashValue,hashVersion||1);return n2===null?!1:range2?inRange(n2,range2):coverage!==void 0?n2<=coverage:!0}function getExperimentResult(ctx,experiment,variationIndex,hashUsed,featureId,bucket,stickyBucketUsed){let inExperiment=!0;(variationIndex<0||variationIndex>=experiment.variations.length)&&(variationIndex=0,inExperiment=!1);let{hashAttribute,hashValue}=getHashAttribute(ctx,experiment.hashAttribute,ctx.user.saveStickyBucketAssignmentDoc&&!experiment.disableStickyBucketing?experiment.fallbackAttribute:void 0),meta=experiment.meta?experiment.meta[variationIndex]:{},res={key:meta.key||""+variationIndex,featureId,inExperiment,hashUsed,variationId:variationIndex,value:experiment.variations[variationIndex],hashAttribute,hashValue,stickyBucketUsed:!!stickyBucketUsed};return meta.name&&(res.name=meta.name),bucket!==void 0&&(res.bucket=bucket),meta.passthrough&&(res.passthrough=meta.passthrough),res}function mergeOverrides(experiment,ctx){let key=experiment.key,o2=ctx.global.overrides;return o2&&o2[key]&&(experiment=Object.assign({},experiment,o2[key]),typeof experiment.url=="string"&&(experiment.url=getUrlRegExp(experiment.url))),experiment}function getHashAttribute(ctx,attr,fallback){let hashAttribute=attr||"id",hashValue="",attributes=getAttributes(ctx);return attributes[hashAttribute]&&(hashValue=attributes[hashAttribute]),!hashValue&&fallback&&(attributes[fallback]&&(hashValue=attributes[fallback]),hashValue&&(hashAttribute=fallback)),{hashAttribute,hashValue}}function urlIsValid(urlRegex,ctx){let url3=ctx.user.url;if(!url3)return!1;let pathOnly=url3.replace(/^https?:\/\//,"").replace(/^[^/]*\//,"/");return!!(urlRegex.test(url3)||urlRegex.test(pathOnly))}function hasGroupOverlap(expGroups,ctx){let groups=ctx.global.groups||{};for(let i3=0;i3<expGroups.length;i3++)if(groups[expGroups[i3]])return!0;return!1}function getStickyBucketVariation({ctx,expKey,expBucketVersion,expHashAttribute,expFallbackAttribute,expMinBucketVersion,expMeta}){expBucketVersion=expBucketVersion||0,expMinBucketVersion=expMinBucketVersion||0,expHashAttribute=expHashAttribute||"id",expMeta=expMeta||[];let id=getStickyBucketExperimentKey(expKey,expBucketVersion),assignments=getStickyBucketAssignments(ctx,expHashAttribute,expFallbackAttribute);if(expMinBucketVersion>0)for(let i3=0;i3<expMinBucketVersion;i3++){let blockedKey=getStickyBucketExperimentKey(expKey,i3);if(assignments[blockedKey]!==void 0)return{variation:-1,versionIsBlocked:!0}}let variationKey=assignments[id];if(variationKey===void 0)return{variation:-1};let variation=expMeta.findIndex(m2=>m2.key===variationKey);return variation<0?{variation:-1}:{variation}}function getStickyBucketExperimentKey(experimentKey,experimentBucketVersion){return experimentBucketVersion=experimentBucketVersion||0,`${experimentKey}__${experimentBucketVersion}`}function getStickyBucketAttributeKey(attributeName,attributeValue){return`${attributeName}||${attributeValue}`}function getStickyBucketAssignments(ctx,expHashAttribute,expFallbackAttribute){if(!ctx.user.stickyBucketAssignmentDocs)return{};let{hashAttribute,hashValue}=getHashAttribute(ctx,expHashAttribute),hashKey=getStickyBucketAttributeKey(hashAttribute,toString2(hashValue)),{hashAttribute:fallbackAttribute,hashValue:fallbackValue}=getHashAttribute(ctx,expFallbackAttribute),fallbackKey=fallbackValue?getStickyBucketAttributeKey(fallbackAttribute,toString2(fallbackValue)):null,assignments={};return fallbackKey&&ctx.user.stickyBucketAssignmentDocs[fallbackKey]&&Object.assign(assignments,ctx.user.stickyBucketAssignmentDocs[fallbackKey].assignments||{}),ctx.user.stickyBucketAssignmentDocs[hashKey]&&Object.assign(assignments,ctx.user.stickyBucketAssignmentDocs[hashKey].assignments||{}),assignments}function generateStickyBucketAssignmentDoc(ctx,attributeName,attributeValue,assignments){let key=getStickyBucketAttributeKey(attributeName,attributeValue),existingAssignments=ctx.user.stickyBucketAssignmentDocs&&ctx.user.stickyBucketAssignmentDocs[key]?ctx.user.stickyBucketAssignmentDocs[key].assignments||{}:{},newAssignments={...existingAssignments,...assignments},changed=JSON.stringify(existingAssignments)!==JSON.stringify(newAssignments);return{key,doc:{attributeName,attributeValue,assignments:newAssignments},changed}}function deriveStickyBucketIdentifierAttributes(ctx,data){let attributes=new Set,features=data&&data.features?data.features:ctx.global.features||{},experiments=data&&data.experiments?data.experiments:ctx.global.experiments||[];return Object.keys(features).forEach(id=>{let feature=features[id];if(feature.rules)for(let rule of feature.rules)rule.variations&&(attributes.add(rule.hashAttribute||"id"),rule.fallbackAttribute&&attributes.add(rule.fallbackAttribute))}),experiments.map(experiment=>{attributes.add(experiment.hashAttribute||"id"),experiment.fallbackAttribute&&attributes.add(experiment.fallbackAttribute)}),Array.from(attributes)}async function getAllStickyBucketAssignmentDocs(ctx,stickyBucketService,data){let attributes=getStickyBucketAttributes(ctx,data);return stickyBucketService.getAllAssignments(attributes)}function getStickyBucketAttributes(ctx,data){let attributes={};return deriveStickyBucketIdentifierAttributes(ctx,data).forEach(attr=>{let{hashValue}=getHashAttribute(ctx,attr);attributes[attr]=toString2(hashValue)}),attributes}async function decryptPayload(data,decryptionKey,subtle){if(data={...data},data.encryptedFeatures){try{data.features=JSON.parse(await decrypt(data.encryptedFeatures,decryptionKey,subtle))}catch(e2){console.error(e2)}delete data.encryptedFeatures}if(data.encryptedExperiments){try{data.experiments=JSON.parse(await decrypt(data.encryptedExperiments,decryptionKey,subtle))}catch(e2){console.error(e2)}delete data.encryptedExperiments}if(data.encryptedSavedGroups){try{data.savedGroups=JSON.parse(await decrypt(data.encryptedSavedGroups,decryptionKey,subtle))}catch(e2){console.error(e2)}delete data.encryptedSavedGroups}return data}function getApiHosts(options){let defaultHost=options.apiHost||"https://cdn.growthbook.io";return{apiHost:defaultHost.replace(/\/*$/,""),streamingHost:(options.streamingHost||defaultHost).replace(/\/*$/,""),apiRequestHeaders:options.apiHostRequestHeaders,streamingHostRequestHeaders:options.streamingHostRequestHeaders}}function getExperimentDedupeKey(experiment,result2){return result2.hashAttribute+result2.hashValue+experiment.key+result2.variationId}var EVENT_FEATURE_EVALUATED,EVENT_EXPERIMENT_VIEWED,init_core=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/core.mjs"(){init_mongrule();init_util();EVENT_FEATURE_EVALUATED="Feature Evaluated",EVENT_EXPERIMENT_VIEWED="Experiment Viewed";__name(getForcedFeatureValues,"getForcedFeatureValues");__name(getForcedVariations,"getForcedVariations");__name(safeCall,"safeCall");__name(onExperimentViewed,"onExperimentViewed");__name(onFeatureUsage,"onFeatureUsage");__name(evalFeature,"evalFeature");__name(runExperiment,"runExperiment");__name(getFeatureResult,"getFeatureResult");__name(getAttributes,"getAttributes");__name(conditionPasses,"conditionPasses");__name(isFilteredOut,"isFilteredOut");__name(isIncludedInRollout,"isIncludedInRollout");__name(getExperimentResult,"getExperimentResult");__name(mergeOverrides,"mergeOverrides");__name(getHashAttribute,"getHashAttribute");__name(urlIsValid,"urlIsValid");__name(hasGroupOverlap,"hasGroupOverlap");__name(getStickyBucketVariation,"getStickyBucketVariation");__name(getStickyBucketExperimentKey,"getStickyBucketExperimentKey");__name(getStickyBucketAttributeKey,"getStickyBucketAttributeKey");__name(getStickyBucketAssignments,"getStickyBucketAssignments");__name(generateStickyBucketAssignmentDoc,"generateStickyBucketAssignmentDoc");__name(deriveStickyBucketIdentifierAttributes,"deriveStickyBucketIdentifierAttributes");__name(getAllStickyBucketAssignmentDocs,"getAllStickyBucketAssignmentDocs");__name(getStickyBucketAttributes,"getStickyBucketAttributes");__name(decryptPayload,"decryptPayload");__name(getApiHosts,"getApiHosts");__name(getExperimentDedupeKey,"getExperimentDedupeKey")}});var import_dom_mutator,isBrowser,SDK_VERSION,GrowthBook,init_GrowthBook=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/GrowthBook.mjs"(){import_dom_mutator=__toESM(require_dist(),1);init_util();init_feature_repository();init_core();isBrowser=typeof window<"u"&&typeof document<"u",SDK_VERSION=loadSDKVersion(),GrowthBook=class{static{__name(this,"GrowthBook")}constructor(options){if(options=options||{},this.version=SDK_VERSION,this._options=this.context=options,this._renderer=options.renderer||null,this._trackedExperiments=new Set,this._completedChangeIds=new Set,this._trackedFeatures={},this.debug=!!options.debug,this._subscriptions=new Set,this.ready=!1,this._assigned=new Map,this._activeAutoExperiments=new Map,this._triggeredExpKeys=new Set,this._initialized=!1,this._redirectedUrl="",this._deferredTrackingCalls=new Map,this._autoExperimentsAllowed=!options.disableExperimentsOnLoad,this._destroyCallbacks=[],this.logs=[],this.log=this.log.bind(this),this._saveDeferredTrack=this._saveDeferredTrack.bind(this),this._onExperimentEval=this._onExperimentEval.bind(this),this._fireSubscriptions=this._fireSubscriptions.bind(this),this._recordChangedId=this._recordChangedId.bind(this),options.remoteEval){if(options.decryptionKey)throw new Error("Encryption is not available for remoteEval");if(!options.clientKey)throw new Error("Missing clientKey");let isGbHost=!1;try{isGbHost=!!new URL(options.apiHost||"").hostname.match(/growthbook\.io$/i)}catch{}if(isGbHost)throw new Error("Cannot use remoteEval on GrowthBook Cloud")}else if(options.cacheKeyAttributes)throw new Error("cacheKeyAttributes are only used for remoteEval");if(options.stickyBucketService){let s2=options.stickyBucketService;this._saveStickyBucketAssignmentDoc=doc=>s2.saveAssignments(doc)}if(options.plugins)for(let plugin of options.plugins)plugin(this);if(options.features&&(this.ready=!0),isBrowser&&options.enableDevMode&&(window._growthbook=this,document.dispatchEvent(new Event("gbloaded"))),options.experiments&&(this.ready=!0,this._updateAllAutoExperiments()),this._options.stickyBucketService&&this._options.stickyBucketAssignmentDocs)for(let key in this._options.stickyBucketAssignmentDocs){let doc=this._options.stickyBucketAssignmentDocs[key];doc&&this._options.stickyBucketService.saveAssignments(doc).catch(()=>{})}this.ready&&this.refreshStickyBuckets(this.getPayload())}async setPayload(payload){this._payload=payload;let data=await decryptPayload(payload,this._options.decryptionKey);this._decryptedPayload=data,await this.refreshStickyBuckets(data),data.features&&(this._options.features=data.features),data.savedGroups&&(this._options.savedGroups=data.savedGroups),data.experiments&&(this._options.experiments=data.experiments,this._updateAllAutoExperiments()),this.ready=!0,this._render()}initSync(options){this._initialized=!0;let payload=options.payload;if(payload.encryptedExperiments||payload.encryptedFeatures)throw new Error("initSync does not support encrypted payloads");return this._options.stickyBucketService&&!this._options.stickyBucketAssignmentDocs&&(this._options.stickyBucketAssignmentDocs=this.generateStickyBucketAssignmentDocsSync(this._options.stickyBucketService,payload)),this._payload=payload,this._decryptedPayload=payload,payload.features&&(this._options.features=payload.features),payload.experiments&&(this._options.experiments=payload.experiments,this._updateAllAutoExperiments()),this.ready=!0,startStreaming(this,options),this}async init(options){if(this._initialized=!0,options=options||{},options.cacheSettings&&configureCache(options.cacheSettings),options.payload)return await this.setPayload(options.payload),startStreaming(this,options),{success:!0,source:"init"};{let{data,...res}=await this._refresh({...options,allowStale:!0});return startStreaming(this,options),await this.setPayload(data||{}),res}}async loadFeatures(options){options=options||{},await this.init({skipCache:options.skipCache,timeout:options.timeout,streaming:(this._options.backgroundSync??!0)&&(options.autoRefresh||this._options.subscribeToChanges)})}async refreshFeatures(options){let res=await this._refresh({...options||{},allowStale:!1});res.data&&await this.setPayload(res.data)}getApiInfo(){return[this.getApiHosts().apiHost,this.getClientKey()]}getApiHosts(){return getApiHosts(this._options)}getClientKey(){return this._options.clientKey||""}getPayload(){return this._payload||{features:this.getFeatures(),experiments:this.getExperiments()}}getDecryptedPayload(){return this._decryptedPayload||this.getPayload()}isRemoteEval(){return this._options.remoteEval||!1}getCacheKeyAttributes(){return this._options.cacheKeyAttributes}async _refresh({timeout,skipCache,allowStale,streaming}){if(!this._options.clientKey)throw new Error("Missing clientKey");return refreshFeatures({instance:this,timeout,skipCache:skipCache||this._options.disableCache,allowStale,backgroundSync:streaming??this._options.backgroundSync??!0})}_render(){if(this._renderer)try{this._renderer()}catch(e2){console.error("Failed to render",e2)}}setFeatures(features){this._options.features=features,this.ready=!0,this._render()}async setEncryptedFeatures(encryptedString,decryptionKey,subtle){let featuresJSON=await decrypt(encryptedString,decryptionKey||this._options.decryptionKey,subtle);this.setFeatures(JSON.parse(featuresJSON))}setExperiments(experiments){this._options.experiments=experiments,this.ready=!0,this._updateAllAutoExperiments()}async setEncryptedExperiments(encryptedString,decryptionKey,subtle){let experimentsJSON=await decrypt(encryptedString,decryptionKey||this._options.decryptionKey,subtle);this.setExperiments(JSON.parse(experimentsJSON))}async setAttributes(attributes){if(this._options.attributes=attributes,this._options.stickyBucketService&&await this.refreshStickyBuckets(),this._options.remoteEval){await this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()}async updateAttributes(attributes){return this.setAttributes({...this._options.attributes,...attributes})}async setAttributeOverrides(overrides){if(this._options.attributeOverrides=overrides,this._options.stickyBucketService&&await this.refreshStickyBuckets(),this._options.remoteEval){await this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()}async setForcedVariations(vars){if(this._options.forcedVariations=vars||{},this._options.remoteEval){await this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()}setForcedFeatures(map3){this._options.forcedFeatureValues=map3,this._render()}async setURL(url3){if(url3!==this._options.url){if(this._options.url=url3,this._redirectedUrl="",this._options.remoteEval){await this._refreshForRemoteEval(),this._updateAllAutoExperiments(!0);return}this._updateAllAutoExperiments(!0)}}getAttributes(){return{...this._options.attributes,...this._options.attributeOverrides}}getForcedVariations(){return this._options.forcedVariations||{}}getForcedFeatures(){return this._options.forcedFeatureValues||new Map}getStickyBucketAssignmentDocs(){return this._options.stickyBucketAssignmentDocs||{}}getUrl(){return this._options.url||""}getFeatures(){return this._options.features||{}}getExperiments(){return this._options.experiments||[]}getCompletedChangeIds(){return Array.from(this._completedChangeIds)}subscribe(cb){return this._subscriptions.add(cb),()=>{this._subscriptions.delete(cb)}}async _refreshForRemoteEval(){if(!this._options.remoteEval||!this._initialized)return;let res=await this._refresh({allowStale:!1});res.data&&await this.setPayload(res.data)}getAllResults(){return new Map(this._assigned)}onDestroy(cb){this._destroyCallbacks.push(cb)}isDestroyed(){return!!this._destroyed}destroy(options){options=options||{},this._destroyed=!0,this._destroyCallbacks.forEach(cb=>{try{cb()}catch(e2){console.error(e2)}}),this._subscriptions.clear(),this._assigned.clear(),this._trackedExperiments.clear(),this._completedChangeIds.clear(),this._deferredTrackingCalls.clear(),this._trackedFeatures={},this._destroyCallbacks=[],this._payload=void 0,this._saveStickyBucketAssignmentDoc=void 0,unsubscribe(this),options.destroyAllStreams&&clearAutoRefresh(),this.logs=[],isBrowser&&window._growthbook===this&&delete window._growthbook,this._activeAutoExperiments.forEach(exp=>{exp.undo()}),this._activeAutoExperiments.clear(),this._triggeredExpKeys.clear()}setRenderer(renderer){this._renderer=renderer}forceVariation(key,variation){if(this._options.forcedVariations=this._options.forcedVariations||{},this._options.forcedVariations[key]=variation,this._options.remoteEval){this._refreshForRemoteEval();return}this._updateAllAutoExperiments(),this._render()}run(experiment){let{result:result2}=runExperiment(experiment,null,this._getEvalContext());return this._onExperimentEval(experiment,result2),result2}triggerExperiment(key){return this._triggeredExpKeys.add(key),this._options.experiments?this._options.experiments.filter(exp=>exp.key===key).map(exp=>this._runAutoExperiment(exp)).filter(res=>res!==null):null}triggerAutoExperiments(){this._autoExperimentsAllowed=!0,this._updateAllAutoExperiments(!0)}_getEvalContext(){return{user:this._getUserContext(),global:this._getGlobalContext(),stack:{evaluatedFeatures:new Set}}}_getUserContext(){return{attributes:this._options.user?{...this._options.user,...this._options.attributes}:this._options.attributes,enableDevMode:this._options.enableDevMode,blockedChangeIds:this._options.blockedChangeIds,stickyBucketAssignmentDocs:this._options.stickyBucketAssignmentDocs,url:this._getContextUrl(),forcedVariations:this._options.forcedVariations,forcedFeatureValues:this._options.forcedFeatureValues,attributeOverrides:this._options.attributeOverrides,saveStickyBucketAssignmentDoc:this._saveStickyBucketAssignmentDoc,trackingCallback:this._options.trackingCallback,onFeatureUsage:this._options.onFeatureUsage,devLogs:this.logs,trackedExperiments:this._trackedExperiments,trackedFeatureUsage:this._trackedFeatures}}_getGlobalContext(){return{features:this._options.features,experiments:this._options.experiments,log:this.log,enabled:this._options.enabled,qaMode:this._options.qaMode,savedGroups:this._options.savedGroups,groups:this._options.groups,overrides:this._options.overrides,onExperimentEval:this._onExperimentEval,recordChangeId:this._recordChangedId,saveDeferredTrack:this._saveDeferredTrack,eventLogger:this._options.eventLogger}}_runAutoExperiment(experiment,forceRerun){let existing=this._activeAutoExperiments.get(experiment);if(experiment.manual&&!this._triggeredExpKeys.has(experiment.key)&&!existing)return null;let isBlocked=this._isAutoExperimentBlockedByContext(experiment);isBlocked&&process.env.NODE_ENV!=="production"&&this.log("Auto experiment blocked",{id:experiment.key});let result2,trackingCall;isBlocked?result2=getExperimentResult(this._getEvalContext(),experiment,-1,!1,""):({result:result2,trackingCall}=runExperiment(experiment,null,this._getEvalContext()),this._onExperimentEval(experiment,result2));let valueHash=JSON.stringify(result2.value);if(!forceRerun&&result2.inExperiment&&existing&&existing.valueHash===valueHash)return result2;if(existing&&this._undoActiveAutoExperiment(experiment),result2.inExperiment){let changeType=getAutoExperimentChangeType(experiment);if(changeType==="redirect"&&result2.value.urlRedirect&&experiment.urlPatterns){let url3=experiment.persistQueryString?mergeQueryStrings(this._getContextUrl(),result2.value.urlRedirect):result2.value.urlRedirect;if(isURLTargeted(url3,experiment.urlPatterns))return this.log("Skipping redirect because original URL matches redirect URL",{id:experiment.key}),result2;this._redirectedUrl=url3;let{navigate,delay:delay2}=this._getNavigateFunction();if(navigate)if(isBrowser)Promise.all([...trackingCall?[promiseTimeout(trackingCall,this._options.maxNavigateDelay??1e3)]:[],new Promise(resolve9=>window.setTimeout(resolve9,this._options.navigateDelay??delay2))]).then(()=>{try{navigate(url3)}catch(e2){console.error(e2)}});else try{navigate(url3)}catch(e2){console.error(e2)}}else if(changeType==="visual"){let undo=this._options.applyDomChangesCallback?this._options.applyDomChangesCallback(result2.value):this._applyDOMChanges(result2.value);undo&&this._activeAutoExperiments.set(experiment,{undo,valueHash})}}return result2}_undoActiveAutoExperiment(exp){let data=this._activeAutoExperiments.get(exp);data&&(data.undo(),this._activeAutoExperiments.delete(exp))}_updateAllAutoExperiments(forceRerun){if(!this._autoExperimentsAllowed)return;let experiments=this._options.experiments||[],keys2=new Set(experiments);this._activeAutoExperiments.forEach((v,k)=>{keys2.has(k)||(v.undo(),this._activeAutoExperiments.delete(k))});for(let exp of experiments){let result2=this._runAutoExperiment(exp,forceRerun);if(result2&&result2.inExperiment&&getAutoExperimentChangeType(exp)==="redirect")break}}_onExperimentEval(experiment,result2){let prev=this._assigned.get(experiment.key);this._assigned.set(experiment.key,{experiment,result:result2}),this._subscriptions.size>0&&this._fireSubscriptions(experiment,result2,prev)}_fireSubscriptions(experiment,result2,prev){(!prev||prev.result.inExperiment!==result2.inExperiment||prev.result.variationId!==result2.variationId)&&this._subscriptions.forEach(cb=>{try{cb(experiment,result2)}catch(e2){console.error(e2)}})}_recordChangedId(id){this._completedChangeIds.add(id)}isOn(key){return this.evalFeature(key).on}isOff(key){return this.evalFeature(key).off}getFeatureValue(key,defaultValue){let value=this.evalFeature(key).value;return value===null?defaultValue:value}feature(id){return this.evalFeature(id)}evalFeature(id){return evalFeature(id,this._getEvalContext())}log(msg,ctx){this.debug&&(this._options.log?this._options.log(msg,ctx):console.log(msg,ctx))}getDeferredTrackingCalls(){return Array.from(this._deferredTrackingCalls.values())}setDeferredTrackingCalls(calls){this._deferredTrackingCalls=new Map(calls.filter(c3=>c3&&c3.experiment&&c3.result).map(c3=>[getExperimentDedupeKey(c3.experiment,c3.result),c3]))}async fireDeferredTrackingCalls(){if(!this._options.trackingCallback)return;let promises=[];this._deferredTrackingCalls.forEach(call=>{!call||!call.experiment||!call.result?console.error("Invalid deferred tracking call",{call}):promises.push(this._options.trackingCallback(call.experiment,call.result))}),this._deferredTrackingCalls.clear(),await Promise.all(promises)}setTrackingCallback(callback){this._options.trackingCallback=callback,this.fireDeferredTrackingCalls()}setFeatureUsageCallback(callback){this._options.onFeatureUsage=callback}setEventLogger(logger){this._options.eventLogger=logger}async logEvent(eventName,properties){if(this._destroyed){console.error("Cannot log event to destroyed GrowthBook instance");return}if(this._options.enableDevMode&&this.logs.push({eventName,properties,timestamp:Date.now().toString(),logType:"event"}),this._options.eventLogger)try{await this._options.eventLogger(eventName,properties||{},this._getUserContext())}catch(e2){console.error(e2)}else console.error("No event logger configured")}_saveDeferredTrack(data){this._deferredTrackingCalls.set(getExperimentDedupeKey(data.experiment,data.result),data)}_getContextUrl(){return this._options.url||(isBrowser?window.location.href:"")}_isAutoExperimentBlockedByContext(experiment){let changeType=getAutoExperimentChangeType(experiment);if(changeType==="visual"){if(this._options.disableVisualExperiments||this._options.disableJsInjection&&experiment.variations.some(v=>v.js))return!0}else if(changeType==="redirect"){if(this._options.disableUrlRedirectExperiments)return!0;try{let current=new URL(this._getContextUrl());for(let v of experiment.variations){if(!v||!v.urlRedirect)continue;let url3=new URL(v.urlRedirect);if(this._options.disableCrossOriginUrlRedirectExperiments&&(url3.protocol!==current.protocol||url3.host!==current.host))return!0}}catch(e2){return this.log("Error parsing current or redirect URL",{id:experiment.key,error:e2}),!0}}else return!0;return!!(experiment.changeId&&(this._options.blockedChangeIds||[]).includes(experiment.changeId))}getRedirectUrl(){return this._redirectedUrl}_getNavigateFunction(){return this._options.navigate?{navigate:this._options.navigate,delay:0}:isBrowser?{navigate:__name(url3=>{window.location.replace(url3)},"navigate"),delay:100}:{navigate:null,delay:0}}_applyDOMChanges(changes){if(!isBrowser)return;let undo=[];if(changes.css){let s2=document.createElement("style");s2.innerHTML=changes.css,document.head.appendChild(s2),undo.push(()=>s2.remove())}if(changes.js){let script=document.createElement("script");script.innerHTML=changes.js,this._options.jsInjectionNonce&&(script.nonce=this._options.jsInjectionNonce),document.head.appendChild(script),undo.push(()=>script.remove())}return changes.domMutations&&changes.domMutations.forEach(mutation=>{undo.push(import_dom_mutator.default.declarative(mutation).revert)}),()=>{undo.forEach(fn=>fn())}}async refreshStickyBuckets(data){if(this._options.stickyBucketService){let ctx=this._getEvalContext(),docs=await getAllStickyBucketAssignmentDocs(ctx,this._options.stickyBucketService,data);this._options.stickyBucketAssignmentDocs=docs}}generateStickyBucketAssignmentDocsSync(stickyBucketService,payload){if(!("getAllAssignmentsSync"in stickyBucketService)){console.error("generating StickyBucketAssignmentDocs docs requires StickyBucketServiceSync");return}let ctx=this._getEvalContext(),attributes=getStickyBucketAttributes(ctx,payload);return stickyBucketService.getAllAssignmentsSync(attributes)}inDevMode(){return!!this._options.enableDevMode}}}});var SDK_VERSION2,init_GrowthBookClient=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/GrowthBookClient.mjs"(){init_util();init_feature_repository();init_core();SDK_VERSION2=loadSDKVersion()}});var init_sticky_bucket_service=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/sticky-bucket-service.mjs"(){init_util();init_core()}});var init_esm=__esm({"../../node_modules/@growthbook/growthbook/dist/esm/index.mjs"(){init_feature_repository();init_GrowthBook();init_GrowthBookClient();init_sticky_bucket_service();init_mongrule();init_util();init_core()}});function baseToNumber(value){return typeof value=="number"?value:isSymbol_default(value)?NAN:+value}var NAN,baseToNumber_default,init_baseToNumber=__esm({"../../node_modules/lodash-es/_baseToNumber.js"(){init_isSymbol();NAN=NaN;__name(baseToNumber,"baseToNumber");baseToNumber_default=baseToNumber}});function createMathOperation(operator,defaultValue){return function(value,other){var result2;if(value===void 0&&other===void 0)return defaultValue;if(value!==void 0&&(result2=value),other!==void 0){if(result2===void 0)return other;typeof value=="string"||typeof other=="string"?(value=baseToString_default(value),other=baseToString_default(other)):(value=baseToNumber_default(value),other=baseToNumber_default(other)),result2=operator(value,other)}return result2}}var createMathOperation_default,init_createMathOperation=__esm({"../../node_modules/lodash-es/_createMathOperation.js"(){init_baseToNumber();init_baseToString();__name(createMathOperation,"createMathOperation");createMathOperation_default=createMathOperation}});var add,add_default,init_add=__esm({"../../node_modules/lodash-es/add.js"(){init_createMathOperation();add=createMathOperation_default(function(augend,addend){return augend+addend},0),add_default=add}});function trimmedEndIndex(string4){for(var index=string4.length;index--&&reWhitespace.test(string4.charAt(index)););return index}var reWhitespace,trimmedEndIndex_default,init_trimmedEndIndex=__esm({"../../node_modules/lodash-es/_trimmedEndIndex.js"(){reWhitespace=/\s/;__name(trimmedEndIndex,"trimmedEndIndex");trimmedEndIndex_default=trimmedEndIndex}});function baseTrim(string4){return string4&&string4.slice(0,trimmedEndIndex_default(string4)+1).replace(reTrimStart,"")}var reTrimStart,baseTrim_default,init_baseTrim=__esm({"../../node_modules/lodash-es/_baseTrim.js"(){init_trimmedEndIndex();reTrimStart=/^\s+/;__name(baseTrim,"baseTrim");baseTrim_default=baseTrim}});function toNumber(value){if(typeof value=="number")return value;if(isSymbol_default(value))return NAN2;if(isObject_default(value)){var other=typeof value.valueOf=="function"?value.valueOf():value;value=isObject_default(other)?other+"":other}if(typeof value!="string")return value===0?value:+value;value=baseTrim_default(value);var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN2:+value}var NAN2,reIsBadHex,reIsBinary,reIsOctal,freeParseInt,toNumber_default,init_toNumber=__esm({"../../node_modules/lodash-es/toNumber.js"(){init_baseTrim();init_isObject();init_isSymbol();NAN2=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;__name(toNumber,"toNumber");toNumber_default=toNumber}});function toFinite(value){if(!value)return value===0?value:0;if(value=toNumber_default(value),value===INFINITY3||value===-INFINITY3){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}var INFINITY3,MAX_INTEGER,toFinite_default,init_toFinite=__esm({"../../node_modules/lodash-es/toFinite.js"(){init_toNumber();INFINITY3=1/0,MAX_INTEGER=17976931348623157e292;__name(toFinite,"toFinite");toFinite_default=toFinite}});function toInteger(value){var result2=toFinite_default(value),remainder=result2%1;return result2===result2?remainder?result2-remainder:result2:0}var toInteger_default,init_toInteger=__esm({"../../node_modules/lodash-es/toInteger.js"(){init_toFinite();__name(toInteger,"toInteger");toInteger_default=toInteger}});function after(n2,func){if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT2);return n2=toInteger_default(n2),function(){if(--n2<1)return func.apply(this,arguments)}}var FUNC_ERROR_TEXT2,after_default,init_after=__esm({"../../node_modules/lodash-es/after.js"(){init_toInteger();FUNC_ERROR_TEXT2="Expected a function";__name(after,"after");after_default=after}});var metaMap,metaMap_default,init_metaMap=__esm({"../../node_modules/lodash-es/_metaMap.js"(){init_WeakMap();metaMap=WeakMap_default&&new WeakMap_default,metaMap_default=metaMap}});var baseSetData,baseSetData_default,init_baseSetData=__esm({"../../node_modules/lodash-es/_baseSetData.js"(){init_identity();init_metaMap();baseSetData=metaMap_default?function(func,data){return metaMap_default.set(func,data),func}:identity_default,baseSetData_default=baseSetData}});var objectCreate,baseCreate,baseCreate_default,init_baseCreate=__esm({"../../node_modules/lodash-es/_baseCreate.js"(){init_isObject();objectCreate=Object.create,baseCreate=(function(){function object2(){}return __name(object2,"object"),function(proto2){if(!isObject_default(proto2))return{};if(objectCreate)return objectCreate(proto2);object2.prototype=proto2;var result2=new object2;return object2.prototype=void 0,result2}})(),baseCreate_default=baseCreate}});function createCtor(Ctor){return function(){var args=arguments;switch(args.length){case 0:return new Ctor;case 1:return new Ctor(args[0]);case 2:return new Ctor(args[0],args[1]);case 3:return new Ctor(args[0],args[1],args[2]);case 4:return new Ctor(args[0],args[1],args[2],args[3]);case 5:return new Ctor(args[0],args[1],args[2],args[3],args[4]);case 6:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5],args[6])}var thisBinding=baseCreate_default(Ctor.prototype),result2=Ctor.apply(thisBinding,args);return isObject_default(result2)?result2:thisBinding}}var createCtor_default,init_createCtor=__esm({"../../node_modules/lodash-es/_createCtor.js"(){init_baseCreate();init_isObject();__name(createCtor,"createCtor");createCtor_default=createCtor}});function createBind(func,bitmask,thisArg){var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor_default(func);function wrapper(){var fn=this&&this!==root_default&&this instanceof wrapper?Ctor:func;return fn.apply(isBind?thisArg:this,arguments)}return __name(wrapper,"wrapper"),wrapper}var WRAP_BIND_FLAG,createBind_default,init_createBind=__esm({"../../node_modules/lodash-es/_createBind.js"(){init_createCtor();init_root();WRAP_BIND_FLAG=1;__name(createBind,"createBind");createBind_default=createBind}});function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}var apply_default,init_apply=__esm({"../../node_modules/lodash-es/_apply.js"(){__name(apply,"apply");apply_default=apply}});function composeArgs(args,partials,holders,isCurried){for(var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result2=Array(leftLength+rangeLength),isUncurried=!isCurried;++leftIndex<leftLength;)result2[leftIndex]=partials[leftIndex];for(;++argsIndex<holdersLength;)(isUncurried||argsIndex<argsLength)&&(result2[holders[argsIndex]]=args[argsIndex]);for(;rangeLength--;)result2[leftIndex++]=args[argsIndex++];return result2}var nativeMax,composeArgs_default,init_composeArgs=__esm({"../../node_modules/lodash-es/_composeArgs.js"(){nativeMax=Math.max;__name(composeArgs,"composeArgs");composeArgs_default=composeArgs}});function composeArgsRight(args,partials,holders,isCurried){for(var argsIndex=-1,argsLength=args.length,holdersIndex=-1,holdersLength=holders.length,rightIndex=-1,rightLength=partials.length,rangeLength=nativeMax2(argsLength-holdersLength,0),result2=Array(rangeLength+rightLength),isUncurried=!isCurried;++argsIndex<rangeLength;)result2[argsIndex]=args[argsIndex];for(var offset=argsIndex;++rightIndex<rightLength;)result2[offset+rightIndex]=partials[rightIndex];for(;++holdersIndex<holdersLength;)(isUncurried||argsIndex<argsLength)&&(result2[offset+holders[holdersIndex]]=args[argsIndex++]);return result2}var nativeMax2,composeArgsRight_default,init_composeArgsRight=__esm({"../../node_modules/lodash-es/_composeArgsRight.js"(){nativeMax2=Math.max;__name(composeArgsRight,"composeArgsRight");composeArgsRight_default=composeArgsRight}});function countHolders(array2,placeholder){for(var length=array2.length,result2=0;length--;)array2[length]===placeholder&&++result2;return result2}var countHolders_default,init_countHolders=__esm({"../../node_modules/lodash-es/_countHolders.js"(){__name(countHolders,"countHolders");countHolders_default=countHolders}});function baseLodash(){}var baseLodash_default,init_baseLodash=__esm({"../../node_modules/lodash-es/_baseLodash.js"(){__name(baseLodash,"baseLodash");baseLodash_default=baseLodash}});function LazyWrapper(value){this.__wrapped__=value,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=MAX_ARRAY_LENGTH,this.__views__=[]}var MAX_ARRAY_LENGTH,LazyWrapper_default,init_LazyWrapper=__esm({"../../node_modules/lodash-es/_LazyWrapper.js"(){init_baseCreate();init_baseLodash();MAX_ARRAY_LENGTH=4294967295;__name(LazyWrapper,"LazyWrapper");LazyWrapper.prototype=baseCreate_default(baseLodash_default.prototype);LazyWrapper.prototype.constructor=LazyWrapper;LazyWrapper_default=LazyWrapper}});function noop(){}var noop_default,init_noop=__esm({"../../node_modules/lodash-es/noop.js"(){__name(noop,"noop");noop_default=noop}});var getData,getData_default,init_getData=__esm({"../../node_modules/lodash-es/_getData.js"(){init_metaMap();init_noop();getData=metaMap_default?function(func){return metaMap_default.get(func)}:noop_default,getData_default=getData}});var realNames,realNames_default,init_realNames=__esm({"../../node_modules/lodash-es/_realNames.js"(){realNames={},realNames_default=realNames}});function getFuncName(func){for(var result2=func.name+"",array2=realNames_default[result2],length=hasOwnProperty12.call(realNames_default,result2)?array2.length:0;length--;){var data=array2[length],otherFunc=data.func;if(otherFunc==null||otherFunc==func)return data.name}return result2}var objectProto15,hasOwnProperty12,getFuncName_default,init_getFuncName=__esm({"../../node_modules/lodash-es/_getFuncName.js"(){init_realNames();objectProto15=Object.prototype,hasOwnProperty12=objectProto15.hasOwnProperty;__name(getFuncName,"getFuncName");getFuncName_default=getFuncName}});function LodashWrapper(value,chainAll){this.__wrapped__=value,this.__actions__=[],this.__chain__=!!chainAll,this.__index__=0,this.__values__=void 0}var LodashWrapper_default,init_LodashWrapper=__esm({"../../node_modules/lodash-es/_LodashWrapper.js"(){init_baseCreate();init_baseLodash();__name(LodashWrapper,"LodashWrapper");LodashWrapper.prototype=baseCreate_default(baseLodash_default.prototype);LodashWrapper.prototype.constructor=LodashWrapper;LodashWrapper_default=LodashWrapper}});function copyArray(source,array2){var index=-1,length=source.length;for(array2||(array2=Array(length));++index<length;)array2[index]=source[index];return array2}var copyArray_default,init_copyArray=__esm({"../../node_modules/lodash-es/_copyArray.js"(){__name(copyArray,"copyArray");copyArray_default=copyArray}});function wrapperClone(wrapper){if(wrapper instanceof LazyWrapper_default)return wrapper.clone();var result2=new LodashWrapper_default(wrapper.__wrapped__,wrapper.__chain__);return result2.__actions__=copyArray_default(wrapper.__actions__),result2.__index__=wrapper.__index__,result2.__values__=wrapper.__values__,result2}var wrapperClone_default,init_wrapperClone=__esm({"../../node_modules/lodash-es/_wrapperClone.js"(){init_LazyWrapper();init_LodashWrapper();init_copyArray();__name(wrapperClone,"wrapperClone");wrapperClone_default=wrapperClone}});function lodash(value){if(isObjectLike_default(value)&&!isArray_default(value)&&!(value instanceof LazyWrapper_default)){if(value instanceof LodashWrapper_default)return value;if(hasOwnProperty13.call(value,"__wrapped__"))return wrapperClone_default(value)}return new LodashWrapper_default(value)}var objectProto16,hasOwnProperty13,wrapperLodash_default,init_wrapperLodash=__esm({"../../node_modules/lodash-es/wrapperLodash.js"(){init_LazyWrapper();init_LodashWrapper();init_baseLodash();init_isArray();init_isObjectLike();init_wrapperClone();objectProto16=Object.prototype,hasOwnProperty13=objectProto16.hasOwnProperty;__name(lodash,"lodash");lodash.prototype=baseLodash_default.prototype;lodash.prototype.constructor=lodash;wrapperLodash_default=lodash}});function isLaziable(func){var funcName=getFuncName_default(func),other=wrapperLodash_default[funcName];if(typeof other!="function"||!(funcName in LazyWrapper_default.prototype))return!1;if(func===other)return!0;var data=getData_default(other);return!!data&&func===data[0]}var isLaziable_default,init_isLaziable=__esm({"../../node_modules/lodash-es/_isLaziable.js"(){init_LazyWrapper();init_getData();init_getFuncName();init_wrapperLodash();__name(isLaziable,"isLaziable");isLaziable_default=isLaziable}});function shortOut(func){var count3=0,lastCalled=0;return function(){var stamp2=nativeNow(),remaining=HOT_SPAN-(stamp2-lastCalled);if(lastCalled=stamp2,remaining>0){if(++count3>=HOT_COUNT)return arguments[0]}else count3=0;return func.apply(void 0,arguments)}}var HOT_COUNT,HOT_SPAN,nativeNow,shortOut_default,init_shortOut=__esm({"../../node_modules/lodash-es/_shortOut.js"(){HOT_COUNT=800,HOT_SPAN=16,nativeNow=Date.now;__name(shortOut,"shortOut");shortOut_default=shortOut}});var setData,setData_default,init_setData=__esm({"../../node_modules/lodash-es/_setData.js"(){init_baseSetData();init_shortOut();setData=shortOut_default(baseSetData_default),setData_default=setData}});function getWrapDetails(source){var match=source.match(reWrapDetails);return match?match[1].split(reSplitDetails):[]}var reWrapDetails,reSplitDetails,getWrapDetails_default,init_getWrapDetails=__esm({"../../node_modules/lodash-es/_getWrapDetails.js"(){reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /;__name(getWrapDetails,"getWrapDetails");getWrapDetails_default=getWrapDetails}});function insertWrapDetails(source,details){var length=details.length;if(!length)return source;var lastIndex=length-1;return details[lastIndex]=(length>1?"& ":"")+details[lastIndex],details=details.join(length>2?", ":" "),source.replace(reWrapComment,`{
5
5
  /* [wrapped with `+details+`] */
6
6
  `)}var reWrapComment,insertWrapDetails_default,init_insertWrapDetails=__esm({"../../node_modules/lodash-es/_insertWrapDetails.js"(){reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;__name(insertWrapDetails,"insertWrapDetails");insertWrapDetails_default=insertWrapDetails}});function constant(value){return function(){return value}}var constant_default,init_constant=__esm({"../../node_modules/lodash-es/constant.js"(){__name(constant,"constant");constant_default=constant}});var baseSetToString,baseSetToString_default,init_baseSetToString=__esm({"../../node_modules/lodash-es/_baseSetToString.js"(){init_constant();init_defineProperty();init_identity();baseSetToString=defineProperty_default?function(func,string4){return defineProperty_default(func,"toString",{configurable:!0,enumerable:!1,value:constant_default(string4),writable:!0})}:identity_default,baseSetToString_default=baseSetToString}});var setToString,setToString_default,init_setToString=__esm({"../../node_modules/lodash-es/_setToString.js"(){init_baseSetToString();init_shortOut();setToString=shortOut_default(baseSetToString_default),setToString_default=setToString}});function arrayEach(array2,iteratee2){for(var index=-1,length=array2==null?0:array2.length;++index<length&&iteratee2(array2[index],index,array2)!==!1;);return array2}var arrayEach_default,init_arrayEach=__esm({"../../node_modules/lodash-es/_arrayEach.js"(){__name(arrayEach,"arrayEach");arrayEach_default=arrayEach}});function baseFindIndex(array2,predicate,fromIndex,fromRight){for(var length=array2.length,index=fromIndex+(fromRight?1:-1);fromRight?index--:++index<length;)if(predicate(array2[index],index,array2))return index;return-1}var baseFindIndex_default,init_baseFindIndex=__esm({"../../node_modules/lodash-es/_baseFindIndex.js"(){__name(baseFindIndex,"baseFindIndex");baseFindIndex_default=baseFindIndex}});function baseIsNaN(value){return value!==value}var baseIsNaN_default,init_baseIsNaN=__esm({"../../node_modules/lodash-es/_baseIsNaN.js"(){__name(baseIsNaN,"baseIsNaN");baseIsNaN_default=baseIsNaN}});function strictIndexOf(array2,value,fromIndex){for(var index=fromIndex-1,length=array2.length;++index<length;)if(array2[index]===value)return index;return-1}var strictIndexOf_default,init_strictIndexOf=__esm({"../../node_modules/lodash-es/_strictIndexOf.js"(){__name(strictIndexOf,"strictIndexOf");strictIndexOf_default=strictIndexOf}});function baseIndexOf(array2,value,fromIndex){return value===value?strictIndexOf_default(array2,value,fromIndex):baseFindIndex_default(array2,baseIsNaN_default,fromIndex)}var baseIndexOf_default,init_baseIndexOf=__esm({"../../node_modules/lodash-es/_baseIndexOf.js"(){init_baseFindIndex();init_baseIsNaN();init_strictIndexOf();__name(baseIndexOf,"baseIndexOf");baseIndexOf_default=baseIndexOf}});function arrayIncludes(array2,value){var length=array2==null?0:array2.length;return!!length&&baseIndexOf_default(array2,value,0)>-1}var arrayIncludes_default,init_arrayIncludes=__esm({"../../node_modules/lodash-es/_arrayIncludes.js"(){init_baseIndexOf();__name(arrayIncludes,"arrayIncludes");arrayIncludes_default=arrayIncludes}});function updateWrapDetails(details,bitmask){return arrayEach_default(wrapFlags,function(pair){var value="_."+pair[0];bitmask&pair[1]&&!arrayIncludes_default(details,value)&&details.push(value)}),details.sort()}var WRAP_BIND_FLAG2,WRAP_BIND_KEY_FLAG,WRAP_CURRY_FLAG,WRAP_CURRY_RIGHT_FLAG,WRAP_PARTIAL_FLAG,WRAP_PARTIAL_RIGHT_FLAG,WRAP_ARY_FLAG,WRAP_REARG_FLAG,WRAP_FLIP_FLAG,wrapFlags,updateWrapDetails_default,init_updateWrapDetails=__esm({"../../node_modules/lodash-es/_updateWrapDetails.js"(){init_arrayEach();init_arrayIncludes();WRAP_BIND_FLAG2=1,WRAP_BIND_KEY_FLAG=2,WRAP_CURRY_FLAG=8,WRAP_CURRY_RIGHT_FLAG=16,WRAP_PARTIAL_FLAG=32,WRAP_PARTIAL_RIGHT_FLAG=64,WRAP_ARY_FLAG=128,WRAP_REARG_FLAG=256,WRAP_FLIP_FLAG=512,wrapFlags=[["ary",WRAP_ARY_FLAG],["bind",WRAP_BIND_FLAG2],["bindKey",WRAP_BIND_KEY_FLAG],["curry",WRAP_CURRY_FLAG],["curryRight",WRAP_CURRY_RIGHT_FLAG],["flip",WRAP_FLIP_FLAG],["partial",WRAP_PARTIAL_FLAG],["partialRight",WRAP_PARTIAL_RIGHT_FLAG],["rearg",WRAP_REARG_FLAG]];__name(updateWrapDetails,"updateWrapDetails");updateWrapDetails_default=updateWrapDetails}});function setWrapToString(wrapper,reference,bitmask){var source=reference+"";return setToString_default(wrapper,insertWrapDetails_default(source,updateWrapDetails_default(getWrapDetails_default(source),bitmask)))}var setWrapToString_default,init_setWrapToString=__esm({"../../node_modules/lodash-es/_setWrapToString.js"(){init_getWrapDetails();init_insertWrapDetails();init_setToString();init_updateWrapDetails();__name(setWrapToString,"setWrapToString");setWrapToString_default=setWrapToString}});function createRecurry(func,bitmask,wrapFunc,placeholder,thisArg,partials,holders,argPos,ary2,arity){var isCurry=bitmask&WRAP_CURRY_FLAG2,newHolders=isCurry?holders:void 0,newHoldersRight=isCurry?void 0:holders,newPartials=isCurry?partials:void 0,newPartialsRight=isCurry?void 0:partials;bitmask|=isCurry?WRAP_PARTIAL_FLAG2:WRAP_PARTIAL_RIGHT_FLAG2,bitmask&=~(isCurry?WRAP_PARTIAL_RIGHT_FLAG2:WRAP_PARTIAL_FLAG2),bitmask&WRAP_CURRY_BOUND_FLAG||(bitmask&=~(WRAP_BIND_FLAG3|WRAP_BIND_KEY_FLAG2));var newData=[func,bitmask,thisArg,newPartials,newHolders,newPartialsRight,newHoldersRight,argPos,ary2,arity],result2=wrapFunc.apply(void 0,newData);return isLaziable_default(func)&&setData_default(result2,newData),result2.placeholder=placeholder,setWrapToString_default(result2,func,bitmask)}var WRAP_BIND_FLAG3,WRAP_BIND_KEY_FLAG2,WRAP_CURRY_BOUND_FLAG,WRAP_CURRY_FLAG2,WRAP_PARTIAL_FLAG2,WRAP_PARTIAL_RIGHT_FLAG2,createRecurry_default,init_createRecurry=__esm({"../../node_modules/lodash-es/_createRecurry.js"(){init_isLaziable();init_setData();init_setWrapToString();WRAP_BIND_FLAG3=1,WRAP_BIND_KEY_FLAG2=2,WRAP_CURRY_BOUND_FLAG=4,WRAP_CURRY_FLAG2=8,WRAP_PARTIAL_FLAG2=32,WRAP_PARTIAL_RIGHT_FLAG2=64;__name(createRecurry,"createRecurry");createRecurry_default=createRecurry}});function getHolder(func){var object2=func;return object2.placeholder}var getHolder_default,init_getHolder=__esm({"../../node_modules/lodash-es/_getHolder.js"(){__name(getHolder,"getHolder");getHolder_default=getHolder}});function reorder(array2,indexes){for(var arrLength=array2.length,length=nativeMin(indexes.length,arrLength),oldArray=copyArray_default(array2);length--;){var index=indexes[length];array2[length]=isIndex_default(index,arrLength)?oldArray[index]:void 0}return array2}var nativeMin,reorder_default,init_reorder=__esm({"../../node_modules/lodash-es/_reorder.js"(){init_copyArray();init_isIndex();nativeMin=Math.min;__name(reorder,"reorder");reorder_default=reorder}});function replaceHolders(array2,placeholder){for(var index=-1,length=array2.length,resIndex=0,result2=[];++index<length;){var value=array2[index];(value===placeholder||value===PLACEHOLDER)&&(array2[index]=PLACEHOLDER,result2[resIndex++]=index)}return result2}var PLACEHOLDER,replaceHolders_default,init_replaceHolders=__esm({"../../node_modules/lodash-es/_replaceHolders.js"(){PLACEHOLDER="__lodash_placeholder__";__name(replaceHolders,"replaceHolders");replaceHolders_default=replaceHolders}});function createHybrid(func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary2,arity){var isAry=bitmask&WRAP_ARY_FLAG2,isBind=bitmask&WRAP_BIND_FLAG4,isBindKey=bitmask&WRAP_BIND_KEY_FLAG3,isCurried=bitmask&(WRAP_CURRY_FLAG3|WRAP_CURRY_RIGHT_FLAG2),isFlip=bitmask&WRAP_FLIP_FLAG2,Ctor=isBindKey?void 0:createCtor_default(func);function wrapper(){for(var length=arguments.length,args=Array(length),index=length;index--;)args[index]=arguments[index];if(isCurried)var placeholder=getHolder_default(wrapper),holdersCount=countHolders_default(args,placeholder);if(partials&&(args=composeArgs_default(args,partials,holders,isCurried)),partialsRight&&(args=composeArgsRight_default(args,partialsRight,holdersRight,isCurried)),length-=holdersCount,isCurried&&length<arity){var newHolders=replaceHolders_default(args,placeholder);return createRecurry_default(func,bitmask,createHybrid,wrapper.placeholder,thisArg,args,newHolders,argPos,ary2,arity-length)}var thisBinding=isBind?thisArg:this,fn=isBindKey?thisBinding[func]:func;return length=args.length,argPos?args=reorder_default(args,argPos):isFlip&&length>1&&args.reverse(),isAry&&ary2<length&&(args.length=ary2),this&&this!==root_default&&this instanceof wrapper&&(fn=Ctor||createCtor_default(fn)),fn.apply(thisBinding,args)}return __name(wrapper,"wrapper"),wrapper}var WRAP_BIND_FLAG4,WRAP_BIND_KEY_FLAG3,WRAP_CURRY_FLAG3,WRAP_CURRY_RIGHT_FLAG2,WRAP_ARY_FLAG2,WRAP_FLIP_FLAG2,createHybrid_default,init_createHybrid=__esm({"../../node_modules/lodash-es/_createHybrid.js"(){init_composeArgs();init_composeArgsRight();init_countHolders();init_createCtor();init_createRecurry();init_getHolder();init_reorder();init_replaceHolders();init_root();WRAP_BIND_FLAG4=1,WRAP_BIND_KEY_FLAG3=2,WRAP_CURRY_FLAG3=8,WRAP_CURRY_RIGHT_FLAG2=16,WRAP_ARY_FLAG2=128,WRAP_FLIP_FLAG2=512;__name(createHybrid,"createHybrid");createHybrid_default=createHybrid}});function createCurry(func,bitmask,arity){var Ctor=createCtor_default(func);function wrapper(){for(var length=arguments.length,args=Array(length),index=length,placeholder=getHolder_default(wrapper);index--;)args[index]=arguments[index];var holders=length<3&&args[0]!==placeholder&&args[length-1]!==placeholder?[]:replaceHolders_default(args,placeholder);if(length-=holders.length,length<arity)return createRecurry_default(func,bitmask,createHybrid_default,wrapper.placeholder,void 0,args,holders,void 0,void 0,arity-length);var fn=this&&this!==root_default&&this instanceof wrapper?Ctor:func;return apply_default(fn,this,args)}return __name(wrapper,"wrapper"),wrapper}var createCurry_default,init_createCurry=__esm({"../../node_modules/lodash-es/_createCurry.js"(){init_apply();init_createCtor();init_createHybrid();init_createRecurry();init_getHolder();init_replaceHolders();init_root();__name(createCurry,"createCurry");createCurry_default=createCurry}});function createPartial(func,bitmask,thisArg,partials){var isBind=bitmask&WRAP_BIND_FLAG5,Ctor=createCtor_default(func);function wrapper(){for(var argsIndex=-1,argsLength=arguments.length,leftIndex=-1,leftLength=partials.length,args=Array(leftLength+argsLength),fn=this&&this!==root_default&&this instanceof wrapper?Ctor:func;++leftIndex<leftLength;)args[leftIndex]=partials[leftIndex];for(;argsLength--;)args[leftIndex++]=arguments[++argsIndex];return apply_default(fn,isBind?thisArg:this,args)}return __name(wrapper,"wrapper"),wrapper}var WRAP_BIND_FLAG5,createPartial_default,init_createPartial=__esm({"../../node_modules/lodash-es/_createPartial.js"(){init_apply();init_createCtor();init_root();WRAP_BIND_FLAG5=1;__name(createPartial,"createPartial");createPartial_default=createPartial}});function mergeData(data,source){var bitmask=data[1],srcBitmask=source[1],newBitmask=bitmask|srcBitmask,isCommon=newBitmask<(WRAP_BIND_FLAG6|WRAP_BIND_KEY_FLAG4|WRAP_ARY_FLAG3),isCombo=srcBitmask==WRAP_ARY_FLAG3&&bitmask==WRAP_CURRY_FLAG4||srcBitmask==WRAP_ARY_FLAG3&&bitmask==WRAP_REARG_FLAG2&&data[7].length<=source[8]||srcBitmask==(WRAP_ARY_FLAG3|WRAP_REARG_FLAG2)&&source[7].length<=source[8]&&bitmask==WRAP_CURRY_FLAG4;if(!(isCommon||isCombo))return data;srcBitmask&WRAP_BIND_FLAG6&&(data[2]=source[2],newBitmask|=bitmask&WRAP_BIND_FLAG6?0:WRAP_CURRY_BOUND_FLAG2);var value=source[3];if(value){var partials=data[3];data[3]=partials?composeArgs_default(partials,value,source[4]):value,data[4]=partials?replaceHolders_default(data[3],PLACEHOLDER2):source[4]}return value=source[5],value&&(partials=data[5],data[5]=partials?composeArgsRight_default(partials,value,source[6]):value,data[6]=partials?replaceHolders_default(data[5],PLACEHOLDER2):source[6]),value=source[7],value&&(data[7]=value),srcBitmask&WRAP_ARY_FLAG3&&(data[8]=data[8]==null?source[8]:nativeMin2(data[8],source[8])),data[9]==null&&(data[9]=source[9]),data[0]=source[0],data[1]=newBitmask,data}var PLACEHOLDER2,WRAP_BIND_FLAG6,WRAP_BIND_KEY_FLAG4,WRAP_CURRY_BOUND_FLAG2,WRAP_CURRY_FLAG4,WRAP_ARY_FLAG3,WRAP_REARG_FLAG2,nativeMin2,mergeData_default,init_mergeData=__esm({"../../node_modules/lodash-es/_mergeData.js"(){init_composeArgs();init_composeArgsRight();init_replaceHolders();PLACEHOLDER2="__lodash_placeholder__",WRAP_BIND_FLAG6=1,WRAP_BIND_KEY_FLAG4=2,WRAP_CURRY_BOUND_FLAG2=4,WRAP_CURRY_FLAG4=8,WRAP_ARY_FLAG3=128,WRAP_REARG_FLAG2=256,nativeMin2=Math.min;__name(mergeData,"mergeData");mergeData_default=mergeData}});function createWrap(func,bitmask,thisArg,partials,holders,argPos,ary2,arity){var isBindKey=bitmask&WRAP_BIND_KEY_FLAG5;if(!isBindKey&&typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT3);var length=partials?partials.length:0;if(length||(bitmask&=~(WRAP_PARTIAL_FLAG3|WRAP_PARTIAL_RIGHT_FLAG3),partials=holders=void 0),ary2=ary2===void 0?ary2:nativeMax3(toInteger_default(ary2),0),arity=arity===void 0?arity:toInteger_default(arity),length-=holders?holders.length:0,bitmask&WRAP_PARTIAL_RIGHT_FLAG3){var partialsRight=partials,holdersRight=holders;partials=holders=void 0}var data=isBindKey?void 0:getData_default(func),newData=[func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary2,arity];if(data&&mergeData_default(newData,data),func=newData[0],bitmask=newData[1],thisArg=newData[2],partials=newData[3],holders=newData[4],arity=newData[9]=newData[9]===void 0?isBindKey?0:func.length:nativeMax3(newData[9]-length,0),!arity&&bitmask&(WRAP_CURRY_FLAG5|WRAP_CURRY_RIGHT_FLAG3)&&(bitmask&=~(WRAP_CURRY_FLAG5|WRAP_CURRY_RIGHT_FLAG3)),!bitmask||bitmask==WRAP_BIND_FLAG7)var result2=createBind_default(func,bitmask,thisArg);else bitmask==WRAP_CURRY_FLAG5||bitmask==WRAP_CURRY_RIGHT_FLAG3?result2=createCurry_default(func,bitmask,arity):(bitmask==WRAP_PARTIAL_FLAG3||bitmask==(WRAP_BIND_FLAG7|WRAP_PARTIAL_FLAG3))&&!holders.length?result2=createPartial_default(func,bitmask,thisArg,partials):result2=createHybrid_default.apply(void 0,newData);var setter=data?baseSetData_default:setData_default;return setWrapToString_default(setter(result2,newData),func,bitmask)}var FUNC_ERROR_TEXT3,WRAP_BIND_FLAG7,WRAP_BIND_KEY_FLAG5,WRAP_CURRY_FLAG5,WRAP_CURRY_RIGHT_FLAG3,WRAP_PARTIAL_FLAG3,WRAP_PARTIAL_RIGHT_FLAG3,nativeMax3,createWrap_default,init_createWrap=__esm({"../../node_modules/lodash-es/_createWrap.js"(){init_baseSetData();init_createBind();init_createCurry();init_createHybrid();init_createPartial();init_getData();init_mergeData();init_setData();init_setWrapToString();init_toInteger();FUNC_ERROR_TEXT3="Expected a function",WRAP_BIND_FLAG7=1,WRAP_BIND_KEY_FLAG5=2,WRAP_CURRY_FLAG5=8,WRAP_CURRY_RIGHT_FLAG3=16,WRAP_PARTIAL_FLAG3=32,WRAP_PARTIAL_RIGHT_FLAG3=64,nativeMax3=Math.max;__name(createWrap,"createWrap");createWrap_default=createWrap}});function ary(func,n2,guard){return n2=guard?void 0:n2,n2=func&&n2==null?func.length:n2,createWrap_default(func,WRAP_ARY_FLAG4,void 0,void 0,void 0,void 0,n2)}var WRAP_ARY_FLAG4,ary_default,init_ary=__esm({"../../node_modules/lodash-es/ary.js"(){init_createWrap();WRAP_ARY_FLAG4=128;__name(ary,"ary");ary_default=ary}});function copyObject(source,props,object2,customizer){var isNew=!object2;object2||(object2={});for(var index=-1,length=props.length;++index<length;){var key=props[index],newValue=customizer?customizer(object2[key],source[key],key,object2,source):void 0;newValue===void 0&&(newValue=source[key]),isNew?baseAssignValue_default(object2,key,newValue):assignValue_default(object2,key,newValue)}return object2}var copyObject_default,init_copyObject=__esm({"../../node_modules/lodash-es/_copyObject.js"(){init_assignValue();init_baseAssignValue();__name(copyObject,"copyObject");copyObject_default=copyObject}});function overRest(func,start,transform3){return start=nativeMax4(start===void 0?func.length-1:start,0),function(){for(var args=arguments,index=-1,length=nativeMax4(args.length-start,0),array2=Array(length);++index<length;)array2[index]=args[start+index];index=-1;for(var otherArgs=Array(start+1);++index<start;)otherArgs[index]=args[index];return otherArgs[start]=transform3(array2),apply_default(func,this,otherArgs)}}var nativeMax4,overRest_default,init_overRest=__esm({"../../node_modules/lodash-es/_overRest.js"(){init_apply();nativeMax4=Math.max;__name(overRest,"overRest");overRest_default=overRest}});function baseRest(func,start){return setToString_default(overRest_default(func,start,identity_default),func+"")}var baseRest_default,init_baseRest=__esm({"../../node_modules/lodash-es/_baseRest.js"(){init_identity();init_overRest();init_setToString();__name(baseRest,"baseRest");baseRest_default=baseRest}});function isIterateeCall(value,index,object2){if(!isObject_default(object2))return!1;var type=typeof index;return(type=="number"?isArrayLike_default(object2)&&isIndex_default(index,object2.length):type=="string"&&index in object2)?eq_default(object2[index],value):!1}var isIterateeCall_default,init_isIterateeCall=__esm({"../../node_modules/lodash-es/_isIterateeCall.js"(){init_eq();init_isArrayLike();init_isIndex();init_isObject();__name(isIterateeCall,"isIterateeCall");isIterateeCall_default=isIterateeCall}});function createAssigner(assigner){return baseRest_default(function(object2,sources){var index=-1,length=sources.length,customizer=length>1?sources[length-1]:void 0,guard=length>2?sources[2]:void 0;for(customizer=assigner.length>3&&typeof customizer=="function"?(length--,customizer):void 0,guard&&isIterateeCall_default(sources[0],sources[1],guard)&&(customizer=length<3?void 0:customizer,length=1),object2=Object(object2);++index<length;){var source=sources[index];source&&assigner(object2,source,index,customizer)}return object2})}var createAssigner_default,init_createAssigner=__esm({"../../node_modules/lodash-es/_createAssigner.js"(){init_baseRest();init_isIterateeCall();__name(createAssigner,"createAssigner");createAssigner_default=createAssigner}});var objectProto17,hasOwnProperty14,assign,assign_default,init_assign=__esm({"../../node_modules/lodash-es/assign.js"(){init_assignValue();init_copyObject();init_createAssigner();init_isArrayLike();init_isPrototype();init_keys();objectProto17=Object.prototype,hasOwnProperty14=objectProto17.hasOwnProperty,assign=createAssigner_default(function(object2,source){if(isPrototype_default(source)||isArrayLike_default(source)){copyObject_default(source,keys_default(source),object2);return}for(var key in source)hasOwnProperty14.call(source,key)&&assignValue_default(object2,key,source[key])}),assign_default=assign}});var assignIn,assignIn_default,init_assignIn=__esm({"../../node_modules/lodash-es/assignIn.js"(){init_copyObject();init_createAssigner();init_keysIn();assignIn=createAssigner_default(function(object2,source){copyObject_default(source,keysIn_default(source),object2)}),assignIn_default=assignIn}});var assignInWith,assignInWith_default,init_assignInWith=__esm({"../../node_modules/lodash-es/assignInWith.js"(){init_copyObject();init_createAssigner();init_keysIn();assignInWith=createAssigner_default(function(object2,source,srcIndex,customizer){copyObject_default(source,keysIn_default(source),object2,customizer)}),assignInWith_default=assignInWith}});var assignWith,assignWith_default,init_assignWith=__esm({"../../node_modules/lodash-es/assignWith.js"(){init_copyObject();init_createAssigner();init_keys();assignWith=createAssigner_default(function(object2,source,srcIndex,customizer){copyObject_default(source,keys_default(source),object2,customizer)}),assignWith_default=assignWith}});function baseAt(object2,paths2){for(var index=-1,length=paths2.length,result2=Array(length),skip=object2==null;++index<length;)result2[index]=skip?void 0:get_default(object2,paths2[index]);return result2}var baseAt_default,init_baseAt=__esm({"../../node_modules/lodash-es/_baseAt.js"(){init_get();__name(baseAt,"baseAt");baseAt_default=baseAt}});function isFlattenable(value){return isArray_default(value)||isArguments_default(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol])}var spreadableSymbol,isFlattenable_default,init_isFlattenable=__esm({"../../node_modules/lodash-es/_isFlattenable.js"(){init_Symbol();init_isArguments();init_isArray();spreadableSymbol=Symbol_default?Symbol_default.isConcatSpreadable:void 0;__name(isFlattenable,"isFlattenable");isFlattenable_default=isFlattenable}});function baseFlatten(array2,depth,predicate,isStrict,result2){var index=-1,length=array2.length;for(predicate||(predicate=isFlattenable_default),result2||(result2=[]);++index<length;){var value=array2[index];depth>0&&predicate(value)?depth>1?baseFlatten(value,depth-1,predicate,isStrict,result2):arrayPush_default(result2,value):isStrict||(result2[result2.length]=value)}return result2}var baseFlatten_default,init_baseFlatten=__esm({"../../node_modules/lodash-es/_baseFlatten.js"(){init_arrayPush();init_isFlattenable();__name(baseFlatten,"baseFlatten");baseFlatten_default=baseFlatten}});function flatten(array2){var length=array2==null?0:array2.length;return length?baseFlatten_default(array2,1):[]}var flatten_default,init_flatten=__esm({"../../node_modules/lodash-es/flatten.js"(){init_baseFlatten();__name(flatten,"flatten");flatten_default=flatten}});function flatRest(func){return setToString_default(overRest_default(func,void 0,flatten_default),func+"")}var flatRest_default,init_flatRest=__esm({"../../node_modules/lodash-es/_flatRest.js"(){init_flatten();init_overRest();init_setToString();__name(flatRest,"flatRest");flatRest_default=flatRest}});var at,at_default,init_at=__esm({"../../node_modules/lodash-es/at.js"(){init_baseAt();init_flatRest();at=flatRest_default(baseAt_default),at_default=at}});function isPlainObject(value){if(!isObjectLike_default(value)||baseGetTag_default(value)!=objectTag4)return!1;var proto2=getPrototype_default(value);if(proto2===null)return!0;var Ctor=hasOwnProperty15.call(proto2,"constructor")&&proto2.constructor;return typeof Ctor=="function"&&Ctor instanceof Ctor&&funcToString3.call(Ctor)==objectCtorString}var objectTag4,funcProto3,objectProto18,funcToString3,hasOwnProperty15,objectCtorString,isPlainObject_default,init_isPlainObject=__esm({"../../node_modules/lodash-es/isPlainObject.js"(){init_baseGetTag();init_getPrototype();init_isObjectLike();objectTag4="[object Object]",funcProto3=Function.prototype,objectProto18=Object.prototype,funcToString3=funcProto3.toString,hasOwnProperty15=objectProto18.hasOwnProperty,objectCtorString=funcToString3.call(Object);__name(isPlainObject,"isPlainObject");isPlainObject_default=isPlainObject}});function isError(value){if(!isObjectLike_default(value))return!1;var tag=baseGetTag_default(value);return tag==errorTag3||tag==domExcTag||typeof value.message=="string"&&typeof value.name=="string"&&!isPlainObject_default(value)}var domExcTag,errorTag3,isError_default,init_isError=__esm({"../../node_modules/lodash-es/isError.js"(){init_baseGetTag();init_isObjectLike();init_isPlainObject();domExcTag="[object DOMException]",errorTag3="[object Error]";__name(isError,"isError");isError_default=isError}});var attempt,attempt_default,init_attempt=__esm({"../../node_modules/lodash-es/attempt.js"(){init_apply();init_baseRest();init_isError();attempt=baseRest_default(function(func,args){try{return apply_default(func,void 0,args)}catch(e2){return isError_default(e2)?e2:new Error(e2)}}),attempt_default=attempt}});function before(n2,func){var result2;if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT4);return n2=toInteger_default(n2),function(){return--n2>0&&(result2=func.apply(this,arguments)),n2<=1&&(func=void 0),result2}}var FUNC_ERROR_TEXT4,before_default,init_before=__esm({"../../node_modules/lodash-es/before.js"(){init_toInteger();FUNC_ERROR_TEXT4="Expected a function";__name(before,"before");before_default=before}});var WRAP_BIND_FLAG8,WRAP_PARTIAL_FLAG4,bind,bind_default,init_bind=__esm({"../../node_modules/lodash-es/bind.js"(){init_baseRest();init_createWrap();init_getHolder();init_replaceHolders();WRAP_BIND_FLAG8=1,WRAP_PARTIAL_FLAG4=32,bind=baseRest_default(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG8;if(partials.length){var holders=replaceHolders_default(partials,getHolder_default(bind));bitmask|=WRAP_PARTIAL_FLAG4}return createWrap_default(func,bitmask,thisArg,partials,holders)});bind.placeholder={};bind_default=bind}});var bindAll,bindAll_default,init_bindAll=__esm({"../../node_modules/lodash-es/bindAll.js"(){init_arrayEach();init_baseAssignValue();init_bind();init_flatRest();init_toKey();bindAll=flatRest_default(function(object2,methodNames){return arrayEach_default(methodNames,function(key){key=toKey_default(key),baseAssignValue_default(object2,key,bind_default(object2[key],object2))}),object2}),bindAll_default=bindAll}});var WRAP_BIND_FLAG9,WRAP_BIND_KEY_FLAG6,WRAP_PARTIAL_FLAG5,bindKey,bindKey_default,init_bindKey=__esm({"../../node_modules/lodash-es/bindKey.js"(){init_baseRest();init_createWrap();init_getHolder();init_replaceHolders();WRAP_BIND_FLAG9=1,WRAP_BIND_KEY_FLAG6=2,WRAP_PARTIAL_FLAG5=32,bindKey=baseRest_default(function(object2,key,partials){var bitmask=WRAP_BIND_FLAG9|WRAP_BIND_KEY_FLAG6;if(partials.length){var holders=replaceHolders_default(partials,getHolder_default(bindKey));bitmask|=WRAP_PARTIAL_FLAG5}return createWrap_default(key,bitmask,object2,partials,holders)});bindKey.placeholder={};bindKey_default=bindKey}});function baseSlice(array2,start,end){var index=-1,length=array2.length;start<0&&(start=-start>length?0:length+start),end=end>length?length:end,end<0&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result2=Array(length);++index<length;)result2[index]=array2[index+start];return result2}var baseSlice_default,init_baseSlice=__esm({"../../node_modules/lodash-es/_baseSlice.js"(){__name(baseSlice,"baseSlice");baseSlice_default=baseSlice}});function castSlice(array2,start,end){var length=array2.length;return end=end===void 0?length:end,!start&&end>=length?array2:baseSlice_default(array2,start,end)}var castSlice_default,init_castSlice=__esm({"../../node_modules/lodash-es/_castSlice.js"(){init_baseSlice();__name(castSlice,"castSlice");castSlice_default=castSlice}});function hasUnicode(string4){return reHasUnicode.test(string4)}var rsAstralRange,rsComboMarksRange,reComboHalfMarksRange,rsComboSymbolsRange,rsComboRange,rsVarRange,rsZWJ,reHasUnicode,hasUnicode_default,init_hasUnicode=__esm({"../../node_modules/lodash-es/_hasUnicode.js"(){rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsZWJ="\\u200d",reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");__name(hasUnicode,"hasUnicode");hasUnicode_default=hasUnicode}});function asciiToArray(string4){return string4.split("")}var asciiToArray_default,init_asciiToArray=__esm({"../../node_modules/lodash-es/_asciiToArray.js"(){__name(asciiToArray,"asciiToArray");asciiToArray_default=asciiToArray}});function unicodeToArray(string4){return string4.match(reUnicode)||[]}var rsAstralRange2,rsComboMarksRange2,reComboHalfMarksRange2,rsComboSymbolsRange2,rsComboRange2,rsVarRange2,rsAstral,rsCombo,rsFitz,rsModifier,rsNonAstral,rsRegional,rsSurrPair,rsZWJ2,reOptMod,rsOptVar,rsOptJoin,rsSeq,rsSymbol,reUnicode,unicodeToArray_default,init_unicodeToArray=__esm({"../../node_modules/lodash-es/_unicodeToArray.js"(){rsAstralRange2="\\ud800-\\udfff",rsComboMarksRange2="\\u0300-\\u036f",reComboHalfMarksRange2="\\ufe20-\\ufe2f",rsComboSymbolsRange2="\\u20d0-\\u20ff",rsComboRange2=rsComboMarksRange2+reComboHalfMarksRange2+rsComboSymbolsRange2,rsVarRange2="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange2+"]",rsCombo="["+rsComboRange2+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange2+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ2="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange2+"]?",rsOptJoin="(?:"+rsZWJ2+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");__name(unicodeToArray,"unicodeToArray");unicodeToArray_default=unicodeToArray}});function stringToArray(string4){return hasUnicode_default(string4)?unicodeToArray_default(string4):asciiToArray_default(string4)}var stringToArray_default,init_stringToArray=__esm({"../../node_modules/lodash-es/_stringToArray.js"(){init_asciiToArray();init_hasUnicode();init_unicodeToArray();__name(stringToArray,"stringToArray");stringToArray_default=stringToArray}});function createCaseFirst(methodName){return function(string4){string4=toString_default(string4);var strSymbols=hasUnicode_default(string4)?stringToArray_default(string4):void 0,chr=strSymbols?strSymbols[0]:string4.charAt(0),trailing=strSymbols?castSlice_default(strSymbols,1).join(""):string4.slice(1);return chr[methodName]()+trailing}}var createCaseFirst_default,init_createCaseFirst=__esm({"../../node_modules/lodash-es/_createCaseFirst.js"(){init_castSlice();init_hasUnicode();init_stringToArray();init_toString();__name(createCaseFirst,"createCaseFirst");createCaseFirst_default=createCaseFirst}});var upperFirst,upperFirst_default,init_upperFirst=__esm({"../../node_modules/lodash-es/upperFirst.js"(){init_createCaseFirst();upperFirst=createCaseFirst_default("toUpperCase"),upperFirst_default=upperFirst}});function capitalize(string4){return upperFirst_default(toString_default(string4).toLowerCase())}var capitalize_default,init_capitalize=__esm({"../../node_modules/lodash-es/capitalize.js"(){init_toString();init_upperFirst();__name(capitalize,"capitalize");capitalize_default=capitalize}});function arrayReduce(array2,iteratee2,accumulator,initAccum){var index=-1,length=array2==null?0:array2.length;for(initAccum&&length&&(accumulator=array2[++index]);++index<length;)accumulator=iteratee2(accumulator,array2[index],index,array2);return accumulator}var arrayReduce_default,init_arrayReduce=__esm({"../../node_modules/lodash-es/_arrayReduce.js"(){__name(arrayReduce,"arrayReduce");arrayReduce_default=arrayReduce}});function basePropertyOf(object2){return function(key){return object2?.[key]}}var basePropertyOf_default,init_basePropertyOf=__esm({"../../node_modules/lodash-es/_basePropertyOf.js"(){__name(basePropertyOf,"basePropertyOf");basePropertyOf_default=basePropertyOf}});var deburredLetters,deburrLetter,deburrLetter_default,init_deburrLetter=__esm({"../../node_modules/lodash-es/_deburrLetter.js"(){init_basePropertyOf();deburredLetters={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},deburrLetter=basePropertyOf_default(deburredLetters),deburrLetter_default=deburrLetter}});function deburr(string4){return string4=toString_default(string4),string4&&string4.replace(reLatin,deburrLetter_default).replace(reComboMark,"")}var reLatin,rsComboMarksRange3,reComboHalfMarksRange3,rsComboSymbolsRange3,rsComboRange3,rsCombo2,reComboMark,deburr_default,init_deburr=__esm({"../../node_modules/lodash-es/deburr.js"(){init_deburrLetter();init_toString();reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,rsComboMarksRange3="\\u0300-\\u036f",reComboHalfMarksRange3="\\ufe20-\\ufe2f",rsComboSymbolsRange3="\\u20d0-\\u20ff",rsComboRange3=rsComboMarksRange3+reComboHalfMarksRange3+rsComboSymbolsRange3,rsCombo2="["+rsComboRange3+"]",reComboMark=RegExp(rsCombo2,"g");__name(deburr,"deburr");deburr_default=deburr}});function asciiWords(string4){return string4.match(reAsciiWord)||[]}var reAsciiWord,asciiWords_default,init_asciiWords=__esm({"../../node_modules/lodash-es/_asciiWords.js"(){reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;__name(asciiWords,"asciiWords");asciiWords_default=asciiWords}});function hasUnicodeWord(string4){return reHasUnicodeWord.test(string4)}var reHasUnicodeWord,hasUnicodeWord_default,init_hasUnicodeWord=__esm({"../../node_modules/lodash-es/_hasUnicodeWord.js"(){reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;__name(hasUnicodeWord,"hasUnicodeWord");hasUnicodeWord_default=hasUnicodeWord}});function unicodeWords(string4){return string4.match(reUnicodeWord)||[]}var rsAstralRange3,rsComboMarksRange4,reComboHalfMarksRange4,rsComboSymbolsRange4,rsComboRange4,rsDingbatRange,rsLowerRange,rsMathOpRange,rsNonCharRange,rsPunctuationRange,rsSpaceRange,rsUpperRange,rsVarRange3,rsBreakRange,rsApos,rsBreak,rsCombo3,rsDigits,rsDingbat,rsLower,rsMisc,rsFitz2,rsModifier2,rsNonAstral2,rsRegional2,rsSurrPair2,rsUpper,rsZWJ3,rsMiscLower,rsMiscUpper,rsOptContrLower,rsOptContrUpper,reOptMod2,rsOptVar2,rsOptJoin2,rsOrdLower,rsOrdUpper,rsSeq2,rsEmoji,reUnicodeWord,unicodeWords_default,init_unicodeWords=__esm({"../../node_modules/lodash-es/_unicodeWords.js"(){rsAstralRange3="\\ud800-\\udfff",rsComboMarksRange4="\\u0300-\\u036f",reComboHalfMarksRange4="\\ufe20-\\ufe2f",rsComboSymbolsRange4="\\u20d0-\\u20ff",rsComboRange4=rsComboMarksRange4+reComboHalfMarksRange4+rsComboSymbolsRange4,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange3="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange,rsApos="['\u2019]",rsBreak="["+rsBreakRange+"]",rsCombo3="["+rsComboRange4+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange3+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz2="\\ud83c[\\udffb-\\udfff]",rsModifier2="(?:"+rsCombo3+"|"+rsFitz2+")",rsNonAstral2="[^"+rsAstralRange3+"]",rsRegional2="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair2="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ3="\\u200d",rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod2=rsModifier2+"?",rsOptVar2="["+rsVarRange3+"]?",rsOptJoin2="(?:"+rsZWJ3+"(?:"+[rsNonAstral2,rsRegional2,rsSurrPair2].join("|")+")"+rsOptVar2+reOptMod2+")*",rsOrdLower="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rsOrdUpper="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rsSeq2=rsOptVar2+reOptMod2+rsOptJoin2,rsEmoji="(?:"+[rsDingbat,rsRegional2,rsSurrPair2].join("|")+")"+rsSeq2,reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g");__name(unicodeWords,"unicodeWords");unicodeWords_default=unicodeWords}});function words(string4,pattern,guard){return string4=toString_default(string4),pattern=guard?void 0:pattern,pattern===void 0?hasUnicodeWord_default(string4)?unicodeWords_default(string4):asciiWords_default(string4):string4.match(pattern)||[]}var words_default,init_words=__esm({"../../node_modules/lodash-es/words.js"(){init_asciiWords();init_hasUnicodeWord();init_toString();init_unicodeWords();__name(words,"words");words_default=words}});function createCompounder(callback){return function(string4){return arrayReduce_default(words_default(deburr_default(string4).replace(reApos,"")),callback,"")}}var rsApos2,reApos,createCompounder_default,init_createCompounder=__esm({"../../node_modules/lodash-es/_createCompounder.js"(){init_arrayReduce();init_deburr();init_words();rsApos2="['\u2019]",reApos=RegExp(rsApos2,"g");__name(createCompounder,"createCompounder");createCompounder_default=createCompounder}});var camelCase,camelCase_default,init_camelCase=__esm({"../../node_modules/lodash-es/camelCase.js"(){init_capitalize();init_createCompounder();camelCase=createCompounder_default(function(result2,word,index){return word=word.toLowerCase(),result2+(index?capitalize_default(word):word)}),camelCase_default=camelCase}});function castArray(){if(!arguments.length)return[];var value=arguments[0];return isArray_default(value)?value:[value]}var castArray_default,init_castArray=__esm({"../../node_modules/lodash-es/castArray.js"(){init_isArray();__name(castArray,"castArray");castArray_default=castArray}});function createRound(methodName){var func=Math[methodName];return function(number4,precision){if(number4=toNumber_default(number4),precision=precision==null?0:nativeMin3(toInteger_default(precision),292),precision&&nativeIsFinite(number4)){var pair=(toString_default(number4)+"e").split("e"),value=func(pair[0]+"e"+(+pair[1]+precision));return pair=(toString_default(value)+"e").split("e"),+(pair[0]+"e"+(+pair[1]-precision))}return func(number4)}}var nativeIsFinite,nativeMin3,createRound_default,init_createRound=__esm({"../../node_modules/lodash-es/_createRound.js"(){init_root();init_toInteger();init_toNumber();init_toString();nativeIsFinite=root_default.isFinite,nativeMin3=Math.min;__name(createRound,"createRound");createRound_default=createRound}});var ceil,ceil_default,init_ceil=__esm({"../../node_modules/lodash-es/ceil.js"(){init_createRound();ceil=createRound_default("ceil"),ceil_default=ceil}});function chain(value){var result2=wrapperLodash_default(value);return result2.__chain__=!0,result2}var chain_default,init_chain=__esm({"../../node_modules/lodash-es/chain.js"(){init_wrapperLodash();__name(chain,"chain");chain_default=chain}});function chunk(array2,size2,guard){(guard?isIterateeCall_default(array2,size2,guard):size2===void 0)?size2=1:size2=nativeMax5(toInteger_default(size2),0);var length=array2==null?0:array2.length;if(!length||size2<1)return[];for(var index=0,resIndex=0,result2=Array(nativeCeil(length/size2));index<length;)result2[resIndex++]=baseSlice_default(array2,index,index+=size2);return result2}var nativeCeil,nativeMax5,chunk_default,init_chunk=__esm({"../../node_modules/lodash-es/chunk.js"(){init_baseSlice();init_isIterateeCall();init_toInteger();nativeCeil=Math.ceil,nativeMax5=Math.max;__name(chunk,"chunk");chunk_default=chunk}});function baseClamp(number4,lower3,upper){return number4===number4&&(upper!==void 0&&(number4=number4<=upper?number4:upper),lower3!==void 0&&(number4=number4>=lower3?number4:lower3)),number4}var baseClamp_default,init_baseClamp=__esm({"../../node_modules/lodash-es/_baseClamp.js"(){__name(baseClamp,"baseClamp");baseClamp_default=baseClamp}});function clamp(number4,lower3,upper){return upper===void 0&&(upper=lower3,lower3=void 0),upper!==void 0&&(upper=toNumber_default(upper),upper=upper===upper?upper:0),lower3!==void 0&&(lower3=toNumber_default(lower3),lower3=lower3===lower3?lower3:0),baseClamp_default(toNumber_default(number4),lower3,upper)}var clamp_default,init_clamp=__esm({"../../node_modules/lodash-es/clamp.js"(){init_baseClamp();init_toNumber();__name(clamp,"clamp");clamp_default=clamp}});function baseAssign(object2,source){return object2&&copyObject_default(source,keys_default(source),object2)}var baseAssign_default,init_baseAssign=__esm({"../../node_modules/lodash-es/_baseAssign.js"(){init_copyObject();init_keys();__name(baseAssign,"baseAssign");baseAssign_default=baseAssign}});function baseAssignIn(object2,source){return object2&&copyObject_default(source,keysIn_default(source),object2)}var baseAssignIn_default,init_baseAssignIn=__esm({"../../node_modules/lodash-es/_baseAssignIn.js"(){init_copyObject();init_keysIn();__name(baseAssignIn,"baseAssignIn");baseAssignIn_default=baseAssignIn}});function cloneBuffer(buffer,isDeep){if(isDeep)return buffer.slice();var length=buffer.length,result2=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);return buffer.copy(result2),result2}var freeExports3,freeModule3,moduleExports3,Buffer3,allocUnsafe,cloneBuffer_default,init_cloneBuffer=__esm({"../../node_modules/lodash-es/_cloneBuffer.js"(){init_root();freeExports3=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule3=freeExports3&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports3=freeModule3&&freeModule3.exports===freeExports3,Buffer3=moduleExports3?root_default.Buffer:void 0,allocUnsafe=Buffer3?Buffer3.allocUnsafe:void 0;__name(cloneBuffer,"cloneBuffer");cloneBuffer_default=cloneBuffer}});function copySymbols(source,object2){return copyObject_default(source,getSymbols_default(source),object2)}var copySymbols_default,init_copySymbols=__esm({"../../node_modules/lodash-es/_copySymbols.js"(){init_copyObject();init_getSymbols();__name(copySymbols,"copySymbols");copySymbols_default=copySymbols}});function copySymbolsIn(source,object2){return copyObject_default(source,getSymbolsIn_default(source),object2)}var copySymbolsIn_default,init_copySymbolsIn=__esm({"../../node_modules/lodash-es/_copySymbolsIn.js"(){init_copyObject();init_getSymbolsIn();__name(copySymbolsIn,"copySymbolsIn");copySymbolsIn_default=copySymbolsIn}});function initCloneArray(array2){var length=array2.length,result2=new array2.constructor(length);return length&&typeof array2[0]=="string"&&hasOwnProperty16.call(array2,"index")&&(result2.index=array2.index,result2.input=array2.input),result2}var objectProto19,hasOwnProperty16,initCloneArray_default,init_initCloneArray=__esm({"../../node_modules/lodash-es/_initCloneArray.js"(){objectProto19=Object.prototype,hasOwnProperty16=objectProto19.hasOwnProperty;__name(initCloneArray,"initCloneArray");initCloneArray_default=initCloneArray}});function cloneArrayBuffer(arrayBuffer){var result2=new arrayBuffer.constructor(arrayBuffer.byteLength);return new Uint8Array_default(result2).set(new Uint8Array_default(arrayBuffer)),result2}var cloneArrayBuffer_default,init_cloneArrayBuffer=__esm({"../../node_modules/lodash-es/_cloneArrayBuffer.js"(){init_Uint8Array();__name(cloneArrayBuffer,"cloneArrayBuffer");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,init_cloneDataView=__esm({"../../node_modules/lodash-es/_cloneDataView.js"(){init_cloneArrayBuffer();__name(cloneDataView,"cloneDataView");cloneDataView_default=cloneDataView}});function cloneRegExp(regexp){var result2=new regexp.constructor(regexp.source,reFlags.exec(regexp));return result2.lastIndex=regexp.lastIndex,result2}var reFlags,cloneRegExp_default,init_cloneRegExp=__esm({"../../node_modules/lodash-es/_cloneRegExp.js"(){reFlags=/\w*$/;__name(cloneRegExp,"cloneRegExp");cloneRegExp_default=cloneRegExp}});function cloneSymbol(symbol2){return symbolValueOf2?Object(symbolValueOf2.call(symbol2)):{}}var symbolProto3,symbolValueOf2,cloneSymbol_default,init_cloneSymbol=__esm({"../../node_modules/lodash-es/_cloneSymbol.js"(){init_Symbol();symbolProto3=Symbol_default?Symbol_default.prototype:void 0,symbolValueOf2=symbolProto3?symbolProto3.valueOf:void 0;__name(cloneSymbol,"cloneSymbol");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,init_cloneTypedArray=__esm({"../../node_modules/lodash-es/_cloneTypedArray.js"(){init_cloneArrayBuffer();__name(cloneTypedArray,"cloneTypedArray");cloneTypedArray_default=cloneTypedArray}});function initCloneByTag(object2,tag,isDeep){var Ctor=object2.constructor;switch(tag){case arrayBufferTag3:return cloneArrayBuffer_default(object2);case boolTag3:case dateTag3:return new Ctor(+object2);case dataViewTag4:return cloneDataView_default(object2,isDeep);case float32Tag2:case float64Tag2:case int8Tag2:case int16Tag2:case int32Tag2:case uint8Tag2:case uint8ClampedTag2:case uint16Tag2:case uint32Tag2:return cloneTypedArray_default(object2,isDeep);case mapTag4:return new Ctor;case numberTag3:case stringTag3:return new Ctor(object2);case regexpTag3:return cloneRegExp_default(object2);case setTag4:return new Ctor;case symbolTag3:return cloneSymbol_default(object2)}}var boolTag3,dateTag3,mapTag4,numberTag3,regexpTag3,setTag4,stringTag3,symbolTag3,arrayBufferTag3,dataViewTag4,float32Tag2,float64Tag2,int8Tag2,int16Tag2,int32Tag2,uint8Tag2,uint8ClampedTag2,uint16Tag2,uint32Tag2,initCloneByTag_default,init_initCloneByTag=__esm({"../../node_modules/lodash-es/_initCloneByTag.js"(){init_cloneArrayBuffer();init_cloneDataView();init_cloneRegExp();init_cloneSymbol();init_cloneTypedArray();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]";__name(initCloneByTag,"initCloneByTag");initCloneByTag_default=initCloneByTag}});function initCloneObject(object2){return typeof object2.constructor=="function"&&!isPrototype_default(object2)?baseCreate_default(getPrototype_default(object2)):{}}var initCloneObject_default,init_initCloneObject=__esm({"../../node_modules/lodash-es/_initCloneObject.js"(){init_baseCreate();init_getPrototype();init_isPrototype();__name(initCloneObject,"initCloneObject");initCloneObject_default=initCloneObject}});function baseIsMap(value){return isObjectLike_default(value)&&getTag_default(value)==mapTag5}var mapTag5,baseIsMap_default,init_baseIsMap=__esm({"../../node_modules/lodash-es/_baseIsMap.js"(){init_getTag();init_isObjectLike();mapTag5="[object Map]";__name(baseIsMap,"baseIsMap");baseIsMap_default=baseIsMap}});var nodeIsMap,isMap,isMap_default,init_isMap=__esm({"../../node_modules/lodash-es/isMap.js"(){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,baseIsSet_default,init_baseIsSet=__esm({"../../node_modules/lodash-es/_baseIsSet.js"(){init_getTag();init_isObjectLike();setTag5="[object Set]";__name(baseIsSet,"baseIsSet");baseIsSet_default=baseIsSet}});var nodeIsSet,isSet,isSet_default,init_isSet=__esm({"../../node_modules/lodash-es/isSet.js"(){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,object2,stack){var result2,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer&&(result2=object2?customizer(value,key,object2,stack):customizer(value)),result2!==void 0)return result2;if(!isObject_default(value))return value;var isArr=isArray_default(value);if(isArr){if(result2=initCloneArray_default(value),!isDeep)return copyArray_default(value,result2)}else{var tag=getTag_default(value),isFunc=tag==funcTag3||tag==genTag2;if(isBuffer_default(value))return cloneBuffer_default(value,isDeep);if(tag==objectTag5||tag==argsTag4||isFunc&&!object2){if(result2=isFlat||isFunc?{}:initCloneObject_default(value),!isDeep)return isFlat?copySymbolsIn_default(value,baseAssignIn_default(result2,value)):copySymbols_default(value,baseAssign_default(result2,value))}else{if(!cloneableTags[tag])return object2?value:{};result2=initCloneByTag_default(value,tag,isDeep)}}stack||(stack=new Stack_default);var stacked=stack.get(value);if(stacked)return stacked;stack.set(value,result2),isSet_default(value)?value.forEach(function(subValue){result2.add(baseClone(subValue,bitmask,customizer,subValue,value,stack))}):isMap_default(value)&&value.forEach(function(subValue,key2){result2.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){props&&(key2=subValue,subValue=value[key2]),assignValue_default(result2,key2,baseClone(subValue,bitmask,customizer,key2,value,stack))}),result2}var CLONE_DEEP_FLAG,CLONE_FLAT_FLAG,CLONE_SYMBOLS_FLAG,argsTag4,arrayTag3,boolTag4,dateTag4,errorTag4,funcTag3,genTag2,mapTag6,numberTag4,objectTag5,regexpTag4,setTag6,stringTag4,symbolTag4,weakMapTag3,arrayBufferTag4,dataViewTag5,float32Tag3,float64Tag3,int8Tag3,int16Tag3,int32Tag3,uint8Tag3,uint8ClampedTag3,uint16Tag3,uint32Tag3,cloneableTags,baseClone_default,init_baseClone=__esm({"../../node_modules/lodash-es/_baseClone.js"(){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();CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,argsTag4="[object Arguments]",arrayTag3="[object Array]",boolTag4="[object Boolean]",dateTag4="[object Date]",errorTag4="[object Error]",funcTag3="[object Function]",genTag2="[object GeneratorFunction]",mapTag6="[object Map]",numberTag4="[object Number]",objectTag5="[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={};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[objectTag5]=cloneableTags[regexpTag4]=cloneableTags[setTag6]=cloneableTags[stringTag4]=cloneableTags[symbolTag4]=cloneableTags[uint8Tag3]=cloneableTags[uint8ClampedTag3]=cloneableTags[uint16Tag3]=cloneableTags[uint32Tag3]=!0;cloneableTags[errorTag4]=cloneableTags[funcTag3]=cloneableTags[weakMapTag3]=!1;__name(baseClone,"baseClone");baseClone_default=baseClone}});function clone(value){return baseClone_default(value,CLONE_SYMBOLS_FLAG2)}var CLONE_SYMBOLS_FLAG2,clone_default,init_clone=__esm({"../../node_modules/lodash-es/clone.js"(){init_baseClone();CLONE_SYMBOLS_FLAG2=4;__name(clone,"clone");clone_default=clone}});function cloneDeep(value){return baseClone_default(value,CLONE_DEEP_FLAG2|CLONE_SYMBOLS_FLAG3)}var CLONE_DEEP_FLAG2,CLONE_SYMBOLS_FLAG3,cloneDeep_default,init_cloneDeep=__esm({"../../node_modules/lodash-es/cloneDeep.js"(){init_baseClone();CLONE_DEEP_FLAG2=1,CLONE_SYMBOLS_FLAG3=4;__name(cloneDeep,"cloneDeep");cloneDeep_default=cloneDeep}});function cloneDeepWith(value,customizer){return customizer=typeof customizer=="function"?customizer:void 0,baseClone_default(value,CLONE_DEEP_FLAG3|CLONE_SYMBOLS_FLAG4,customizer)}var CLONE_DEEP_FLAG3,CLONE_SYMBOLS_FLAG4,cloneDeepWith_default,init_cloneDeepWith=__esm({"../../node_modules/lodash-es/cloneDeepWith.js"(){init_baseClone();CLONE_DEEP_FLAG3=1,CLONE_SYMBOLS_FLAG4=4;__name(cloneDeepWith,"cloneDeepWith");cloneDeepWith_default=cloneDeepWith}});function cloneWith(value,customizer){return customizer=typeof customizer=="function"?customizer:void 0,baseClone_default(value,CLONE_SYMBOLS_FLAG5,customizer)}var CLONE_SYMBOLS_FLAG5,cloneWith_default,init_cloneWith=__esm({"../../node_modules/lodash-es/cloneWith.js"(){init_baseClone();CLONE_SYMBOLS_FLAG5=4;__name(cloneWith,"cloneWith");cloneWith_default=cloneWith}});function wrapperCommit(){return new LodashWrapper_default(this.value(),this.__chain__)}var commit_default,init_commit=__esm({"../../node_modules/lodash-es/commit.js"(){init_LodashWrapper();__name(wrapperCommit,"wrapperCommit");commit_default=wrapperCommit}});function compact(array2){for(var index=-1,length=array2==null?0:array2.length,resIndex=0,result2=[];++index<length;){var value=array2[index];value&&(result2[resIndex++]=value)}return result2}var compact_default,init_compact=__esm({"../../node_modules/lodash-es/compact.js"(){__name(compact,"compact");compact_default=compact}});function concat(){var length=arguments.length;if(!length)return[];for(var args=Array(length-1),array2=arguments[0],index=length;index--;)args[index-1]=arguments[index];return arrayPush_default(isArray_default(array2)?copyArray_default(array2):[array2],baseFlatten_default(args,1))}var concat_default,init_concat=__esm({"../../node_modules/lodash-es/concat.js"(){init_arrayPush();init_baseFlatten();init_copyArray();init_isArray();__name(concat,"concat");concat_default=concat}});function cond(pairs){var length=pairs==null?0:pairs.length,toIteratee=baseIteratee_default;return pairs=length?arrayMap_default(pairs,function(pair){if(typeof pair[1]!="function")throw new TypeError(FUNC_ERROR_TEXT5);return[toIteratee(pair[0]),pair[1]]}):[],baseRest_default(function(args){for(var index=-1;++index<length;){var pair=pairs[index];if(apply_default(pair[0],this,args))return apply_default(pair[1],this,args)}})}var FUNC_ERROR_TEXT5,cond_default,init_cond=__esm({"../../node_modules/lodash-es/cond.js"(){init_apply();init_arrayMap();init_baseIteratee();init_baseRest();FUNC_ERROR_TEXT5="Expected a function";__name(cond,"cond");cond_default=cond}});function baseConformsTo(object2,source,props){var length=props.length;if(object2==null)return!length;for(object2=Object(object2);length--;){var key=props[length],predicate=source[key],value=object2[key];if(value===void 0&&!(key in object2)||!predicate(value))return!1}return!0}var baseConformsTo_default,init_baseConformsTo=__esm({"../../node_modules/lodash-es/_baseConformsTo.js"(){__name(baseConformsTo,"baseConformsTo");baseConformsTo_default=baseConformsTo}});function baseConforms(source){var props=keys_default(source);return function(object2){return baseConformsTo_default(object2,source,props)}}var baseConforms_default,init_baseConforms=__esm({"../../node_modules/lodash-es/_baseConforms.js"(){init_baseConformsTo();init_keys();__name(baseConforms,"baseConforms");baseConforms_default=baseConforms}});function conforms(source){return baseConforms_default(baseClone_default(source,CLONE_DEEP_FLAG4))}var CLONE_DEEP_FLAG4,conforms_default,init_conforms=__esm({"../../node_modules/lodash-es/conforms.js"(){init_baseClone();init_baseConforms();CLONE_DEEP_FLAG4=1;__name(conforms,"conforms");conforms_default=conforms}});function conformsTo(object2,source){return source==null||baseConformsTo_default(object2,source,keys_default(source))}var conformsTo_default,init_conformsTo=__esm({"../../node_modules/lodash-es/conformsTo.js"(){init_baseConformsTo();init_keys();__name(conformsTo,"conformsTo");conformsTo_default=conformsTo}});function arrayAggregator(array2,setter,iteratee2,accumulator){for(var index=-1,length=array2==null?0:array2.length;++index<length;){var value=array2[index];setter(accumulator,value,iteratee2(value),array2)}return accumulator}var arrayAggregator_default,init_arrayAggregator=__esm({"../../node_modules/lodash-es/_arrayAggregator.js"(){__name(arrayAggregator,"arrayAggregator");arrayAggregator_default=arrayAggregator}});function createBaseFor(fromRight){return function(object2,iteratee2,keysFunc){for(var index=-1,iterable=Object(object2),props=keysFunc(object2),length=props.length;length--;){var key=props[fromRight?length:++index];if(iteratee2(iterable[key],key,iterable)===!1)break}return object2}}var createBaseFor_default,init_createBaseFor=__esm({"../../node_modules/lodash-es/_createBaseFor.js"(){__name(createBaseFor,"createBaseFor");createBaseFor_default=createBaseFor}});var baseFor,baseFor_default,init_baseFor=__esm({"../../node_modules/lodash-es/_baseFor.js"(){init_createBaseFor();baseFor=createBaseFor_default(),baseFor_default=baseFor}});function baseForOwn(object2,iteratee2){return object2&&baseFor_default(object2,iteratee2,keys_default)}var baseForOwn_default,init_baseForOwn=__esm({"../../node_modules/lodash-es/_baseForOwn.js"(){init_baseFor();init_keys();__name(baseForOwn,"baseForOwn");baseForOwn_default=baseForOwn}});function createBaseEach(eachFunc,fromRight){return function(collection,iteratee2){if(collection==null)return collection;if(!isArrayLike_default(collection))return eachFunc(collection,iteratee2);for(var length=collection.length,index=fromRight?length:-1,iterable=Object(collection);(fromRight?index--:++index<length)&&iteratee2(iterable[index],index,iterable)!==!1;);return collection}}var createBaseEach_default,init_createBaseEach=__esm({"../../node_modules/lodash-es/_createBaseEach.js"(){init_isArrayLike();__name(createBaseEach,"createBaseEach");createBaseEach_default=createBaseEach}});var baseEach,baseEach_default,init_baseEach=__esm({"../../node_modules/lodash-es/_baseEach.js"(){init_baseForOwn();init_createBaseEach();baseEach=createBaseEach_default(baseForOwn_default),baseEach_default=baseEach}});function baseAggregator(collection,setter,iteratee2,accumulator){return baseEach_default(collection,function(value,key,collection2){setter(accumulator,value,iteratee2(value),collection2)}),accumulator}var baseAggregator_default,init_baseAggregator=__esm({"../../node_modules/lodash-es/_baseAggregator.js"(){init_baseEach();__name(baseAggregator,"baseAggregator");baseAggregator_default=baseAggregator}});function createAggregator(setter,initializer3){return function(collection,iteratee2){var func=isArray_default(collection)?arrayAggregator_default:baseAggregator_default,accumulator=initializer3?initializer3():{};return func(collection,setter,baseIteratee_default(iteratee2,2),accumulator)}}var createAggregator_default,init_createAggregator=__esm({"../../node_modules/lodash-es/_createAggregator.js"(){init_arrayAggregator();init_baseAggregator();init_baseIteratee();init_isArray();__name(createAggregator,"createAggregator");createAggregator_default=createAggregator}});var objectProto20,hasOwnProperty17,countBy,countBy_default,init_countBy=__esm({"../../node_modules/lodash-es/countBy.js"(){init_baseAssignValue();init_createAggregator();objectProto20=Object.prototype,hasOwnProperty17=objectProto20.hasOwnProperty,countBy=createAggregator_default(function(result2,value,key){hasOwnProperty17.call(result2,key)?++result2[key]:baseAssignValue_default(result2,key,1)}),countBy_default=countBy}});function create(prototype2,properties){var result2=baseCreate_default(prototype2);return properties==null?result2:baseAssign_default(result2,properties)}var create_default,init_create=__esm({"../../node_modules/lodash-es/create.js"(){init_baseAssign();init_baseCreate();__name(create,"create");create_default=create}});function curry(func,arity,guard){arity=guard?void 0:arity;var result2=createWrap_default(func,WRAP_CURRY_FLAG6,void 0,void 0,void 0,void 0,void 0,arity);return result2.placeholder=curry.placeholder,result2}var WRAP_CURRY_FLAG6,curry_default,init_curry=__esm({"../../node_modules/lodash-es/curry.js"(){init_createWrap();WRAP_CURRY_FLAG6=8;__name(curry,"curry");curry.placeholder={};curry_default=curry}});function curryRight(func,arity,guard){arity=guard?void 0:arity;var result2=createWrap_default(func,WRAP_CURRY_RIGHT_FLAG4,void 0,void 0,void 0,void 0,void 0,arity);return result2.placeholder=curryRight.placeholder,result2}var WRAP_CURRY_RIGHT_FLAG4,curryRight_default,init_curryRight=__esm({"../../node_modules/lodash-es/curryRight.js"(){init_createWrap();WRAP_CURRY_RIGHT_FLAG4=16;__name(curryRight,"curryRight");curryRight.placeholder={};curryRight_default=curryRight}});var now,now_default,init_now=__esm({"../../node_modules/lodash-es/now.js"(){init_root();now=__name(function(){return root_default.Date.now()},"now"),now_default=now}});function debounce(func,wait,options){var lastArgs,lastThis,maxWait,result2,timerId,lastCallTime,lastInvokeTime=0,leading=!1,maxing=!1,trailing=!0;if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT6);wait=toNumber_default(wait)||0,isObject_default(options)&&(leading=!!options.leading,maxing="maxWait"in options,maxWait=maxing?nativeMax6(toNumber_default(options.maxWait)||0,wait):maxWait,trailing="trailing"in options?!!options.trailing:trailing);function invokeFunc(time3){var args=lastArgs,thisArg=lastThis;return lastArgs=lastThis=void 0,lastInvokeTime=time3,result2=func.apply(thisArg,args),result2}__name(invokeFunc,"invokeFunc");function leadingEdge(time3){return lastInvokeTime=time3,timerId=setTimeout(timerExpired,wait),leading?invokeFunc(time3):result2}__name(leadingEdge,"leadingEdge");function remainingWait(time3){var timeSinceLastCall=time3-lastCallTime,timeSinceLastInvoke=time3-lastInvokeTime,timeWaiting=wait-timeSinceLastCall;return maxing?nativeMin4(timeWaiting,maxWait-timeSinceLastInvoke):timeWaiting}__name(remainingWait,"remainingWait");function shouldInvoke(time3){var timeSinceLastCall=time3-lastCallTime,timeSinceLastInvoke=time3-lastInvokeTime;return lastCallTime===void 0||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait}__name(shouldInvoke,"shouldInvoke");function timerExpired(){var time3=now_default();if(shouldInvoke(time3))return trailingEdge(time3);timerId=setTimeout(timerExpired,remainingWait(time3))}__name(timerExpired,"timerExpired");function trailingEdge(time3){return timerId=void 0,trailing&&lastArgs?invokeFunc(time3):(lastArgs=lastThis=void 0,result2)}__name(trailingEdge,"trailingEdge");function cancel(){timerId!==void 0&&clearTimeout(timerId),lastInvokeTime=0,lastArgs=lastCallTime=lastThis=timerId=void 0}__name(cancel,"cancel");function flush(){return timerId===void 0?result2:trailingEdge(now_default())}__name(flush,"flush");function debounced(){var time3=now_default(),isInvoking=shouldInvoke(time3);if(lastArgs=arguments,lastThis=this,lastCallTime=time3,isInvoking){if(timerId===void 0)return leadingEdge(lastCallTime);if(maxing)return clearTimeout(timerId),timerId=setTimeout(timerExpired,wait),invokeFunc(lastCallTime)}return timerId===void 0&&(timerId=setTimeout(timerExpired,wait)),result2}return __name(debounced,"debounced"),debounced.cancel=cancel,debounced.flush=flush,debounced}var FUNC_ERROR_TEXT6,nativeMax6,nativeMin4,debounce_default,init_debounce=__esm({"../../node_modules/lodash-es/debounce.js"(){init_isObject();init_now();init_toNumber();FUNC_ERROR_TEXT6="Expected a function",nativeMax6=Math.max,nativeMin4=Math.min;__name(debounce,"debounce");debounce_default=debounce}});function defaultTo(value,defaultValue){return value==null||value!==value?defaultValue:value}var defaultTo_default,init_defaultTo=__esm({"../../node_modules/lodash-es/defaultTo.js"(){__name(defaultTo,"defaultTo");defaultTo_default=defaultTo}});var objectProto21,hasOwnProperty18,defaults,defaults_default,init_defaults=__esm({"../../node_modules/lodash-es/defaults.js"(){init_baseRest();init_eq();init_isIterateeCall();init_keysIn();objectProto21=Object.prototype,hasOwnProperty18=objectProto21.hasOwnProperty,defaults=baseRest_default(function(object2,sources){object2=Object(object2);var index=-1,length=sources.length,guard=length>2?sources[2]:void 0;for(guard&&isIterateeCall_default(sources[0],sources[1],guard)&&(length=1);++index<length;)for(var source=sources[index],props=keysIn_default(source),propsIndex=-1,propsLength=props.length;++propsIndex<propsLength;){var key=props[propsIndex],value=object2[key];(value===void 0||eq_default(value,objectProto21[key])&&!hasOwnProperty18.call(object2,key))&&(object2[key]=source[key])}return object2}),defaults_default=defaults}});function assignMergeValue(object2,key,value){(value!==void 0&&!eq_default(object2[key],value)||value===void 0&&!(key in object2))&&baseAssignValue_default(object2,key,value)}var assignMergeValue_default,init_assignMergeValue=__esm({"../../node_modules/lodash-es/_assignMergeValue.js"(){init_baseAssignValue();init_eq();__name(assignMergeValue,"assignMergeValue");assignMergeValue_default=assignMergeValue}});function isArrayLikeObject(value){return isObjectLike_default(value)&&isArrayLike_default(value)}var isArrayLikeObject_default,init_isArrayLikeObject=__esm({"../../node_modules/lodash-es/isArrayLikeObject.js"(){init_isArrayLike();init_isObjectLike();__name(isArrayLikeObject,"isArrayLikeObject");isArrayLikeObject_default=isArrayLikeObject}});function safeGet(object2,key){if(!(key==="constructor"&&typeof object2[key]=="function")&&key!="__proto__")return object2[key]}var safeGet_default,init_safeGet=__esm({"../../node_modules/lodash-es/_safeGet.js"(){__name(safeGet,"safeGet");safeGet_default=safeGet}});function toPlainObject(value){return copyObject_default(value,keysIn_default(value))}var toPlainObject_default,init_toPlainObject=__esm({"../../node_modules/lodash-es/toPlainObject.js"(){init_copyObject();init_keysIn();__name(toPlainObject,"toPlainObject");toPlainObject_default=toPlainObject}});function baseMergeDeep(object2,source,key,srcIndex,mergeFunc,customizer,stack){var objValue=safeGet_default(object2,key),srcValue=safeGet_default(source,key),stacked=stack.get(srcValue);if(stacked){assignMergeValue_default(object2,key,stacked);return}var newValue=customizer?customizer(objValue,srcValue,key+"",object2,source,stack):void 0,isCommon=newValue===void 0;if(isCommon){var isArr=isArray_default(srcValue),isBuff=!isArr&&isBuffer_default(srcValue),isTyped=!isArr&&!isBuff&&isTypedArray_default(srcValue);newValue=srcValue,isArr||isBuff||isTyped?isArray_default(objValue)?newValue=objValue:isArrayLikeObject_default(objValue)?newValue=copyArray_default(objValue):isBuff?(isCommon=!1,newValue=cloneBuffer_default(srcValue,!0)):isTyped?(isCommon=!1,newValue=cloneTypedArray_default(srcValue,!0)):newValue=[]:isPlainObject_default(srcValue)||isArguments_default(srcValue)?(newValue=objValue,isArguments_default(objValue)?newValue=toPlainObject_default(objValue):(!isObject_default(objValue)||isFunction_default(objValue))&&(newValue=initCloneObject_default(srcValue))):isCommon=!1}isCommon&&(stack.set(srcValue,newValue),mergeFunc(newValue,srcValue,srcIndex,customizer,stack),stack.delete(srcValue)),assignMergeValue_default(object2,key,newValue)}var baseMergeDeep_default,init_baseMergeDeep=__esm({"../../node_modules/lodash-es/_baseMergeDeep.js"(){init_assignMergeValue();init_cloneBuffer();init_cloneTypedArray();init_copyArray();init_initCloneObject();init_isArguments();init_isArray();init_isArrayLikeObject();init_isBuffer();init_isFunction();init_isObject();init_isPlainObject();init_isTypedArray();init_safeGet();init_toPlainObject();__name(baseMergeDeep,"baseMergeDeep");baseMergeDeep_default=baseMergeDeep}});function baseMerge(object2,source,srcIndex,customizer,stack){object2!==source&&baseFor_default(source,function(srcValue,key){if(stack||(stack=new Stack_default),isObject_default(srcValue))baseMergeDeep_default(object2,source,key,srcIndex,baseMerge,customizer,stack);else{var newValue=customizer?customizer(safeGet_default(object2,key),srcValue,key+"",object2,source,stack):void 0;newValue===void 0&&(newValue=srcValue),assignMergeValue_default(object2,key,newValue)}},keysIn_default)}var baseMerge_default,init_baseMerge=__esm({"../../node_modules/lodash-es/_baseMerge.js"(){init_Stack();init_assignMergeValue();init_baseFor();init_baseMergeDeep();init_isObject();init_keysIn();init_safeGet();__name(baseMerge,"baseMerge");baseMerge_default=baseMerge}});function customDefaultsMerge(objValue,srcValue,key,object2,source,stack){return isObject_default(objValue)&&isObject_default(srcValue)&&(stack.set(srcValue,objValue),baseMerge_default(objValue,srcValue,void 0,customDefaultsMerge,stack),stack.delete(srcValue)),objValue}var customDefaultsMerge_default,init_customDefaultsMerge=__esm({"../../node_modules/lodash-es/_customDefaultsMerge.js"(){init_baseMerge();init_isObject();__name(customDefaultsMerge,"customDefaultsMerge");customDefaultsMerge_default=customDefaultsMerge}});var mergeWith,mergeWith_default,init_mergeWith=__esm({"../../node_modules/lodash-es/mergeWith.js"(){init_baseMerge();init_createAssigner();mergeWith=createAssigner_default(function(object2,source,srcIndex,customizer){baseMerge_default(object2,source,srcIndex,customizer)}),mergeWith_default=mergeWith}});var defaultsDeep,defaultsDeep_default,init_defaultsDeep=__esm({"../../node_modules/lodash-es/defaultsDeep.js"(){init_apply();init_baseRest();init_customDefaultsMerge();init_mergeWith();defaultsDeep=baseRest_default(function(args){return args.push(void 0,customDefaultsMerge_default),apply_default(mergeWith_default,void 0,args)}),defaultsDeep_default=defaultsDeep}});function baseDelay(func,wait,args){if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT7);return setTimeout(function(){func.apply(void 0,args)},wait)}var FUNC_ERROR_TEXT7,baseDelay_default,init_baseDelay=__esm({"../../node_modules/lodash-es/_baseDelay.js"(){FUNC_ERROR_TEXT7="Expected a function";__name(baseDelay,"baseDelay");baseDelay_default=baseDelay}});var defer,defer_default,init_defer=__esm({"../../node_modules/lodash-es/defer.js"(){init_baseDelay();init_baseRest();defer=baseRest_default(function(func,args){return baseDelay_default(func,1,args)}),defer_default=defer}});var delay,delay_default,init_delay=__esm({"../../node_modules/lodash-es/delay.js"(){init_baseDelay();init_baseRest();init_toNumber();delay=baseRest_default(function(func,wait,args){return baseDelay_default(func,toNumber_default(wait)||0,args)}),delay_default=delay}});function arrayIncludesWith(array2,value,comparator){for(var index=-1,length=array2==null?0:array2.length;++index<length;)if(comparator(value,array2[index]))return!0;return!1}var arrayIncludesWith_default,init_arrayIncludesWith=__esm({"../../node_modules/lodash-es/_arrayIncludesWith.js"(){__name(arrayIncludesWith,"arrayIncludesWith");arrayIncludesWith_default=arrayIncludesWith}});function baseDifference(array2,values2,iteratee2,comparator){var index=-1,includes2=arrayIncludes_default,isCommon=!0,length=array2.length,result2=[],valuesLength=values2.length;if(!length)return result2;iteratee2&&(values2=arrayMap_default(values2,baseUnary_default(iteratee2))),comparator?(includes2=arrayIncludesWith_default,isCommon=!1):values2.length>=LARGE_ARRAY_SIZE2&&(includes2=cacheHas_default,isCommon=!1,values2=new SetCache_default(values2));outer:for(;++index<length;){var value=array2[index],computed=iteratee2==null?value:iteratee2(value);if(value=comparator||value!==0?value:0,isCommon&&computed===computed){for(var valuesIndex=valuesLength;valuesIndex--;)if(values2[valuesIndex]===computed)continue outer;result2.push(value)}else includes2(values2,computed,comparator)||result2.push(value)}return result2}var LARGE_ARRAY_SIZE2,baseDifference_default,init_baseDifference=__esm({"../../node_modules/lodash-es/_baseDifference.js"(){init_SetCache();init_arrayIncludes();init_arrayIncludesWith();init_arrayMap();init_baseUnary();init_cacheHas();LARGE_ARRAY_SIZE2=200;__name(baseDifference,"baseDifference");baseDifference_default=baseDifference}});var difference,difference_default,init_difference=__esm({"../../node_modules/lodash-es/difference.js"(){init_baseDifference();init_baseFlatten();init_baseRest();init_isArrayLikeObject();difference=baseRest_default(function(array2,values2){return isArrayLikeObject_default(array2)?baseDifference_default(array2,baseFlatten_default(values2,1,isArrayLikeObject_default,!0)):[]}),difference_default=difference}});function last(array2){var length=array2==null?0:array2.length;return length?array2[length-1]:void 0}var last_default,init_last=__esm({"../../node_modules/lodash-es/last.js"(){__name(last,"last");last_default=last}});var differenceBy,differenceBy_default,init_differenceBy=__esm({"../../node_modules/lodash-es/differenceBy.js"(){init_baseDifference();init_baseFlatten();init_baseIteratee();init_baseRest();init_isArrayLikeObject();init_last();differenceBy=baseRest_default(function(array2,values2){var iteratee2=last_default(values2);return isArrayLikeObject_default(iteratee2)&&(iteratee2=void 0),isArrayLikeObject_default(array2)?baseDifference_default(array2,baseFlatten_default(values2,1,isArrayLikeObject_default,!0),baseIteratee_default(iteratee2,2)):[]}),differenceBy_default=differenceBy}});var differenceWith,differenceWith_default,init_differenceWith=__esm({"../../node_modules/lodash-es/differenceWith.js"(){init_baseDifference();init_baseFlatten();init_baseRest();init_isArrayLikeObject();init_last();differenceWith=baseRest_default(function(array2,values2){var comparator=last_default(values2);return isArrayLikeObject_default(comparator)&&(comparator=void 0),isArrayLikeObject_default(array2)?baseDifference_default(array2,baseFlatten_default(values2,1,isArrayLikeObject_default,!0),void 0,comparator):[]}),differenceWith_default=differenceWith}});var divide,divide_default,init_divide=__esm({"../../node_modules/lodash-es/divide.js"(){init_createMathOperation();divide=createMathOperation_default(function(dividend,divisor){return dividend/divisor},1),divide_default=divide}});function drop(array2,n2,guard){var length=array2==null?0:array2.length;return length?(n2=guard||n2===void 0?1:toInteger_default(n2),baseSlice_default(array2,n2<0?0:n2,length)):[]}var drop_default,init_drop=__esm({"../../node_modules/lodash-es/drop.js"(){init_baseSlice();init_toInteger();__name(drop,"drop");drop_default=drop}});function dropRight(array2,n2,guard){var length=array2==null?0:array2.length;return length?(n2=guard||n2===void 0?1:toInteger_default(n2),n2=length-n2,baseSlice_default(array2,0,n2<0?0:n2)):[]}var dropRight_default,init_dropRight=__esm({"../../node_modules/lodash-es/dropRight.js"(){init_baseSlice();init_toInteger();__name(dropRight,"dropRight");dropRight_default=dropRight}});function baseWhile(array2,predicate,isDrop,fromRight){for(var length=array2.length,index=fromRight?length:-1;(fromRight?index--:++index<length)&&predicate(array2[index],index,array2););return isDrop?baseSlice_default(array2,fromRight?0:index,fromRight?index+1:length):baseSlice_default(array2,fromRight?index+1:0,fromRight?length:index)}var baseWhile_default,init_baseWhile=__esm({"../../node_modules/lodash-es/_baseWhile.js"(){init_baseSlice();__name(baseWhile,"baseWhile");baseWhile_default=baseWhile}});function dropRightWhile(array2,predicate){return array2&&array2.length?baseWhile_default(array2,baseIteratee_default(predicate,3),!0,!0):[]}var dropRightWhile_default,init_dropRightWhile=__esm({"../../node_modules/lodash-es/dropRightWhile.js"(){init_baseIteratee();init_baseWhile();__name(dropRightWhile,"dropRightWhile");dropRightWhile_default=dropRightWhile}});function dropWhile(array2,predicate){return array2&&array2.length?baseWhile_default(array2,baseIteratee_default(predicate,3),!0):[]}var dropWhile_default,init_dropWhile=__esm({"../../node_modules/lodash-es/dropWhile.js"(){init_baseIteratee();init_baseWhile();__name(dropWhile,"dropWhile");dropWhile_default=dropWhile}});function castFunction(value){return typeof value=="function"?value:identity_default}var castFunction_default,init_castFunction=__esm({"../../node_modules/lodash-es/_castFunction.js"(){init_identity();__name(castFunction,"castFunction");castFunction_default=castFunction}});function forEach(collection,iteratee2){var func=isArray_default(collection)?arrayEach_default:baseEach_default;return func(collection,castFunction_default(iteratee2))}var forEach_default,init_forEach=__esm({"../../node_modules/lodash-es/forEach.js"(){init_arrayEach();init_baseEach();init_castFunction();init_isArray();__name(forEach,"forEach");forEach_default=forEach}});var init_each=__esm({"../../node_modules/lodash-es/each.js"(){init_forEach()}});function arrayEachRight(array2,iteratee2){for(var length=array2==null?0:array2.length;length--&&iteratee2(array2[length],length,array2)!==!1;);return array2}var arrayEachRight_default,init_arrayEachRight=__esm({"../../node_modules/lodash-es/_arrayEachRight.js"(){__name(arrayEachRight,"arrayEachRight");arrayEachRight_default=arrayEachRight}});var baseForRight,baseForRight_default,init_baseForRight=__esm({"../../node_modules/lodash-es/_baseForRight.js"(){init_createBaseFor();baseForRight=createBaseFor_default(!0),baseForRight_default=baseForRight}});function baseForOwnRight(object2,iteratee2){return object2&&baseForRight_default(object2,iteratee2,keys_default)}var baseForOwnRight_default,init_baseForOwnRight=__esm({"../../node_modules/lodash-es/_baseForOwnRight.js"(){init_baseForRight();init_keys();__name(baseForOwnRight,"baseForOwnRight");baseForOwnRight_default=baseForOwnRight}});var baseEachRight,baseEachRight_default,init_baseEachRight=__esm({"../../node_modules/lodash-es/_baseEachRight.js"(){init_baseForOwnRight();init_createBaseEach();baseEachRight=createBaseEach_default(baseForOwnRight_default,!0),baseEachRight_default=baseEachRight}});function forEachRight(collection,iteratee2){var func=isArray_default(collection)?arrayEachRight_default:baseEachRight_default;return func(collection,castFunction_default(iteratee2))}var forEachRight_default,init_forEachRight=__esm({"../../node_modules/lodash-es/forEachRight.js"(){init_arrayEachRight();init_baseEachRight();init_castFunction();init_isArray();__name(forEachRight,"forEachRight");forEachRight_default=forEachRight}});var init_eachRight=__esm({"../../node_modules/lodash-es/eachRight.js"(){init_forEachRight()}});function endsWith(string4,target,position){string4=toString_default(string4),target=baseToString_default(target);var length=string4.length;position=position===void 0?length:baseClamp_default(toInteger_default(position),0,length);var end=position;return position-=target.length,position>=0&&string4.slice(position,end)==target}var endsWith_default,init_endsWith=__esm({"../../node_modules/lodash-es/endsWith.js"(){init_baseClamp();init_baseToString();init_toInteger();init_toString();__name(endsWith,"endsWith");endsWith_default=endsWith}});function baseToPairs(object2,props){return arrayMap_default(props,function(key){return[key,object2[key]]})}var baseToPairs_default,init_baseToPairs=__esm({"../../node_modules/lodash-es/_baseToPairs.js"(){init_arrayMap();__name(baseToPairs,"baseToPairs");baseToPairs_default=baseToPairs}});function setToPairs(set3){var index=-1,result2=Array(set3.size);return set3.forEach(function(value){result2[++index]=[value,value]}),result2}var setToPairs_default,init_setToPairs=__esm({"../../node_modules/lodash-es/_setToPairs.js"(){__name(setToPairs,"setToPairs");setToPairs_default=setToPairs}});function createToPairs(keysFunc){return function(object2){var tag=getTag_default(object2);return tag==mapTag7?mapToArray_default(object2):tag==setTag7?setToPairs_default(object2):baseToPairs_default(object2,keysFunc(object2))}}var mapTag7,setTag7,createToPairs_default,init_createToPairs=__esm({"../../node_modules/lodash-es/_createToPairs.js"(){init_baseToPairs();init_getTag();init_mapToArray();init_setToPairs();mapTag7="[object Map]",setTag7="[object Set]";__name(createToPairs,"createToPairs");createToPairs_default=createToPairs}});var toPairs,toPairs_default,init_toPairs=__esm({"../../node_modules/lodash-es/toPairs.js"(){init_createToPairs();init_keys();toPairs=createToPairs_default(keys_default),toPairs_default=toPairs}});var init_entries=__esm({"../../node_modules/lodash-es/entries.js"(){init_toPairs()}});var toPairsIn,toPairsIn_default,init_toPairsIn=__esm({"../../node_modules/lodash-es/toPairsIn.js"(){init_createToPairs();init_keysIn();toPairsIn=createToPairs_default(keysIn_default),toPairsIn_default=toPairsIn}});var init_entriesIn=__esm({"../../node_modules/lodash-es/entriesIn.js"(){init_toPairsIn()}});var htmlEscapes,escapeHtmlChar,escapeHtmlChar_default,init_escapeHtmlChar=__esm({"../../node_modules/lodash-es/_escapeHtmlChar.js"(){init_basePropertyOf();htmlEscapes={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},escapeHtmlChar=basePropertyOf_default(htmlEscapes),escapeHtmlChar_default=escapeHtmlChar}});function escape(string4){return string4=toString_default(string4),string4&&reHasUnescapedHtml.test(string4)?string4.replace(reUnescapedHtml,escapeHtmlChar_default):string4}var reUnescapedHtml,reHasUnescapedHtml,escape_default,init_escape=__esm({"../../node_modules/lodash-es/escape.js"(){init_escapeHtmlChar();init_toString();reUnescapedHtml=/[&<>"']/g,reHasUnescapedHtml=RegExp(reUnescapedHtml.source);__name(escape,"escape");escape_default=escape}});function escapeRegExp2(string4){return string4=toString_default(string4),string4&&reHasRegExpChar.test(string4)?string4.replace(reRegExpChar2,"\\$&"):string4}var reRegExpChar2,reHasRegExpChar,escapeRegExp_default,init_escapeRegExp=__esm({"../../node_modules/lodash-es/escapeRegExp.js"(){init_toString();reRegExpChar2=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar2.source);__name(escapeRegExp2,"escapeRegExp");escapeRegExp_default=escapeRegExp2}});function arrayEvery(array2,predicate){for(var index=-1,length=array2==null?0:array2.length;++index<length;)if(!predicate(array2[index],index,array2))return!1;return!0}var arrayEvery_default,init_arrayEvery=__esm({"../../node_modules/lodash-es/_arrayEvery.js"(){__name(arrayEvery,"arrayEvery");arrayEvery_default=arrayEvery}});function baseEvery(collection,predicate){var result2=!0;return baseEach_default(collection,function(value,index,collection2){return result2=!!predicate(value,index,collection2),result2}),result2}var baseEvery_default,init_baseEvery=__esm({"../../node_modules/lodash-es/_baseEvery.js"(){init_baseEach();__name(baseEvery,"baseEvery");baseEvery_default=baseEvery}});function every(collection,predicate,guard){var func=isArray_default(collection)?arrayEvery_default:baseEvery_default;return guard&&isIterateeCall_default(collection,predicate,guard)&&(predicate=void 0),func(collection,baseIteratee_default(predicate,3))}var every_default,init_every=__esm({"../../node_modules/lodash-es/every.js"(){init_arrayEvery();init_baseEvery();init_baseIteratee();init_isArray();init_isIterateeCall();__name(every,"every");every_default=every}});var init_extend=__esm({"../../node_modules/lodash-es/extend.js"(){init_assignIn()}});var init_extendWith=__esm({"../../node_modules/lodash-es/extendWith.js"(){init_assignInWith()}});function toLength(value){return value?baseClamp_default(toInteger_default(value),0,MAX_ARRAY_LENGTH2):0}var MAX_ARRAY_LENGTH2,toLength_default,init_toLength=__esm({"../../node_modules/lodash-es/toLength.js"(){init_baseClamp();init_toInteger();MAX_ARRAY_LENGTH2=4294967295;__name(toLength,"toLength");toLength_default=toLength}});function baseFill(array2,value,start,end){var length=array2.length;for(start=toInteger_default(start),start<0&&(start=-start>length?0:length+start),end=end===void 0||end>length?length:toInteger_default(end),end<0&&(end+=length),end=start>end?0:toLength_default(end);start<end;)array2[start++]=value;return array2}var baseFill_default,init_baseFill=__esm({"../../node_modules/lodash-es/_baseFill.js"(){init_toInteger();init_toLength();__name(baseFill,"baseFill");baseFill_default=baseFill}});function fill(array2,value,start,end){var length=array2==null?0:array2.length;return length?(start&&typeof start!="number"&&isIterateeCall_default(array2,value,start)&&(start=0,end=length),baseFill_default(array2,value,start,end)):[]}var fill_default,init_fill=__esm({"../../node_modules/lodash-es/fill.js"(){init_baseFill();init_isIterateeCall();__name(fill,"fill");fill_default=fill}});function baseFilter(collection,predicate){var result2=[];return baseEach_default(collection,function(value,index,collection2){predicate(value,index,collection2)&&result2.push(value)}),result2}var baseFilter_default,init_baseFilter=__esm({"../../node_modules/lodash-es/_baseFilter.js"(){init_baseEach();__name(baseFilter,"baseFilter");baseFilter_default=baseFilter}});function filter(collection,predicate){var func=isArray_default(collection)?arrayFilter_default:baseFilter_default;return func(collection,baseIteratee_default(predicate,3))}var filter_default,init_filter=__esm({"../../node_modules/lodash-es/filter.js"(){init_arrayFilter();init_baseFilter();init_baseIteratee();init_isArray();__name(filter,"filter");filter_default=filter}});function createFind(findIndexFunc){return function(collection,predicate,fromIndex){var iterable=Object(collection);if(!isArrayLike_default(collection)){var iteratee2=baseIteratee_default(predicate,3);collection=keys_default(collection),predicate=__name(function(key){return iteratee2(iterable[key],key,iterable)},"predicate")}var index=findIndexFunc(collection,predicate,fromIndex);return index>-1?iterable[iteratee2?collection[index]:index]:void 0}}var createFind_default,init_createFind=__esm({"../../node_modules/lodash-es/_createFind.js"(){init_baseIteratee();init_isArrayLike();init_keys();__name(createFind,"createFind");createFind_default=createFind}});function findIndex(array2,predicate,fromIndex){var length=array2==null?0:array2.length;if(!length)return-1;var index=fromIndex==null?0:toInteger_default(fromIndex);return index<0&&(index=nativeMax7(length+index,0)),baseFindIndex_default(array2,baseIteratee_default(predicate,3),index)}var nativeMax7,findIndex_default,init_findIndex=__esm({"../../node_modules/lodash-es/findIndex.js"(){init_baseFindIndex();init_baseIteratee();init_toInteger();nativeMax7=Math.max;__name(findIndex,"findIndex");findIndex_default=findIndex}});var find,find_default,init_find=__esm({"../../node_modules/lodash-es/find.js"(){init_createFind();init_findIndex();find=createFind_default(findIndex_default),find_default=find}});function baseFindKey(collection,predicate,eachFunc){var result2;return eachFunc(collection,function(value,key,collection2){if(predicate(value,key,collection2))return result2=key,!1}),result2}var baseFindKey_default,init_baseFindKey=__esm({"../../node_modules/lodash-es/_baseFindKey.js"(){__name(baseFindKey,"baseFindKey");baseFindKey_default=baseFindKey}});function findKey(object2,predicate){return baseFindKey_default(object2,baseIteratee_default(predicate,3),baseForOwn_default)}var findKey_default,init_findKey=__esm({"../../node_modules/lodash-es/findKey.js"(){init_baseFindKey();init_baseForOwn();init_baseIteratee();__name(findKey,"findKey");findKey_default=findKey}});function findLastIndex(array2,predicate,fromIndex){var length=array2==null?0:array2.length;if(!length)return-1;var index=length-1;return fromIndex!==void 0&&(index=toInteger_default(fromIndex),index=fromIndex<0?nativeMax8(length+index,0):nativeMin5(index,length-1)),baseFindIndex_default(array2,baseIteratee_default(predicate,3),index,!0)}var nativeMax8,nativeMin5,findLastIndex_default,init_findLastIndex=__esm({"../../node_modules/lodash-es/findLastIndex.js"(){init_baseFindIndex();init_baseIteratee();init_toInteger();nativeMax8=Math.max,nativeMin5=Math.min;__name(findLastIndex,"findLastIndex");findLastIndex_default=findLastIndex}});var findLast,findLast_default,init_findLast=__esm({"../../node_modules/lodash-es/findLast.js"(){init_createFind();init_findLastIndex();findLast=createFind_default(findLastIndex_default),findLast_default=findLast}});function findLastKey(object2,predicate){return baseFindKey_default(object2,baseIteratee_default(predicate,3),baseForOwnRight_default)}var findLastKey_default,init_findLastKey=__esm({"../../node_modules/lodash-es/findLastKey.js"(){init_baseFindKey();init_baseForOwnRight();init_baseIteratee();__name(findLastKey,"findLastKey");findLastKey_default=findLastKey}});function head(array2){return array2&&array2.length?array2[0]:void 0}var head_default,init_head=__esm({"../../node_modules/lodash-es/head.js"(){__name(head,"head");head_default=head}});var init_first=__esm({"../../node_modules/lodash-es/first.js"(){init_head()}});function baseMap(collection,iteratee2){var index=-1,result2=isArrayLike_default(collection)?Array(collection.length):[];return baseEach_default(collection,function(value,key,collection2){result2[++index]=iteratee2(value,key,collection2)}),result2}var baseMap_default,init_baseMap=__esm({"../../node_modules/lodash-es/_baseMap.js"(){init_baseEach();init_isArrayLike();__name(baseMap,"baseMap");baseMap_default=baseMap}});function map(collection,iteratee2){var func=isArray_default(collection)?arrayMap_default:baseMap_default;return func(collection,baseIteratee_default(iteratee2,3))}var map_default,init_map=__esm({"../../node_modules/lodash-es/map.js"(){init_arrayMap();init_baseIteratee();init_baseMap();init_isArray();__name(map,"map");map_default=map}});function flatMap(collection,iteratee2){return baseFlatten_default(map_default(collection,iteratee2),1)}var flatMap_default,init_flatMap=__esm({"../../node_modules/lodash-es/flatMap.js"(){init_baseFlatten();init_map();__name(flatMap,"flatMap");flatMap_default=flatMap}});function flatMapDeep(collection,iteratee2){return baseFlatten_default(map_default(collection,iteratee2),INFINITY4)}var INFINITY4,flatMapDeep_default,init_flatMapDeep=__esm({"../../node_modules/lodash-es/flatMapDeep.js"(){init_baseFlatten();init_map();INFINITY4=1/0;__name(flatMapDeep,"flatMapDeep");flatMapDeep_default=flatMapDeep}});function flatMapDepth(collection,iteratee2,depth){return depth=depth===void 0?1:toInteger_default(depth),baseFlatten_default(map_default(collection,iteratee2),depth)}var flatMapDepth_default,init_flatMapDepth=__esm({"../../node_modules/lodash-es/flatMapDepth.js"(){init_baseFlatten();init_map();init_toInteger();__name(flatMapDepth,"flatMapDepth");flatMapDepth_default=flatMapDepth}});function flattenDeep(array2){var length=array2==null?0:array2.length;return length?baseFlatten_default(array2,INFINITY5):[]}var INFINITY5,flattenDeep_default,init_flattenDeep=__esm({"../../node_modules/lodash-es/flattenDeep.js"(){init_baseFlatten();INFINITY5=1/0;__name(flattenDeep,"flattenDeep");flattenDeep_default=flattenDeep}});function flattenDepth(array2,depth){var length=array2==null?0:array2.length;return length?(depth=depth===void 0?1:toInteger_default(depth),baseFlatten_default(array2,depth)):[]}var flattenDepth_default,init_flattenDepth=__esm({"../../node_modules/lodash-es/flattenDepth.js"(){init_baseFlatten();init_toInteger();__name(flattenDepth,"flattenDepth");flattenDepth_default=flattenDepth}});function flip(func){return createWrap_default(func,WRAP_FLIP_FLAG3)}var WRAP_FLIP_FLAG3,flip_default,init_flip=__esm({"../../node_modules/lodash-es/flip.js"(){init_createWrap();WRAP_FLIP_FLAG3=512;__name(flip,"flip");flip_default=flip}});var floor,floor_default,init_floor=__esm({"../../node_modules/lodash-es/floor.js"(){init_createRound();floor=createRound_default("floor"),floor_default=floor}});function createFlow(fromRight){return flatRest_default(function(funcs){var length=funcs.length,index=length,prereq=LodashWrapper_default.prototype.thru;for(fromRight&&funcs.reverse();index--;){var func=funcs[index];if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT8);if(prereq&&!wrapper&&getFuncName_default(func)=="wrapper")var wrapper=new LodashWrapper_default([],!0)}for(index=wrapper?index:length;++index<length;){func=funcs[index];var funcName=getFuncName_default(func),data=funcName=="wrapper"?getData_default(func):void 0;data&&isLaziable_default(data[0])&&data[1]==(WRAP_ARY_FLAG5|WRAP_CURRY_FLAG7|WRAP_PARTIAL_FLAG6|WRAP_REARG_FLAG3)&&!data[4].length&&data[9]==1?wrapper=wrapper[getFuncName_default(data[0])].apply(wrapper,data[3]):wrapper=func.length==1&&isLaziable_default(func)?wrapper[funcName]():wrapper.thru(func)}return function(){var args=arguments,value=args[0];if(wrapper&&args.length==1&&isArray_default(value))return wrapper.plant(value).value();for(var index2=0,result2=length?funcs[index2].apply(this,args):value;++index2<length;)result2=funcs[index2].call(this,result2);return result2}})}var FUNC_ERROR_TEXT8,WRAP_CURRY_FLAG7,WRAP_PARTIAL_FLAG6,WRAP_ARY_FLAG5,WRAP_REARG_FLAG3,createFlow_default,init_createFlow=__esm({"../../node_modules/lodash-es/_createFlow.js"(){init_LodashWrapper();init_flatRest();init_getData();init_getFuncName();init_isArray();init_isLaziable();FUNC_ERROR_TEXT8="Expected a function",WRAP_CURRY_FLAG7=8,WRAP_PARTIAL_FLAG6=32,WRAP_ARY_FLAG5=128,WRAP_REARG_FLAG3=256;__name(createFlow,"createFlow");createFlow_default=createFlow}});var flow,flow_default,init_flow=__esm({"../../node_modules/lodash-es/flow.js"(){init_createFlow();flow=createFlow_default(),flow_default=flow}});var flowRight,flowRight_default,init_flowRight=__esm({"../../node_modules/lodash-es/flowRight.js"(){init_createFlow();flowRight=createFlow_default(!0),flowRight_default=flowRight}});function forIn(object2,iteratee2){return object2==null?object2:baseFor_default(object2,castFunction_default(iteratee2),keysIn_default)}var forIn_default,init_forIn=__esm({"../../node_modules/lodash-es/forIn.js"(){init_baseFor();init_castFunction();init_keysIn();__name(forIn,"forIn");forIn_default=forIn}});function forInRight(object2,iteratee2){return object2==null?object2:baseForRight_default(object2,castFunction_default(iteratee2),keysIn_default)}var forInRight_default,init_forInRight=__esm({"../../node_modules/lodash-es/forInRight.js"(){init_baseForRight();init_castFunction();init_keysIn();__name(forInRight,"forInRight");forInRight_default=forInRight}});function forOwn(object2,iteratee2){return object2&&baseForOwn_default(object2,castFunction_default(iteratee2))}var forOwn_default,init_forOwn=__esm({"../../node_modules/lodash-es/forOwn.js"(){init_baseForOwn();init_castFunction();__name(forOwn,"forOwn");forOwn_default=forOwn}});function forOwnRight(object2,iteratee2){return object2&&baseForOwnRight_default(object2,castFunction_default(iteratee2))}var forOwnRight_default,init_forOwnRight=__esm({"../../node_modules/lodash-es/forOwnRight.js"(){init_baseForOwnRight();init_castFunction();__name(forOwnRight,"forOwnRight");forOwnRight_default=forOwnRight}});function fromPairs(pairs){for(var index=-1,length=pairs==null?0:pairs.length,result2={};++index<length;){var pair=pairs[index];baseAssignValue_default(result2,pair[0],pair[1])}return result2}var fromPairs_default,init_fromPairs=__esm({"../../node_modules/lodash-es/fromPairs.js"(){init_baseAssignValue();__name(fromPairs,"fromPairs");fromPairs_default=fromPairs}});function baseFunctions(object2,props){return arrayFilter_default(props,function(key){return isFunction_default(object2[key])})}var baseFunctions_default,init_baseFunctions=__esm({"../../node_modules/lodash-es/_baseFunctions.js"(){init_arrayFilter();init_isFunction();__name(baseFunctions,"baseFunctions");baseFunctions_default=baseFunctions}});function functions(object2){return object2==null?[]:baseFunctions_default(object2,keys_default(object2))}var functions_default,init_functions=__esm({"../../node_modules/lodash-es/functions.js"(){init_baseFunctions();init_keys();__name(functions,"functions");functions_default=functions}});function functionsIn(object2){return object2==null?[]:baseFunctions_default(object2,keysIn_default(object2))}var functionsIn_default,init_functionsIn=__esm({"../../node_modules/lodash-es/functionsIn.js"(){init_baseFunctions();init_keysIn();__name(functionsIn,"functionsIn");functionsIn_default=functionsIn}});var objectProto22,hasOwnProperty19,groupBy,groupBy_default,init_groupBy=__esm({"../../node_modules/lodash-es/groupBy.js"(){init_baseAssignValue();init_createAggregator();objectProto22=Object.prototype,hasOwnProperty19=objectProto22.hasOwnProperty,groupBy=createAggregator_default(function(result2,value,key){hasOwnProperty19.call(result2,key)?result2[key].push(value):baseAssignValue_default(result2,key,[value])}),groupBy_default=groupBy}});function baseGt(value,other){return value>other}var baseGt_default,init_baseGt=__esm({"../../node_modules/lodash-es/_baseGt.js"(){__name(baseGt,"baseGt");baseGt_default=baseGt}});function createRelationalOperation(operator){return function(value,other){return typeof value=="string"&&typeof other=="string"||(value=toNumber_default(value),other=toNumber_default(other)),operator(value,other)}}var createRelationalOperation_default,init_createRelationalOperation=__esm({"../../node_modules/lodash-es/_createRelationalOperation.js"(){init_toNumber();__name(createRelationalOperation,"createRelationalOperation");createRelationalOperation_default=createRelationalOperation}});var gt,gt_default,init_gt=__esm({"../../node_modules/lodash-es/gt.js"(){init_baseGt();init_createRelationalOperation();gt=createRelationalOperation_default(baseGt_default),gt_default=gt}});var gte,gte_default,init_gte=__esm({"../../node_modules/lodash-es/gte.js"(){init_createRelationalOperation();gte=createRelationalOperation_default(function(value,other){return value>=other}),gte_default=gte}});function baseHas(object2,key){return object2!=null&&hasOwnProperty20.call(object2,key)}var objectProto23,hasOwnProperty20,baseHas_default,init_baseHas=__esm({"../../node_modules/lodash-es/_baseHas.js"(){objectProto23=Object.prototype,hasOwnProperty20=objectProto23.hasOwnProperty;__name(baseHas,"baseHas");baseHas_default=baseHas}});function has(object2,path10){return object2!=null&&hasPath_default(object2,path10,baseHas_default)}var has_default,init_has=__esm({"../../node_modules/lodash-es/has.js"(){init_baseHas();init_hasPath();__name(has,"has");has_default=has}});function baseInRange(number4,start,end){return number4>=nativeMin6(start,end)&&number4<nativeMax9(start,end)}var nativeMax9,nativeMin6,baseInRange_default,init_baseInRange=__esm({"../../node_modules/lodash-es/_baseInRange.js"(){nativeMax9=Math.max,nativeMin6=Math.min;__name(baseInRange,"baseInRange");baseInRange_default=baseInRange}});function inRange2(number4,start,end){return start=toFinite_default(start),end===void 0?(end=start,start=0):end=toFinite_default(end),number4=toNumber_default(number4),baseInRange_default(number4,start,end)}var inRange_default,init_inRange=__esm({"../../node_modules/lodash-es/inRange.js"(){init_baseInRange();init_toFinite();init_toNumber();__name(inRange2,"inRange");inRange_default=inRange2}});function isString(value){return typeof value=="string"||!isArray_default(value)&&isObjectLike_default(value)&&baseGetTag_default(value)==stringTag5}var stringTag5,isString_default,init_isString=__esm({"../../node_modules/lodash-es/isString.js"(){init_baseGetTag();init_isArray();init_isObjectLike();stringTag5="[object String]";__name(isString,"isString");isString_default=isString}});function baseValues(object2,props){return arrayMap_default(props,function(key){return object2[key]})}var baseValues_default,init_baseValues=__esm({"../../node_modules/lodash-es/_baseValues.js"(){init_arrayMap();__name(baseValues,"baseValues");baseValues_default=baseValues}});function values(object2){return object2==null?[]:baseValues_default(object2,keys_default(object2))}var values_default,init_values=__esm({"../../node_modules/lodash-es/values.js"(){init_baseValues();init_keys();__name(values,"values");values_default=values}});function includes(collection,value,fromIndex,guard){collection=isArrayLike_default(collection)?collection:values_default(collection),fromIndex=fromIndex&&!guard?toInteger_default(fromIndex):0;var length=collection.length;return fromIndex<0&&(fromIndex=nativeMax10(length+fromIndex,0)),isString_default(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf_default(collection,value,fromIndex)>-1}var nativeMax10,includes_default,init_includes=__esm({"../../node_modules/lodash-es/includes.js"(){init_baseIndexOf();init_isArrayLike();init_isString();init_toInteger();init_values();nativeMax10=Math.max;__name(includes,"includes");includes_default=includes}});function indexOf(array2,value,fromIndex){var length=array2==null?0:array2.length;if(!length)return-1;var index=fromIndex==null?0:toInteger_default(fromIndex);return index<0&&(index=nativeMax11(length+index,0)),baseIndexOf_default(array2,value,index)}var nativeMax11,indexOf_default,init_indexOf=__esm({"../../node_modules/lodash-es/indexOf.js"(){init_baseIndexOf();init_toInteger();nativeMax11=Math.max;__name(indexOf,"indexOf");indexOf_default=indexOf}});function initial(array2){var length=array2==null?0:array2.length;return length?baseSlice_default(array2,0,-1):[]}var initial_default,init_initial=__esm({"../../node_modules/lodash-es/initial.js"(){init_baseSlice();__name(initial,"initial");initial_default=initial}});function baseIntersection(arrays,iteratee2,comparator){for(var includes2=comparator?arrayIncludesWith_default:arrayIncludes_default,length=arrays[0].length,othLength=arrays.length,othIndex=othLength,caches=Array(othLength),maxLength=1/0,result2=[];othIndex--;){var array2=arrays[othIndex];othIndex&&iteratee2&&(array2=arrayMap_default(array2,baseUnary_default(iteratee2))),maxLength=nativeMin7(array2.length,maxLength),caches[othIndex]=!comparator&&(iteratee2||length>=120&&array2.length>=120)?new SetCache_default(othIndex&&array2):void 0}array2=arrays[0];var index=-1,seen=caches[0];outer:for(;++index<length&&result2.length<maxLength;){var value=array2[index],computed=iteratee2?iteratee2(value):value;if(value=comparator||value!==0?value:0,!(seen?cacheHas_default(seen,computed):includes2(result2,computed,comparator))){for(othIndex=othLength;--othIndex;){var cache2=caches[othIndex];if(!(cache2?cacheHas_default(cache2,computed):includes2(arrays[othIndex],computed,comparator)))continue outer}seen&&seen.push(computed),result2.push(value)}}return result2}var nativeMin7,baseIntersection_default,init_baseIntersection=__esm({"../../node_modules/lodash-es/_baseIntersection.js"(){init_SetCache();init_arrayIncludes();init_arrayIncludesWith();init_arrayMap();init_baseUnary();init_cacheHas();nativeMin7=Math.min;__name(baseIntersection,"baseIntersection");baseIntersection_default=baseIntersection}});function castArrayLikeObject(value){return isArrayLikeObject_default(value)?value:[]}var castArrayLikeObject_default,init_castArrayLikeObject=__esm({"../../node_modules/lodash-es/_castArrayLikeObject.js"(){init_isArrayLikeObject();__name(castArrayLikeObject,"castArrayLikeObject");castArrayLikeObject_default=castArrayLikeObject}});var intersection,intersection_default,init_intersection=__esm({"../../node_modules/lodash-es/intersection.js"(){init_arrayMap();init_baseIntersection();init_baseRest();init_castArrayLikeObject();intersection=baseRest_default(function(arrays){var mapped=arrayMap_default(arrays,castArrayLikeObject_default);return mapped.length&&mapped[0]===arrays[0]?baseIntersection_default(mapped):[]}),intersection_default=intersection}});var intersectionBy,intersectionBy_default,init_intersectionBy=__esm({"../../node_modules/lodash-es/intersectionBy.js"(){init_arrayMap();init_baseIntersection();init_baseIteratee();init_baseRest();init_castArrayLikeObject();init_last();intersectionBy=baseRest_default(function(arrays){var iteratee2=last_default(arrays),mapped=arrayMap_default(arrays,castArrayLikeObject_default);return iteratee2===last_default(mapped)?iteratee2=void 0:mapped.pop(),mapped.length&&mapped[0]===arrays[0]?baseIntersection_default(mapped,baseIteratee_default(iteratee2,2)):[]}),intersectionBy_default=intersectionBy}});var intersectionWith,intersectionWith_default,init_intersectionWith=__esm({"../../node_modules/lodash-es/intersectionWith.js"(){init_arrayMap();init_baseIntersection();init_baseRest();init_castArrayLikeObject();init_last();intersectionWith=baseRest_default(function(arrays){var comparator=last_default(arrays),mapped=arrayMap_default(arrays,castArrayLikeObject_default);return comparator=typeof comparator=="function"?comparator:void 0,comparator&&mapped.pop(),mapped.length&&mapped[0]===arrays[0]?baseIntersection_default(mapped,void 0,comparator):[]}),intersectionWith_default=intersectionWith}});function baseInverter(object2,setter,iteratee2,accumulator){return baseForOwn_default(object2,function(value,key,object3){setter(accumulator,iteratee2(value),key,object3)}),accumulator}var baseInverter_default,init_baseInverter=__esm({"../../node_modules/lodash-es/_baseInverter.js"(){init_baseForOwn();__name(baseInverter,"baseInverter");baseInverter_default=baseInverter}});function createInverter(setter,toIteratee){return function(object2,iteratee2){return baseInverter_default(object2,setter,toIteratee(iteratee2),{})}}var createInverter_default,init_createInverter=__esm({"../../node_modules/lodash-es/_createInverter.js"(){init_baseInverter();__name(createInverter,"createInverter");createInverter_default=createInverter}});var objectProto24,nativeObjectToString3,invert,invert_default,init_invert=__esm({"../../node_modules/lodash-es/invert.js"(){init_constant();init_createInverter();init_identity();objectProto24=Object.prototype,nativeObjectToString3=objectProto24.toString,invert=createInverter_default(function(result2,value,key){value!=null&&typeof value.toString!="function"&&(value=nativeObjectToString3.call(value)),result2[value]=key},constant_default(identity_default)),invert_default=invert}});var objectProto25,hasOwnProperty21,nativeObjectToString4,invertBy,invertBy_default,init_invertBy=__esm({"../../node_modules/lodash-es/invertBy.js"(){init_baseIteratee();init_createInverter();objectProto25=Object.prototype,hasOwnProperty21=objectProto25.hasOwnProperty,nativeObjectToString4=objectProto25.toString,invertBy=createInverter_default(function(result2,value,key){value!=null&&typeof value.toString!="function"&&(value=nativeObjectToString4.call(value)),hasOwnProperty21.call(result2,value)?result2[value].push(key):result2[value]=[key]},baseIteratee_default),invertBy_default=invertBy}});function parent(object2,path10){return path10.length<2?object2:baseGet_default(object2,baseSlice_default(path10,0,-1))}var parent_default,init_parent=__esm({"../../node_modules/lodash-es/_parent.js"(){init_baseGet();init_baseSlice();__name(parent,"parent");parent_default=parent}});function baseInvoke(object2,path10,args){path10=castPath_default(path10,object2),object2=parent_default(object2,path10);var func=object2==null?object2:object2[toKey_default(last_default(path10))];return func==null?void 0:apply_default(func,object2,args)}var baseInvoke_default,init_baseInvoke=__esm({"../../node_modules/lodash-es/_baseInvoke.js"(){init_apply();init_castPath();init_last();init_parent();init_toKey();__name(baseInvoke,"baseInvoke");baseInvoke_default=baseInvoke}});var invoke,invoke_default,init_invoke=__esm({"../../node_modules/lodash-es/invoke.js"(){init_baseInvoke();init_baseRest();invoke=baseRest_default(baseInvoke_default),invoke_default=invoke}});var invokeMap,invokeMap_default,init_invokeMap=__esm({"../../node_modules/lodash-es/invokeMap.js"(){init_apply();init_baseEach();init_baseInvoke();init_baseRest();init_isArrayLike();invokeMap=baseRest_default(function(collection,path10,args){var index=-1,isFunc=typeof path10=="function",result2=isArrayLike_default(collection)?Array(collection.length):[];return baseEach_default(collection,function(value){result2[++index]=isFunc?apply_default(path10,value,args):baseInvoke_default(value,path10,args)}),result2}),invokeMap_default=invokeMap}});function baseIsArrayBuffer(value){return isObjectLike_default(value)&&baseGetTag_default(value)==arrayBufferTag5}var arrayBufferTag5,baseIsArrayBuffer_default,init_baseIsArrayBuffer=__esm({"../../node_modules/lodash-es/_baseIsArrayBuffer.js"(){init_baseGetTag();init_isObjectLike();arrayBufferTag5="[object ArrayBuffer]";__name(baseIsArrayBuffer,"baseIsArrayBuffer");baseIsArrayBuffer_default=baseIsArrayBuffer}});var nodeIsArrayBuffer,isArrayBuffer,isArrayBuffer_default,init_isArrayBuffer=__esm({"../../node_modules/lodash-es/isArrayBuffer.js"(){init_baseIsArrayBuffer();init_baseUnary();init_nodeUtil();nodeIsArrayBuffer=nodeUtil_default&&nodeUtil_default.isArrayBuffer,isArrayBuffer=nodeIsArrayBuffer?baseUnary_default(nodeIsArrayBuffer):baseIsArrayBuffer_default,isArrayBuffer_default=isArrayBuffer}});function isBoolean(value){return value===!0||value===!1||isObjectLike_default(value)&&baseGetTag_default(value)==boolTag5}var boolTag5,isBoolean_default,init_isBoolean=__esm({"../../node_modules/lodash-es/isBoolean.js"(){init_baseGetTag();init_isObjectLike();boolTag5="[object Boolean]";__name(isBoolean,"isBoolean");isBoolean_default=isBoolean}});function baseIsDate(value){return isObjectLike_default(value)&&baseGetTag_default(value)==dateTag5}var dateTag5,baseIsDate_default,init_baseIsDate=__esm({"../../node_modules/lodash-es/_baseIsDate.js"(){init_baseGetTag();init_isObjectLike();dateTag5="[object Date]";__name(baseIsDate,"baseIsDate");baseIsDate_default=baseIsDate}});var nodeIsDate,isDate,isDate_default,init_isDate=__esm({"../../node_modules/lodash-es/isDate.js"(){init_baseIsDate();init_baseUnary();init_nodeUtil();nodeIsDate=nodeUtil_default&&nodeUtil_default.isDate,isDate=nodeIsDate?baseUnary_default(nodeIsDate):baseIsDate_default,isDate_default=isDate}});function isElement(value){return isObjectLike_default(value)&&value.nodeType===1&&!isPlainObject_default(value)}var isElement_default,init_isElement=__esm({"../../node_modules/lodash-es/isElement.js"(){init_isObjectLike();init_isPlainObject();__name(isElement,"isElement");isElement_default=isElement}});function isEmpty(value){if(value==null)return!0;if(isArrayLike_default(value)&&(isArray_default(value)||typeof value=="string"||typeof value.splice=="function"||isBuffer_default(value)||isTypedArray_default(value)||isArguments_default(value)))return!value.length;var tag=getTag_default(value);if(tag==mapTag8||tag==setTag8)return!value.size;if(isPrototype_default(value))return!baseKeys_default(value).length;for(var key in value)if(hasOwnProperty22.call(value,key))return!1;return!0}var mapTag8,setTag8,objectProto26,hasOwnProperty22,isEmpty_default,init_isEmpty=__esm({"../../node_modules/lodash-es/isEmpty.js"(){init_baseKeys();init_getTag();init_isArguments();init_isArray();init_isArrayLike();init_isBuffer();init_isPrototype();init_isTypedArray();mapTag8="[object Map]",setTag8="[object Set]",objectProto26=Object.prototype,hasOwnProperty22=objectProto26.hasOwnProperty;__name(isEmpty,"isEmpty");isEmpty_default=isEmpty}});function isEqual(value,other){return baseIsEqual_default(value,other)}var isEqual_default,init_isEqual=__esm({"../../node_modules/lodash-es/isEqual.js"(){init_baseIsEqual();__name(isEqual,"isEqual");isEqual_default=isEqual}});function isEqualWith(value,other,customizer){customizer=typeof customizer=="function"?customizer:void 0;var result2=customizer?customizer(value,other):void 0;return result2===void 0?baseIsEqual_default(value,other,void 0,customizer):!!result2}var isEqualWith_default,init_isEqualWith=__esm({"../../node_modules/lodash-es/isEqualWith.js"(){init_baseIsEqual();__name(isEqualWith,"isEqualWith");isEqualWith_default=isEqualWith}});function isFinite2(value){return typeof value=="number"&&nativeIsFinite2(value)}var nativeIsFinite2,isFinite_default,init_isFinite=__esm({"../../node_modules/lodash-es/isFinite.js"(){init_root();nativeIsFinite2=root_default.isFinite;__name(isFinite2,"isFinite");isFinite_default=isFinite2}});function isInteger(value){return typeof value=="number"&&value==toInteger_default(value)}var isInteger_default,init_isInteger=__esm({"../../node_modules/lodash-es/isInteger.js"(){init_toInteger();__name(isInteger,"isInteger");isInteger_default=isInteger}});function isMatch(object2,source){return object2===source||baseIsMatch_default(object2,source,getMatchData_default(source))}var isMatch_default,init_isMatch=__esm({"../../node_modules/lodash-es/isMatch.js"(){init_baseIsMatch();init_getMatchData();__name(isMatch,"isMatch");isMatch_default=isMatch}});function isMatchWith(object2,source,customizer){return customizer=typeof customizer=="function"?customizer:void 0,baseIsMatch_default(object2,source,getMatchData_default(source),customizer)}var isMatchWith_default,init_isMatchWith=__esm({"../../node_modules/lodash-es/isMatchWith.js"(){init_baseIsMatch();init_getMatchData();__name(isMatchWith,"isMatchWith");isMatchWith_default=isMatchWith}});function isNumber(value){return typeof value=="number"||isObjectLike_default(value)&&baseGetTag_default(value)==numberTag5}var numberTag5,isNumber_default,init_isNumber=__esm({"../../node_modules/lodash-es/isNumber.js"(){init_baseGetTag();init_isObjectLike();numberTag5="[object Number]";__name(isNumber,"isNumber");isNumber_default=isNumber}});function isNaN2(value){return isNumber_default(value)&&value!=+value}var isNaN_default,init_isNaN=__esm({"../../node_modules/lodash-es/isNaN.js"(){init_isNumber();__name(isNaN2,"isNaN");isNaN_default=isNaN2}});var isMaskable,isMaskable_default,init_isMaskable=__esm({"../../node_modules/lodash-es/_isMaskable.js"(){init_coreJsData();init_isFunction();init_stubFalse();isMaskable=coreJsData_default?isFunction_default:stubFalse_default,isMaskable_default=isMaskable}});function isNative(value){if(isMaskable_default(value))throw new Error(CORE_ERROR_TEXT);return baseIsNative_default(value)}var CORE_ERROR_TEXT,isNative_default,init_isNative=__esm({"../../node_modules/lodash-es/isNative.js"(){init_baseIsNative();init_isMaskable();CORE_ERROR_TEXT="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";__name(isNative,"isNative");isNative_default=isNative}});function isNil(value){return value==null}var isNil_default,init_isNil=__esm({"../../node_modules/lodash-es/isNil.js"(){__name(isNil,"isNil");isNil_default=isNil}});function isNull(value){return value===null}var isNull_default,init_isNull=__esm({"../../node_modules/lodash-es/isNull.js"(){__name(isNull,"isNull");isNull_default=isNull}});function baseIsRegExp(value){return isObjectLike_default(value)&&baseGetTag_default(value)==regexpTag5}var regexpTag5,baseIsRegExp_default,init_baseIsRegExp=__esm({"../../node_modules/lodash-es/_baseIsRegExp.js"(){init_baseGetTag();init_isObjectLike();regexpTag5="[object RegExp]";__name(baseIsRegExp,"baseIsRegExp");baseIsRegExp_default=baseIsRegExp}});var nodeIsRegExp,isRegExp,isRegExp_default,init_isRegExp=__esm({"../../node_modules/lodash-es/isRegExp.js"(){init_baseIsRegExp();init_baseUnary();init_nodeUtil();nodeIsRegExp=nodeUtil_default&&nodeUtil_default.isRegExp,isRegExp=nodeIsRegExp?baseUnary_default(nodeIsRegExp):baseIsRegExp_default,isRegExp_default=isRegExp}});function isSafeInteger(value){return isInteger_default(value)&&value>=-MAX_SAFE_INTEGER3&&value<=MAX_SAFE_INTEGER3}var MAX_SAFE_INTEGER3,isSafeInteger_default,init_isSafeInteger=__esm({"../../node_modules/lodash-es/isSafeInteger.js"(){init_isInteger();MAX_SAFE_INTEGER3=9007199254740991;__name(isSafeInteger,"isSafeInteger");isSafeInteger_default=isSafeInteger}});function isUndefined(value){return value===void 0}var isUndefined_default,init_isUndefined=__esm({"../../node_modules/lodash-es/isUndefined.js"(){__name(isUndefined,"isUndefined");isUndefined_default=isUndefined}});function isWeakMap(value){return isObjectLike_default(value)&&getTag_default(value)==weakMapTag4}var weakMapTag4,isWeakMap_default,init_isWeakMap=__esm({"../../node_modules/lodash-es/isWeakMap.js"(){init_getTag();init_isObjectLike();weakMapTag4="[object WeakMap]";__name(isWeakMap,"isWeakMap");isWeakMap_default=isWeakMap}});function isWeakSet(value){return isObjectLike_default(value)&&baseGetTag_default(value)==weakSetTag}var weakSetTag,isWeakSet_default,init_isWeakSet=__esm({"../../node_modules/lodash-es/isWeakSet.js"(){init_baseGetTag();init_isObjectLike();weakSetTag="[object WeakSet]";__name(isWeakSet,"isWeakSet");isWeakSet_default=isWeakSet}});function iteratee(func){return baseIteratee_default(typeof func=="function"?func:baseClone_default(func,CLONE_DEEP_FLAG5))}var CLONE_DEEP_FLAG5,iteratee_default,init_iteratee=__esm({"../../node_modules/lodash-es/iteratee.js"(){init_baseClone();init_baseIteratee();CLONE_DEEP_FLAG5=1;__name(iteratee,"iteratee");iteratee_default=iteratee}});function join2(array2,separator){return array2==null?"":nativeJoin.call(array2,separator)}var arrayProto2,nativeJoin,join_default,init_join=__esm({"../../node_modules/lodash-es/join.js"(){arrayProto2=Array.prototype,nativeJoin=arrayProto2.join;__name(join2,"join");join_default=join2}});var kebabCase,kebabCase_default,init_kebabCase=__esm({"../../node_modules/lodash-es/kebabCase.js"(){init_createCompounder();kebabCase=createCompounder_default(function(result2,word,index){return result2+(index?"-":"")+word.toLowerCase()}),kebabCase_default=kebabCase}});var keyBy,keyBy_default,init_keyBy=__esm({"../../node_modules/lodash-es/keyBy.js"(){init_baseAssignValue();init_createAggregator();keyBy=createAggregator_default(function(result2,value,key){baseAssignValue_default(result2,key,value)}),keyBy_default=keyBy}});function strictLastIndexOf(array2,value,fromIndex){for(var index=fromIndex+1;index--;)if(array2[index]===value)return index;return index}var strictLastIndexOf_default,init_strictLastIndexOf=__esm({"../../node_modules/lodash-es/_strictLastIndexOf.js"(){__name(strictLastIndexOf,"strictLastIndexOf");strictLastIndexOf_default=strictLastIndexOf}});function lastIndexOf(array2,value,fromIndex){var length=array2==null?0:array2.length;if(!length)return-1;var index=length;return fromIndex!==void 0&&(index=toInteger_default(fromIndex),index=index<0?nativeMax12(length+index,0):nativeMin8(index,length-1)),value===value?strictLastIndexOf_default(array2,value,index):baseFindIndex_default(array2,baseIsNaN_default,index,!0)}var nativeMax12,nativeMin8,lastIndexOf_default,init_lastIndexOf=__esm({"../../node_modules/lodash-es/lastIndexOf.js"(){init_baseFindIndex();init_baseIsNaN();init_strictLastIndexOf();init_toInteger();nativeMax12=Math.max,nativeMin8=Math.min;__name(lastIndexOf,"lastIndexOf");lastIndexOf_default=lastIndexOf}});var lowerCase,lowerCase_default,init_lowerCase=__esm({"../../node_modules/lodash-es/lowerCase.js"(){init_createCompounder();lowerCase=createCompounder_default(function(result2,word,index){return result2+(index?" ":"")+word.toLowerCase()}),lowerCase_default=lowerCase}});var lowerFirst,lowerFirst_default,init_lowerFirst=__esm({"../../node_modules/lodash-es/lowerFirst.js"(){init_createCaseFirst();lowerFirst=createCaseFirst_default("toLowerCase"),lowerFirst_default=lowerFirst}});function baseLt(value,other){return value<other}var baseLt_default,init_baseLt=__esm({"../../node_modules/lodash-es/_baseLt.js"(){__name(baseLt,"baseLt");baseLt_default=baseLt}});var lt,lt_default,init_lt=__esm({"../../node_modules/lodash-es/lt.js"(){init_baseLt();init_createRelationalOperation();lt=createRelationalOperation_default(baseLt_default),lt_default=lt}});var lte,lte_default,init_lte=__esm({"../../node_modules/lodash-es/lte.js"(){init_createRelationalOperation();lte=createRelationalOperation_default(function(value,other){return value<=other}),lte_default=lte}});function mapKeys(object2,iteratee2){var result2={};return iteratee2=baseIteratee_default(iteratee2,3),baseForOwn_default(object2,function(value,key,object3){baseAssignValue_default(result2,iteratee2(value,key,object3),value)}),result2}var mapKeys_default,init_mapKeys=__esm({"../../node_modules/lodash-es/mapKeys.js"(){init_baseAssignValue();init_baseForOwn();init_baseIteratee();__name(mapKeys,"mapKeys");mapKeys_default=mapKeys}});function mapValues(object2,iteratee2){var result2={};return iteratee2=baseIteratee_default(iteratee2,3),baseForOwn_default(object2,function(value,key,object3){baseAssignValue_default(result2,key,iteratee2(value,key,object3))}),result2}var mapValues_default,init_mapValues=__esm({"../../node_modules/lodash-es/mapValues.js"(){init_baseAssignValue();init_baseForOwn();init_baseIteratee();__name(mapValues,"mapValues");mapValues_default=mapValues}});function matches(source){return baseMatches_default(baseClone_default(source,CLONE_DEEP_FLAG6))}var CLONE_DEEP_FLAG6,matches_default,init_matches=__esm({"../../node_modules/lodash-es/matches.js"(){init_baseClone();init_baseMatches();CLONE_DEEP_FLAG6=1;__name(matches,"matches");matches_default=matches}});function matchesProperty(path10,srcValue){return baseMatchesProperty_default(path10,baseClone_default(srcValue,CLONE_DEEP_FLAG7))}var CLONE_DEEP_FLAG7,matchesProperty_default,init_matchesProperty=__esm({"../../node_modules/lodash-es/matchesProperty.js"(){init_baseClone();init_baseMatchesProperty();CLONE_DEEP_FLAG7=1;__name(matchesProperty,"matchesProperty");matchesProperty_default=matchesProperty}});function baseExtremum(array2,iteratee2,comparator){for(var index=-1,length=array2.length;++index<length;){var value=array2[index],current=iteratee2(value);if(current!=null&&(computed===void 0?current===current&&!isSymbol_default(current):comparator(current,computed)))var computed=current,result2=value}return result2}var baseExtremum_default,init_baseExtremum=__esm({"../../node_modules/lodash-es/_baseExtremum.js"(){init_isSymbol();__name(baseExtremum,"baseExtremum");baseExtremum_default=baseExtremum}});function max(array2){return array2&&array2.length?baseExtremum_default(array2,identity_default,baseGt_default):void 0}var max_default,init_max=__esm({"../../node_modules/lodash-es/max.js"(){init_baseExtremum();init_baseGt();init_identity();__name(max,"max");max_default=max}});function maxBy(array2,iteratee2){return array2&&array2.length?baseExtremum_default(array2,baseIteratee_default(iteratee2,2),baseGt_default):void 0}var maxBy_default,init_maxBy=__esm({"../../node_modules/lodash-es/maxBy.js"(){init_baseExtremum();init_baseGt();init_baseIteratee();__name(maxBy,"maxBy");maxBy_default=maxBy}});function baseMean(array2,iteratee2){var length=array2==null?0:array2.length;return length?baseSum_default(array2,iteratee2)/length:NAN3}var NAN3,baseMean_default,init_baseMean=__esm({"../../node_modules/lodash-es/_baseMean.js"(){init_baseSum();NAN3=NaN;__name(baseMean,"baseMean");baseMean_default=baseMean}});function mean(array2){return baseMean_default(array2,identity_default)}var mean_default,init_mean=__esm({"../../node_modules/lodash-es/mean.js"(){init_baseMean();init_identity();__name(mean,"mean");mean_default=mean}});function meanBy(array2,iteratee2){return baseMean_default(array2,baseIteratee_default(iteratee2,2))}var meanBy_default,init_meanBy=__esm({"../../node_modules/lodash-es/meanBy.js"(){init_baseIteratee();init_baseMean();__name(meanBy,"meanBy");meanBy_default=meanBy}});var merge,merge_default,init_merge=__esm({"../../node_modules/lodash-es/merge.js"(){init_baseMerge();init_createAssigner();merge=createAssigner_default(function(object2,source,srcIndex){baseMerge_default(object2,source,srcIndex)}),merge_default=merge}});var method,method_default,init_method=__esm({"../../node_modules/lodash-es/method.js"(){init_baseInvoke();init_baseRest();method=baseRest_default(function(path10,args){return function(object2){return baseInvoke_default(object2,path10,args)}}),method_default=method}});var methodOf,methodOf_default,init_methodOf=__esm({"../../node_modules/lodash-es/methodOf.js"(){init_baseInvoke();init_baseRest();methodOf=baseRest_default(function(object2,args){return function(path10){return baseInvoke_default(object2,path10,args)}}),methodOf_default=methodOf}});function min(array2){return array2&&array2.length?baseExtremum_default(array2,identity_default,baseLt_default):void 0}var min_default,init_min=__esm({"../../node_modules/lodash-es/min.js"(){init_baseExtremum();init_baseLt();init_identity();__name(min,"min");min_default=min}});function minBy(array2,iteratee2){return array2&&array2.length?baseExtremum_default(array2,baseIteratee_default(iteratee2,2),baseLt_default):void 0}var minBy_default,init_minBy=__esm({"../../node_modules/lodash-es/minBy.js"(){init_baseExtremum();init_baseIteratee();init_baseLt();__name(minBy,"minBy");minBy_default=minBy}});function mixin(object2,source,options){var props=keys_default(source),methodNames=baseFunctions_default(source,props),chain2=!(isObject_default(options)&&"chain"in options)||!!options.chain,isFunc=isFunction_default(object2);return arrayEach_default(methodNames,function(methodName){var func=source[methodName];object2[methodName]=func,isFunc&&(object2.prototype[methodName]=function(){var chainAll=this.__chain__;if(chain2||chainAll){var result2=object2(this.__wrapped__),actions=result2.__actions__=copyArray_default(this.__actions__);return actions.push({func,args:arguments,thisArg:object2}),result2.__chain__=chainAll,result2}return func.apply(object2,arrayPush_default([this.value()],arguments))})}),object2}var mixin_default,init_mixin=__esm({"../../node_modules/lodash-es/mixin.js"(){init_arrayEach();init_arrayPush();init_baseFunctions();init_copyArray();init_isFunction();init_isObject();init_keys();__name(mixin,"mixin");mixin_default=mixin}});var multiply,multiply_default,init_multiply=__esm({"../../node_modules/lodash-es/multiply.js"(){init_createMathOperation();multiply=createMathOperation_default(function(multiplier,multiplicand){return multiplier*multiplicand},1),multiply_default=multiply}});function negate(predicate){if(typeof predicate!="function")throw new TypeError(FUNC_ERROR_TEXT9);return function(){var args=arguments;switch(args.length){case 0:return!predicate.call(this);case 1:return!predicate.call(this,args[0]);case 2:return!predicate.call(this,args[0],args[1]);case 3:return!predicate.call(this,args[0],args[1],args[2])}return!predicate.apply(this,args)}}var FUNC_ERROR_TEXT9,negate_default,init_negate=__esm({"../../node_modules/lodash-es/negate.js"(){FUNC_ERROR_TEXT9="Expected a function";__name(negate,"negate");negate_default=negate}});function iteratorToArray(iterator2){for(var data,result2=[];!(data=iterator2.next()).done;)result2.push(data.value);return result2}var iteratorToArray_default,init_iteratorToArray=__esm({"../../node_modules/lodash-es/_iteratorToArray.js"(){__name(iteratorToArray,"iteratorToArray");iteratorToArray_default=iteratorToArray}});function toArray(value){if(!value)return[];if(isArrayLike_default(value))return isString_default(value)?stringToArray_default(value):copyArray_default(value);if(symIterator&&value[symIterator])return iteratorToArray_default(value[symIterator]());var tag=getTag_default(value),func=tag==mapTag9?mapToArray_default:tag==setTag9?setToArray_default:values_default;return func(value)}var mapTag9,setTag9,symIterator,toArray_default,init_toArray=__esm({"../../node_modules/lodash-es/toArray.js"(){init_Symbol();init_copyArray();init_getTag();init_isArrayLike();init_isString();init_iteratorToArray();init_mapToArray();init_setToArray();init_stringToArray();init_values();mapTag9="[object Map]",setTag9="[object Set]",symIterator=Symbol_default?Symbol_default.iterator:void 0;__name(toArray,"toArray");toArray_default=toArray}});function wrapperNext(){this.__values__===void 0&&(this.__values__=toArray_default(this.value()));var done=this.__index__>=this.__values__.length,value=done?void 0:this.__values__[this.__index__++];return{done,value}}var next_default,init_next=__esm({"../../node_modules/lodash-es/next.js"(){init_toArray();__name(wrapperNext,"wrapperNext");next_default=wrapperNext}});function baseNth(array2,n2){var length=array2.length;if(length)return n2+=n2<0?length:0,isIndex_default(n2,length)?array2[n2]:void 0}var baseNth_default,init_baseNth=__esm({"../../node_modules/lodash-es/_baseNth.js"(){init_isIndex();__name(baseNth,"baseNth");baseNth_default=baseNth}});function nth(array2,n2){return array2&&array2.length?baseNth_default(array2,toInteger_default(n2)):void 0}var nth_default,init_nth=__esm({"../../node_modules/lodash-es/nth.js"(){init_baseNth();init_toInteger();__name(nth,"nth");nth_default=nth}});function nthArg(n2){return n2=toInteger_default(n2),baseRest_default(function(args){return baseNth_default(args,n2)})}var nthArg_default,init_nthArg=__esm({"../../node_modules/lodash-es/nthArg.js"(){init_baseNth();init_baseRest();init_toInteger();__name(nthArg,"nthArg");nthArg_default=nthArg}});function baseUnset(object2,path10){path10=castPath_default(path10,object2);var index=-1,length=path10.length;if(!length)return!0;for(;++index<length;){var key=toKey_default(path10[index]);if(key==="__proto__"&&!hasOwnProperty23.call(object2,"__proto__")||(key==="constructor"||key==="prototype")&&index<length-1)return!1}var obj=parent_default(object2,path10);return obj==null||delete obj[toKey_default(last_default(path10))]}var objectProto27,hasOwnProperty23,baseUnset_default,init_baseUnset=__esm({"../../node_modules/lodash-es/_baseUnset.js"(){init_castPath();init_last();init_parent();init_toKey();objectProto27=Object.prototype,hasOwnProperty23=objectProto27.hasOwnProperty;__name(baseUnset,"baseUnset");baseUnset_default=baseUnset}});function customOmitClone(value){return isPlainObject_default(value)?void 0:value}var customOmitClone_default,init_customOmitClone=__esm({"../../node_modules/lodash-es/_customOmitClone.js"(){init_isPlainObject();__name(customOmitClone,"customOmitClone");customOmitClone_default=customOmitClone}});var CLONE_DEEP_FLAG8,CLONE_FLAT_FLAG2,CLONE_SYMBOLS_FLAG6,omit,omit_default,init_omit=__esm({"../../node_modules/lodash-es/omit.js"(){init_arrayMap();init_baseClone();init_baseUnset();init_castPath();init_copyObject();init_customOmitClone();init_flatRest();init_getAllKeysIn();CLONE_DEEP_FLAG8=1,CLONE_FLAT_FLAG2=2,CLONE_SYMBOLS_FLAG6=4,omit=flatRest_default(function(object2,paths2){var result2={};if(object2==null)return result2;var isDeep=!1;paths2=arrayMap_default(paths2,function(path10){return path10=castPath_default(path10,object2),isDeep||(isDeep=path10.length>1),path10}),copyObject_default(object2,getAllKeysIn_default(object2),result2),isDeep&&(result2=baseClone_default(result2,CLONE_DEEP_FLAG8|CLONE_FLAT_FLAG2|CLONE_SYMBOLS_FLAG6,customOmitClone_default));for(var length=paths2.length;length--;)baseUnset_default(result2,paths2[length]);return result2}),omit_default=omit}});function omitBy(object2,predicate){return pickBy_default(object2,negate_default(baseIteratee_default(predicate)))}var omitBy_default,init_omitBy=__esm({"../../node_modules/lodash-es/omitBy.js"(){init_baseIteratee();init_negate();init_pickBy();__name(omitBy,"omitBy");omitBy_default=omitBy}});function once(func){return before_default(2,func)}var once_default,init_once=__esm({"../../node_modules/lodash-es/once.js"(){init_before();__name(once,"once");once_default=once}});function baseSortBy(array2,comparer){var length=array2.length;for(array2.sort(comparer);length--;)array2[length]=array2[length].value;return array2}var baseSortBy_default,init_baseSortBy=__esm({"../../node_modules/lodash-es/_baseSortBy.js"(){__name(baseSortBy,"baseSortBy");baseSortBy_default=baseSortBy}});function compareAscending(value,other){if(value!==other){var valIsDefined=value!==void 0,valIsNull=value===null,valIsReflexive=value===value,valIsSymbol=isSymbol_default(value),othIsDefined=other!==void 0,othIsNull=other===null,othIsReflexive=other===other,othIsSymbol=isSymbol_default(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive)return 1;if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value<other||othIsSymbol&&valIsDefined&&valIsReflexive&&!valIsNull&&!valIsSymbol||othIsNull&&valIsDefined&&valIsReflexive||!othIsDefined&&valIsReflexive||!othIsReflexive)return-1}return 0}var compareAscending_default,init_compareAscending=__esm({"../../node_modules/lodash-es/_compareAscending.js"(){init_isSymbol();__name(compareAscending,"compareAscending");compareAscending_default=compareAscending}});function compareMultiple(object2,other,orders){for(var index=-1,objCriteria=object2.criteria,othCriteria=other.criteria,length=objCriteria.length,ordersLength=orders.length;++index<length;){var result2=compareAscending_default(objCriteria[index],othCriteria[index]);if(result2){if(index>=ordersLength)return result2;var order=orders[index];return result2*(order=="desc"?-1:1)}}return object2.index-other.index}var compareMultiple_default,init_compareMultiple=__esm({"../../node_modules/lodash-es/_compareMultiple.js"(){init_compareAscending();__name(compareMultiple,"compareMultiple");compareMultiple_default=compareMultiple}});function baseOrderBy(collection,iteratees,orders){iteratees.length?iteratees=arrayMap_default(iteratees,function(iteratee2){return isArray_default(iteratee2)?function(value){return baseGet_default(value,iteratee2.length===1?iteratee2[0]:iteratee2)}:iteratee2}):iteratees=[identity_default];var index=-1;iteratees=arrayMap_default(iteratees,baseUnary_default(baseIteratee_default));var result2=baseMap_default(collection,function(value,key,collection2){var criteria=arrayMap_default(iteratees,function(iteratee2){return iteratee2(value)});return{criteria,index:++index,value}});return baseSortBy_default(result2,function(object2,other){return compareMultiple_default(object2,other,orders)})}var baseOrderBy_default,init_baseOrderBy=__esm({"../../node_modules/lodash-es/_baseOrderBy.js"(){init_arrayMap();init_baseGet();init_baseIteratee();init_baseMap();init_baseSortBy();init_baseUnary();init_compareMultiple();init_identity();init_isArray();__name(baseOrderBy,"baseOrderBy");baseOrderBy_default=baseOrderBy}});function orderBy(collection,iteratees,orders,guard){return collection==null?[]:(isArray_default(iteratees)||(iteratees=iteratees==null?[]:[iteratees]),orders=guard?void 0:orders,isArray_default(orders)||(orders=orders==null?[]:[orders]),baseOrderBy_default(collection,iteratees,orders))}var orderBy_default,init_orderBy=__esm({"../../node_modules/lodash-es/orderBy.js"(){init_baseOrderBy();init_isArray();__name(orderBy,"orderBy");orderBy_default=orderBy}});function createOver(arrayFunc){return flatRest_default(function(iteratees){return iteratees=arrayMap_default(iteratees,baseUnary_default(baseIteratee_default)),baseRest_default(function(args){var thisArg=this;return arrayFunc(iteratees,function(iteratee2){return apply_default(iteratee2,thisArg,args)})})})}var createOver_default,init_createOver=__esm({"../../node_modules/lodash-es/_createOver.js"(){init_apply();init_arrayMap();init_baseIteratee();init_baseRest();init_baseUnary();init_flatRest();__name(createOver,"createOver");createOver_default=createOver}});var over,over_default,init_over=__esm({"../../node_modules/lodash-es/over.js"(){init_arrayMap();init_createOver();over=createOver_default(arrayMap_default),over_default=over}});var castRest,castRest_default,init_castRest=__esm({"../../node_modules/lodash-es/_castRest.js"(){init_baseRest();castRest=baseRest_default,castRest_default=castRest}});var nativeMin9,overArgs,overArgs_default,init_overArgs=__esm({"../../node_modules/lodash-es/overArgs.js"(){init_apply();init_arrayMap();init_baseFlatten();init_baseIteratee();init_baseRest();init_baseUnary();init_castRest();init_isArray();nativeMin9=Math.min,overArgs=castRest_default(function(func,transforms){transforms=transforms.length==1&&isArray_default(transforms[0])?arrayMap_default(transforms[0],baseUnary_default(baseIteratee_default)):arrayMap_default(baseFlatten_default(transforms,1),baseUnary_default(baseIteratee_default));var funcsLength=transforms.length;return baseRest_default(function(args){for(var index=-1,length=nativeMin9(args.length,funcsLength);++index<length;)args[index]=transforms[index].call(this,args[index]);return apply_default(func,this,args)})}),overArgs_default=overArgs}});var overEvery,overEvery_default,init_overEvery=__esm({"../../node_modules/lodash-es/overEvery.js"(){init_arrayEvery();init_createOver();overEvery=createOver_default(arrayEvery_default),overEvery_default=overEvery}});var overSome,overSome_default,init_overSome=__esm({"../../node_modules/lodash-es/overSome.js"(){init_arraySome();init_createOver();overSome=createOver_default(arraySome_default),overSome_default=overSome}});function baseRepeat(string4,n2){var result2="";if(!string4||n2<1||n2>MAX_SAFE_INTEGER4)return result2;do n2%2&&(result2+=string4),n2=nativeFloor(n2/2),n2&&(string4+=string4);while(n2);return result2}var MAX_SAFE_INTEGER4,nativeFloor,baseRepeat_default,init_baseRepeat=__esm({"../../node_modules/lodash-es/_baseRepeat.js"(){MAX_SAFE_INTEGER4=9007199254740991,nativeFloor=Math.floor;__name(baseRepeat,"baseRepeat");baseRepeat_default=baseRepeat}});var asciiSize,asciiSize_default,init_asciiSize=__esm({"../../node_modules/lodash-es/_asciiSize.js"(){init_baseProperty();asciiSize=baseProperty_default("length"),asciiSize_default=asciiSize}});function unicodeSize(string4){for(var result2=reUnicode2.lastIndex=0;reUnicode2.test(string4);)++result2;return result2}var rsAstralRange4,rsComboMarksRange5,reComboHalfMarksRange5,rsComboSymbolsRange5,rsComboRange5,rsVarRange4,rsAstral2,rsCombo4,rsFitz3,rsModifier3,rsNonAstral3,rsRegional3,rsSurrPair3,rsZWJ4,reOptMod3,rsOptVar3,rsOptJoin3,rsSeq3,rsSymbol2,reUnicode2,unicodeSize_default,init_unicodeSize=__esm({"../../node_modules/lodash-es/_unicodeSize.js"(){rsAstralRange4="\\ud800-\\udfff",rsComboMarksRange5="\\u0300-\\u036f",reComboHalfMarksRange5="\\ufe20-\\ufe2f",rsComboSymbolsRange5="\\u20d0-\\u20ff",rsComboRange5=rsComboMarksRange5+reComboHalfMarksRange5+rsComboSymbolsRange5,rsVarRange4="\\ufe0e\\ufe0f",rsAstral2="["+rsAstralRange4+"]",rsCombo4="["+rsComboRange5+"]",rsFitz3="\\ud83c[\\udffb-\\udfff]",rsModifier3="(?:"+rsCombo4+"|"+rsFitz3+")",rsNonAstral3="[^"+rsAstralRange4+"]",rsRegional3="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair3="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ4="\\u200d",reOptMod3=rsModifier3+"?",rsOptVar3="["+rsVarRange4+"]?",rsOptJoin3="(?:"+rsZWJ4+"(?:"+[rsNonAstral3,rsRegional3,rsSurrPair3].join("|")+")"+rsOptVar3+reOptMod3+")*",rsSeq3=rsOptVar3+reOptMod3+rsOptJoin3,rsSymbol2="(?:"+[rsNonAstral3+rsCombo4+"?",rsCombo4,rsRegional3,rsSurrPair3,rsAstral2].join("|")+")",reUnicode2=RegExp(rsFitz3+"(?="+rsFitz3+")|"+rsSymbol2+rsSeq3,"g");__name(unicodeSize,"unicodeSize");unicodeSize_default=unicodeSize}});function stringSize(string4){return hasUnicode_default(string4)?unicodeSize_default(string4):asciiSize_default(string4)}var stringSize_default,init_stringSize=__esm({"../../node_modules/lodash-es/_stringSize.js"(){init_asciiSize();init_hasUnicode();init_unicodeSize();__name(stringSize,"stringSize");stringSize_default=stringSize}});function createPadding(length,chars){chars=chars===void 0?" ":baseToString_default(chars);var charsLength=chars.length;if(charsLength<2)return charsLength?baseRepeat_default(chars,length):chars;var result2=baseRepeat_default(chars,nativeCeil2(length/stringSize_default(chars)));return hasUnicode_default(chars)?castSlice_default(stringToArray_default(result2),0,length).join(""):result2.slice(0,length)}var nativeCeil2,createPadding_default,init_createPadding=__esm({"../../node_modules/lodash-es/_createPadding.js"(){init_baseRepeat();init_baseToString();init_castSlice();init_hasUnicode();init_stringSize();init_stringToArray();nativeCeil2=Math.ceil;__name(createPadding,"createPadding");createPadding_default=createPadding}});function pad(string4,length,chars){string4=toString_default(string4),length=toInteger_default(length);var strLength=length?stringSize_default(string4):0;if(!length||strLength>=length)return string4;var mid=(length-strLength)/2;return createPadding_default(nativeFloor2(mid),chars)+string4+createPadding_default(nativeCeil3(mid),chars)}var nativeCeil3,nativeFloor2,pad_default,init_pad=__esm({"../../node_modules/lodash-es/pad.js"(){init_createPadding();init_stringSize();init_toInteger();init_toString();nativeCeil3=Math.ceil,nativeFloor2=Math.floor;__name(pad,"pad");pad_default=pad}});function padEnd(string4,length,chars){string4=toString_default(string4),length=toInteger_default(length);var strLength=length?stringSize_default(string4):0;return length&&strLength<length?string4+createPadding_default(length-strLength,chars):string4}var padEnd_default,init_padEnd=__esm({"../../node_modules/lodash-es/padEnd.js"(){init_createPadding();init_stringSize();init_toInteger();init_toString();__name(padEnd,"padEnd");padEnd_default=padEnd}});function padStart(string4,length,chars){string4=toString_default(string4),length=toInteger_default(length);var strLength=length?stringSize_default(string4):0;return length&&strLength<length?createPadding_default(length-strLength,chars)+string4:string4}var padStart_default,init_padStart=__esm({"../../node_modules/lodash-es/padStart.js"(){init_createPadding();init_stringSize();init_toInteger();init_toString();__name(padStart,"padStart");padStart_default=padStart}});function parseInt2(string4,radix,guard){return guard||radix==null?radix=0:radix&&(radix=+radix),nativeParseInt(toString_default(string4).replace(reTrimStart2,""),radix||0)}var reTrimStart2,nativeParseInt,parseInt_default,init_parseInt=__esm({"../../node_modules/lodash-es/parseInt.js"(){init_root();init_toString();reTrimStart2=/^\s+/,nativeParseInt=root_default.parseInt;__name(parseInt2,"parseInt");parseInt_default=parseInt2}});var WRAP_PARTIAL_FLAG7,partial,partial_default,init_partial=__esm({"../../node_modules/lodash-es/partial.js"(){init_baseRest();init_createWrap();init_getHolder();init_replaceHolders();WRAP_PARTIAL_FLAG7=32,partial=baseRest_default(function(func,partials){var holders=replaceHolders_default(partials,getHolder_default(partial));return createWrap_default(func,WRAP_PARTIAL_FLAG7,void 0,partials,holders)});partial.placeholder={};partial_default=partial}});var WRAP_PARTIAL_RIGHT_FLAG4,partialRight,partialRight_default,init_partialRight=__esm({"../../node_modules/lodash-es/partialRight.js"(){init_baseRest();init_createWrap();init_getHolder();init_replaceHolders();WRAP_PARTIAL_RIGHT_FLAG4=64,partialRight=baseRest_default(function(func,partials){var holders=replaceHolders_default(partials,getHolder_default(partialRight));return createWrap_default(func,WRAP_PARTIAL_RIGHT_FLAG4,void 0,partials,holders)});partialRight.placeholder={};partialRight_default=partialRight}});var partition,partition_default,init_partition=__esm({"../../node_modules/lodash-es/partition.js"(){init_createAggregator();partition=createAggregator_default(function(result2,value,key){result2[key?0:1].push(value)},function(){return[[],[]]}),partition_default=partition}});function basePick(object2,paths2){return basePickBy_default(object2,paths2,function(value,path10){return hasIn_default(object2,path10)})}var basePick_default,init_basePick=__esm({"../../node_modules/lodash-es/_basePick.js"(){init_basePickBy();init_hasIn();__name(basePick,"basePick");basePick_default=basePick}});var pick,pick_default,init_pick=__esm({"../../node_modules/lodash-es/pick.js"(){init_basePick();init_flatRest();pick=flatRest_default(function(object2,paths2){return object2==null?{}:basePick_default(object2,paths2)}),pick_default=pick}});function wrapperPlant(value){for(var result2,parent2=this;parent2 instanceof baseLodash_default;){var clone5=wrapperClone_default(parent2);clone5.__index__=0,clone5.__values__=void 0,result2?previous.__wrapped__=clone5:result2=clone5;var previous=clone5;parent2=parent2.__wrapped__}return previous.__wrapped__=value,result2}var plant_default,init_plant=__esm({"../../node_modules/lodash-es/plant.js"(){init_baseLodash();init_wrapperClone();__name(wrapperPlant,"wrapperPlant");plant_default=wrapperPlant}});function propertyOf(object2){return function(path10){return object2==null?void 0:baseGet_default(object2,path10)}}var propertyOf_default,init_propertyOf=__esm({"../../node_modules/lodash-es/propertyOf.js"(){init_baseGet();__name(propertyOf,"propertyOf");propertyOf_default=propertyOf}});function baseIndexOfWith(array2,value,fromIndex,comparator){for(var index=fromIndex-1,length=array2.length;++index<length;)if(comparator(array2[index],value))return index;return-1}var baseIndexOfWith_default,init_baseIndexOfWith=__esm({"../../node_modules/lodash-es/_baseIndexOfWith.js"(){__name(baseIndexOfWith,"baseIndexOfWith");baseIndexOfWith_default=baseIndexOfWith}});function basePullAll(array2,values2,iteratee2,comparator){var indexOf2=comparator?baseIndexOfWith_default:baseIndexOf_default,index=-1,length=values2.length,seen=array2;for(array2===values2&&(values2=copyArray_default(values2)),iteratee2&&(seen=arrayMap_default(array2,baseUnary_default(iteratee2)));++index<length;)for(var fromIndex=0,value=values2[index],computed=iteratee2?iteratee2(value):value;(fromIndex=indexOf2(seen,computed,fromIndex,comparator))>-1;)seen!==array2&&splice2.call(seen,fromIndex,1),splice2.call(array2,fromIndex,1);return array2}var arrayProto3,splice2,basePullAll_default,init_basePullAll=__esm({"../../node_modules/lodash-es/_basePullAll.js"(){init_arrayMap();init_baseIndexOf();init_baseIndexOfWith();init_baseUnary();init_copyArray();arrayProto3=Array.prototype,splice2=arrayProto3.splice;__name(basePullAll,"basePullAll");basePullAll_default=basePullAll}});function pullAll(array2,values2){return array2&&array2.length&&values2&&values2.length?basePullAll_default(array2,values2):array2}var pullAll_default,init_pullAll=__esm({"../../node_modules/lodash-es/pullAll.js"(){init_basePullAll();__name(pullAll,"pullAll");pullAll_default=pullAll}});var pull,pull_default,init_pull=__esm({"../../node_modules/lodash-es/pull.js"(){init_baseRest();init_pullAll();pull=baseRest_default(pullAll_default),pull_default=pull}});function pullAllBy(array2,values2,iteratee2){return array2&&array2.length&&values2&&values2.length?basePullAll_default(array2,values2,baseIteratee_default(iteratee2,2)):array2}var pullAllBy_default,init_pullAllBy=__esm({"../../node_modules/lodash-es/pullAllBy.js"(){init_baseIteratee();init_basePullAll();__name(pullAllBy,"pullAllBy");pullAllBy_default=pullAllBy}});function pullAllWith(array2,values2,comparator){return array2&&array2.length&&values2&&values2.length?basePullAll_default(array2,values2,void 0,comparator):array2}var pullAllWith_default,init_pullAllWith=__esm({"../../node_modules/lodash-es/pullAllWith.js"(){init_basePullAll();__name(pullAllWith,"pullAllWith");pullAllWith_default=pullAllWith}});function basePullAt(array2,indexes){for(var length=array2?indexes.length:0,lastIndex=length-1;length--;){var index=indexes[length];if(length==lastIndex||index!==previous){var previous=index;isIndex_default(index)?splice3.call(array2,index,1):baseUnset_default(array2,index)}}return array2}var arrayProto4,splice3,basePullAt_default,init_basePullAt=__esm({"../../node_modules/lodash-es/_basePullAt.js"(){init_baseUnset();init_isIndex();arrayProto4=Array.prototype,splice3=arrayProto4.splice;__name(basePullAt,"basePullAt");basePullAt_default=basePullAt}});var pullAt,pullAt_default,init_pullAt=__esm({"../../node_modules/lodash-es/pullAt.js"(){init_arrayMap();init_baseAt();init_basePullAt();init_compareAscending();init_flatRest();init_isIndex();pullAt=flatRest_default(function(array2,indexes){var length=array2==null?0:array2.length,result2=baseAt_default(array2,indexes);return basePullAt_default(array2,arrayMap_default(indexes,function(index){return isIndex_default(index,length)?+index:index}).sort(compareAscending_default)),result2}),pullAt_default=pullAt}});function baseRandom(lower3,upper){return lower3+nativeFloor3(nativeRandom()*(upper-lower3+1))}var nativeFloor3,nativeRandom,baseRandom_default,init_baseRandom=__esm({"../../node_modules/lodash-es/_baseRandom.js"(){nativeFloor3=Math.floor,nativeRandom=Math.random;__name(baseRandom,"baseRandom");baseRandom_default=baseRandom}});function random(lower3,upper,floating){if(floating&&typeof floating!="boolean"&&isIterateeCall_default(lower3,upper,floating)&&(upper=floating=void 0),floating===void 0&&(typeof upper=="boolean"?(floating=upper,upper=void 0):typeof lower3=="boolean"&&(floating=lower3,lower3=void 0)),lower3===void 0&&upper===void 0?(lower3=0,upper=1):(lower3=toFinite_default(lower3),upper===void 0?(upper=lower3,lower3=0):upper=toFinite_default(upper)),lower3>upper){var temp=lower3;lower3=upper,upper=temp}if(floating||lower3%1||upper%1){var rand=nativeRandom2();return nativeMin10(lower3+rand*(upper-lower3+freeParseFloat("1e-"+((rand+"").length-1))),upper)}return baseRandom_default(lower3,upper)}var freeParseFloat,nativeMin10,nativeRandom2,random_default,init_random=__esm({"../../node_modules/lodash-es/random.js"(){init_baseRandom();init_isIterateeCall();init_toFinite();freeParseFloat=parseFloat,nativeMin10=Math.min,nativeRandom2=Math.random;__name(random,"random");random_default=random}});function baseRange(start,end,step,fromRight){for(var index=-1,length=nativeMax13(nativeCeil4((end-start)/(step||1)),0),result2=Array(length);length--;)result2[fromRight?length:++index]=start,start+=step;return result2}var nativeCeil4,nativeMax13,baseRange_default,init_baseRange=__esm({"../../node_modules/lodash-es/_baseRange.js"(){nativeCeil4=Math.ceil,nativeMax13=Math.max;__name(baseRange,"baseRange");baseRange_default=baseRange}});function createRange(fromRight){return function(start,end,step){return step&&typeof step!="number"&&isIterateeCall_default(start,end,step)&&(end=step=void 0),start=toFinite_default(start),end===void 0?(end=start,start=0):end=toFinite_default(end),step=step===void 0?start<end?1:-1:toFinite_default(step),baseRange_default(start,end,step,fromRight)}}var createRange_default,init_createRange=__esm({"../../node_modules/lodash-es/_createRange.js"(){init_baseRange();init_isIterateeCall();init_toFinite();__name(createRange,"createRange");createRange_default=createRange}});var range,range_default,init_range=__esm({"../../node_modules/lodash-es/range.js"(){init_createRange();range=createRange_default(),range_default=range}});var rangeRight,rangeRight_default,init_rangeRight=__esm({"../../node_modules/lodash-es/rangeRight.js"(){init_createRange();rangeRight=createRange_default(!0),rangeRight_default=rangeRight}});var WRAP_REARG_FLAG4,rearg,rearg_default,init_rearg=__esm({"../../node_modules/lodash-es/rearg.js"(){init_createWrap();init_flatRest();WRAP_REARG_FLAG4=256,rearg=flatRest_default(function(func,indexes){return createWrap_default(func,WRAP_REARG_FLAG4,void 0,void 0,void 0,indexes)}),rearg_default=rearg}});function baseReduce(collection,iteratee2,accumulator,initAccum,eachFunc){return eachFunc(collection,function(value,index,collection2){accumulator=initAccum?(initAccum=!1,value):iteratee2(accumulator,value,index,collection2)}),accumulator}var baseReduce_default,init_baseReduce=__esm({"../../node_modules/lodash-es/_baseReduce.js"(){__name(baseReduce,"baseReduce");baseReduce_default=baseReduce}});function reduce(collection,iteratee2,accumulator){var func=isArray_default(collection)?arrayReduce_default:baseReduce_default,initAccum=arguments.length<3;return func(collection,baseIteratee_default(iteratee2,4),accumulator,initAccum,baseEach_default)}var reduce_default,init_reduce=__esm({"../../node_modules/lodash-es/reduce.js"(){init_arrayReduce();init_baseEach();init_baseIteratee();init_baseReduce();init_isArray();__name(reduce,"reduce");reduce_default=reduce}});function arrayReduceRight(array2,iteratee2,accumulator,initAccum){var length=array2==null?0:array2.length;for(initAccum&&length&&(accumulator=array2[--length]);length--;)accumulator=iteratee2(accumulator,array2[length],length,array2);return accumulator}var arrayReduceRight_default,init_arrayReduceRight=__esm({"../../node_modules/lodash-es/_arrayReduceRight.js"(){__name(arrayReduceRight,"arrayReduceRight");arrayReduceRight_default=arrayReduceRight}});function reduceRight(collection,iteratee2,accumulator){var func=isArray_default(collection)?arrayReduceRight_default:baseReduce_default,initAccum=arguments.length<3;return func(collection,baseIteratee_default(iteratee2,4),accumulator,initAccum,baseEachRight_default)}var reduceRight_default,init_reduceRight=__esm({"../../node_modules/lodash-es/reduceRight.js"(){init_arrayReduceRight();init_baseEachRight();init_baseIteratee();init_baseReduce();init_isArray();__name(reduceRight,"reduceRight");reduceRight_default=reduceRight}});function reject(collection,predicate){var func=isArray_default(collection)?arrayFilter_default:baseFilter_default;return func(collection,negate_default(baseIteratee_default(predicate,3)))}var reject_default,init_reject=__esm({"../../node_modules/lodash-es/reject.js"(){init_arrayFilter();init_baseFilter();init_baseIteratee();init_isArray();init_negate();__name(reject,"reject");reject_default=reject}});function remove(array2,predicate){var result2=[];if(!(array2&&array2.length))return result2;var index=-1,indexes=[],length=array2.length;for(predicate=baseIteratee_default(predicate,3);++index<length;){var value=array2[index];predicate(value,index,array2)&&(result2.push(value),indexes.push(index))}return basePullAt_default(array2,indexes),result2}var remove_default,init_remove=__esm({"../../node_modules/lodash-es/remove.js"(){init_baseIteratee();init_basePullAt();__name(remove,"remove");remove_default=remove}});function repeat(string4,n2,guard){return(guard?isIterateeCall_default(string4,n2,guard):n2===void 0)?n2=1:n2=toInteger_default(n2),baseRepeat_default(toString_default(string4),n2)}var repeat_default,init_repeat=__esm({"../../node_modules/lodash-es/repeat.js"(){init_baseRepeat();init_isIterateeCall();init_toInteger();init_toString();__name(repeat,"repeat");repeat_default=repeat}});function replace(){var args=arguments,string4=toString_default(args[0]);return args.length<3?string4:string4.replace(args[1],args[2])}var replace_default,init_replace=__esm({"../../node_modules/lodash-es/replace.js"(){init_toString();__name(replace,"replace");replace_default=replace}});function rest(func,start){if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT10);return start=start===void 0?start:toInteger_default(start),baseRest_default(func,start)}var FUNC_ERROR_TEXT10,rest_default,init_rest=__esm({"../../node_modules/lodash-es/rest.js"(){init_baseRest();init_toInteger();FUNC_ERROR_TEXT10="Expected a function";__name(rest,"rest");rest_default=rest}});function result(object2,path10,defaultValue){path10=castPath_default(path10,object2);var index=-1,length=path10.length;for(length||(length=1,object2=void 0);++index<length;){var value=object2?.[toKey_default(path10[index])];value===void 0&&(index=length,value=defaultValue),object2=isFunction_default(value)?value.call(object2):value}return object2}var result_default,init_result=__esm({"../../node_modules/lodash-es/result.js"(){init_castPath();init_isFunction();init_toKey();__name(result,"result");result_default=result}});function reverse(array2){return array2==null?array2:nativeReverse.call(array2)}var arrayProto5,nativeReverse,reverse_default,init_reverse=__esm({"../../node_modules/lodash-es/reverse.js"(){arrayProto5=Array.prototype,nativeReverse=arrayProto5.reverse;__name(reverse,"reverse");reverse_default=reverse}});var round,round_default,init_round=__esm({"../../node_modules/lodash-es/round.js"(){init_createRound();round=createRound_default("round"),round_default=round}});function arraySample(array2){var length=array2.length;return length?array2[baseRandom_default(0,length-1)]:void 0}var arraySample_default,init_arraySample=__esm({"../../node_modules/lodash-es/_arraySample.js"(){init_baseRandom();__name(arraySample,"arraySample");arraySample_default=arraySample}});function baseSample(collection){return arraySample_default(values_default(collection))}var baseSample_default,init_baseSample=__esm({"../../node_modules/lodash-es/_baseSample.js"(){init_arraySample();init_values();__name(baseSample,"baseSample");baseSample_default=baseSample}});function sample(collection){var func=isArray_default(collection)?arraySample_default:baseSample_default;return func(collection)}var sample_default,init_sample=__esm({"../../node_modules/lodash-es/sample.js"(){init_arraySample();init_baseSample();init_isArray();__name(sample,"sample");sample_default=sample}});function shuffleSelf(array2,size2){var index=-1,length=array2.length,lastIndex=length-1;for(size2=size2===void 0?length:size2;++index<size2;){var rand=baseRandom_default(index,lastIndex),value=array2[rand];array2[rand]=array2[index],array2[index]=value}return array2.length=size2,array2}var shuffleSelf_default,init_shuffleSelf=__esm({"../../node_modules/lodash-es/_shuffleSelf.js"(){init_baseRandom();__name(shuffleSelf,"shuffleSelf");shuffleSelf_default=shuffleSelf}});function arraySampleSize(array2,n2){return shuffleSelf_default(copyArray_default(array2),baseClamp_default(n2,0,array2.length))}var arraySampleSize_default,init_arraySampleSize=__esm({"../../node_modules/lodash-es/_arraySampleSize.js"(){init_baseClamp();init_copyArray();init_shuffleSelf();__name(arraySampleSize,"arraySampleSize");arraySampleSize_default=arraySampleSize}});function baseSampleSize(collection,n2){var array2=values_default(collection);return shuffleSelf_default(array2,baseClamp_default(n2,0,array2.length))}var baseSampleSize_default,init_baseSampleSize=__esm({"../../node_modules/lodash-es/_baseSampleSize.js"(){init_baseClamp();init_shuffleSelf();init_values();__name(baseSampleSize,"baseSampleSize");baseSampleSize_default=baseSampleSize}});function sampleSize(collection,n2,guard){(guard?isIterateeCall_default(collection,n2,guard):n2===void 0)?n2=1:n2=toInteger_default(n2);var func=isArray_default(collection)?arraySampleSize_default:baseSampleSize_default;return func(collection,n2)}var sampleSize_default,init_sampleSize=__esm({"../../node_modules/lodash-es/sampleSize.js"(){init_arraySampleSize();init_baseSampleSize();init_isArray();init_isIterateeCall();init_toInteger();__name(sampleSize,"sampleSize");sampleSize_default=sampleSize}});function set(object2,path10,value){return object2==null?object2:baseSet_default(object2,path10,value)}var set_default,init_set=__esm({"../../node_modules/lodash-es/set.js"(){init_baseSet();__name(set,"set");set_default=set}});function setWith(object2,path10,value,customizer){return customizer=typeof customizer=="function"?customizer:void 0,object2==null?object2:baseSet_default(object2,path10,value,customizer)}var setWith_default,init_setWith=__esm({"../../node_modules/lodash-es/setWith.js"(){init_baseSet();__name(setWith,"setWith");setWith_default=setWith}});function arrayShuffle(array2){return shuffleSelf_default(copyArray_default(array2))}var arrayShuffle_default,init_arrayShuffle=__esm({"../../node_modules/lodash-es/_arrayShuffle.js"(){init_copyArray();init_shuffleSelf();__name(arrayShuffle,"arrayShuffle");arrayShuffle_default=arrayShuffle}});function baseShuffle(collection){return shuffleSelf_default(values_default(collection))}var baseShuffle_default,init_baseShuffle=__esm({"../../node_modules/lodash-es/_baseShuffle.js"(){init_shuffleSelf();init_values();__name(baseShuffle,"baseShuffle");baseShuffle_default=baseShuffle}});function shuffle(collection){var func=isArray_default(collection)?arrayShuffle_default:baseShuffle_default;return func(collection)}var shuffle_default,init_shuffle=__esm({"../../node_modules/lodash-es/shuffle.js"(){init_arrayShuffle();init_baseShuffle();init_isArray();__name(shuffle,"shuffle");shuffle_default=shuffle}});function size(collection){if(collection==null)return 0;if(isArrayLike_default(collection))return isString_default(collection)?stringSize_default(collection):collection.length;var tag=getTag_default(collection);return tag==mapTag10||tag==setTag10?collection.size:baseKeys_default(collection).length}var mapTag10,setTag10,size_default,init_size=__esm({"../../node_modules/lodash-es/size.js"(){init_baseKeys();init_getTag();init_isArrayLike();init_isString();init_stringSize();mapTag10="[object Map]",setTag10="[object Set]";__name(size,"size");size_default=size}});function slice(array2,start,end){var length=array2==null?0:array2.length;return length?(end&&typeof end!="number"&&isIterateeCall_default(array2,start,end)?(start=0,end=length):(start=start==null?0:toInteger_default(start),end=end===void 0?length:toInteger_default(end)),baseSlice_default(array2,start,end)):[]}var slice_default,init_slice=__esm({"../../node_modules/lodash-es/slice.js"(){init_baseSlice();init_isIterateeCall();init_toInteger();__name(slice,"slice");slice_default=slice}});var snakeCase,snakeCase_default,init_snakeCase=__esm({"../../node_modules/lodash-es/snakeCase.js"(){init_createCompounder();snakeCase=createCompounder_default(function(result2,word,index){return result2+(index?"_":"")+word.toLowerCase()}),snakeCase_default=snakeCase}});function baseSome(collection,predicate){var result2;return baseEach_default(collection,function(value,index,collection2){return result2=predicate(value,index,collection2),!result2}),!!result2}var baseSome_default,init_baseSome=__esm({"../../node_modules/lodash-es/_baseSome.js"(){init_baseEach();__name(baseSome,"baseSome");baseSome_default=baseSome}});function some(collection,predicate,guard){var func=isArray_default(collection)?arraySome_default:baseSome_default;return guard&&isIterateeCall_default(collection,predicate,guard)&&(predicate=void 0),func(collection,baseIteratee_default(predicate,3))}var some_default,init_some=__esm({"../../node_modules/lodash-es/some.js"(){init_arraySome();init_baseIteratee();init_baseSome();init_isArray();init_isIterateeCall();__name(some,"some");some_default=some}});var sortBy,sortBy_default,init_sortBy=__esm({"../../node_modules/lodash-es/sortBy.js"(){init_baseFlatten();init_baseOrderBy();init_baseRest();init_isIterateeCall();sortBy=baseRest_default(function(collection,iteratees){if(collection==null)return[];var length=iteratees.length;return length>1&&isIterateeCall_default(collection,iteratees[0],iteratees[1])?iteratees=[]:length>2&&isIterateeCall_default(iteratees[0],iteratees[1],iteratees[2])&&(iteratees=[iteratees[0]]),baseOrderBy_default(collection,baseFlatten_default(iteratees,1),[])}),sortBy_default=sortBy}});function baseSortedIndexBy(array2,value,iteratee2,retHighest){var low=0,high=array2==null?0:array2.length;if(high===0)return 0;value=iteratee2(value);for(var valIsNaN=value!==value,valIsNull=value===null,valIsSymbol=isSymbol_default(value),valIsUndefined=value===void 0;low<high;){var mid=nativeFloor4((low+high)/2),computed=iteratee2(array2[mid]),othIsDefined=computed!==void 0,othIsNull=computed===null,othIsReflexive=computed===computed,othIsSymbol=isSymbol_default(computed);if(valIsNaN)var setLow=retHighest||othIsReflexive;else valIsUndefined?setLow=othIsReflexive&&(retHighest||othIsDefined):valIsNull?setLow=othIsReflexive&&othIsDefined&&(retHighest||!othIsNull):valIsSymbol?setLow=othIsReflexive&&othIsDefined&&!othIsNull&&(retHighest||!othIsSymbol):othIsNull||othIsSymbol?setLow=!1:setLow=retHighest?computed<=value:computed<value;setLow?low=mid+1:high=mid}return nativeMin11(high,MAX_ARRAY_INDEX)}var MAX_ARRAY_LENGTH3,MAX_ARRAY_INDEX,nativeFloor4,nativeMin11,baseSortedIndexBy_default,init_baseSortedIndexBy=__esm({"../../node_modules/lodash-es/_baseSortedIndexBy.js"(){init_isSymbol();MAX_ARRAY_LENGTH3=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH3-1,nativeFloor4=Math.floor,nativeMin11=Math.min;__name(baseSortedIndexBy,"baseSortedIndexBy");baseSortedIndexBy_default=baseSortedIndexBy}});function baseSortedIndex(array2,value,retHighest){var low=0,high=array2==null?low:array2.length;if(typeof value=="number"&&value===value&&high<=HALF_MAX_ARRAY_LENGTH){for(;low<high;){var mid=low+high>>>1,computed=array2[mid];computed!==null&&!isSymbol_default(computed)&&(retHighest?computed<=value:computed<value)?low=mid+1:high=mid}return high}return baseSortedIndexBy_default(array2,value,identity_default,retHighest)}var MAX_ARRAY_LENGTH4,HALF_MAX_ARRAY_LENGTH,baseSortedIndex_default,init_baseSortedIndex=__esm({"../../node_modules/lodash-es/_baseSortedIndex.js"(){init_baseSortedIndexBy();init_identity();init_isSymbol();MAX_ARRAY_LENGTH4=4294967295,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH4>>>1;__name(baseSortedIndex,"baseSortedIndex");baseSortedIndex_default=baseSortedIndex}});function sortedIndex(array2,value){return baseSortedIndex_default(array2,value)}var sortedIndex_default,init_sortedIndex=__esm({"../../node_modules/lodash-es/sortedIndex.js"(){init_baseSortedIndex();__name(sortedIndex,"sortedIndex");sortedIndex_default=sortedIndex}});function sortedIndexBy(array2,value,iteratee2){return baseSortedIndexBy_default(array2,value,baseIteratee_default(iteratee2,2))}var sortedIndexBy_default,init_sortedIndexBy=__esm({"../../node_modules/lodash-es/sortedIndexBy.js"(){init_baseIteratee();init_baseSortedIndexBy();__name(sortedIndexBy,"sortedIndexBy");sortedIndexBy_default=sortedIndexBy}});function sortedIndexOf(array2,value){var length=array2==null?0:array2.length;if(length){var index=baseSortedIndex_default(array2,value);if(index<length&&eq_default(array2[index],value))return index}return-1}var sortedIndexOf_default,init_sortedIndexOf=__esm({"../../node_modules/lodash-es/sortedIndexOf.js"(){init_baseSortedIndex();init_eq();__name(sortedIndexOf,"sortedIndexOf");sortedIndexOf_default=sortedIndexOf}});function sortedLastIndex(array2,value){return baseSortedIndex_default(array2,value,!0)}var sortedLastIndex_default,init_sortedLastIndex=__esm({"../../node_modules/lodash-es/sortedLastIndex.js"(){init_baseSortedIndex();__name(sortedLastIndex,"sortedLastIndex");sortedLastIndex_default=sortedLastIndex}});function sortedLastIndexBy(array2,value,iteratee2){return baseSortedIndexBy_default(array2,value,baseIteratee_default(iteratee2,2),!0)}var sortedLastIndexBy_default,init_sortedLastIndexBy=__esm({"../../node_modules/lodash-es/sortedLastIndexBy.js"(){init_baseIteratee();init_baseSortedIndexBy();__name(sortedLastIndexBy,"sortedLastIndexBy");sortedLastIndexBy_default=sortedLastIndexBy}});function sortedLastIndexOf(array2,value){var length=array2==null?0:array2.length;if(length){var index=baseSortedIndex_default(array2,value,!0)-1;if(eq_default(array2[index],value))return index}return-1}var sortedLastIndexOf_default,init_sortedLastIndexOf=__esm({"../../node_modules/lodash-es/sortedLastIndexOf.js"(){init_baseSortedIndex();init_eq();__name(sortedLastIndexOf,"sortedLastIndexOf");sortedLastIndexOf_default=sortedLastIndexOf}});function baseSortedUniq(array2,iteratee2){for(var index=-1,length=array2.length,resIndex=0,result2=[];++index<length;){var value=array2[index],computed=iteratee2?iteratee2(value):value;if(!index||!eq_default(computed,seen)){var seen=computed;result2[resIndex++]=value===0?0:value}}return result2}var baseSortedUniq_default,init_baseSortedUniq=__esm({"../../node_modules/lodash-es/_baseSortedUniq.js"(){init_eq();__name(baseSortedUniq,"baseSortedUniq");baseSortedUniq_default=baseSortedUniq}});function sortedUniq(array2){return array2&&array2.length?baseSortedUniq_default(array2):[]}var sortedUniq_default,init_sortedUniq=__esm({"../../node_modules/lodash-es/sortedUniq.js"(){init_baseSortedUniq();__name(sortedUniq,"sortedUniq");sortedUniq_default=sortedUniq}});function sortedUniqBy(array2,iteratee2){return array2&&array2.length?baseSortedUniq_default(array2,baseIteratee_default(iteratee2,2)):[]}var sortedUniqBy_default,init_sortedUniqBy=__esm({"../../node_modules/lodash-es/sortedUniqBy.js"(){init_baseIteratee();init_baseSortedUniq();__name(sortedUniqBy,"sortedUniqBy");sortedUniqBy_default=sortedUniqBy}});function split(string4,separator,limit){return limit&&typeof limit!="number"&&isIterateeCall_default(string4,separator,limit)&&(separator=limit=void 0),limit=limit===void 0?MAX_ARRAY_LENGTH5:limit>>>0,limit?(string4=toString_default(string4),string4&&(typeof separator=="string"||separator!=null&&!isRegExp_default(separator))&&(separator=baseToString_default(separator),!separator&&hasUnicode_default(string4))?castSlice_default(stringToArray_default(string4),0,limit):string4.split(separator,limit)):[]}var MAX_ARRAY_LENGTH5,split_default,init_split=__esm({"../../node_modules/lodash-es/split.js"(){init_baseToString();init_castSlice();init_hasUnicode();init_isIterateeCall();init_isRegExp();init_stringToArray();init_toString();MAX_ARRAY_LENGTH5=4294967295;__name(split,"split");split_default=split}});function spread(func,start){if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT11);return start=start==null?0:nativeMax14(toInteger_default(start),0),baseRest_default(function(args){var array2=args[start],otherArgs=castSlice_default(args,0,start);return array2&&arrayPush_default(otherArgs,array2),apply_default(func,this,otherArgs)})}var FUNC_ERROR_TEXT11,nativeMax14,spread_default,init_spread=__esm({"../../node_modules/lodash-es/spread.js"(){init_apply();init_arrayPush();init_baseRest();init_castSlice();init_toInteger();FUNC_ERROR_TEXT11="Expected a function",nativeMax14=Math.max;__name(spread,"spread");spread_default=spread}});var startCase,startCase_default,init_startCase=__esm({"../../node_modules/lodash-es/startCase.js"(){init_createCompounder();init_upperFirst();startCase=createCompounder_default(function(result2,word,index){return result2+(index?" ":"")+upperFirst_default(word)}),startCase_default=startCase}});function startsWith(string4,target,position){return string4=toString_default(string4),position=position==null?0:baseClamp_default(toInteger_default(position),0,string4.length),target=baseToString_default(target),string4.slice(position,position+target.length)==target}var startsWith_default,init_startsWith=__esm({"../../node_modules/lodash-es/startsWith.js"(){init_baseClamp();init_baseToString();init_toInteger();init_toString();__name(startsWith,"startsWith");startsWith_default=startsWith}});function stubObject(){return{}}var stubObject_default,init_stubObject=__esm({"../../node_modules/lodash-es/stubObject.js"(){__name(stubObject,"stubObject");stubObject_default=stubObject}});function stubString(){return""}var stubString_default,init_stubString=__esm({"../../node_modules/lodash-es/stubString.js"(){__name(stubString,"stubString");stubString_default=stubString}});function stubTrue(){return!0}var stubTrue_default,init_stubTrue=__esm({"../../node_modules/lodash-es/stubTrue.js"(){__name(stubTrue,"stubTrue");stubTrue_default=stubTrue}});var subtract,subtract_default,init_subtract=__esm({"../../node_modules/lodash-es/subtract.js"(){init_createMathOperation();subtract=createMathOperation_default(function(minuend,subtrahend){return minuend-subtrahend},0),subtract_default=subtract}});function sum(array2){return array2&&array2.length?baseSum_default(array2,identity_default):0}var sum_default,init_sum=__esm({"../../node_modules/lodash-es/sum.js"(){init_baseSum();init_identity();__name(sum,"sum");sum_default=sum}});function tail(array2){var length=array2==null?0:array2.length;return length?baseSlice_default(array2,1,length):[]}var tail_default,init_tail=__esm({"../../node_modules/lodash-es/tail.js"(){init_baseSlice();__name(tail,"tail");tail_default=tail}});function take(array2,n2,guard){return array2&&array2.length?(n2=guard||n2===void 0?1:toInteger_default(n2),baseSlice_default(array2,0,n2<0?0:n2)):[]}var take_default,init_take=__esm({"../../node_modules/lodash-es/take.js"(){init_baseSlice();init_toInteger();__name(take,"take");take_default=take}});function takeRight(array2,n2,guard){var length=array2==null?0:array2.length;return length?(n2=guard||n2===void 0?1:toInteger_default(n2),n2=length-n2,baseSlice_default(array2,n2<0?0:n2,length)):[]}var takeRight_default,init_takeRight=__esm({"../../node_modules/lodash-es/takeRight.js"(){init_baseSlice();init_toInteger();__name(takeRight,"takeRight");takeRight_default=takeRight}});function takeRightWhile(array2,predicate){return array2&&array2.length?baseWhile_default(array2,baseIteratee_default(predicate,3),!1,!0):[]}var takeRightWhile_default,init_takeRightWhile=__esm({"../../node_modules/lodash-es/takeRightWhile.js"(){init_baseIteratee();init_baseWhile();__name(takeRightWhile,"takeRightWhile");takeRightWhile_default=takeRightWhile}});function takeWhile(array2,predicate){return array2&&array2.length?baseWhile_default(array2,baseIteratee_default(predicate,3)):[]}var takeWhile_default,init_takeWhile=__esm({"../../node_modules/lodash-es/takeWhile.js"(){init_baseIteratee();init_baseWhile();__name(takeWhile,"takeWhile");takeWhile_default=takeWhile}});function tap(value,interceptor){return interceptor(value),value}var tap_default,init_tap=__esm({"../../node_modules/lodash-es/tap.js"(){__name(tap,"tap");tap_default=tap}});function customDefaultsAssignIn(objValue,srcValue,key,object2){return objValue===void 0||eq_default(objValue,objectProto28[key])&&!hasOwnProperty24.call(object2,key)?srcValue:objValue}var objectProto28,hasOwnProperty24,customDefaultsAssignIn_default,init_customDefaultsAssignIn=__esm({"../../node_modules/lodash-es/_customDefaultsAssignIn.js"(){init_eq();objectProto28=Object.prototype,hasOwnProperty24=objectProto28.hasOwnProperty;__name(customDefaultsAssignIn,"customDefaultsAssignIn");customDefaultsAssignIn_default=customDefaultsAssignIn}});function escapeStringChar(chr){return"\\"+stringEscapes[chr]}var stringEscapes,escapeStringChar_default,init_escapeStringChar=__esm({"../../node_modules/lodash-es/_escapeStringChar.js"(){stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};__name(escapeStringChar,"escapeStringChar");escapeStringChar_default=escapeStringChar}});var reInterpolate,reInterpolate_default,init_reInterpolate=__esm({"../../node_modules/lodash-es/_reInterpolate.js"(){reInterpolate=/<%=([\s\S]+?)%>/g,reInterpolate_default=reInterpolate}});var reEscape,reEscape_default,init_reEscape=__esm({"../../node_modules/lodash-es/_reEscape.js"(){reEscape=/<%-([\s\S]+?)%>/g,reEscape_default=reEscape}});var reEvaluate,reEvaluate_default,init_reEvaluate=__esm({"../../node_modules/lodash-es/_reEvaluate.js"(){reEvaluate=/<%([\s\S]+?)%>/g,reEvaluate_default=reEvaluate}});var templateSettings,templateSettings_default,init_templateSettings=__esm({"../../node_modules/lodash-es/templateSettings.js"(){init_escape();init_reEscape();init_reEvaluate();init_reInterpolate();templateSettings={escape:reEscape_default,evaluate:reEvaluate_default,interpolate:reInterpolate_default,variable:"",imports:{_:{escape:escape_default}}},templateSettings_default=templateSettings}});function template(string4,options,guard){var settings=templateSettings_default.imports._.templateSettings||templateSettings_default;guard&&isIterateeCall_default(string4,options,guard)&&(options=void 0),string4=toString_default(string4),options=assignWith_default({},options,settings,customDefaultsAssignIn_default);var imports=assignWith_default({},options.imports,settings.imports,customDefaultsAssignIn_default),importsKeys=keys_default(imports),importsValues=baseValues_default(imports,importsKeys);arrayEach_default(importsKeys,function(key){if(reForbiddenIdentifierChars.test(key))throw new Error(INVALID_TEMPL_IMPORTS_ERROR_TEXT)});var isEscaping,isEvaluating,index=0,interpolate=options.interpolate||reNoMatch,source="__p += '",reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate_default?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g"),sourceURL=hasOwnProperty25.call(options,"sourceURL")?"//# sourceURL="+(options.sourceURL+"").replace(/\s/g," ")+`
@@ -20,7 +20,7 @@ __p += '`),interpolateValue&&(source+=`' +
20
20
  function print() { __p += __j.call(arguments, '') }
21
21
  `:`;
22
22
  `)+source+`return __p
23
- }`;var result2=attempt_default(function(){return Function(importsKeys,sourceURL+"return "+source).apply(void 0,importsValues)});if(result2.source=source,isError_default(result2))throw result2;return result2}var INVALID_TEMPL_VAR_ERROR_TEXT,INVALID_TEMPL_IMPORTS_ERROR_TEXT,reEmptyStringLeading,reEmptyStringMiddle,reEmptyStringTrailing,reForbiddenIdentifierChars,reEsTemplate,reNoMatch,reUnescapedString,objectProto29,hasOwnProperty25,template_default,init_template=__esm({"../../node_modules/lodash-es/template.js"(){init_arrayEach();init_assignWith();init_attempt();init_baseValues();init_customDefaultsAssignIn();init_escapeStringChar();init_isError();init_isIterateeCall();init_keys();init_reInterpolate();init_templateSettings();init_toString();INVALID_TEMPL_VAR_ERROR_TEXT="Invalid `variable` option passed into `_.template`",INVALID_TEMPL_IMPORTS_ERROR_TEXT="Invalid `imports` option passed into `_.template`",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reForbiddenIdentifierChars=/[()=,{}\[\]\/\s]/,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reNoMatch=/($^)/,reUnescapedString=/['\n\r\u2028\u2029\\]/g,objectProto29=Object.prototype,hasOwnProperty25=objectProto29.hasOwnProperty;__name(template,"template");template_default=template}});function throttle(func,wait,options){var leading=!0,trailing=!0;if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT12);return isObject_default(options)&&(leading="leading"in options?!!options.leading:leading,trailing="trailing"in options?!!options.trailing:trailing),debounce_default(func,wait,{leading,maxWait:wait,trailing})}var FUNC_ERROR_TEXT12,throttle_default,init_throttle=__esm({"../../node_modules/lodash-es/throttle.js"(){init_debounce();init_isObject();FUNC_ERROR_TEXT12="Expected a function";__name(throttle,"throttle");throttle_default=throttle}});function thru(value,interceptor){return interceptor(value)}var thru_default,init_thru=__esm({"../../node_modules/lodash-es/thru.js"(){__name(thru,"thru");thru_default=thru}});function times(n2,iteratee2){if(n2=toInteger_default(n2),n2<1||n2>MAX_SAFE_INTEGER5)return[];var index=MAX_ARRAY_LENGTH6,length=nativeMin12(n2,MAX_ARRAY_LENGTH6);iteratee2=castFunction_default(iteratee2),n2-=MAX_ARRAY_LENGTH6;for(var result2=baseTimes_default(length,iteratee2);++index<n2;)iteratee2(index);return result2}var MAX_SAFE_INTEGER5,MAX_ARRAY_LENGTH6,nativeMin12,times_default,init_times=__esm({"../../node_modules/lodash-es/times.js"(){init_baseTimes();init_castFunction();init_toInteger();MAX_SAFE_INTEGER5=9007199254740991,MAX_ARRAY_LENGTH6=4294967295,nativeMin12=Math.min;__name(times,"times");times_default=times}});function wrapperToIterator(){return this}var toIterator_default,init_toIterator=__esm({"../../node_modules/lodash-es/toIterator.js"(){__name(wrapperToIterator,"wrapperToIterator");toIterator_default=wrapperToIterator}});function baseWrapperValue(value,actions){var result2=value;return result2 instanceof LazyWrapper_default&&(result2=result2.value()),arrayReduce_default(actions,function(result3,action){return action.func.apply(action.thisArg,arrayPush_default([result3],action.args))},result2)}var baseWrapperValue_default,init_baseWrapperValue=__esm({"../../node_modules/lodash-es/_baseWrapperValue.js"(){init_LazyWrapper();init_arrayPush();init_arrayReduce();__name(baseWrapperValue,"baseWrapperValue");baseWrapperValue_default=baseWrapperValue}});function wrapperValue(){return baseWrapperValue_default(this.__wrapped__,this.__actions__)}var wrapperValue_default,init_wrapperValue=__esm({"../../node_modules/lodash-es/wrapperValue.js"(){init_baseWrapperValue();__name(wrapperValue,"wrapperValue");wrapperValue_default=wrapperValue}});var init_toJSON=__esm({"../../node_modules/lodash-es/toJSON.js"(){init_wrapperValue()}});function toLower(value){return toString_default(value).toLowerCase()}var toLower_default,init_toLower=__esm({"../../node_modules/lodash-es/toLower.js"(){init_toString();__name(toLower,"toLower");toLower_default=toLower}});function toPath(value){return isArray_default(value)?arrayMap_default(value,toKey_default):isSymbol_default(value)?[value]:copyArray_default(stringToPath_default(toString_default(value)))}var toPath_default,init_toPath=__esm({"../../node_modules/lodash-es/toPath.js"(){init_arrayMap();init_copyArray();init_isArray();init_isSymbol();init_stringToPath();init_toKey();init_toString();__name(toPath,"toPath");toPath_default=toPath}});function toSafeInteger(value){return value?baseClamp_default(toInteger_default(value),-MAX_SAFE_INTEGER6,MAX_SAFE_INTEGER6):value===0?value:0}var MAX_SAFE_INTEGER6,toSafeInteger_default,init_toSafeInteger=__esm({"../../node_modules/lodash-es/toSafeInteger.js"(){init_baseClamp();init_toInteger();MAX_SAFE_INTEGER6=9007199254740991;__name(toSafeInteger,"toSafeInteger");toSafeInteger_default=toSafeInteger}});function toUpper(value){return toString_default(value).toUpperCase()}var toUpper_default,init_toUpper=__esm({"../../node_modules/lodash-es/toUpper.js"(){init_toString();__name(toUpper,"toUpper");toUpper_default=toUpper}});function transform(object2,iteratee2,accumulator){var isArr=isArray_default(object2),isArrLike=isArr||isBuffer_default(object2)||isTypedArray_default(object2);if(iteratee2=baseIteratee_default(iteratee2,4),accumulator==null){var Ctor=object2&&object2.constructor;isArrLike?accumulator=isArr?new Ctor:[]:isObject_default(object2)?accumulator=isFunction_default(Ctor)?baseCreate_default(getPrototype_default(object2)):{}:accumulator={}}return(isArrLike?arrayEach_default:baseForOwn_default)(object2,function(value,index,object3){return iteratee2(accumulator,value,index,object3)}),accumulator}var transform_default,init_transform=__esm({"../../node_modules/lodash-es/transform.js"(){init_arrayEach();init_baseCreate();init_baseForOwn();init_baseIteratee();init_getPrototype();init_isArray();init_isBuffer();init_isFunction();init_isObject();init_isTypedArray();__name(transform,"transform");transform_default=transform}});function charsEndIndex(strSymbols,chrSymbols){for(var index=strSymbols.length;index--&&baseIndexOf_default(chrSymbols,strSymbols[index],0)>-1;);return index}var charsEndIndex_default,init_charsEndIndex=__esm({"../../node_modules/lodash-es/_charsEndIndex.js"(){init_baseIndexOf();__name(charsEndIndex,"charsEndIndex");charsEndIndex_default=charsEndIndex}});function charsStartIndex(strSymbols,chrSymbols){for(var index=-1,length=strSymbols.length;++index<length&&baseIndexOf_default(chrSymbols,strSymbols[index],0)>-1;);return index}var charsStartIndex_default,init_charsStartIndex=__esm({"../../node_modules/lodash-es/_charsStartIndex.js"(){init_baseIndexOf();__name(charsStartIndex,"charsStartIndex");charsStartIndex_default=charsStartIndex}});function trim(string4,chars,guard){if(string4=toString_default(string4),string4&&(guard||chars===void 0))return baseTrim_default(string4);if(!string4||!(chars=baseToString_default(chars)))return string4;var strSymbols=stringToArray_default(string4),chrSymbols=stringToArray_default(chars),start=charsStartIndex_default(strSymbols,chrSymbols),end=charsEndIndex_default(strSymbols,chrSymbols)+1;return castSlice_default(strSymbols,start,end).join("")}var trim_default,init_trim=__esm({"../../node_modules/lodash-es/trim.js"(){init_baseToString();init_baseTrim();init_castSlice();init_charsEndIndex();init_charsStartIndex();init_stringToArray();init_toString();__name(trim,"trim");trim_default=trim}});function trimEnd(string4,chars,guard){if(string4=toString_default(string4),string4&&(guard||chars===void 0))return string4.slice(0,trimmedEndIndex_default(string4)+1);if(!string4||!(chars=baseToString_default(chars)))return string4;var strSymbols=stringToArray_default(string4),end=charsEndIndex_default(strSymbols,stringToArray_default(chars))+1;return castSlice_default(strSymbols,0,end).join("")}var trimEnd_default,init_trimEnd=__esm({"../../node_modules/lodash-es/trimEnd.js"(){init_baseToString();init_castSlice();init_charsEndIndex();init_stringToArray();init_toString();init_trimmedEndIndex();__name(trimEnd,"trimEnd");trimEnd_default=trimEnd}});function trimStart(string4,chars,guard){if(string4=toString_default(string4),string4&&(guard||chars===void 0))return string4.replace(reTrimStart3,"");if(!string4||!(chars=baseToString_default(chars)))return string4;var strSymbols=stringToArray_default(string4),start=charsStartIndex_default(strSymbols,stringToArray_default(chars));return castSlice_default(strSymbols,start).join("")}var reTrimStart3,trimStart_default,init_trimStart=__esm({"../../node_modules/lodash-es/trimStart.js"(){init_baseToString();init_castSlice();init_charsStartIndex();init_stringToArray();init_toString();reTrimStart3=/^\s+/;__name(trimStart,"trimStart");trimStart_default=trimStart}});function truncate(string4,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject_default(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger_default(options.length):length,omission="omission"in options?baseToString_default(options.omission):omission}string4=toString_default(string4);var strLength=string4.length;if(hasUnicode_default(string4)){var strSymbols=stringToArray_default(string4);strLength=strSymbols.length}if(length>=strLength)return string4;var end=length-stringSize_default(omission);if(end<1)return omission;var result2=strSymbols?castSlice_default(strSymbols,0,end).join(""):string4.slice(0,end);if(separator===void 0)return result2+omission;if(strSymbols&&(end+=result2.length-end),isRegExp_default(separator)){if(string4.slice(end).search(separator)){var match,substring=result2;for(separator.global||(separator=RegExp(separator.source,toString_default(reFlags2.exec(separator))+"g")),separator.lastIndex=0;match=separator.exec(substring);)var newEnd=match.index;result2=result2.slice(0,newEnd===void 0?end:newEnd)}}else if(string4.indexOf(baseToString_default(separator),end)!=end){var index=result2.lastIndexOf(separator);index>-1&&(result2=result2.slice(0,index))}return result2+omission}var DEFAULT_TRUNC_LENGTH,DEFAULT_TRUNC_OMISSION,reFlags2,truncate_default,init_truncate=__esm({"../../node_modules/lodash-es/truncate.js"(){init_baseToString();init_castSlice();init_hasUnicode();init_isObject();init_isRegExp();init_stringSize();init_stringToArray();init_toInteger();init_toString();DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",reFlags2=/\w*$/;__name(truncate,"truncate");truncate_default=truncate}});function unary(func){return ary_default(func,1)}var unary_default,init_unary=__esm({"../../node_modules/lodash-es/unary.js"(){init_ary();__name(unary,"unary");unary_default=unary}});var htmlUnescapes,unescapeHtmlChar,unescapeHtmlChar_default,init_unescapeHtmlChar=__esm({"../../node_modules/lodash-es/_unescapeHtmlChar.js"(){init_basePropertyOf();htmlUnescapes={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},unescapeHtmlChar=basePropertyOf_default(htmlUnescapes),unescapeHtmlChar_default=unescapeHtmlChar}});function unescape2(string4){return string4=toString_default(string4),string4&&reHasEscapedHtml.test(string4)?string4.replace(reEscapedHtml,unescapeHtmlChar_default):string4}var reEscapedHtml,reHasEscapedHtml,unescape_default,init_unescape=__esm({"../../node_modules/lodash-es/unescape.js"(){init_toString();init_unescapeHtmlChar();reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reHasEscapedHtml=RegExp(reEscapedHtml.source);__name(unescape2,"unescape");unescape_default=unescape2}});var INFINITY6,createSet,createSet_default,init_createSet=__esm({"../../node_modules/lodash-es/_createSet.js"(){init_Set();init_noop();init_setToArray();INFINITY6=1/0,createSet=Set_default&&1/setToArray_default(new Set_default([,-0]))[1]==INFINITY6?function(values2){return new Set_default(values2)}:noop_default,createSet_default=createSet}});function baseUniq(array2,iteratee2,comparator){var index=-1,includes2=arrayIncludes_default,length=array2.length,isCommon=!0,result2=[],seen=result2;if(comparator)isCommon=!1,includes2=arrayIncludesWith_default;else if(length>=LARGE_ARRAY_SIZE3){var set3=iteratee2?null:createSet_default(array2);if(set3)return setToArray_default(set3);isCommon=!1,includes2=cacheHas_default,seen=new SetCache_default}else seen=iteratee2?[]:result2;outer:for(;++index<length;){var value=array2[index],computed=iteratee2?iteratee2(value):value;if(value=comparator||value!==0?value:0,isCommon&&computed===computed){for(var seenIndex=seen.length;seenIndex--;)if(seen[seenIndex]===computed)continue outer;iteratee2&&seen.push(computed),result2.push(value)}else includes2(seen,computed,comparator)||(seen!==result2&&seen.push(computed),result2.push(value))}return result2}var LARGE_ARRAY_SIZE3,baseUniq_default,init_baseUniq=__esm({"../../node_modules/lodash-es/_baseUniq.js"(){init_SetCache();init_arrayIncludes();init_arrayIncludesWith();init_cacheHas();init_createSet();init_setToArray();LARGE_ARRAY_SIZE3=200;__name(baseUniq,"baseUniq");baseUniq_default=baseUniq}});var union,union_default,init_union=__esm({"../../node_modules/lodash-es/union.js"(){init_baseFlatten();init_baseRest();init_baseUniq();init_isArrayLikeObject();union=baseRest_default(function(arrays){return baseUniq_default(baseFlatten_default(arrays,1,isArrayLikeObject_default,!0))}),union_default=union}});var unionBy,unionBy_default,init_unionBy=__esm({"../../node_modules/lodash-es/unionBy.js"(){init_baseFlatten();init_baseIteratee();init_baseRest();init_baseUniq();init_isArrayLikeObject();init_last();unionBy=baseRest_default(function(arrays){var iteratee2=last_default(arrays);return isArrayLikeObject_default(iteratee2)&&(iteratee2=void 0),baseUniq_default(baseFlatten_default(arrays,1,isArrayLikeObject_default,!0),baseIteratee_default(iteratee2,2))}),unionBy_default=unionBy}});var unionWith,unionWith_default,init_unionWith=__esm({"../../node_modules/lodash-es/unionWith.js"(){init_baseFlatten();init_baseRest();init_baseUniq();init_isArrayLikeObject();init_last();unionWith=baseRest_default(function(arrays){var comparator=last_default(arrays);return comparator=typeof comparator=="function"?comparator:void 0,baseUniq_default(baseFlatten_default(arrays,1,isArrayLikeObject_default,!0),void 0,comparator)}),unionWith_default=unionWith}});function uniq(array2){return array2&&array2.length?baseUniq_default(array2):[]}var uniq_default,init_uniq=__esm({"../../node_modules/lodash-es/uniq.js"(){init_baseUniq();__name(uniq,"uniq");uniq_default=uniq}});function uniqBy(array2,iteratee2){return array2&&array2.length?baseUniq_default(array2,baseIteratee_default(iteratee2,2)):[]}var uniqBy_default,init_uniqBy=__esm({"../../node_modules/lodash-es/uniqBy.js"(){init_baseIteratee();init_baseUniq();__name(uniqBy,"uniqBy");uniqBy_default=uniqBy}});function uniqWith(array2,comparator){return comparator=typeof comparator=="function"?comparator:void 0,array2&&array2.length?baseUniq_default(array2,void 0,comparator):[]}var uniqWith_default,init_uniqWith=__esm({"../../node_modules/lodash-es/uniqWith.js"(){init_baseUniq();__name(uniqWith,"uniqWith");uniqWith_default=uniqWith}});function uniqueId(prefix){var id=++idCounter;return toString_default(prefix)+id}var idCounter,uniqueId_default,init_uniqueId=__esm({"../../node_modules/lodash-es/uniqueId.js"(){init_toString();idCounter=0;__name(uniqueId,"uniqueId");uniqueId_default=uniqueId}});function unset(object2,path10){return object2==null?!0:baseUnset_default(object2,path10)}var unset_default,init_unset=__esm({"../../node_modules/lodash-es/unset.js"(){init_baseUnset();__name(unset,"unset");unset_default=unset}});function unzip(array2){if(!(array2&&array2.length))return[];var length=0;return array2=arrayFilter_default(array2,function(group){if(isArrayLikeObject_default(group))return length=nativeMax15(group.length,length),!0}),baseTimes_default(length,function(index){return arrayMap_default(array2,baseProperty_default(index))})}var nativeMax15,unzip_default,init_unzip=__esm({"../../node_modules/lodash-es/unzip.js"(){init_arrayFilter();init_arrayMap();init_baseProperty();init_baseTimes();init_isArrayLikeObject();nativeMax15=Math.max;__name(unzip,"unzip");unzip_default=unzip}});function unzipWith(array2,iteratee2){if(!(array2&&array2.length))return[];var result2=unzip_default(array2);return iteratee2==null?result2:arrayMap_default(result2,function(group){return apply_default(iteratee2,void 0,group)})}var unzipWith_default,init_unzipWith=__esm({"../../node_modules/lodash-es/unzipWith.js"(){init_apply();init_arrayMap();init_unzip();__name(unzipWith,"unzipWith");unzipWith_default=unzipWith}});function baseUpdate(object2,path10,updater,customizer){return baseSet_default(object2,path10,updater(baseGet_default(object2,path10)),customizer)}var baseUpdate_default,init_baseUpdate=__esm({"../../node_modules/lodash-es/_baseUpdate.js"(){init_baseGet();init_baseSet();__name(baseUpdate,"baseUpdate");baseUpdate_default=baseUpdate}});function update(object2,path10,updater){return object2==null?object2:baseUpdate_default(object2,path10,castFunction_default(updater))}var update_default,init_update=__esm({"../../node_modules/lodash-es/update.js"(){init_baseUpdate();init_castFunction();__name(update,"update");update_default=update}});function updateWith(object2,path10,updater,customizer){return customizer=typeof customizer=="function"?customizer:void 0,object2==null?object2:baseUpdate_default(object2,path10,castFunction_default(updater),customizer)}var updateWith_default,init_updateWith=__esm({"../../node_modules/lodash-es/updateWith.js"(){init_baseUpdate();init_castFunction();__name(updateWith,"updateWith");updateWith_default=updateWith}});var upperCase,upperCase_default,init_upperCase=__esm({"../../node_modules/lodash-es/upperCase.js"(){init_createCompounder();upperCase=createCompounder_default(function(result2,word,index){return result2+(index?" ":"")+word.toUpperCase()}),upperCase_default=upperCase}});var init_value=__esm({"../../node_modules/lodash-es/value.js"(){init_wrapperValue()}});var init_valueOf=__esm({"../../node_modules/lodash-es/valueOf.js"(){init_wrapperValue()}});function valuesIn(object2){return object2==null?[]:baseValues_default(object2,keysIn_default(object2))}var valuesIn_default,init_valuesIn=__esm({"../../node_modules/lodash-es/valuesIn.js"(){init_baseValues();init_keysIn();__name(valuesIn,"valuesIn");valuesIn_default=valuesIn}});var without,without_default,init_without=__esm({"../../node_modules/lodash-es/without.js"(){init_baseDifference();init_baseRest();init_isArrayLikeObject();without=baseRest_default(function(array2,values2){return isArrayLikeObject_default(array2)?baseDifference_default(array2,values2):[]}),without_default=without}});function wrap(value,wrapper){return partial_default(castFunction_default(wrapper),value)}var wrap_default,init_wrap=__esm({"../../node_modules/lodash-es/wrap.js"(){init_castFunction();init_partial();__name(wrap,"wrap");wrap_default=wrap}});var wrapperAt,wrapperAt_default,init_wrapperAt=__esm({"../../node_modules/lodash-es/wrapperAt.js"(){init_LazyWrapper();init_LodashWrapper();init_baseAt();init_flatRest();init_isIndex();init_thru();wrapperAt=flatRest_default(function(paths2){var length=paths2.length,start=length?paths2[0]:0,value=this.__wrapped__,interceptor=__name(function(object2){return baseAt_default(object2,paths2)},"interceptor");return length>1||this.__actions__.length||!(value instanceof LazyWrapper_default)||!isIndex_default(start)?this.thru(interceptor):(value=value.slice(start,+start+(length?1:0)),value.__actions__.push({func:thru_default,args:[interceptor],thisArg:void 0}),new LodashWrapper_default(value,this.__chain__).thru(function(array2){return length&&!array2.length&&array2.push(void 0),array2}))}),wrapperAt_default=wrapperAt}});function wrapperChain(){return chain_default(this)}var wrapperChain_default,init_wrapperChain=__esm({"../../node_modules/lodash-es/wrapperChain.js"(){init_chain();__name(wrapperChain,"wrapperChain");wrapperChain_default=wrapperChain}});function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper_default){var wrapped=value;return this.__actions__.length&&(wrapped=new LazyWrapper_default(this)),wrapped=wrapped.reverse(),wrapped.__actions__.push({func:thru_default,args:[reverse_default],thisArg:void 0}),new LodashWrapper_default(wrapped,this.__chain__)}return this.thru(reverse_default)}var wrapperReverse_default,init_wrapperReverse=__esm({"../../node_modules/lodash-es/wrapperReverse.js"(){init_LazyWrapper();init_LodashWrapper();init_reverse();init_thru();__name(wrapperReverse,"wrapperReverse");wrapperReverse_default=wrapperReverse}});function baseXor(arrays,iteratee2,comparator){var length=arrays.length;if(length<2)return length?baseUniq_default(arrays[0]):[];for(var index=-1,result2=Array(length);++index<length;)for(var array2=arrays[index],othIndex=-1;++othIndex<length;)othIndex!=index&&(result2[index]=baseDifference_default(result2[index]||array2,arrays[othIndex],iteratee2,comparator));return baseUniq_default(baseFlatten_default(result2,1),iteratee2,comparator)}var baseXor_default,init_baseXor=__esm({"../../node_modules/lodash-es/_baseXor.js"(){init_baseDifference();init_baseFlatten();init_baseUniq();__name(baseXor,"baseXor");baseXor_default=baseXor}});var xor,xor_default,init_xor=__esm({"../../node_modules/lodash-es/xor.js"(){init_arrayFilter();init_baseRest();init_baseXor();init_isArrayLikeObject();xor=baseRest_default(function(arrays){return baseXor_default(arrayFilter_default(arrays,isArrayLikeObject_default))}),xor_default=xor}});var xorBy,xorBy_default,init_xorBy=__esm({"../../node_modules/lodash-es/xorBy.js"(){init_arrayFilter();init_baseIteratee();init_baseRest();init_baseXor();init_isArrayLikeObject();init_last();xorBy=baseRest_default(function(arrays){var iteratee2=last_default(arrays);return isArrayLikeObject_default(iteratee2)&&(iteratee2=void 0),baseXor_default(arrayFilter_default(arrays,isArrayLikeObject_default),baseIteratee_default(iteratee2,2))}),xorBy_default=xorBy}});var xorWith,xorWith_default,init_xorWith=__esm({"../../node_modules/lodash-es/xorWith.js"(){init_arrayFilter();init_baseRest();init_baseXor();init_isArrayLikeObject();init_last();xorWith=baseRest_default(function(arrays){var comparator=last_default(arrays);return comparator=typeof comparator=="function"?comparator:void 0,baseXor_default(arrayFilter_default(arrays,isArrayLikeObject_default),void 0,comparator)}),xorWith_default=xorWith}});var zip,zip_default,init_zip=__esm({"../../node_modules/lodash-es/zip.js"(){init_baseRest();init_unzip();zip=baseRest_default(unzip_default),zip_default=zip}});function baseZipObject(props,values2,assignFunc){for(var index=-1,length=props.length,valsLength=values2.length,result2={};++index<length;){var value=index<valsLength?values2[index]:void 0;assignFunc(result2,props[index],value)}return result2}var baseZipObject_default,init_baseZipObject=__esm({"../../node_modules/lodash-es/_baseZipObject.js"(){__name(baseZipObject,"baseZipObject");baseZipObject_default=baseZipObject}});function zipObject(props,values2){return baseZipObject_default(props||[],values2||[],assignValue_default)}var zipObject_default,init_zipObject=__esm({"../../node_modules/lodash-es/zipObject.js"(){init_assignValue();init_baseZipObject();__name(zipObject,"zipObject");zipObject_default=zipObject}});function zipObjectDeep(props,values2){return baseZipObject_default(props||[],values2||[],baseSet_default)}var zipObjectDeep_default,init_zipObjectDeep=__esm({"../../node_modules/lodash-es/zipObjectDeep.js"(){init_baseSet();init_baseZipObject();__name(zipObjectDeep,"zipObjectDeep");zipObjectDeep_default=zipObjectDeep}});var zipWith,zipWith_default,init_zipWith=__esm({"../../node_modules/lodash-es/zipWith.js"(){init_baseRest();init_unzipWith();zipWith=baseRest_default(function(arrays){var length=arrays.length,iteratee2=length>1?arrays[length-1]:void 0;return iteratee2=typeof iteratee2=="function"?(arrays.pop(),iteratee2):void 0,unzipWith_default(arrays,iteratee2)}),zipWith_default=zipWith}});var array_default_default,init_array_default=__esm({"../../node_modules/lodash-es/array.default.js"(){init_chunk();init_compact();init_concat();init_difference();init_differenceBy();init_differenceWith();init_drop();init_dropRight();init_dropRightWhile();init_dropWhile();init_fill();init_findIndex();init_findLastIndex();init_first();init_flatten();init_flattenDeep();init_flattenDepth();init_fromPairs();init_head();init_indexOf();init_initial();init_intersection();init_intersectionBy();init_intersectionWith();init_join();init_last();init_lastIndexOf();init_nth();init_pull();init_pullAll();init_pullAllBy();init_pullAllWith();init_pullAt();init_remove();init_reverse();init_slice();init_sortedIndex();init_sortedIndexBy();init_sortedIndexOf();init_sortedLastIndex();init_sortedLastIndexBy();init_sortedLastIndexOf();init_sortedUniq();init_sortedUniqBy();init_tail();init_take();init_takeRight();init_takeRightWhile();init_takeWhile();init_union();init_unionBy();init_unionWith();init_uniq();init_uniqBy();init_uniqWith();init_unzip();init_unzipWith();init_without();init_xor();init_xorBy();init_xorWith();init_zip();init_zipObject();init_zipObjectDeep();init_zipWith();array_default_default={chunk:chunk_default,compact:compact_default,concat:concat_default,difference:difference_default,differenceBy:differenceBy_default,differenceWith:differenceWith_default,drop:drop_default,dropRight:dropRight_default,dropRightWhile:dropRightWhile_default,dropWhile:dropWhile_default,fill:fill_default,findIndex:findIndex_default,findLastIndex:findLastIndex_default,first:head_default,flatten:flatten_default,flattenDeep:flattenDeep_default,flattenDepth:flattenDepth_default,fromPairs:fromPairs_default,head:head_default,indexOf:indexOf_default,initial:initial_default,intersection:intersection_default,intersectionBy:intersectionBy_default,intersectionWith:intersectionWith_default,join:join_default,last:last_default,lastIndexOf:lastIndexOf_default,nth:nth_default,pull:pull_default,pullAll:pullAll_default,pullAllBy:pullAllBy_default,pullAllWith:pullAllWith_default,pullAt:pullAt_default,remove:remove_default,reverse:reverse_default,slice:slice_default,sortedIndex:sortedIndex_default,sortedIndexBy:sortedIndexBy_default,sortedIndexOf:sortedIndexOf_default,sortedLastIndex:sortedLastIndex_default,sortedLastIndexBy:sortedLastIndexBy_default,sortedLastIndexOf:sortedLastIndexOf_default,sortedUniq:sortedUniq_default,sortedUniqBy:sortedUniqBy_default,tail:tail_default,take:take_default,takeRight:takeRight_default,takeRightWhile:takeRightWhile_default,takeWhile:takeWhile_default,union:union_default,unionBy:unionBy_default,unionWith:unionWith_default,uniq:uniq_default,uniqBy:uniqBy_default,uniqWith:uniqWith_default,unzip:unzip_default,unzipWith:unzipWith_default,without:without_default,xor:xor_default,xorBy:xorBy_default,xorWith:xorWith_default,zip:zip_default,zipObject:zipObject_default,zipObjectDeep:zipObjectDeep_default,zipWith:zipWith_default}}});var init_array=__esm({"../../node_modules/lodash-es/array.js"(){init_chunk();init_compact();init_concat();init_difference();init_differenceBy();init_differenceWith();init_drop();init_dropRight();init_dropRightWhile();init_dropWhile();init_fill();init_findIndex();init_findLastIndex();init_first();init_flatten();init_flattenDeep();init_flattenDepth();init_fromPairs();init_head();init_indexOf();init_initial();init_intersection();init_intersectionBy();init_intersectionWith();init_join();init_lastIndexOf();init_nth();init_pull();init_pullAll();init_pullAllBy();init_pullAllWith();init_pullAt();init_remove();init_reverse();init_slice();init_sortedIndex();init_sortedIndexBy();init_sortedIndexOf();init_sortedLastIndex();init_sortedLastIndexBy();init_sortedLastIndexOf();init_sortedUniq();init_sortedUniqBy();init_tail();init_take();init_takeRight();init_takeRightWhile();init_takeWhile();init_union();init_unionBy();init_unionWith();init_uniq();init_uniqWith();init_unzip();init_unzipWith();init_without();init_xor();init_xorBy();init_xorWith();init_zip();init_zipObjectDeep();init_zipWith();init_array_default()}});var collection_default_default,init_collection_default=__esm({"../../node_modules/lodash-es/collection.default.js"(){init_countBy();init_each();init_eachRight();init_every();init_filter();init_find();init_findLast();init_flatMap();init_flatMapDeep();init_flatMapDepth();init_forEach();init_forEachRight();init_groupBy();init_includes();init_invokeMap();init_keyBy();init_map();init_orderBy();init_partition();init_reduce();init_reduceRight();init_reject();init_sample();init_sampleSize();init_shuffle();init_size();init_some();init_sortBy();collection_default_default={countBy:countBy_default,each:forEach_default,eachRight:forEachRight_default,every:every_default,filter:filter_default,find:find_default,findLast:findLast_default,flatMap:flatMap_default,flatMapDeep:flatMapDeep_default,flatMapDepth:flatMapDepth_default,forEach:forEach_default,forEachRight:forEachRight_default,groupBy:groupBy_default,includes:includes_default,invokeMap:invokeMap_default,keyBy:keyBy_default,map:map_default,orderBy:orderBy_default,partition:partition_default,reduce:reduce_default,reduceRight:reduceRight_default,reject:reject_default,sample:sample_default,sampleSize:sampleSize_default,shuffle:shuffle_default,size:size_default,some:some_default,sortBy:sortBy_default}}});var init_collection=__esm({"../../node_modules/lodash-es/collection.js"(){init_countBy();init_each();init_eachRight();init_every();init_filter();init_find();init_findLast();init_flatMap();init_flatMapDeep();init_flatMapDepth();init_forEach();init_forEachRight();init_groupBy();init_includes();init_invokeMap();init_keyBy();init_map();init_orderBy();init_partition();init_reduce();init_reduceRight();init_sampleSize();init_shuffle();init_size();init_some();init_sortBy();init_collection_default()}});var date_default_default,init_date_default=__esm({"../../node_modules/lodash-es/date.default.js"(){init_now();date_default_default={now:now_default}}});var init_date=__esm({"../../node_modules/lodash-es/date.js"(){init_now();init_date_default()}});var function_default_default,init_function_default=__esm({"../../node_modules/lodash-es/function.default.js"(){init_after();init_ary();init_before();init_bind();init_bindKey();init_curry();init_curryRight();init_debounce();init_defer();init_delay();init_flip();init_memoize();init_negate();init_once();init_overArgs();init_partial();init_partialRight();init_rearg();init_rest();init_spread();init_throttle();init_unary();init_wrap();function_default_default={after:after_default,ary:ary_default,before:before_default,bind:bind_default,bindKey:bindKey_default,curry:curry_default,curryRight:curryRight_default,debounce:debounce_default,defer:defer_default,delay:delay_default,flip:flip_default,memoize:memoize_default,negate:negate_default,once:once_default,overArgs:overArgs_default,partial:partial_default,partialRight:partialRight_default,rearg:rearg_default,rest:rest_default,spread:spread_default,throttle:throttle_default,unary:unary_default,wrap:wrap_default}}});var init_function=__esm({"../../node_modules/lodash-es/function.js"(){init_after();init_ary();init_before();init_bind();init_bindKey();init_curry();init_curryRight();init_debounce();init_defer();init_delay();init_flip();init_negate();init_once();init_overArgs();init_partial();init_partialRight();init_rearg();init_rest();init_spread();init_throttle();init_unary();init_wrap();init_function_default()}});var lang_default_default,init_lang_default=__esm({"../../node_modules/lodash-es/lang.default.js"(){init_castArray();init_clone();init_cloneDeep();init_cloneDeepWith();init_cloneWith();init_conformsTo();init_eq();init_gt();init_gte();init_isArguments();init_isArray();init_isArrayBuffer();init_isArrayLike();init_isArrayLikeObject();init_isBoolean();init_isBuffer();init_isDate();init_isElement();init_isEmpty();init_isEqual();init_isEqualWith();init_isError();init_isFinite();init_isFunction();init_isInteger();init_isLength();init_isMap();init_isMatch();init_isMatchWith();init_isNaN();init_isNative();init_isNil();init_isNull();init_isNumber();init_isObject();init_isObjectLike();init_isPlainObject();init_isRegExp();init_isSafeInteger();init_isSet();init_isString();init_isSymbol();init_isTypedArray();init_isUndefined();init_isWeakMap();init_isWeakSet();init_lt();init_lte();init_toArray();init_toFinite();init_toInteger();init_toLength();init_toNumber();init_toPlainObject();init_toSafeInteger();init_toString();lang_default_default={castArray:castArray_default,clone:clone_default,cloneDeep:cloneDeep_default,cloneDeepWith:cloneDeepWith_default,cloneWith:cloneWith_default,conformsTo:conformsTo_default,eq:eq_default,gt:gt_default,gte:gte_default,isArguments:isArguments_default,isArray:isArray_default,isArrayBuffer:isArrayBuffer_default,isArrayLike:isArrayLike_default,isArrayLikeObject:isArrayLikeObject_default,isBoolean:isBoolean_default,isBuffer:isBuffer_default,isDate:isDate_default,isElement:isElement_default,isEmpty:isEmpty_default,isEqual:isEqual_default,isEqualWith:isEqualWith_default,isError:isError_default,isFinite:isFinite_default,isFunction:isFunction_default,isInteger:isInteger_default,isLength:isLength_default,isMap:isMap_default,isMatch:isMatch_default,isMatchWith:isMatchWith_default,isNaN:isNaN_default,isNative:isNative_default,isNil:isNil_default,isNull:isNull_default,isNumber:isNumber_default,isObject:isObject_default,isObjectLike:isObjectLike_default,isPlainObject:isPlainObject_default,isRegExp:isRegExp_default,isSafeInteger:isSafeInteger_default,isSet:isSet_default,isString:isString_default,isSymbol:isSymbol_default,isTypedArray:isTypedArray_default,isUndefined:isUndefined_default,isWeakMap:isWeakMap_default,isWeakSet:isWeakSet_default,lt:lt_default,lte:lte_default,toArray:toArray_default,toFinite:toFinite_default,toInteger:toInteger_default,toLength:toLength_default,toNumber:toNumber_default,toPlainObject:toPlainObject_default,toSafeInteger:toSafeInteger_default,toString:toString_default}}});var init_lang=__esm({"../../node_modules/lodash-es/lang.js"(){init_castArray();init_clone();init_cloneDeepWith();init_cloneWith();init_conformsTo();init_eq();init_gt();init_gte();init_isArguments();init_isArray();init_isArrayBuffer();init_isArrayLike();init_isArrayLikeObject();init_isBoolean();init_isBuffer();init_isDate();init_isElement();init_isEmpty();init_isEqualWith();init_isError();init_isFinite();init_isFunction();init_isInteger();init_isLength();init_isMap();init_isMatch();init_isMatchWith();init_isNaN();init_isNative();init_isNil();init_isNull();init_isNumber();init_isObject();init_isObjectLike();init_isPlainObject();init_isRegExp();init_isSafeInteger();init_isSet();init_isString();init_isSymbol();init_isTypedArray();init_isUndefined();init_isWeakMap();init_isWeakSet();init_lt();init_lte();init_toArray();init_toFinite();init_toInteger();init_toLength();init_toNumber();init_toPlainObject();init_toSafeInteger();init_toString();init_lang_default()}});var math_default_default,init_math_default=__esm({"../../node_modules/lodash-es/math.default.js"(){init_add();init_ceil();init_divide();init_floor();init_max();init_maxBy();init_mean();init_meanBy();init_min();init_minBy();init_multiply();init_round();init_subtract();init_sum();init_sumBy();math_default_default={add:add_default,ceil:ceil_default,divide:divide_default,floor:floor_default,max:max_default,maxBy:maxBy_default,mean:mean_default,meanBy:meanBy_default,min:min_default,minBy:minBy_default,multiply:multiply_default,round:round_default,subtract:subtract_default,sum:sum_default,sumBy:sumBy_default}}});var init_math=__esm({"../../node_modules/lodash-es/math.js"(){init_add();init_ceil();init_divide();init_floor();init_max();init_maxBy();init_mean();init_meanBy();init_min();init_minBy();init_multiply();init_round();init_subtract();init_sum();init_math_default()}});var number_default_default,init_number_default=__esm({"../../node_modules/lodash-es/number.default.js"(){init_clamp();init_inRange();init_random();number_default_default={clamp:clamp_default,inRange:inRange_default,random:random_default}}});var init_number=__esm({"../../node_modules/lodash-es/number.js"(){init_clamp();init_inRange();init_random();init_number_default()}});var object_default_default,init_object_default=__esm({"../../node_modules/lodash-es/object.default.js"(){init_assign();init_assignIn();init_assignInWith();init_assignWith();init_at();init_create();init_defaults();init_defaultsDeep();init_entries();init_entriesIn();init_extend();init_extendWith();init_findKey();init_findLastKey();init_forIn();init_forInRight();init_forOwn();init_forOwnRight();init_functions();init_functionsIn();init_get();init_has();init_hasIn();init_invert();init_invertBy();init_invoke();init_keys();init_keysIn();init_mapKeys();init_mapValues();init_merge();init_mergeWith();init_omit();init_omitBy();init_pick();init_pickBy();init_result();init_set();init_setWith();init_toPairs();init_toPairsIn();init_transform();init_unset();init_update();init_updateWith();init_values();init_valuesIn();object_default_default={assign:assign_default,assignIn:assignIn_default,assignInWith:assignInWith_default,assignWith:assignWith_default,at:at_default,create:create_default,defaults:defaults_default,defaultsDeep:defaultsDeep_default,entries:toPairs_default,entriesIn:toPairsIn_default,extend:assignIn_default,extendWith:assignInWith_default,findKey:findKey_default,findLastKey:findLastKey_default,forIn:forIn_default,forInRight:forInRight_default,forOwn:forOwn_default,forOwnRight:forOwnRight_default,functions:functions_default,functionsIn:functionsIn_default,get:get_default,has:has_default,hasIn:hasIn_default,invert:invert_default,invertBy:invertBy_default,invoke:invoke_default,keys:keys_default,keysIn:keysIn_default,mapKeys:mapKeys_default,mapValues:mapValues_default,merge:merge_default,mergeWith:mergeWith_default,omit:omit_default,omitBy:omitBy_default,pick:pick_default,pickBy:pickBy_default,result:result_default,set:set_default,setWith:setWith_default,toPairs:toPairs_default,toPairsIn:toPairsIn_default,transform:transform_default,unset:unset_default,update:update_default,updateWith:updateWith_default,values:values_default,valuesIn:valuesIn_default}}});var init_object=__esm({"../../node_modules/lodash-es/object.js"(){init_assign();init_assignIn();init_assignInWith();init_assignWith();init_at();init_create();init_defaults();init_defaultsDeep();init_entries();init_entriesIn();init_extend();init_extendWith();init_findKey();init_findLastKey();init_forIn();init_forInRight();init_forOwn();init_forOwnRight();init_functions();init_functionsIn();init_get();init_has();init_hasIn();init_invert();init_invertBy();init_invoke();init_keys();init_keysIn();init_mapKeys();init_merge();init_omit();init_omitBy();init_pick();init_result();init_set();init_setWith();init_toPairs();init_toPairsIn();init_transform();init_unset();init_update();init_updateWith();init_values();init_valuesIn();init_object_default()}});var seq_default_default,init_seq_default=__esm({"../../node_modules/lodash-es/seq.default.js"(){init_wrapperAt();init_chain();init_commit();init_wrapperLodash();init_next();init_plant();init_wrapperReverse();init_tap();init_thru();init_toIterator();init_toJSON();init_wrapperValue();init_valueOf();init_wrapperChain();seq_default_default={at:wrapperAt_default,chain:chain_default,commit:commit_default,lodash:wrapperLodash_default,next:next_default,plant:plant_default,reverse:wrapperReverse_default,tap:tap_default,thru:thru_default,toIterator:toIterator_default,toJSON:wrapperValue_default,value:wrapperValue_default,valueOf:wrapperValue_default,wrapperChain:wrapperChain_default}}});var init_seq=__esm({"../../node_modules/lodash-es/seq.js"(){init_wrapperAt();init_chain();init_commit();init_wrapperLodash();init_next();init_plant();init_wrapperReverse();init_tap();init_thru();init_toIterator();init_toJSON();init_wrapperValue();init_valueOf();init_wrapperChain();init_seq_default()}});var string_default_default,init_string_default=__esm({"../../node_modules/lodash-es/string.default.js"(){init_camelCase();init_capitalize();init_deburr();init_endsWith();init_escape();init_escapeRegExp();init_kebabCase();init_lowerCase();init_lowerFirst();init_pad();init_padEnd();init_padStart();init_parseInt();init_repeat();init_replace();init_snakeCase();init_split();init_startCase();init_startsWith();init_template();init_templateSettings();init_toLower();init_toUpper();init_trim();init_trimEnd();init_trimStart();init_truncate();init_unescape();init_upperCase();init_upperFirst();init_words();string_default_default={camelCase:camelCase_default,capitalize:capitalize_default,deburr:deburr_default,endsWith:endsWith_default,escape:escape_default,escapeRegExp:escapeRegExp_default,kebabCase:kebabCase_default,lowerCase:lowerCase_default,lowerFirst:lowerFirst_default,pad:pad_default,padEnd:padEnd_default,padStart:padStart_default,parseInt:parseInt_default,repeat:repeat_default,replace:replace_default,snakeCase:snakeCase_default,split:split_default,startCase:startCase_default,startsWith:startsWith_default,template:template_default,templateSettings:templateSettings_default,toLower:toLower_default,toUpper:toUpper_default,trim:trim_default,trimEnd:trimEnd_default,trimStart:trimStart_default,truncate:truncate_default,unescape:unescape_default,upperCase:upperCase_default,upperFirst:upperFirst_default,words:words_default}}});var init_string=__esm({"../../node_modules/lodash-es/string.js"(){init_camelCase();init_deburr();init_endsWith();init_escape();init_escapeRegExp();init_kebabCase();init_lowerCase();init_lowerFirst();init_pad();init_padEnd();init_padStart();init_parseInt();init_repeat();init_replace();init_snakeCase();init_split();init_startCase();init_startsWith();init_template();init_templateSettings();init_toLower();init_toUpper();init_trim();init_trimEnd();init_trimStart();init_truncate();init_unescape();init_upperCase();init_upperFirst();init_words();init_string_default()}});var util_default_default,init_util_default=__esm({"../../node_modules/lodash-es/util.default.js"(){init_attempt();init_bindAll();init_cond();init_conforms();init_constant();init_defaultTo();init_flow();init_flowRight();init_identity();init_iteratee();init_matches();init_matchesProperty();init_method();init_methodOf();init_mixin();init_noop();init_nthArg();init_over();init_overEvery();init_overSome();init_property();init_propertyOf();init_range();init_rangeRight();init_stubArray();init_stubFalse();init_stubObject();init_stubString();init_stubTrue();init_times();init_toPath();init_uniqueId();util_default_default={attempt:attempt_default,bindAll:bindAll_default,cond:cond_default,conforms:conforms_default,constant:constant_default,defaultTo:defaultTo_default,flow:flow_default,flowRight:flowRight_default,identity:identity_default,iteratee:iteratee_default,matches:matches_default,matchesProperty:matchesProperty_default,method:method_default,methodOf:methodOf_default,mixin:mixin_default,noop:noop_default,nthArg:nthArg_default,over:over_default,overEvery:overEvery_default,overSome:overSome_default,property:property_default,propertyOf:propertyOf_default,range:range_default,rangeRight:rangeRight_default,stubArray:stubArray_default,stubFalse:stubFalse_default,stubObject:stubObject_default,stubString:stubString_default,stubTrue:stubTrue_default,times:times_default,toPath:toPath_default,uniqueId:uniqueId_default}}});var init_util2=__esm({"../../node_modules/lodash-es/util.js"(){init_attempt();init_bindAll();init_cond();init_conforms();init_constant();init_defaultTo();init_flow();init_flowRight();init_identity();init_iteratee();init_matches();init_matchesProperty();init_method();init_methodOf();init_mixin();init_noop();init_nthArg();init_over();init_overEvery();init_overSome();init_property();init_propertyOf();init_range();init_rangeRight();init_stubArray();init_stubFalse();init_stubObject();init_stubString();init_stubTrue();init_times();init_toPath();init_uniqueId();init_util_default()}});function lazyClone(){var result2=new LazyWrapper_default(this.__wrapped__);return result2.__actions__=copyArray_default(this.__actions__),result2.__dir__=this.__dir__,result2.__filtered__=this.__filtered__,result2.__iteratees__=copyArray_default(this.__iteratees__),result2.__takeCount__=this.__takeCount__,result2.__views__=copyArray_default(this.__views__),result2}var lazyClone_default,init_lazyClone=__esm({"../../node_modules/lodash-es/_lazyClone.js"(){init_LazyWrapper();init_copyArray();__name(lazyClone,"lazyClone");lazyClone_default=lazyClone}});function lazyReverse(){if(this.__filtered__){var result2=new LazyWrapper_default(this);result2.__dir__=-1,result2.__filtered__=!0}else result2=this.clone(),result2.__dir__*=-1;return result2}var lazyReverse_default,init_lazyReverse=__esm({"../../node_modules/lodash-es/_lazyReverse.js"(){init_LazyWrapper();__name(lazyReverse,"lazyReverse");lazyReverse_default=lazyReverse}});function getView(start,end,transforms){for(var index=-1,length=transforms.length;++index<length;){var data=transforms[index],size2=data.size;switch(data.type){case"drop":start+=size2;break;case"dropRight":end-=size2;break;case"take":end=nativeMin13(end,start+size2);break;case"takeRight":start=nativeMax16(start,end-size2);break}}return{start,end}}var nativeMax16,nativeMin13,getView_default,init_getView=__esm({"../../node_modules/lodash-es/_getView.js"(){nativeMax16=Math.max,nativeMin13=Math.min;__name(getView,"getView");getView_default=getView}});function lazyValue(){var array2=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray_default(array2),isRight=dir<0,arrLength=isArr?array2.length:0,view=getView_default(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin14(length,this.__takeCount__);if(!isArr||!isRight&&arrLength==length&&takeCount==length)return baseWrapperValue_default(array2,this.__actions__);var result2=[];outer:for(;length--&&resIndex<takeCount;){index+=dir;for(var iterIndex=-1,value=array2[index];++iterIndex<iterLength;){var data=iteratees[iterIndex],iteratee2=data.iteratee,type=data.type,computed=iteratee2(value);if(type==LAZY_MAP_FLAG)value=computed;else if(!computed){if(type==LAZY_FILTER_FLAG)continue outer;break outer}}result2[resIndex++]=value}return result2}var LAZY_FILTER_FLAG,LAZY_MAP_FLAG,nativeMin14,lazyValue_default,init_lazyValue=__esm({"../../node_modules/lodash-es/_lazyValue.js"(){init_baseWrapperValue();init_getView();init_isArray();LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,nativeMin14=Math.min;__name(lazyValue,"lazyValue");lazyValue_default=lazyValue}});var VERSION,WRAP_BIND_KEY_FLAG7,LAZY_FILTER_FLAG2,LAZY_WHILE_FLAG,MAX_ARRAY_LENGTH7,arrayProto6,objectProto30,hasOwnProperty26,symIterator2,nativeMax17,nativeMin15,mixin2,init_lodash_default=__esm({"../../node_modules/lodash-es/lodash.default.js"(){init_array();init_collection();init_date();init_function();init_lang();init_math();init_number();init_object();init_seq();init_string();init_util2();init_LazyWrapper();init_LodashWrapper();init_Symbol();init_arrayEach();init_arrayPush();init_baseForOwn();init_baseFunctions();init_baseInvoke();init_baseIteratee();init_baseRest();init_createHybrid();init_identity();init_isArray();init_isObject();init_keys();init_last();init_lazyClone();init_lazyReverse();init_lazyValue();init_mixin();init_negate();init_realNames();init_thru();init_toInteger();init_wrapperLodash();VERSION="4.18.1",WRAP_BIND_KEY_FLAG7=2,LAZY_FILTER_FLAG2=1,LAZY_WHILE_FLAG=3,MAX_ARRAY_LENGTH7=4294967295,arrayProto6=Array.prototype,objectProto30=Object.prototype,hasOwnProperty26=objectProto30.hasOwnProperty,symIterator2=Symbol_default?Symbol_default.iterator:void 0,nativeMax17=Math.max,nativeMin15=Math.min,mixin2=(function(func){return function(object2,source,options){if(options==null){var isObj2=isObject_default(source),props=isObj2&&keys_default(source),methodNames=props&&props.length&&baseFunctions_default(source,props);(methodNames?methodNames.length:isObj2)||(options=source,source=object2,object2=this)}return func(object2,source,options)}})(mixin_default);wrapperLodash_default.after=function_default_default.after;wrapperLodash_default.ary=function_default_default.ary;wrapperLodash_default.assign=object_default_default.assign;wrapperLodash_default.assignIn=object_default_default.assignIn;wrapperLodash_default.assignInWith=object_default_default.assignInWith;wrapperLodash_default.assignWith=object_default_default.assignWith;wrapperLodash_default.at=object_default_default.at;wrapperLodash_default.before=function_default_default.before;wrapperLodash_default.bind=function_default_default.bind;wrapperLodash_default.bindAll=util_default_default.bindAll;wrapperLodash_default.bindKey=function_default_default.bindKey;wrapperLodash_default.castArray=lang_default_default.castArray;wrapperLodash_default.chain=seq_default_default.chain;wrapperLodash_default.chunk=array_default_default.chunk;wrapperLodash_default.compact=array_default_default.compact;wrapperLodash_default.concat=array_default_default.concat;wrapperLodash_default.cond=util_default_default.cond;wrapperLodash_default.conforms=util_default_default.conforms;wrapperLodash_default.constant=util_default_default.constant;wrapperLodash_default.countBy=collection_default_default.countBy;wrapperLodash_default.create=object_default_default.create;wrapperLodash_default.curry=function_default_default.curry;wrapperLodash_default.curryRight=function_default_default.curryRight;wrapperLodash_default.debounce=function_default_default.debounce;wrapperLodash_default.defaults=object_default_default.defaults;wrapperLodash_default.defaultsDeep=object_default_default.defaultsDeep;wrapperLodash_default.defer=function_default_default.defer;wrapperLodash_default.delay=function_default_default.delay;wrapperLodash_default.difference=array_default_default.difference;wrapperLodash_default.differenceBy=array_default_default.differenceBy;wrapperLodash_default.differenceWith=array_default_default.differenceWith;wrapperLodash_default.drop=array_default_default.drop;wrapperLodash_default.dropRight=array_default_default.dropRight;wrapperLodash_default.dropRightWhile=array_default_default.dropRightWhile;wrapperLodash_default.dropWhile=array_default_default.dropWhile;wrapperLodash_default.fill=array_default_default.fill;wrapperLodash_default.filter=collection_default_default.filter;wrapperLodash_default.flatMap=collection_default_default.flatMap;wrapperLodash_default.flatMapDeep=collection_default_default.flatMapDeep;wrapperLodash_default.flatMapDepth=collection_default_default.flatMapDepth;wrapperLodash_default.flatten=array_default_default.flatten;wrapperLodash_default.flattenDeep=array_default_default.flattenDeep;wrapperLodash_default.flattenDepth=array_default_default.flattenDepth;wrapperLodash_default.flip=function_default_default.flip;wrapperLodash_default.flow=util_default_default.flow;wrapperLodash_default.flowRight=util_default_default.flowRight;wrapperLodash_default.fromPairs=array_default_default.fromPairs;wrapperLodash_default.functions=object_default_default.functions;wrapperLodash_default.functionsIn=object_default_default.functionsIn;wrapperLodash_default.groupBy=collection_default_default.groupBy;wrapperLodash_default.initial=array_default_default.initial;wrapperLodash_default.intersection=array_default_default.intersection;wrapperLodash_default.intersectionBy=array_default_default.intersectionBy;wrapperLodash_default.intersectionWith=array_default_default.intersectionWith;wrapperLodash_default.invert=object_default_default.invert;wrapperLodash_default.invertBy=object_default_default.invertBy;wrapperLodash_default.invokeMap=collection_default_default.invokeMap;wrapperLodash_default.iteratee=util_default_default.iteratee;wrapperLodash_default.keyBy=collection_default_default.keyBy;wrapperLodash_default.keys=keys_default;wrapperLodash_default.keysIn=object_default_default.keysIn;wrapperLodash_default.map=collection_default_default.map;wrapperLodash_default.mapKeys=object_default_default.mapKeys;wrapperLodash_default.mapValues=object_default_default.mapValues;wrapperLodash_default.matches=util_default_default.matches;wrapperLodash_default.matchesProperty=util_default_default.matchesProperty;wrapperLodash_default.memoize=function_default_default.memoize;wrapperLodash_default.merge=object_default_default.merge;wrapperLodash_default.mergeWith=object_default_default.mergeWith;wrapperLodash_default.method=util_default_default.method;wrapperLodash_default.methodOf=util_default_default.methodOf;wrapperLodash_default.mixin=mixin2;wrapperLodash_default.negate=negate_default;wrapperLodash_default.nthArg=util_default_default.nthArg;wrapperLodash_default.omit=object_default_default.omit;wrapperLodash_default.omitBy=object_default_default.omitBy;wrapperLodash_default.once=function_default_default.once;wrapperLodash_default.orderBy=collection_default_default.orderBy;wrapperLodash_default.over=util_default_default.over;wrapperLodash_default.overArgs=function_default_default.overArgs;wrapperLodash_default.overEvery=util_default_default.overEvery;wrapperLodash_default.overSome=util_default_default.overSome;wrapperLodash_default.partial=function_default_default.partial;wrapperLodash_default.partialRight=function_default_default.partialRight;wrapperLodash_default.partition=collection_default_default.partition;wrapperLodash_default.pick=object_default_default.pick;wrapperLodash_default.pickBy=object_default_default.pickBy;wrapperLodash_default.property=util_default_default.property;wrapperLodash_default.propertyOf=util_default_default.propertyOf;wrapperLodash_default.pull=array_default_default.pull;wrapperLodash_default.pullAll=array_default_default.pullAll;wrapperLodash_default.pullAllBy=array_default_default.pullAllBy;wrapperLodash_default.pullAllWith=array_default_default.pullAllWith;wrapperLodash_default.pullAt=array_default_default.pullAt;wrapperLodash_default.range=util_default_default.range;wrapperLodash_default.rangeRight=util_default_default.rangeRight;wrapperLodash_default.rearg=function_default_default.rearg;wrapperLodash_default.reject=collection_default_default.reject;wrapperLodash_default.remove=array_default_default.remove;wrapperLodash_default.rest=function_default_default.rest;wrapperLodash_default.reverse=array_default_default.reverse;wrapperLodash_default.sampleSize=collection_default_default.sampleSize;wrapperLodash_default.set=object_default_default.set;wrapperLodash_default.setWith=object_default_default.setWith;wrapperLodash_default.shuffle=collection_default_default.shuffle;wrapperLodash_default.slice=array_default_default.slice;wrapperLodash_default.sortBy=collection_default_default.sortBy;wrapperLodash_default.sortedUniq=array_default_default.sortedUniq;wrapperLodash_default.sortedUniqBy=array_default_default.sortedUniqBy;wrapperLodash_default.split=string_default_default.split;wrapperLodash_default.spread=function_default_default.spread;wrapperLodash_default.tail=array_default_default.tail;wrapperLodash_default.take=array_default_default.take;wrapperLodash_default.takeRight=array_default_default.takeRight;wrapperLodash_default.takeRightWhile=array_default_default.takeRightWhile;wrapperLodash_default.takeWhile=array_default_default.takeWhile;wrapperLodash_default.tap=seq_default_default.tap;wrapperLodash_default.throttle=function_default_default.throttle;wrapperLodash_default.thru=thru_default;wrapperLodash_default.toArray=lang_default_default.toArray;wrapperLodash_default.toPairs=object_default_default.toPairs;wrapperLodash_default.toPairsIn=object_default_default.toPairsIn;wrapperLodash_default.toPath=util_default_default.toPath;wrapperLodash_default.toPlainObject=lang_default_default.toPlainObject;wrapperLodash_default.transform=object_default_default.transform;wrapperLodash_default.unary=function_default_default.unary;wrapperLodash_default.union=array_default_default.union;wrapperLodash_default.unionBy=array_default_default.unionBy;wrapperLodash_default.unionWith=array_default_default.unionWith;wrapperLodash_default.uniq=array_default_default.uniq;wrapperLodash_default.uniqBy=array_default_default.uniqBy;wrapperLodash_default.uniqWith=array_default_default.uniqWith;wrapperLodash_default.unset=object_default_default.unset;wrapperLodash_default.unzip=array_default_default.unzip;wrapperLodash_default.unzipWith=array_default_default.unzipWith;wrapperLodash_default.update=object_default_default.update;wrapperLodash_default.updateWith=object_default_default.updateWith;wrapperLodash_default.values=object_default_default.values;wrapperLodash_default.valuesIn=object_default_default.valuesIn;wrapperLodash_default.without=array_default_default.without;wrapperLodash_default.words=string_default_default.words;wrapperLodash_default.wrap=function_default_default.wrap;wrapperLodash_default.xor=array_default_default.xor;wrapperLodash_default.xorBy=array_default_default.xorBy;wrapperLodash_default.xorWith=array_default_default.xorWith;wrapperLodash_default.zip=array_default_default.zip;wrapperLodash_default.zipObject=array_default_default.zipObject;wrapperLodash_default.zipObjectDeep=array_default_default.zipObjectDeep;wrapperLodash_default.zipWith=array_default_default.zipWith;wrapperLodash_default.entries=object_default_default.toPairs;wrapperLodash_default.entriesIn=object_default_default.toPairsIn;wrapperLodash_default.extend=object_default_default.assignIn;wrapperLodash_default.extendWith=object_default_default.assignInWith;mixin2(wrapperLodash_default,wrapperLodash_default);wrapperLodash_default.add=math_default_default.add;wrapperLodash_default.attempt=util_default_default.attempt;wrapperLodash_default.camelCase=string_default_default.camelCase;wrapperLodash_default.capitalize=string_default_default.capitalize;wrapperLodash_default.ceil=math_default_default.ceil;wrapperLodash_default.clamp=number_default_default.clamp;wrapperLodash_default.clone=lang_default_default.clone;wrapperLodash_default.cloneDeep=lang_default_default.cloneDeep;wrapperLodash_default.cloneDeepWith=lang_default_default.cloneDeepWith;wrapperLodash_default.cloneWith=lang_default_default.cloneWith;wrapperLodash_default.conformsTo=lang_default_default.conformsTo;wrapperLodash_default.deburr=string_default_default.deburr;wrapperLodash_default.defaultTo=util_default_default.defaultTo;wrapperLodash_default.divide=math_default_default.divide;wrapperLodash_default.endsWith=string_default_default.endsWith;wrapperLodash_default.eq=lang_default_default.eq;wrapperLodash_default.escape=string_default_default.escape;wrapperLodash_default.escapeRegExp=string_default_default.escapeRegExp;wrapperLodash_default.every=collection_default_default.every;wrapperLodash_default.find=collection_default_default.find;wrapperLodash_default.findIndex=array_default_default.findIndex;wrapperLodash_default.findKey=object_default_default.findKey;wrapperLodash_default.findLast=collection_default_default.findLast;wrapperLodash_default.findLastIndex=array_default_default.findLastIndex;wrapperLodash_default.findLastKey=object_default_default.findLastKey;wrapperLodash_default.floor=math_default_default.floor;wrapperLodash_default.forEach=collection_default_default.forEach;wrapperLodash_default.forEachRight=collection_default_default.forEachRight;wrapperLodash_default.forIn=object_default_default.forIn;wrapperLodash_default.forInRight=object_default_default.forInRight;wrapperLodash_default.forOwn=object_default_default.forOwn;wrapperLodash_default.forOwnRight=object_default_default.forOwnRight;wrapperLodash_default.get=object_default_default.get;wrapperLodash_default.gt=lang_default_default.gt;wrapperLodash_default.gte=lang_default_default.gte;wrapperLodash_default.has=object_default_default.has;wrapperLodash_default.hasIn=object_default_default.hasIn;wrapperLodash_default.head=array_default_default.head;wrapperLodash_default.identity=identity_default;wrapperLodash_default.includes=collection_default_default.includes;wrapperLodash_default.indexOf=array_default_default.indexOf;wrapperLodash_default.inRange=number_default_default.inRange;wrapperLodash_default.invoke=object_default_default.invoke;wrapperLodash_default.isArguments=lang_default_default.isArguments;wrapperLodash_default.isArray=isArray_default;wrapperLodash_default.isArrayBuffer=lang_default_default.isArrayBuffer;wrapperLodash_default.isArrayLike=lang_default_default.isArrayLike;wrapperLodash_default.isArrayLikeObject=lang_default_default.isArrayLikeObject;wrapperLodash_default.isBoolean=lang_default_default.isBoolean;wrapperLodash_default.isBuffer=lang_default_default.isBuffer;wrapperLodash_default.isDate=lang_default_default.isDate;wrapperLodash_default.isElement=lang_default_default.isElement;wrapperLodash_default.isEmpty=lang_default_default.isEmpty;wrapperLodash_default.isEqual=lang_default_default.isEqual;wrapperLodash_default.isEqualWith=lang_default_default.isEqualWith;wrapperLodash_default.isError=lang_default_default.isError;wrapperLodash_default.isFinite=lang_default_default.isFinite;wrapperLodash_default.isFunction=lang_default_default.isFunction;wrapperLodash_default.isInteger=lang_default_default.isInteger;wrapperLodash_default.isLength=lang_default_default.isLength;wrapperLodash_default.isMap=lang_default_default.isMap;wrapperLodash_default.isMatch=lang_default_default.isMatch;wrapperLodash_default.isMatchWith=lang_default_default.isMatchWith;wrapperLodash_default.isNaN=lang_default_default.isNaN;wrapperLodash_default.isNative=lang_default_default.isNative;wrapperLodash_default.isNil=lang_default_default.isNil;wrapperLodash_default.isNull=lang_default_default.isNull;wrapperLodash_default.isNumber=lang_default_default.isNumber;wrapperLodash_default.isObject=isObject_default;wrapperLodash_default.isObjectLike=lang_default_default.isObjectLike;wrapperLodash_default.isPlainObject=lang_default_default.isPlainObject;wrapperLodash_default.isRegExp=lang_default_default.isRegExp;wrapperLodash_default.isSafeInteger=lang_default_default.isSafeInteger;wrapperLodash_default.isSet=lang_default_default.isSet;wrapperLodash_default.isString=lang_default_default.isString;wrapperLodash_default.isSymbol=lang_default_default.isSymbol;wrapperLodash_default.isTypedArray=lang_default_default.isTypedArray;wrapperLodash_default.isUndefined=lang_default_default.isUndefined;wrapperLodash_default.isWeakMap=lang_default_default.isWeakMap;wrapperLodash_default.isWeakSet=lang_default_default.isWeakSet;wrapperLodash_default.join=array_default_default.join;wrapperLodash_default.kebabCase=string_default_default.kebabCase;wrapperLodash_default.last=last_default;wrapperLodash_default.lastIndexOf=array_default_default.lastIndexOf;wrapperLodash_default.lowerCase=string_default_default.lowerCase;wrapperLodash_default.lowerFirst=string_default_default.lowerFirst;wrapperLodash_default.lt=lang_default_default.lt;wrapperLodash_default.lte=lang_default_default.lte;wrapperLodash_default.max=math_default_default.max;wrapperLodash_default.maxBy=math_default_default.maxBy;wrapperLodash_default.mean=math_default_default.mean;wrapperLodash_default.meanBy=math_default_default.meanBy;wrapperLodash_default.min=math_default_default.min;wrapperLodash_default.minBy=math_default_default.minBy;wrapperLodash_default.stubArray=util_default_default.stubArray;wrapperLodash_default.stubFalse=util_default_default.stubFalse;wrapperLodash_default.stubObject=util_default_default.stubObject;wrapperLodash_default.stubString=util_default_default.stubString;wrapperLodash_default.stubTrue=util_default_default.stubTrue;wrapperLodash_default.multiply=math_default_default.multiply;wrapperLodash_default.nth=array_default_default.nth;wrapperLodash_default.noop=util_default_default.noop;wrapperLodash_default.now=date_default_default.now;wrapperLodash_default.pad=string_default_default.pad;wrapperLodash_default.padEnd=string_default_default.padEnd;wrapperLodash_default.padStart=string_default_default.padStart;wrapperLodash_default.parseInt=string_default_default.parseInt;wrapperLodash_default.random=number_default_default.random;wrapperLodash_default.reduce=collection_default_default.reduce;wrapperLodash_default.reduceRight=collection_default_default.reduceRight;wrapperLodash_default.repeat=string_default_default.repeat;wrapperLodash_default.replace=string_default_default.replace;wrapperLodash_default.result=object_default_default.result;wrapperLodash_default.round=math_default_default.round;wrapperLodash_default.sample=collection_default_default.sample;wrapperLodash_default.size=collection_default_default.size;wrapperLodash_default.snakeCase=string_default_default.snakeCase;wrapperLodash_default.some=collection_default_default.some;wrapperLodash_default.sortedIndex=array_default_default.sortedIndex;wrapperLodash_default.sortedIndexBy=array_default_default.sortedIndexBy;wrapperLodash_default.sortedIndexOf=array_default_default.sortedIndexOf;wrapperLodash_default.sortedLastIndex=array_default_default.sortedLastIndex;wrapperLodash_default.sortedLastIndexBy=array_default_default.sortedLastIndexBy;wrapperLodash_default.sortedLastIndexOf=array_default_default.sortedLastIndexOf;wrapperLodash_default.startCase=string_default_default.startCase;wrapperLodash_default.startsWith=string_default_default.startsWith;wrapperLodash_default.subtract=math_default_default.subtract;wrapperLodash_default.sum=math_default_default.sum;wrapperLodash_default.sumBy=math_default_default.sumBy;wrapperLodash_default.template=string_default_default.template;wrapperLodash_default.times=util_default_default.times;wrapperLodash_default.toFinite=lang_default_default.toFinite;wrapperLodash_default.toInteger=toInteger_default;wrapperLodash_default.toLength=lang_default_default.toLength;wrapperLodash_default.toLower=string_default_default.toLower;wrapperLodash_default.toNumber=lang_default_default.toNumber;wrapperLodash_default.toSafeInteger=lang_default_default.toSafeInteger;wrapperLodash_default.toString=lang_default_default.toString;wrapperLodash_default.toUpper=string_default_default.toUpper;wrapperLodash_default.trim=string_default_default.trim;wrapperLodash_default.trimEnd=string_default_default.trimEnd;wrapperLodash_default.trimStart=string_default_default.trimStart;wrapperLodash_default.truncate=string_default_default.truncate;wrapperLodash_default.unescape=string_default_default.unescape;wrapperLodash_default.uniqueId=util_default_default.uniqueId;wrapperLodash_default.upperCase=string_default_default.upperCase;wrapperLodash_default.upperFirst=string_default_default.upperFirst;wrapperLodash_default.each=collection_default_default.forEach;wrapperLodash_default.eachRight=collection_default_default.forEachRight;wrapperLodash_default.first=array_default_default.head;mixin2(wrapperLodash_default,(function(){var source={};return baseForOwn_default(wrapperLodash_default,function(func,methodName){hasOwnProperty26.call(wrapperLodash_default.prototype,methodName)||(source[methodName]=func)}),source})(),{chain:!1});wrapperLodash_default.VERSION=VERSION;(wrapperLodash_default.templateSettings=string_default_default.templateSettings).imports._=wrapperLodash_default;arrayEach_default(["bind","bindKey","curry","curryRight","partial","partialRight"],function(methodName){wrapperLodash_default[methodName].placeholder=wrapperLodash_default});arrayEach_default(["drop","take"],function(methodName,index){LazyWrapper_default.prototype[methodName]=function(n2){n2=n2===void 0?1:nativeMax17(toInteger_default(n2),0);var result2=this.__filtered__&&!index?new LazyWrapper_default(this):this.clone();return result2.__filtered__?result2.__takeCount__=nativeMin15(n2,result2.__takeCount__):result2.__views__.push({size:nativeMin15(n2,MAX_ARRAY_LENGTH7),type:methodName+(result2.__dir__<0?"Right":"")}),result2},LazyWrapper_default.prototype[methodName+"Right"]=function(n2){return this.reverse()[methodName](n2).reverse()}});arrayEach_default(["filter","map","takeWhile"],function(methodName,index){var type=index+1,isFilter=type==LAZY_FILTER_FLAG2||type==LAZY_WHILE_FLAG;LazyWrapper_default.prototype[methodName]=function(iteratee2){var result2=this.clone();return result2.__iteratees__.push({iteratee:baseIteratee_default(iteratee2,3),type}),result2.__filtered__=result2.__filtered__||isFilter,result2}});arrayEach_default(["head","last"],function(methodName,index){var takeName="take"+(index?"Right":"");LazyWrapper_default.prototype[methodName]=function(){return this[takeName](1).value()[0]}});arrayEach_default(["initial","tail"],function(methodName,index){var dropName="drop"+(index?"":"Right");LazyWrapper_default.prototype[methodName]=function(){return this.__filtered__?new LazyWrapper_default(this):this[dropName](1)}});LazyWrapper_default.prototype.compact=function(){return this.filter(identity_default)};LazyWrapper_default.prototype.find=function(predicate){return this.filter(predicate).head()};LazyWrapper_default.prototype.findLast=function(predicate){return this.reverse().find(predicate)};LazyWrapper_default.prototype.invokeMap=baseRest_default(function(path10,args){return typeof path10=="function"?new LazyWrapper_default(this):this.map(function(value){return baseInvoke_default(value,path10,args)})});LazyWrapper_default.prototype.reject=function(predicate){return this.filter(negate_default(baseIteratee_default(predicate)))};LazyWrapper_default.prototype.slice=function(start,end){start=toInteger_default(start);var result2=this;return result2.__filtered__&&(start>0||end<0)?new LazyWrapper_default(result2):(start<0?result2=result2.takeRight(-start):start&&(result2=result2.drop(start)),end!==void 0&&(end=toInteger_default(end),result2=end<0?result2.dropRight(-end):result2.take(end-start)),result2)};LazyWrapper_default.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()};LazyWrapper_default.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH7)};baseForOwn_default(LazyWrapper_default.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=wrapperLodash_default[isTaker?"take"+(methodName=="last"?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);lodashFunc&&(wrapperLodash_default.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper_default,iteratee2=args[0],useLazy=isLazy||isArray_default(value),interceptor=__name(function(value2){var result3=lodashFunc.apply(wrapperLodash_default,arrayPush_default([value2],args));return isTaker&&chainAll?result3[0]:result3},"interceptor");useLazy&&checkIteratee&&typeof iteratee2=="function"&&iteratee2.length!=1&&(isLazy=useLazy=!1);var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper_default(this);var result2=func.apply(value,args);return result2.__actions__.push({func:thru_default,args:[interceptor],thisArg:void 0}),new LodashWrapper_default(result2,chainAll)}return isUnwrapped&&onlyLazy?func.apply(this,args):(result2=this.thru(interceptor),isUnwrapped?isTaker?result2.value()[0]:result2.value():result2)})});arrayEach_default(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto6[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);wrapperLodash_default.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray_default(value)?value:[],args)}return this[chainName](function(value2){return func.apply(isArray_default(value2)?value2:[],args)})}});baseForOwn_default(LazyWrapper_default.prototype,function(func,methodName){var lodashFunc=wrapperLodash_default[methodName];if(lodashFunc){var key=lodashFunc.name+"";hasOwnProperty26.call(realNames_default,key)||(realNames_default[key]=[]),realNames_default[key].push({name:methodName,func:lodashFunc})}});realNames_default[createHybrid_default(void 0,WRAP_BIND_KEY_FLAG7).name]=[{name:"wrapper",func:void 0}];LazyWrapper_default.prototype.clone=lazyClone_default;LazyWrapper_default.prototype.reverse=lazyReverse_default;LazyWrapper_default.prototype.value=lazyValue_default;wrapperLodash_default.prototype.at=seq_default_default.at;wrapperLodash_default.prototype.chain=seq_default_default.wrapperChain;wrapperLodash_default.prototype.commit=seq_default_default.commit;wrapperLodash_default.prototype.next=seq_default_default.next;wrapperLodash_default.prototype.plant=seq_default_default.plant;wrapperLodash_default.prototype.reverse=seq_default_default.reverse;wrapperLodash_default.prototype.toJSON=wrapperLodash_default.prototype.valueOf=wrapperLodash_default.prototype.value=seq_default_default.value;wrapperLodash_default.prototype.first=wrapperLodash_default.prototype.head;symIterator2&&(wrapperLodash_default.prototype[symIterator2]=seq_default_default.toIterator)}});var init_lodash=__esm({"../../node_modules/lodash-es/lodash.js"(){init_add();init_after();init_ary();init_assign();init_assignIn();init_assignInWith();init_assignWith();init_at();init_attempt();init_before();init_bind();init_bindAll();init_bindKey();init_camelCase();init_castArray();init_ceil();init_chain();init_chunk();init_clamp();init_clone();init_cloneDeepWith();init_cloneWith();init_commit();init_compact();init_concat();init_cond();init_conforms();init_conformsTo();init_constant();init_countBy();init_create();init_curry();init_curryRight();init_debounce();init_deburr();init_defaultTo();init_defaults();init_defaultsDeep();init_defer();init_delay();init_difference();init_differenceBy();init_differenceWith();init_divide();init_drop();init_dropRight();init_dropRightWhile();init_dropWhile();init_each();init_eachRight();init_endsWith();init_entries();init_entriesIn();init_eq();init_escape();init_escapeRegExp();init_every();init_extend();init_extendWith();init_fill();init_filter();init_find();init_findIndex();init_findKey();init_findLast();init_findLastIndex();init_findLastKey();init_first();init_flatMap();init_flatMapDeep();init_flatMapDepth();init_flatten();init_flattenDeep();init_flattenDepth();init_flip();init_floor();init_flow();init_flowRight();init_forEach();init_forEachRight();init_forIn();init_forInRight();init_forOwn();init_forOwnRight();init_fromPairs();init_functions();init_functionsIn();init_get();init_groupBy();init_gt();init_gte();init_has();init_hasIn();init_head();init_identity();init_inRange();init_includes();init_indexOf();init_initial();init_intersection();init_intersectionBy();init_intersectionWith();init_invert();init_invertBy();init_invoke();init_invokeMap();init_isArguments();init_isArray();init_isArrayBuffer();init_isArrayLike();init_isArrayLikeObject();init_isBoolean();init_isBuffer();init_isDate();init_isElement();init_isEmpty();init_isEqual();init_isEqualWith();init_isError();init_isFinite();init_isFunction();init_isInteger();init_isLength();init_isMap();init_isMatch();init_isMatchWith();init_isNaN();init_isNative();init_isNil();init_isNull();init_isNumber();init_isObject();init_isObjectLike();init_isPlainObject();init_isRegExp();init_isSafeInteger();init_isSet();init_isString();init_isSymbol();init_isTypedArray();init_isUndefined();init_isWeakMap();init_isWeakSet();init_iteratee();init_join();init_kebabCase();init_keyBy();init_keys();init_keysIn();init_lastIndexOf();init_wrapperLodash();init_lowerCase();init_lowerFirst();init_lt();init_lte();init_map();init_mapKeys();init_matches();init_matchesProperty();init_max();init_maxBy();init_mean();init_meanBy();init_memoize();init_merge();init_method();init_methodOf();init_min();init_minBy();init_mixin();init_multiply();init_negate();init_next();init_noop();init_now();init_nth();init_nthArg();init_omit();init_omitBy();init_once();init_orderBy();init_over();init_overArgs();init_overEvery();init_overSome();init_pad();init_padEnd();init_padStart();init_parseInt();init_partial();init_partialRight();init_partition();init_pick();init_plant();init_property();init_propertyOf();init_pull();init_pullAll();init_pullAllBy();init_pullAllWith();init_pullAt();init_random();init_range();init_rangeRight();init_rearg();init_reduce();init_reduceRight();init_remove();init_repeat();init_replace();init_rest();init_result();init_reverse();init_round();init_sampleSize();init_set();init_setWith();init_shuffle();init_size();init_slice();init_snakeCase();init_some();init_sortBy();init_sortedIndex();init_sortedIndexBy();init_sortedIndexOf();init_sortedLastIndex();init_sortedLastIndexBy();init_sortedLastIndexOf();init_sortedUniq();init_sortedUniqBy();init_split();init_spread();init_startCase();init_startsWith();init_stubArray();init_stubFalse();init_stubObject();init_stubString();init_stubTrue();init_subtract();init_sum();init_tail();init_take();init_takeRight();init_takeRightWhile();init_takeWhile();init_tap();init_template();init_templateSettings();init_throttle();init_thru();init_times();init_toArray();init_toFinite();init_toInteger();init_toIterator();init_toJSON();init_toLength();init_toLower();init_toNumber();init_toPairs();init_toPairsIn();init_toPath();init_toPlainObject();init_toSafeInteger();init_toString();init_toUpper();init_transform();init_trim();init_trimEnd();init_trimStart();init_truncate();init_unary();init_unescape();init_union();init_unionBy();init_unionWith();init_uniq();init_uniqWith();init_uniqueId();init_unset();init_unzip();init_unzipWith();init_update();init_updateWith();init_upperCase();init_upperFirst();init_value();init_valueOf();init_values();init_valuesIn();init_without();init_words();init_wrap();init_wrapperAt();init_wrapperChain();init_commit();init_wrapperLodash();init_next();init_plant();init_wrapperReverse();init_toIterator();init_wrapperValue();init_xor();init_xorBy();init_xorWith();init_zip();init_zipObjectDeep();init_zipWith();init_lodash_default();}});function getGrowthBookClientKey(){return process.env.USER_TYPE==="ant"?isEnvTruthy(process.env.ENABLE_GROWTHBOOK_DEV)?"sdk-yZQvlplybuXjYh6L":"sdk-xRVcrliHIlrg4og4":"sdk-zAZezfDKGoZuXXKe"}var init_keys2=__esm({"src/constants/keys.ts"(){init_envUtils();__name(getGrowthBookClientKey,"getGrowthBookClientKey")}});function createBufferedWriter({writeFn,flushIntervalMs=1e3,maxBufferSize=100,maxBufferBytes=1/0,immediateMode=!1}){let buffer=[],bufferBytes=0,flushTimer=null,pendingOverflow=null;function clearTimer(){flushTimer&&(clearTimeout(flushTimer),flushTimer=null)}__name(clearTimer,"clearTimer");function flush(){pendingOverflow&&(writeFn(pendingOverflow.join("")),pendingOverflow=null),buffer.length!==0&&(writeFn(buffer.join("")),buffer=[],bufferBytes=0,clearTimer())}__name(flush,"flush");function scheduleFlush(){flushTimer||(flushTimer=setTimeout(flush,flushIntervalMs))}__name(scheduleFlush,"scheduleFlush");function flushDeferred(){if(pendingOverflow){pendingOverflow.push(...buffer),buffer=[],bufferBytes=0,clearTimer();return}let detached=buffer;buffer=[],bufferBytes=0,clearTimer(),pendingOverflow=detached,setImmediate(()=>{let toWrite=pendingOverflow;pendingOverflow=null,toWrite&&writeFn(toWrite.join(""))})}return __name(flushDeferred,"flushDeferred"),{write(content){if(immediateMode){writeFn(content);return}buffer.push(content),bufferBytes+=content.length,scheduleFlush(),(buffer.length>=maxBufferSize||bufferBytes>=maxBufferBytes)&&flushDeferred()},flush,dispose(){flush()}}}var init_bufferedWriter=__esm({"src/utils/bufferedWriter.ts"(){__name(createBufferedWriter,"createBufferedWriter")}});function registerCleanup(cleanupFn){return cleanupFunctions.add(cleanupFn),()=>cleanupFunctions.delete(cleanupFn)}var cleanupFunctions,init_cleanupRegistry=__esm({"src/utils/cleanupRegistry.ts"(){cleanupFunctions=new Set;__name(registerCleanup,"registerCleanup")}});function extractDebugCategories(message){let categories=[],mcpMatch=message.match(/^MCP server ["']([^"']+)["']/);if(mcpMatch&&mcpMatch[1])categories.push("mcp"),categories.push(mcpMatch[1].toLowerCase());else{let prefixMatch=message.match(/^([^:[]+):/);prefixMatch&&prefixMatch[1]&&categories.push(prefixMatch[1].trim().toLowerCase())}let bracketMatch=message.match(/^\[([^\]]+)]/);bracketMatch&&bracketMatch[1]&&categories.push(bracketMatch[1].trim().toLowerCase()),message.toLowerCase().includes("1p event:")&&categories.push("1p");let secondaryMatch=message.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(secondaryMatch&&secondaryMatch[1]){let secondary=secondaryMatch[1].trim().toLowerCase();secondary.length<30&&!secondary.includes(" ")&&categories.push(secondary)}return Array.from(new Set(categories))}function shouldShowDebugCategories(categories,filter3){return filter3?categories.length===0?!1:filter3.isExclusive?!categories.some(cat=>filter3.exclude.includes(cat)):categories.some(cat=>filter3.include.includes(cat)):!0}function shouldShowDebugMessage(message,filter3){if(!filter3)return!0;let categories=extractDebugCategories(message);return shouldShowDebugCategories(categories,filter3)}var parseDebugFilter,init_debugFilter=__esm({"src/utils/debugFilter.ts"(){init_memoize();parseDebugFilter=memoize_default(filterString=>{if(!filterString||filterString.trim()==="")return null;let filters=filterString.split(",").map(f3=>f3.trim()).filter(Boolean);if(filters.length===0)return null;let hasExclusive=filters.some(f3=>f3.startsWith("!")),hasInclusive=filters.some(f3=>!f3.startsWith("!"));if(hasExclusive&&hasInclusive)return null;let cleanFilters=filters.map(f3=>f3.replace(/^!/,"").toLowerCase());return{include:hasExclusive?[]:cleanFilters,exclude:hasExclusive?cleanFilters:[],isExclusive:hasExclusive}});__name(extractDebugCategories,"extractDebugCategories");__name(shouldShowDebugCategories,"shouldShowDebugCategories");__name(shouldShowDebugMessage,"shouldShowDebugMessage")}});function __classPrivateFieldSet(receiver,state,value,kind,f3){if(kind==="m")throw new TypeError("Private method is not writable");if(kind==="a"&&!f3)throw new TypeError("Private accessor was defined without a setter");if(typeof state=="function"?receiver!==state||!f3:!state.has(receiver))throw new TypeError("Cannot write private member to an object whose class did not declare it");return kind==="a"?f3.call(receiver,value):f3?f3.value=value:state.set(receiver,value),value}function __classPrivateFieldGet(receiver,state,kind,f3){if(kind==="a"&&!f3)throw new TypeError("Private accessor was defined without a getter");if(typeof state=="function"?receiver!==state||!f3:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f3:kind==="a"?f3.call(receiver):f3?f3.value:state.get(receiver)}var init_tslib=__esm({"../../node_modules/@anthropic-ai/sdk/internal/tslib.mjs"(){__name(__classPrivateFieldSet,"__classPrivateFieldSet");__name(__classPrivateFieldGet,"__classPrivateFieldGet")}});var uuid4,init_uuid=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs"(){uuid4=__name(function(){let{crypto:crypto3}=globalThis;if(crypto3?.randomUUID)return uuid4=crypto3.randomUUID.bind(crypto3),crypto3.randomUUID();let u8=new Uint8Array(1),randomByte=crypto3?()=>crypto3.getRandomValues(u8)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,c3=>(+c3^randomByte()&15>>+c3/4).toString(16))},"uuid4")}});function isAbortError(err){return typeof err=="object"&&err!==null&&("name"in err&&err.name==="AbortError"||"message"in err&&String(err.message).includes("FetchRequestCanceledException"))}var castToError,init_errors=__esm({"../../node_modules/@anthropic-ai/sdk/internal/errors.mjs"(){__name(isAbortError,"isAbortError");castToError=__name(err=>{if(err instanceof Error)return err;if(typeof err=="object"&&err!==null){try{if(Object.prototype.toString.call(err)==="[object Error]"){let error40=new Error(err.message,err.cause?{cause:err.cause}:{});return err.stack&&(error40.stack=err.stack),err.cause&&!error40.cause&&(error40.cause=err.cause),err.name&&(error40.name=err.name),error40}}catch{}try{return new Error(JSON.stringify(err))}catch{}}return new Error(err)},"castToError")}});var AnthropicError,APIError,APIUserAbortError,APIConnectionError,APIConnectionTimeoutError,BadRequestError,AuthenticationError,PermissionDeniedError,NotFoundError,ConflictError,UnprocessableEntityError,RateLimitError,InternalServerError,init_error=__esm({"../../node_modules/@anthropic-ai/sdk/core/error.mjs"(){init_errors();AnthropicError=class extends Error{static{__name(this,"AnthropicError")}},APIError=class _APIError extends AnthropicError{static{__name(this,"APIError")}constructor(status,error40,message,headers,type){super(`${_APIError.makeMessage(status,error40,message)}`),this.status=status,this.headers=headers,this.requestID=headers?.get("request-id"),this.error=error40,this.type=type??null}static makeMessage(status,error40,message){let msg=error40?.message?typeof error40.message=="string"?error40.message:JSON.stringify(error40.message):error40?JSON.stringify(error40):message;return status&&msg?`${status} ${msg}`:status?`${status} status code (no body)`:msg||"(no status code or body)"}static generate(status,errorResponse,message,headers){if(!status||!headers)return new APIConnectionError({message,cause:castToError(errorResponse)});let error40=errorResponse,type=error40?.error?.type;return status===400?new BadRequestError(status,error40,message,headers,type):status===401?new AuthenticationError(status,error40,message,headers,type):status===403?new PermissionDeniedError(status,error40,message,headers,type):status===404?new NotFoundError(status,error40,message,headers,type):status===409?new ConflictError(status,error40,message,headers,type):status===422?new UnprocessableEntityError(status,error40,message,headers,type):status===429?new RateLimitError(status,error40,message,headers,type):status>=500?new InternalServerError(status,error40,message,headers,type):new _APIError(status,error40,message,headers,type)}},APIUserAbortError=class extends APIError{static{__name(this,"APIUserAbortError")}constructor({message}={}){super(void 0,void 0,message||"Request was aborted.",void 0)}},APIConnectionError=class extends APIError{static{__name(this,"APIConnectionError")}constructor({message,cause}){super(void 0,void 0,message||"Connection error.",void 0),cause&&(this.cause=cause)}},APIConnectionTimeoutError=class extends APIConnectionError{static{__name(this,"APIConnectionTimeoutError")}constructor({message}={}){super({message:message??"Request timed out."})}},BadRequestError=class extends APIError{static{__name(this,"BadRequestError")}},AuthenticationError=class extends APIError{static{__name(this,"AuthenticationError")}},PermissionDeniedError=class extends APIError{static{__name(this,"PermissionDeniedError")}},NotFoundError=class extends APIError{static{__name(this,"NotFoundError")}},ConflictError=class extends APIError{static{__name(this,"ConflictError")}},UnprocessableEntityError=class extends APIError{static{__name(this,"UnprocessableEntityError")}},RateLimitError=class extends APIError{static{__name(this,"RateLimitError")}},InternalServerError=class extends APIError{static{__name(this,"InternalServerError")}}}});function maybeObj(x2){return typeof x2!="object"?{}:x2??{}}function isEmptyObj(obj){if(!obj)return!0;for(let _k in obj)return!1;return!0}function hasOwn(obj,key){return Object.prototype.hasOwnProperty.call(obj,key)}var startsWithSchemeRegexp,isAbsoluteURL,isArray2,isReadonlyArray,validatePositiveInteger,safeJSON,init_values2=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/values.mjs"(){init_error();startsWithSchemeRegexp=/^[a-z][a-z0-9+.-]*:/i,isAbsoluteURL=__name(url3=>startsWithSchemeRegexp.test(url3),"isAbsoluteURL"),isArray2=__name(val=>(isArray2=Array.isArray,isArray2(val)),"isArray"),isReadonlyArray=isArray2;__name(maybeObj,"maybeObj");__name(isEmptyObj,"isEmptyObj");__name(hasOwn,"hasOwn");validatePositiveInteger=__name((name,n2)=>{if(typeof n2!="number"||!Number.isInteger(n2))throw new AnthropicError(`${name} must be an integer`);if(n2<0)throw new AnthropicError(`${name} must be a positive integer`);return n2},"validatePositiveInteger"),safeJSON=__name(text=>{try{return JSON.parse(text)}catch{return}},"safeJSON")}});var sleep,init_sleep=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs"(){sleep=__name(ms=>new Promise(resolve9=>setTimeout(resolve9,ms)),"sleep")}});var VERSION2,init_version=__esm({"../../node_modules/@anthropic-ai/sdk/version.mjs"(){VERSION2="0.82.0"}});function getDetectedPlatform(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}function getBrowserInfo(){if(typeof navigator>"u"||!navigator)return null;let browserPatterns=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key,pattern}of browserPatterns){let match=pattern.exec(navigator.userAgent);if(match){let major=match[1]||0,minor=match[2]||0,patch=match[3]||0;return{browser:key,version:`${major}.${minor}.${patch}`}}}return null}var isRunningInBrowser,getPlatformProperties,normalizeArch,normalizePlatform,_platformHeaders,getPlatformHeaders,init_detect_platform=__esm({"../../node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs"(){init_version();isRunningInBrowser=__name(()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u","isRunningInBrowser");__name(getDetectedPlatform,"getDetectedPlatform");getPlatformProperties=__name(()=>{let detectedPlatform=getDetectedPlatform();if(detectedPlatform==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":normalizePlatform(Deno.build.os),"X-Stainless-Arch":normalizeArch(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(detectedPlatform==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":normalizePlatform(globalThis.process.platform??"unknown"),"X-Stainless-Arch":normalizeArch(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let browserInfo=getBrowserInfo();return browserInfo?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${browserInfo.browser}`,"X-Stainless-Runtime-Version":browserInfo.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}},"getPlatformProperties");__name(getBrowserInfo,"getBrowserInfo");normalizeArch=__name(arch=>arch==="x32"?"x32":arch==="x86_64"||arch==="x64"?"x64":arch==="arm"?"arm":arch==="aarch64"||arch==="arm64"?"arm64":arch?`other:${arch}`:"unknown","normalizeArch"),normalizePlatform=__name(platform2=>(platform2=platform2.toLowerCase(),platform2.includes("ios")?"iOS":platform2==="android"?"Android":platform2==="darwin"?"MacOS":platform2==="win32"?"Windows":platform2==="freebsd"?"FreeBSD":platform2==="openbsd"?"OpenBSD":platform2==="linux"?"Linux":platform2?`Other:${platform2}`:"Unknown"),"normalizePlatform"),getPlatformHeaders=__name(()=>_platformHeaders??(_platformHeaders=getPlatformProperties()),"getPlatformHeaders")}});function getDefaultFetch(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function makeReadableStream(...args){let ReadableStream2=globalThis.ReadableStream;if(typeof ReadableStream2>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new ReadableStream2(...args)}function ReadableStreamFrom(iterable){let iter=Symbol.asyncIterator in iterable?iterable[Symbol.asyncIterator]():iterable[Symbol.iterator]();return makeReadableStream({start(){},async pull(controller){let{done,value}=await iter.next();done?controller.close():controller.enqueue(value)},async cancel(){await iter.return?.()}})}function ReadableStreamToAsyncIterable(stream4){if(stream4[Symbol.asyncIterator])return stream4;let reader=stream4.getReader();return{async next(){try{let result2=await reader.read();return result2?.done&&reader.releaseLock(),result2}catch(e2){throw reader.releaseLock(),e2}},async return(){let cancelPromise=reader.cancel();return reader.releaseLock(),await cancelPromise,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function CancelReadableStream(stream4){if(stream4===null||typeof stream4!="object")return;if(stream4[Symbol.asyncIterator]){await stream4[Symbol.asyncIterator]().return?.();return}let reader=stream4.getReader(),cancelPromise=reader.cancel();reader.releaseLock(),await cancelPromise}var init_shims=__esm({"../../node_modules/@anthropic-ai/sdk/internal/shims.mjs"(){__name(getDefaultFetch,"getDefaultFetch");__name(makeReadableStream,"makeReadableStream");__name(ReadableStreamFrom,"ReadableStreamFrom");__name(ReadableStreamToAsyncIterable,"ReadableStreamToAsyncIterable");__name(CancelReadableStream,"CancelReadableStream")}});var FallbackEncoder,init_request_options=__esm({"../../node_modules/@anthropic-ai/sdk/internal/request-options.mjs"(){FallbackEncoder=__name(({headers,body})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(body)}),"FallbackEncoder")}});function stringifyQuery(query){return Object.entries(query).filter(([_,value])=>typeof value<"u").map(([key,value])=>{if(typeof value=="string"||typeof value=="number"||typeof value=="boolean")return`${encodeURIComponent(key)}=${encodeURIComponent(value)}`;if(value===null)return`${encodeURIComponent(key)}=`;throw new AnthropicError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}var init_query=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/query.mjs"(){init_error();__name(stringifyQuery,"stringifyQuery")}});function concatBytes(buffers){let length=0;for(let buffer of buffers)length+=buffer.length;let output=new Uint8Array(length),index=0;for(let buffer of buffers)output.set(buffer,index),index+=buffer.length;return output}function encodeUTF8(str){let encoder;return(encodeUTF8_??(encoder=new globalThis.TextEncoder,encodeUTF8_=encoder.encode.bind(encoder)))(str)}function decodeUTF8(bytes){let decoder;return(decodeUTF8_??(decoder=new globalThis.TextDecoder,decodeUTF8_=decoder.decode.bind(decoder)))(bytes)}var encodeUTF8_,decodeUTF8_,init_bytes=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs"(){__name(concatBytes,"concatBytes");__name(encodeUTF8,"encodeUTF8");__name(decodeUTF8,"decodeUTF8")}});function findNewlineIndex(buffer,startIndex){for(let i3=startIndex??0;i3<buffer.length;i3++){if(buffer[i3]===10)return{preceding:i3,index:i3+1,carriage:!1};if(buffer[i3]===13)return{preceding:i3,index:i3+1,carriage:!0}}return null}function findDoubleNewlineIndex(buffer){for(let i3=0;i3<buffer.length-1;i3++){if(buffer[i3]===10&&buffer[i3+1]===10||buffer[i3]===13&&buffer[i3+1]===13)return i3+2;if(buffer[i3]===13&&buffer[i3+1]===10&&i3+3<buffer.length&&buffer[i3+2]===13&&buffer[i3+3]===10)return i3+4}return-1}var _LineDecoder_buffer,_LineDecoder_carriageReturnIndex,LineDecoder,init_line=__esm({"../../node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs"(){init_tslib();init_bytes();LineDecoder=class{static{__name(this,"LineDecoder")}constructor(){_LineDecoder_buffer.set(this,void 0),_LineDecoder_carriageReturnIndex.set(this,void 0),__classPrivateFieldSet(this,_LineDecoder_buffer,new Uint8Array,"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}decode(chunk2){if(chunk2==null)return[];let binaryChunk=chunk2 instanceof ArrayBuffer?new Uint8Array(chunk2):typeof chunk2=="string"?encodeUTF8(chunk2):chunk2;__classPrivateFieldSet(this,_LineDecoder_buffer,concatBytes([__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),binaryChunk]),"f");let lines=[],patternIndex;for(;(patternIndex=findNewlineIndex(__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")))!=null;){if(patternIndex.carriage&&__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")==null){__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,patternIndex.index,"f");continue}if(__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!=null&&(patternIndex.index!==__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")+1||patternIndex.carriage)){lines.push(decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(0,__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")-1))),__classPrivateFieldSet(this,_LineDecoder_buffer,__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")),"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f");continue}let endIndex=__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!==null?patternIndex.preceding-1:patternIndex.preceding,line=decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(0,endIndex));lines.push(line),__classPrivateFieldSet(this,_LineDecoder_buffer,__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(patternIndex.index),"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}return lines}flush(){return __classPrivateFieldGet(this,_LineDecoder_buffer,"f").length?this.decode(`
23
+ }`;var result2=attempt_default(function(){return Function(importsKeys,sourceURL+"return "+source).apply(void 0,importsValues)});if(result2.source=source,isError_default(result2))throw result2;return result2}var INVALID_TEMPL_VAR_ERROR_TEXT,INVALID_TEMPL_IMPORTS_ERROR_TEXT,reEmptyStringLeading,reEmptyStringMiddle,reEmptyStringTrailing,reForbiddenIdentifierChars,reEsTemplate,reNoMatch,reUnescapedString,objectProto29,hasOwnProperty25,template_default,init_template=__esm({"../../node_modules/lodash-es/template.js"(){init_arrayEach();init_assignWith();init_attempt();init_baseValues();init_customDefaultsAssignIn();init_escapeStringChar();init_isError();init_isIterateeCall();init_keys();init_reInterpolate();init_templateSettings();init_toString();INVALID_TEMPL_VAR_ERROR_TEXT="Invalid `variable` option passed into `_.template`",INVALID_TEMPL_IMPORTS_ERROR_TEXT="Invalid `imports` option passed into `_.template`",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reForbiddenIdentifierChars=/[()=,{}\[\]\/\s]/,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reNoMatch=/($^)/,reUnescapedString=/['\n\r\u2028\u2029\\]/g,objectProto29=Object.prototype,hasOwnProperty25=objectProto29.hasOwnProperty;__name(template,"template");template_default=template}});function throttle(func,wait,options){var leading=!0,trailing=!0;if(typeof func!="function")throw new TypeError(FUNC_ERROR_TEXT12);return isObject_default(options)&&(leading="leading"in options?!!options.leading:leading,trailing="trailing"in options?!!options.trailing:trailing),debounce_default(func,wait,{leading,maxWait:wait,trailing})}var FUNC_ERROR_TEXT12,throttle_default,init_throttle=__esm({"../../node_modules/lodash-es/throttle.js"(){init_debounce();init_isObject();FUNC_ERROR_TEXT12="Expected a function";__name(throttle,"throttle");throttle_default=throttle}});function thru(value,interceptor){return interceptor(value)}var thru_default,init_thru=__esm({"../../node_modules/lodash-es/thru.js"(){__name(thru,"thru");thru_default=thru}});function times(n2,iteratee2){if(n2=toInteger_default(n2),n2<1||n2>MAX_SAFE_INTEGER5)return[];var index=MAX_ARRAY_LENGTH6,length=nativeMin12(n2,MAX_ARRAY_LENGTH6);iteratee2=castFunction_default(iteratee2),n2-=MAX_ARRAY_LENGTH6;for(var result2=baseTimes_default(length,iteratee2);++index<n2;)iteratee2(index);return result2}var MAX_SAFE_INTEGER5,MAX_ARRAY_LENGTH6,nativeMin12,times_default,init_times=__esm({"../../node_modules/lodash-es/times.js"(){init_baseTimes();init_castFunction();init_toInteger();MAX_SAFE_INTEGER5=9007199254740991,MAX_ARRAY_LENGTH6=4294967295,nativeMin12=Math.min;__name(times,"times");times_default=times}});function wrapperToIterator(){return this}var toIterator_default,init_toIterator=__esm({"../../node_modules/lodash-es/toIterator.js"(){__name(wrapperToIterator,"wrapperToIterator");toIterator_default=wrapperToIterator}});function baseWrapperValue(value,actions){var result2=value;return result2 instanceof LazyWrapper_default&&(result2=result2.value()),arrayReduce_default(actions,function(result3,action){return action.func.apply(action.thisArg,arrayPush_default([result3],action.args))},result2)}var baseWrapperValue_default,init_baseWrapperValue=__esm({"../../node_modules/lodash-es/_baseWrapperValue.js"(){init_LazyWrapper();init_arrayPush();init_arrayReduce();__name(baseWrapperValue,"baseWrapperValue");baseWrapperValue_default=baseWrapperValue}});function wrapperValue(){return baseWrapperValue_default(this.__wrapped__,this.__actions__)}var wrapperValue_default,init_wrapperValue=__esm({"../../node_modules/lodash-es/wrapperValue.js"(){init_baseWrapperValue();__name(wrapperValue,"wrapperValue");wrapperValue_default=wrapperValue}});var init_toJSON=__esm({"../../node_modules/lodash-es/toJSON.js"(){init_wrapperValue()}});function toLower(value){return toString_default(value).toLowerCase()}var toLower_default,init_toLower=__esm({"../../node_modules/lodash-es/toLower.js"(){init_toString();__name(toLower,"toLower");toLower_default=toLower}});function toPath(value){return isArray_default(value)?arrayMap_default(value,toKey_default):isSymbol_default(value)?[value]:copyArray_default(stringToPath_default(toString_default(value)))}var toPath_default,init_toPath=__esm({"../../node_modules/lodash-es/toPath.js"(){init_arrayMap();init_copyArray();init_isArray();init_isSymbol();init_stringToPath();init_toKey();init_toString();__name(toPath,"toPath");toPath_default=toPath}});function toSafeInteger(value){return value?baseClamp_default(toInteger_default(value),-MAX_SAFE_INTEGER6,MAX_SAFE_INTEGER6):value===0?value:0}var MAX_SAFE_INTEGER6,toSafeInteger_default,init_toSafeInteger=__esm({"../../node_modules/lodash-es/toSafeInteger.js"(){init_baseClamp();init_toInteger();MAX_SAFE_INTEGER6=9007199254740991;__name(toSafeInteger,"toSafeInteger");toSafeInteger_default=toSafeInteger}});function toUpper(value){return toString_default(value).toUpperCase()}var toUpper_default,init_toUpper=__esm({"../../node_modules/lodash-es/toUpper.js"(){init_toString();__name(toUpper,"toUpper");toUpper_default=toUpper}});function transform(object2,iteratee2,accumulator){var isArr=isArray_default(object2),isArrLike=isArr||isBuffer_default(object2)||isTypedArray_default(object2);if(iteratee2=baseIteratee_default(iteratee2,4),accumulator==null){var Ctor=object2&&object2.constructor;isArrLike?accumulator=isArr?new Ctor:[]:isObject_default(object2)?accumulator=isFunction_default(Ctor)?baseCreate_default(getPrototype_default(object2)):{}:accumulator={}}return(isArrLike?arrayEach_default:baseForOwn_default)(object2,function(value,index,object3){return iteratee2(accumulator,value,index,object3)}),accumulator}var transform_default,init_transform=__esm({"../../node_modules/lodash-es/transform.js"(){init_arrayEach();init_baseCreate();init_baseForOwn();init_baseIteratee();init_getPrototype();init_isArray();init_isBuffer();init_isFunction();init_isObject();init_isTypedArray();__name(transform,"transform");transform_default=transform}});function charsEndIndex(strSymbols,chrSymbols){for(var index=strSymbols.length;index--&&baseIndexOf_default(chrSymbols,strSymbols[index],0)>-1;);return index}var charsEndIndex_default,init_charsEndIndex=__esm({"../../node_modules/lodash-es/_charsEndIndex.js"(){init_baseIndexOf();__name(charsEndIndex,"charsEndIndex");charsEndIndex_default=charsEndIndex}});function charsStartIndex(strSymbols,chrSymbols){for(var index=-1,length=strSymbols.length;++index<length&&baseIndexOf_default(chrSymbols,strSymbols[index],0)>-1;);return index}var charsStartIndex_default,init_charsStartIndex=__esm({"../../node_modules/lodash-es/_charsStartIndex.js"(){init_baseIndexOf();__name(charsStartIndex,"charsStartIndex");charsStartIndex_default=charsStartIndex}});function trim(string4,chars,guard){if(string4=toString_default(string4),string4&&(guard||chars===void 0))return baseTrim_default(string4);if(!string4||!(chars=baseToString_default(chars)))return string4;var strSymbols=stringToArray_default(string4),chrSymbols=stringToArray_default(chars),start=charsStartIndex_default(strSymbols,chrSymbols),end=charsEndIndex_default(strSymbols,chrSymbols)+1;return castSlice_default(strSymbols,start,end).join("")}var trim_default,init_trim=__esm({"../../node_modules/lodash-es/trim.js"(){init_baseToString();init_baseTrim();init_castSlice();init_charsEndIndex();init_charsStartIndex();init_stringToArray();init_toString();__name(trim,"trim");trim_default=trim}});function trimEnd(string4,chars,guard){if(string4=toString_default(string4),string4&&(guard||chars===void 0))return string4.slice(0,trimmedEndIndex_default(string4)+1);if(!string4||!(chars=baseToString_default(chars)))return string4;var strSymbols=stringToArray_default(string4),end=charsEndIndex_default(strSymbols,stringToArray_default(chars))+1;return castSlice_default(strSymbols,0,end).join("")}var trimEnd_default,init_trimEnd=__esm({"../../node_modules/lodash-es/trimEnd.js"(){init_baseToString();init_castSlice();init_charsEndIndex();init_stringToArray();init_toString();init_trimmedEndIndex();__name(trimEnd,"trimEnd");trimEnd_default=trimEnd}});function trimStart(string4,chars,guard){if(string4=toString_default(string4),string4&&(guard||chars===void 0))return string4.replace(reTrimStart3,"");if(!string4||!(chars=baseToString_default(chars)))return string4;var strSymbols=stringToArray_default(string4),start=charsStartIndex_default(strSymbols,stringToArray_default(chars));return castSlice_default(strSymbols,start).join("")}var reTrimStart3,trimStart_default,init_trimStart=__esm({"../../node_modules/lodash-es/trimStart.js"(){init_baseToString();init_castSlice();init_charsStartIndex();init_stringToArray();init_toString();reTrimStart3=/^\s+/;__name(trimStart,"trimStart");trimStart_default=trimStart}});function truncate(string4,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject_default(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger_default(options.length):length,omission="omission"in options?baseToString_default(options.omission):omission}string4=toString_default(string4);var strLength=string4.length;if(hasUnicode_default(string4)){var strSymbols=stringToArray_default(string4);strLength=strSymbols.length}if(length>=strLength)return string4;var end=length-stringSize_default(omission);if(end<1)return omission;var result2=strSymbols?castSlice_default(strSymbols,0,end).join(""):string4.slice(0,end);if(separator===void 0)return result2+omission;if(strSymbols&&(end+=result2.length-end),isRegExp_default(separator)){if(string4.slice(end).search(separator)){var match,substring=result2;for(separator.global||(separator=RegExp(separator.source,toString_default(reFlags2.exec(separator))+"g")),separator.lastIndex=0;match=separator.exec(substring);)var newEnd=match.index;result2=result2.slice(0,newEnd===void 0?end:newEnd)}}else if(string4.indexOf(baseToString_default(separator),end)!=end){var index=result2.lastIndexOf(separator);index>-1&&(result2=result2.slice(0,index))}return result2+omission}var DEFAULT_TRUNC_LENGTH,DEFAULT_TRUNC_OMISSION,reFlags2,truncate_default,init_truncate=__esm({"../../node_modules/lodash-es/truncate.js"(){init_baseToString();init_castSlice();init_hasUnicode();init_isObject();init_isRegExp();init_stringSize();init_stringToArray();init_toInteger();init_toString();DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",reFlags2=/\w*$/;__name(truncate,"truncate");truncate_default=truncate}});function unary(func){return ary_default(func,1)}var unary_default,init_unary=__esm({"../../node_modules/lodash-es/unary.js"(){init_ary();__name(unary,"unary");unary_default=unary}});var htmlUnescapes,unescapeHtmlChar,unescapeHtmlChar_default,init_unescapeHtmlChar=__esm({"../../node_modules/lodash-es/_unescapeHtmlChar.js"(){init_basePropertyOf();htmlUnescapes={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},unescapeHtmlChar=basePropertyOf_default(htmlUnescapes),unescapeHtmlChar_default=unescapeHtmlChar}});function unescape2(string4){return string4=toString_default(string4),string4&&reHasEscapedHtml.test(string4)?string4.replace(reEscapedHtml,unescapeHtmlChar_default):string4}var reEscapedHtml,reHasEscapedHtml,unescape_default,init_unescape=__esm({"../../node_modules/lodash-es/unescape.js"(){init_toString();init_unescapeHtmlChar();reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reHasEscapedHtml=RegExp(reEscapedHtml.source);__name(unescape2,"unescape");unescape_default=unescape2}});var INFINITY6,createSet,createSet_default,init_createSet=__esm({"../../node_modules/lodash-es/_createSet.js"(){init_Set();init_noop();init_setToArray();INFINITY6=1/0,createSet=Set_default&&1/setToArray_default(new Set_default([,-0]))[1]==INFINITY6?function(values2){return new Set_default(values2)}:noop_default,createSet_default=createSet}});function baseUniq(array2,iteratee2,comparator){var index=-1,includes2=arrayIncludes_default,length=array2.length,isCommon=!0,result2=[],seen=result2;if(comparator)isCommon=!1,includes2=arrayIncludesWith_default;else if(length>=LARGE_ARRAY_SIZE3){var set3=iteratee2?null:createSet_default(array2);if(set3)return setToArray_default(set3);isCommon=!1,includes2=cacheHas_default,seen=new SetCache_default}else seen=iteratee2?[]:result2;outer:for(;++index<length;){var value=array2[index],computed=iteratee2?iteratee2(value):value;if(value=comparator||value!==0?value:0,isCommon&&computed===computed){for(var seenIndex=seen.length;seenIndex--;)if(seen[seenIndex]===computed)continue outer;iteratee2&&seen.push(computed),result2.push(value)}else includes2(seen,computed,comparator)||(seen!==result2&&seen.push(computed),result2.push(value))}return result2}var LARGE_ARRAY_SIZE3,baseUniq_default,init_baseUniq=__esm({"../../node_modules/lodash-es/_baseUniq.js"(){init_SetCache();init_arrayIncludes();init_arrayIncludesWith();init_cacheHas();init_createSet();init_setToArray();LARGE_ARRAY_SIZE3=200;__name(baseUniq,"baseUniq");baseUniq_default=baseUniq}});var union,union_default,init_union=__esm({"../../node_modules/lodash-es/union.js"(){init_baseFlatten();init_baseRest();init_baseUniq();init_isArrayLikeObject();union=baseRest_default(function(arrays){return baseUniq_default(baseFlatten_default(arrays,1,isArrayLikeObject_default,!0))}),union_default=union}});var unionBy,unionBy_default,init_unionBy=__esm({"../../node_modules/lodash-es/unionBy.js"(){init_baseFlatten();init_baseIteratee();init_baseRest();init_baseUniq();init_isArrayLikeObject();init_last();unionBy=baseRest_default(function(arrays){var iteratee2=last_default(arrays);return isArrayLikeObject_default(iteratee2)&&(iteratee2=void 0),baseUniq_default(baseFlatten_default(arrays,1,isArrayLikeObject_default,!0),baseIteratee_default(iteratee2,2))}),unionBy_default=unionBy}});var unionWith,unionWith_default,init_unionWith=__esm({"../../node_modules/lodash-es/unionWith.js"(){init_baseFlatten();init_baseRest();init_baseUniq();init_isArrayLikeObject();init_last();unionWith=baseRest_default(function(arrays){var comparator=last_default(arrays);return comparator=typeof comparator=="function"?comparator:void 0,baseUniq_default(baseFlatten_default(arrays,1,isArrayLikeObject_default,!0),void 0,comparator)}),unionWith_default=unionWith}});function uniq(array2){return array2&&array2.length?baseUniq_default(array2):[]}var uniq_default,init_uniq=__esm({"../../node_modules/lodash-es/uniq.js"(){init_baseUniq();__name(uniq,"uniq");uniq_default=uniq}});function uniqBy(array2,iteratee2){return array2&&array2.length?baseUniq_default(array2,baseIteratee_default(iteratee2,2)):[]}var uniqBy_default,init_uniqBy=__esm({"../../node_modules/lodash-es/uniqBy.js"(){init_baseIteratee();init_baseUniq();__name(uniqBy,"uniqBy");uniqBy_default=uniqBy}});function uniqWith(array2,comparator){return comparator=typeof comparator=="function"?comparator:void 0,array2&&array2.length?baseUniq_default(array2,void 0,comparator):[]}var uniqWith_default,init_uniqWith=__esm({"../../node_modules/lodash-es/uniqWith.js"(){init_baseUniq();__name(uniqWith,"uniqWith");uniqWith_default=uniqWith}});function uniqueId(prefix){var id=++idCounter;return toString_default(prefix)+id}var idCounter,uniqueId_default,init_uniqueId=__esm({"../../node_modules/lodash-es/uniqueId.js"(){init_toString();idCounter=0;__name(uniqueId,"uniqueId");uniqueId_default=uniqueId}});function unset(object2,path10){return object2==null?!0:baseUnset_default(object2,path10)}var unset_default,init_unset=__esm({"../../node_modules/lodash-es/unset.js"(){init_baseUnset();__name(unset,"unset");unset_default=unset}});function unzip(array2){if(!(array2&&array2.length))return[];var length=0;return array2=arrayFilter_default(array2,function(group){if(isArrayLikeObject_default(group))return length=nativeMax15(group.length,length),!0}),baseTimes_default(length,function(index){return arrayMap_default(array2,baseProperty_default(index))})}var nativeMax15,unzip_default,init_unzip=__esm({"../../node_modules/lodash-es/unzip.js"(){init_arrayFilter();init_arrayMap();init_baseProperty();init_baseTimes();init_isArrayLikeObject();nativeMax15=Math.max;__name(unzip,"unzip");unzip_default=unzip}});function unzipWith(array2,iteratee2){if(!(array2&&array2.length))return[];var result2=unzip_default(array2);return iteratee2==null?result2:arrayMap_default(result2,function(group){return apply_default(iteratee2,void 0,group)})}var unzipWith_default,init_unzipWith=__esm({"../../node_modules/lodash-es/unzipWith.js"(){init_apply();init_arrayMap();init_unzip();__name(unzipWith,"unzipWith");unzipWith_default=unzipWith}});function baseUpdate(object2,path10,updater,customizer){return baseSet_default(object2,path10,updater(baseGet_default(object2,path10)),customizer)}var baseUpdate_default,init_baseUpdate=__esm({"../../node_modules/lodash-es/_baseUpdate.js"(){init_baseGet();init_baseSet();__name(baseUpdate,"baseUpdate");baseUpdate_default=baseUpdate}});function update(object2,path10,updater){return object2==null?object2:baseUpdate_default(object2,path10,castFunction_default(updater))}var update_default,init_update=__esm({"../../node_modules/lodash-es/update.js"(){init_baseUpdate();init_castFunction();__name(update,"update");update_default=update}});function updateWith(object2,path10,updater,customizer){return customizer=typeof customizer=="function"?customizer:void 0,object2==null?object2:baseUpdate_default(object2,path10,castFunction_default(updater),customizer)}var updateWith_default,init_updateWith=__esm({"../../node_modules/lodash-es/updateWith.js"(){init_baseUpdate();init_castFunction();__name(updateWith,"updateWith");updateWith_default=updateWith}});var upperCase,upperCase_default,init_upperCase=__esm({"../../node_modules/lodash-es/upperCase.js"(){init_createCompounder();upperCase=createCompounder_default(function(result2,word,index){return result2+(index?" ":"")+word.toUpperCase()}),upperCase_default=upperCase}});var init_value=__esm({"../../node_modules/lodash-es/value.js"(){init_wrapperValue()}});var init_valueOf=__esm({"../../node_modules/lodash-es/valueOf.js"(){init_wrapperValue()}});function valuesIn(object2){return object2==null?[]:baseValues_default(object2,keysIn_default(object2))}var valuesIn_default,init_valuesIn=__esm({"../../node_modules/lodash-es/valuesIn.js"(){init_baseValues();init_keysIn();__name(valuesIn,"valuesIn");valuesIn_default=valuesIn}});var without,without_default,init_without=__esm({"../../node_modules/lodash-es/without.js"(){init_baseDifference();init_baseRest();init_isArrayLikeObject();without=baseRest_default(function(array2,values2){return isArrayLikeObject_default(array2)?baseDifference_default(array2,values2):[]}),without_default=without}});function wrap(value,wrapper){return partial_default(castFunction_default(wrapper),value)}var wrap_default,init_wrap=__esm({"../../node_modules/lodash-es/wrap.js"(){init_castFunction();init_partial();__name(wrap,"wrap");wrap_default=wrap}});var wrapperAt,wrapperAt_default,init_wrapperAt=__esm({"../../node_modules/lodash-es/wrapperAt.js"(){init_LazyWrapper();init_LodashWrapper();init_baseAt();init_flatRest();init_isIndex();init_thru();wrapperAt=flatRest_default(function(paths2){var length=paths2.length,start=length?paths2[0]:0,value=this.__wrapped__,interceptor=__name(function(object2){return baseAt_default(object2,paths2)},"interceptor");return length>1||this.__actions__.length||!(value instanceof LazyWrapper_default)||!isIndex_default(start)?this.thru(interceptor):(value=value.slice(start,+start+(length?1:0)),value.__actions__.push({func:thru_default,args:[interceptor],thisArg:void 0}),new LodashWrapper_default(value,this.__chain__).thru(function(array2){return length&&!array2.length&&array2.push(void 0),array2}))}),wrapperAt_default=wrapperAt}});function wrapperChain(){return chain_default(this)}var wrapperChain_default,init_wrapperChain=__esm({"../../node_modules/lodash-es/wrapperChain.js"(){init_chain();__name(wrapperChain,"wrapperChain");wrapperChain_default=wrapperChain}});function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper_default){var wrapped=value;return this.__actions__.length&&(wrapped=new LazyWrapper_default(this)),wrapped=wrapped.reverse(),wrapped.__actions__.push({func:thru_default,args:[reverse_default],thisArg:void 0}),new LodashWrapper_default(wrapped,this.__chain__)}return this.thru(reverse_default)}var wrapperReverse_default,init_wrapperReverse=__esm({"../../node_modules/lodash-es/wrapperReverse.js"(){init_LazyWrapper();init_LodashWrapper();init_reverse();init_thru();__name(wrapperReverse,"wrapperReverse");wrapperReverse_default=wrapperReverse}});function baseXor(arrays,iteratee2,comparator){var length=arrays.length;if(length<2)return length?baseUniq_default(arrays[0]):[];for(var index=-1,result2=Array(length);++index<length;)for(var array2=arrays[index],othIndex=-1;++othIndex<length;)othIndex!=index&&(result2[index]=baseDifference_default(result2[index]||array2,arrays[othIndex],iteratee2,comparator));return baseUniq_default(baseFlatten_default(result2,1),iteratee2,comparator)}var baseXor_default,init_baseXor=__esm({"../../node_modules/lodash-es/_baseXor.js"(){init_baseDifference();init_baseFlatten();init_baseUniq();__name(baseXor,"baseXor");baseXor_default=baseXor}});var xor,xor_default,init_xor=__esm({"../../node_modules/lodash-es/xor.js"(){init_arrayFilter();init_baseRest();init_baseXor();init_isArrayLikeObject();xor=baseRest_default(function(arrays){return baseXor_default(arrayFilter_default(arrays,isArrayLikeObject_default))}),xor_default=xor}});var xorBy,xorBy_default,init_xorBy=__esm({"../../node_modules/lodash-es/xorBy.js"(){init_arrayFilter();init_baseIteratee();init_baseRest();init_baseXor();init_isArrayLikeObject();init_last();xorBy=baseRest_default(function(arrays){var iteratee2=last_default(arrays);return isArrayLikeObject_default(iteratee2)&&(iteratee2=void 0),baseXor_default(arrayFilter_default(arrays,isArrayLikeObject_default),baseIteratee_default(iteratee2,2))}),xorBy_default=xorBy}});var xorWith,xorWith_default,init_xorWith=__esm({"../../node_modules/lodash-es/xorWith.js"(){init_arrayFilter();init_baseRest();init_baseXor();init_isArrayLikeObject();init_last();xorWith=baseRest_default(function(arrays){var comparator=last_default(arrays);return comparator=typeof comparator=="function"?comparator:void 0,baseXor_default(arrayFilter_default(arrays,isArrayLikeObject_default),void 0,comparator)}),xorWith_default=xorWith}});var zip,zip_default,init_zip=__esm({"../../node_modules/lodash-es/zip.js"(){init_baseRest();init_unzip();zip=baseRest_default(unzip_default),zip_default=zip}});function baseZipObject(props,values2,assignFunc){for(var index=-1,length=props.length,valsLength=values2.length,result2={};++index<length;){var value=index<valsLength?values2[index]:void 0;assignFunc(result2,props[index],value)}return result2}var baseZipObject_default,init_baseZipObject=__esm({"../../node_modules/lodash-es/_baseZipObject.js"(){__name(baseZipObject,"baseZipObject");baseZipObject_default=baseZipObject}});function zipObject(props,values2){return baseZipObject_default(props||[],values2||[],assignValue_default)}var zipObject_default,init_zipObject=__esm({"../../node_modules/lodash-es/zipObject.js"(){init_assignValue();init_baseZipObject();__name(zipObject,"zipObject");zipObject_default=zipObject}});function zipObjectDeep(props,values2){return baseZipObject_default(props||[],values2||[],baseSet_default)}var zipObjectDeep_default,init_zipObjectDeep=__esm({"../../node_modules/lodash-es/zipObjectDeep.js"(){init_baseSet();init_baseZipObject();__name(zipObjectDeep,"zipObjectDeep");zipObjectDeep_default=zipObjectDeep}});var zipWith,zipWith_default,init_zipWith=__esm({"../../node_modules/lodash-es/zipWith.js"(){init_baseRest();init_unzipWith();zipWith=baseRest_default(function(arrays){var length=arrays.length,iteratee2=length>1?arrays[length-1]:void 0;return iteratee2=typeof iteratee2=="function"?(arrays.pop(),iteratee2):void 0,unzipWith_default(arrays,iteratee2)}),zipWith_default=zipWith}});var array_default_default,init_array_default=__esm({"../../node_modules/lodash-es/array.default.js"(){init_chunk();init_compact();init_concat();init_difference();init_differenceBy();init_differenceWith();init_drop();init_dropRight();init_dropRightWhile();init_dropWhile();init_fill();init_findIndex();init_findLastIndex();init_first();init_flatten();init_flattenDeep();init_flattenDepth();init_fromPairs();init_head();init_indexOf();init_initial();init_intersection();init_intersectionBy();init_intersectionWith();init_join();init_last();init_lastIndexOf();init_nth();init_pull();init_pullAll();init_pullAllBy();init_pullAllWith();init_pullAt();init_remove();init_reverse();init_slice();init_sortedIndex();init_sortedIndexBy();init_sortedIndexOf();init_sortedLastIndex();init_sortedLastIndexBy();init_sortedLastIndexOf();init_sortedUniq();init_sortedUniqBy();init_tail();init_take();init_takeRight();init_takeRightWhile();init_takeWhile();init_union();init_unionBy();init_unionWith();init_uniq();init_uniqBy();init_uniqWith();init_unzip();init_unzipWith();init_without();init_xor();init_xorBy();init_xorWith();init_zip();init_zipObject();init_zipObjectDeep();init_zipWith();array_default_default={chunk:chunk_default,compact:compact_default,concat:concat_default,difference:difference_default,differenceBy:differenceBy_default,differenceWith:differenceWith_default,drop:drop_default,dropRight:dropRight_default,dropRightWhile:dropRightWhile_default,dropWhile:dropWhile_default,fill:fill_default,findIndex:findIndex_default,findLastIndex:findLastIndex_default,first:head_default,flatten:flatten_default,flattenDeep:flattenDeep_default,flattenDepth:flattenDepth_default,fromPairs:fromPairs_default,head:head_default,indexOf:indexOf_default,initial:initial_default,intersection:intersection_default,intersectionBy:intersectionBy_default,intersectionWith:intersectionWith_default,join:join_default,last:last_default,lastIndexOf:lastIndexOf_default,nth:nth_default,pull:pull_default,pullAll:pullAll_default,pullAllBy:pullAllBy_default,pullAllWith:pullAllWith_default,pullAt:pullAt_default,remove:remove_default,reverse:reverse_default,slice:slice_default,sortedIndex:sortedIndex_default,sortedIndexBy:sortedIndexBy_default,sortedIndexOf:sortedIndexOf_default,sortedLastIndex:sortedLastIndex_default,sortedLastIndexBy:sortedLastIndexBy_default,sortedLastIndexOf:sortedLastIndexOf_default,sortedUniq:sortedUniq_default,sortedUniqBy:sortedUniqBy_default,tail:tail_default,take:take_default,takeRight:takeRight_default,takeRightWhile:takeRightWhile_default,takeWhile:takeWhile_default,union:union_default,unionBy:unionBy_default,unionWith:unionWith_default,uniq:uniq_default,uniqBy:uniqBy_default,uniqWith:uniqWith_default,unzip:unzip_default,unzipWith:unzipWith_default,without:without_default,xor:xor_default,xorBy:xorBy_default,xorWith:xorWith_default,zip:zip_default,zipObject:zipObject_default,zipObjectDeep:zipObjectDeep_default,zipWith:zipWith_default}}});var init_array=__esm({"../../node_modules/lodash-es/array.js"(){init_chunk();init_compact();init_concat();init_difference();init_differenceBy();init_differenceWith();init_drop();init_dropRight();init_dropRightWhile();init_dropWhile();init_fill();init_findIndex();init_findLastIndex();init_first();init_flatten();init_flattenDeep();init_flattenDepth();init_fromPairs();init_head();init_indexOf();init_initial();init_intersection();init_intersectionBy();init_intersectionWith();init_join();init_lastIndexOf();init_nth();init_pull();init_pullAll();init_pullAllBy();init_pullAllWith();init_pullAt();init_remove();init_reverse();init_slice();init_sortedIndex();init_sortedIndexBy();init_sortedIndexOf();init_sortedLastIndex();init_sortedLastIndexBy();init_sortedLastIndexOf();init_sortedUniq();init_sortedUniqBy();init_tail();init_take();init_takeRight();init_takeRightWhile();init_takeWhile();init_union();init_unionBy();init_unionWith();init_uniq();init_uniqWith();init_unzip();init_unzipWith();init_without();init_xor();init_xorBy();init_xorWith();init_zip();init_zipObjectDeep();init_zipWith();init_array_default()}});var collection_default_default,init_collection_default=__esm({"../../node_modules/lodash-es/collection.default.js"(){init_countBy();init_each();init_eachRight();init_every();init_filter();init_find();init_findLast();init_flatMap();init_flatMapDeep();init_flatMapDepth();init_forEach();init_forEachRight();init_groupBy();init_includes();init_invokeMap();init_keyBy();init_map();init_orderBy();init_partition();init_reduce();init_reduceRight();init_reject();init_sample();init_sampleSize();init_shuffle();init_size();init_some();init_sortBy();collection_default_default={countBy:countBy_default,each:forEach_default,eachRight:forEachRight_default,every:every_default,filter:filter_default,find:find_default,findLast:findLast_default,flatMap:flatMap_default,flatMapDeep:flatMapDeep_default,flatMapDepth:flatMapDepth_default,forEach:forEach_default,forEachRight:forEachRight_default,groupBy:groupBy_default,includes:includes_default,invokeMap:invokeMap_default,keyBy:keyBy_default,map:map_default,orderBy:orderBy_default,partition:partition_default,reduce:reduce_default,reduceRight:reduceRight_default,reject:reject_default,sample:sample_default,sampleSize:sampleSize_default,shuffle:shuffle_default,size:size_default,some:some_default,sortBy:sortBy_default}}});var init_collection=__esm({"../../node_modules/lodash-es/collection.js"(){init_countBy();init_each();init_eachRight();init_every();init_filter();init_find();init_findLast();init_flatMap();init_flatMapDeep();init_flatMapDepth();init_forEach();init_forEachRight();init_groupBy();init_includes();init_invokeMap();init_keyBy();init_map();init_orderBy();init_reduce();init_reduceRight();init_sampleSize();init_shuffle();init_size();init_some();init_sortBy();init_collection_default()}});var date_default_default,init_date_default=__esm({"../../node_modules/lodash-es/date.default.js"(){init_now();date_default_default={now:now_default}}});var init_date=__esm({"../../node_modules/lodash-es/date.js"(){init_now();init_date_default()}});var function_default_default,init_function_default=__esm({"../../node_modules/lodash-es/function.default.js"(){init_after();init_ary();init_before();init_bind();init_bindKey();init_curry();init_curryRight();init_debounce();init_defer();init_delay();init_flip();init_memoize();init_negate();init_once();init_overArgs();init_partial();init_partialRight();init_rearg();init_rest();init_spread();init_throttle();init_unary();init_wrap();function_default_default={after:after_default,ary:ary_default,before:before_default,bind:bind_default,bindKey:bindKey_default,curry:curry_default,curryRight:curryRight_default,debounce:debounce_default,defer:defer_default,delay:delay_default,flip:flip_default,memoize:memoize_default,negate:negate_default,once:once_default,overArgs:overArgs_default,partial:partial_default,partialRight:partialRight_default,rearg:rearg_default,rest:rest_default,spread:spread_default,throttle:throttle_default,unary:unary_default,wrap:wrap_default}}});var init_function=__esm({"../../node_modules/lodash-es/function.js"(){init_after();init_ary();init_before();init_bind();init_bindKey();init_curry();init_curryRight();init_debounce();init_defer();init_delay();init_flip();init_negate();init_once();init_overArgs();init_partial();init_partialRight();init_rearg();init_rest();init_spread();init_throttle();init_unary();init_wrap();init_function_default()}});var lang_default_default,init_lang_default=__esm({"../../node_modules/lodash-es/lang.default.js"(){init_castArray();init_clone();init_cloneDeep();init_cloneDeepWith();init_cloneWith();init_conformsTo();init_eq();init_gt();init_gte();init_isArguments();init_isArray();init_isArrayBuffer();init_isArrayLike();init_isArrayLikeObject();init_isBoolean();init_isBuffer();init_isDate();init_isElement();init_isEmpty();init_isEqual();init_isEqualWith();init_isError();init_isFinite();init_isFunction();init_isInteger();init_isLength();init_isMap();init_isMatch();init_isMatchWith();init_isNaN();init_isNative();init_isNil();init_isNull();init_isNumber();init_isObject();init_isObjectLike();init_isPlainObject();init_isRegExp();init_isSafeInteger();init_isSet();init_isString();init_isSymbol();init_isTypedArray();init_isUndefined();init_isWeakMap();init_isWeakSet();init_lt();init_lte();init_toArray();init_toFinite();init_toInteger();init_toLength();init_toNumber();init_toPlainObject();init_toSafeInteger();init_toString();lang_default_default={castArray:castArray_default,clone:clone_default,cloneDeep:cloneDeep_default,cloneDeepWith:cloneDeepWith_default,cloneWith:cloneWith_default,conformsTo:conformsTo_default,eq:eq_default,gt:gt_default,gte:gte_default,isArguments:isArguments_default,isArray:isArray_default,isArrayBuffer:isArrayBuffer_default,isArrayLike:isArrayLike_default,isArrayLikeObject:isArrayLikeObject_default,isBoolean:isBoolean_default,isBuffer:isBuffer_default,isDate:isDate_default,isElement:isElement_default,isEmpty:isEmpty_default,isEqual:isEqual_default,isEqualWith:isEqualWith_default,isError:isError_default,isFinite:isFinite_default,isFunction:isFunction_default,isInteger:isInteger_default,isLength:isLength_default,isMap:isMap_default,isMatch:isMatch_default,isMatchWith:isMatchWith_default,isNaN:isNaN_default,isNative:isNative_default,isNil:isNil_default,isNull:isNull_default,isNumber:isNumber_default,isObject:isObject_default,isObjectLike:isObjectLike_default,isPlainObject:isPlainObject_default,isRegExp:isRegExp_default,isSafeInteger:isSafeInteger_default,isSet:isSet_default,isString:isString_default,isSymbol:isSymbol_default,isTypedArray:isTypedArray_default,isUndefined:isUndefined_default,isWeakMap:isWeakMap_default,isWeakSet:isWeakSet_default,lt:lt_default,lte:lte_default,toArray:toArray_default,toFinite:toFinite_default,toInteger:toInteger_default,toLength:toLength_default,toNumber:toNumber_default,toPlainObject:toPlainObject_default,toSafeInteger:toSafeInteger_default,toString:toString_default}}});var init_lang=__esm({"../../node_modules/lodash-es/lang.js"(){init_castArray();init_clone();init_cloneDeepWith();init_cloneWith();init_conformsTo();init_eq();init_gt();init_gte();init_isArguments();init_isArray();init_isArrayBuffer();init_isArrayLike();init_isArrayLikeObject();init_isBoolean();init_isBuffer();init_isDate();init_isElement();init_isEmpty();init_isEqualWith();init_isError();init_isFinite();init_isFunction();init_isInteger();init_isLength();init_isMap();init_isMatch();init_isMatchWith();init_isNaN();init_isNative();init_isNil();init_isNull();init_isNumber();init_isObject();init_isObjectLike();init_isPlainObject();init_isRegExp();init_isSafeInteger();init_isSet();init_isString();init_isSymbol();init_isTypedArray();init_isUndefined();init_isWeakMap();init_isWeakSet();init_lt();init_lte();init_toArray();init_toFinite();init_toInteger();init_toLength();init_toNumber();init_toPlainObject();init_toSafeInteger();init_toString();init_lang_default()}});var math_default_default,init_math_default=__esm({"../../node_modules/lodash-es/math.default.js"(){init_add();init_ceil();init_divide();init_floor();init_max();init_maxBy();init_mean();init_meanBy();init_min();init_minBy();init_multiply();init_round();init_subtract();init_sum();init_sumBy();math_default_default={add:add_default,ceil:ceil_default,divide:divide_default,floor:floor_default,max:max_default,maxBy:maxBy_default,mean:mean_default,meanBy:meanBy_default,min:min_default,minBy:minBy_default,multiply:multiply_default,round:round_default,subtract:subtract_default,sum:sum_default,sumBy:sumBy_default}}});var init_math=__esm({"../../node_modules/lodash-es/math.js"(){init_add();init_ceil();init_divide();init_floor();init_max();init_maxBy();init_mean();init_meanBy();init_min();init_minBy();init_multiply();init_round();init_subtract();init_sum();init_math_default()}});var number_default_default,init_number_default=__esm({"../../node_modules/lodash-es/number.default.js"(){init_clamp();init_inRange();init_random();number_default_default={clamp:clamp_default,inRange:inRange_default,random:random_default}}});var init_number=__esm({"../../node_modules/lodash-es/number.js"(){init_clamp();init_inRange();init_random();init_number_default()}});var object_default_default,init_object_default=__esm({"../../node_modules/lodash-es/object.default.js"(){init_assign();init_assignIn();init_assignInWith();init_assignWith();init_at();init_create();init_defaults();init_defaultsDeep();init_entries();init_entriesIn();init_extend();init_extendWith();init_findKey();init_findLastKey();init_forIn();init_forInRight();init_forOwn();init_forOwnRight();init_functions();init_functionsIn();init_get();init_has();init_hasIn();init_invert();init_invertBy();init_invoke();init_keys();init_keysIn();init_mapKeys();init_mapValues();init_merge();init_mergeWith();init_omit();init_omitBy();init_pick();init_pickBy();init_result();init_set();init_setWith();init_toPairs();init_toPairsIn();init_transform();init_unset();init_update();init_updateWith();init_values();init_valuesIn();object_default_default={assign:assign_default,assignIn:assignIn_default,assignInWith:assignInWith_default,assignWith:assignWith_default,at:at_default,create:create_default,defaults:defaults_default,defaultsDeep:defaultsDeep_default,entries:toPairs_default,entriesIn:toPairsIn_default,extend:assignIn_default,extendWith:assignInWith_default,findKey:findKey_default,findLastKey:findLastKey_default,forIn:forIn_default,forInRight:forInRight_default,forOwn:forOwn_default,forOwnRight:forOwnRight_default,functions:functions_default,functionsIn:functionsIn_default,get:get_default,has:has_default,hasIn:hasIn_default,invert:invert_default,invertBy:invertBy_default,invoke:invoke_default,keys:keys_default,keysIn:keysIn_default,mapKeys:mapKeys_default,mapValues:mapValues_default,merge:merge_default,mergeWith:mergeWith_default,omit:omit_default,omitBy:omitBy_default,pick:pick_default,pickBy:pickBy_default,result:result_default,set:set_default,setWith:setWith_default,toPairs:toPairs_default,toPairsIn:toPairsIn_default,transform:transform_default,unset:unset_default,update:update_default,updateWith:updateWith_default,values:values_default,valuesIn:valuesIn_default}}});var init_object=__esm({"../../node_modules/lodash-es/object.js"(){init_assign();init_assignIn();init_assignInWith();init_assignWith();init_at();init_create();init_defaults();init_defaultsDeep();init_entries();init_entriesIn();init_extend();init_extendWith();init_findKey();init_findLastKey();init_forIn();init_forInRight();init_forOwn();init_forOwnRight();init_functions();init_functionsIn();init_get();init_has();init_hasIn();init_invert();init_invertBy();init_invoke();init_keys();init_keysIn();init_mapKeys();init_merge();init_omitBy();init_pick();init_result();init_set();init_setWith();init_toPairs();init_toPairsIn();init_transform();init_unset();init_update();init_updateWith();init_values();init_valuesIn();init_object_default()}});var seq_default_default,init_seq_default=__esm({"../../node_modules/lodash-es/seq.default.js"(){init_wrapperAt();init_chain();init_commit();init_wrapperLodash();init_next();init_plant();init_wrapperReverse();init_tap();init_thru();init_toIterator();init_toJSON();init_wrapperValue();init_valueOf();init_wrapperChain();seq_default_default={at:wrapperAt_default,chain:chain_default,commit:commit_default,lodash:wrapperLodash_default,next:next_default,plant:plant_default,reverse:wrapperReverse_default,tap:tap_default,thru:thru_default,toIterator:toIterator_default,toJSON:wrapperValue_default,value:wrapperValue_default,valueOf:wrapperValue_default,wrapperChain:wrapperChain_default}}});var init_seq=__esm({"../../node_modules/lodash-es/seq.js"(){init_wrapperAt();init_chain();init_commit();init_wrapperLodash();init_next();init_plant();init_wrapperReverse();init_tap();init_thru();init_toIterator();init_toJSON();init_wrapperValue();init_valueOf();init_wrapperChain();init_seq_default()}});var string_default_default,init_string_default=__esm({"../../node_modules/lodash-es/string.default.js"(){init_camelCase();init_capitalize();init_deburr();init_endsWith();init_escape();init_escapeRegExp();init_kebabCase();init_lowerCase();init_lowerFirst();init_pad();init_padEnd();init_padStart();init_parseInt();init_repeat();init_replace();init_snakeCase();init_split();init_startCase();init_startsWith();init_template();init_templateSettings();init_toLower();init_toUpper();init_trim();init_trimEnd();init_trimStart();init_truncate();init_unescape();init_upperCase();init_upperFirst();init_words();string_default_default={camelCase:camelCase_default,capitalize:capitalize_default,deburr:deburr_default,endsWith:endsWith_default,escape:escape_default,escapeRegExp:escapeRegExp_default,kebabCase:kebabCase_default,lowerCase:lowerCase_default,lowerFirst:lowerFirst_default,pad:pad_default,padEnd:padEnd_default,padStart:padStart_default,parseInt:parseInt_default,repeat:repeat_default,replace:replace_default,snakeCase:snakeCase_default,split:split_default,startCase:startCase_default,startsWith:startsWith_default,template:template_default,templateSettings:templateSettings_default,toLower:toLower_default,toUpper:toUpper_default,trim:trim_default,trimEnd:trimEnd_default,trimStart:trimStart_default,truncate:truncate_default,unescape:unescape_default,upperCase:upperCase_default,upperFirst:upperFirst_default,words:words_default}}});var init_string=__esm({"../../node_modules/lodash-es/string.js"(){init_camelCase();init_deburr();init_endsWith();init_escape();init_escapeRegExp();init_kebabCase();init_lowerCase();init_lowerFirst();init_pad();init_padEnd();init_padStart();init_parseInt();init_repeat();init_replace();init_snakeCase();init_split();init_startCase();init_startsWith();init_template();init_templateSettings();init_toLower();init_toUpper();init_trim();init_trimEnd();init_trimStart();init_truncate();init_unescape();init_upperCase();init_upperFirst();init_words();init_string_default()}});var util_default_default,init_util_default=__esm({"../../node_modules/lodash-es/util.default.js"(){init_attempt();init_bindAll();init_cond();init_conforms();init_constant();init_defaultTo();init_flow();init_flowRight();init_identity();init_iteratee();init_matches();init_matchesProperty();init_method();init_methodOf();init_mixin();init_noop();init_nthArg();init_over();init_overEvery();init_overSome();init_property();init_propertyOf();init_range();init_rangeRight();init_stubArray();init_stubFalse();init_stubObject();init_stubString();init_stubTrue();init_times();init_toPath();init_uniqueId();util_default_default={attempt:attempt_default,bindAll:bindAll_default,cond:cond_default,conforms:conforms_default,constant:constant_default,defaultTo:defaultTo_default,flow:flow_default,flowRight:flowRight_default,identity:identity_default,iteratee:iteratee_default,matches:matches_default,matchesProperty:matchesProperty_default,method:method_default,methodOf:methodOf_default,mixin:mixin_default,noop:noop_default,nthArg:nthArg_default,over:over_default,overEvery:overEvery_default,overSome:overSome_default,property:property_default,propertyOf:propertyOf_default,range:range_default,rangeRight:rangeRight_default,stubArray:stubArray_default,stubFalse:stubFalse_default,stubObject:stubObject_default,stubString:stubString_default,stubTrue:stubTrue_default,times:times_default,toPath:toPath_default,uniqueId:uniqueId_default}}});var init_util2=__esm({"../../node_modules/lodash-es/util.js"(){init_attempt();init_bindAll();init_cond();init_conforms();init_constant();init_defaultTo();init_flow();init_flowRight();init_identity();init_iteratee();init_matches();init_matchesProperty();init_method();init_methodOf();init_mixin();init_noop();init_nthArg();init_over();init_overEvery();init_overSome();init_property();init_propertyOf();init_range();init_rangeRight();init_stubArray();init_stubFalse();init_stubObject();init_stubString();init_stubTrue();init_times();init_toPath();init_uniqueId();init_util_default()}});function lazyClone(){var result2=new LazyWrapper_default(this.__wrapped__);return result2.__actions__=copyArray_default(this.__actions__),result2.__dir__=this.__dir__,result2.__filtered__=this.__filtered__,result2.__iteratees__=copyArray_default(this.__iteratees__),result2.__takeCount__=this.__takeCount__,result2.__views__=copyArray_default(this.__views__),result2}var lazyClone_default,init_lazyClone=__esm({"../../node_modules/lodash-es/_lazyClone.js"(){init_LazyWrapper();init_copyArray();__name(lazyClone,"lazyClone");lazyClone_default=lazyClone}});function lazyReverse(){if(this.__filtered__){var result2=new LazyWrapper_default(this);result2.__dir__=-1,result2.__filtered__=!0}else result2=this.clone(),result2.__dir__*=-1;return result2}var lazyReverse_default,init_lazyReverse=__esm({"../../node_modules/lodash-es/_lazyReverse.js"(){init_LazyWrapper();__name(lazyReverse,"lazyReverse");lazyReverse_default=lazyReverse}});function getView(start,end,transforms){for(var index=-1,length=transforms.length;++index<length;){var data=transforms[index],size2=data.size;switch(data.type){case"drop":start+=size2;break;case"dropRight":end-=size2;break;case"take":end=nativeMin13(end,start+size2);break;case"takeRight":start=nativeMax16(start,end-size2);break}}return{start,end}}var nativeMax16,nativeMin13,getView_default,init_getView=__esm({"../../node_modules/lodash-es/_getView.js"(){nativeMax16=Math.max,nativeMin13=Math.min;__name(getView,"getView");getView_default=getView}});function lazyValue(){var array2=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray_default(array2),isRight=dir<0,arrLength=isArr?array2.length:0,view=getView_default(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin14(length,this.__takeCount__);if(!isArr||!isRight&&arrLength==length&&takeCount==length)return baseWrapperValue_default(array2,this.__actions__);var result2=[];outer:for(;length--&&resIndex<takeCount;){index+=dir;for(var iterIndex=-1,value=array2[index];++iterIndex<iterLength;){var data=iteratees[iterIndex],iteratee2=data.iteratee,type=data.type,computed=iteratee2(value);if(type==LAZY_MAP_FLAG)value=computed;else if(!computed){if(type==LAZY_FILTER_FLAG)continue outer;break outer}}result2[resIndex++]=value}return result2}var LAZY_FILTER_FLAG,LAZY_MAP_FLAG,nativeMin14,lazyValue_default,init_lazyValue=__esm({"../../node_modules/lodash-es/_lazyValue.js"(){init_baseWrapperValue();init_getView();init_isArray();LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,nativeMin14=Math.min;__name(lazyValue,"lazyValue");lazyValue_default=lazyValue}});var VERSION,WRAP_BIND_KEY_FLAG7,LAZY_FILTER_FLAG2,LAZY_WHILE_FLAG,MAX_ARRAY_LENGTH7,arrayProto6,objectProto30,hasOwnProperty26,symIterator2,nativeMax17,nativeMin15,mixin2,init_lodash_default=__esm({"../../node_modules/lodash-es/lodash.default.js"(){init_array();init_collection();init_date();init_function();init_lang();init_math();init_number();init_object();init_seq();init_string();init_util2();init_LazyWrapper();init_LodashWrapper();init_Symbol();init_arrayEach();init_arrayPush();init_baseForOwn();init_baseFunctions();init_baseInvoke();init_baseIteratee();init_baseRest();init_createHybrid();init_identity();init_isArray();init_isObject();init_keys();init_last();init_lazyClone();init_lazyReverse();init_lazyValue();init_mixin();init_negate();init_realNames();init_thru();init_toInteger();init_wrapperLodash();VERSION="4.18.1",WRAP_BIND_KEY_FLAG7=2,LAZY_FILTER_FLAG2=1,LAZY_WHILE_FLAG=3,MAX_ARRAY_LENGTH7=4294967295,arrayProto6=Array.prototype,objectProto30=Object.prototype,hasOwnProperty26=objectProto30.hasOwnProperty,symIterator2=Symbol_default?Symbol_default.iterator:void 0,nativeMax17=Math.max,nativeMin15=Math.min,mixin2=(function(func){return function(object2,source,options){if(options==null){var isObj2=isObject_default(source),props=isObj2&&keys_default(source),methodNames=props&&props.length&&baseFunctions_default(source,props);(methodNames?methodNames.length:isObj2)||(options=source,source=object2,object2=this)}return func(object2,source,options)}})(mixin_default);wrapperLodash_default.after=function_default_default.after;wrapperLodash_default.ary=function_default_default.ary;wrapperLodash_default.assign=object_default_default.assign;wrapperLodash_default.assignIn=object_default_default.assignIn;wrapperLodash_default.assignInWith=object_default_default.assignInWith;wrapperLodash_default.assignWith=object_default_default.assignWith;wrapperLodash_default.at=object_default_default.at;wrapperLodash_default.before=function_default_default.before;wrapperLodash_default.bind=function_default_default.bind;wrapperLodash_default.bindAll=util_default_default.bindAll;wrapperLodash_default.bindKey=function_default_default.bindKey;wrapperLodash_default.castArray=lang_default_default.castArray;wrapperLodash_default.chain=seq_default_default.chain;wrapperLodash_default.chunk=array_default_default.chunk;wrapperLodash_default.compact=array_default_default.compact;wrapperLodash_default.concat=array_default_default.concat;wrapperLodash_default.cond=util_default_default.cond;wrapperLodash_default.conforms=util_default_default.conforms;wrapperLodash_default.constant=util_default_default.constant;wrapperLodash_default.countBy=collection_default_default.countBy;wrapperLodash_default.create=object_default_default.create;wrapperLodash_default.curry=function_default_default.curry;wrapperLodash_default.curryRight=function_default_default.curryRight;wrapperLodash_default.debounce=function_default_default.debounce;wrapperLodash_default.defaults=object_default_default.defaults;wrapperLodash_default.defaultsDeep=object_default_default.defaultsDeep;wrapperLodash_default.defer=function_default_default.defer;wrapperLodash_default.delay=function_default_default.delay;wrapperLodash_default.difference=array_default_default.difference;wrapperLodash_default.differenceBy=array_default_default.differenceBy;wrapperLodash_default.differenceWith=array_default_default.differenceWith;wrapperLodash_default.drop=array_default_default.drop;wrapperLodash_default.dropRight=array_default_default.dropRight;wrapperLodash_default.dropRightWhile=array_default_default.dropRightWhile;wrapperLodash_default.dropWhile=array_default_default.dropWhile;wrapperLodash_default.fill=array_default_default.fill;wrapperLodash_default.filter=collection_default_default.filter;wrapperLodash_default.flatMap=collection_default_default.flatMap;wrapperLodash_default.flatMapDeep=collection_default_default.flatMapDeep;wrapperLodash_default.flatMapDepth=collection_default_default.flatMapDepth;wrapperLodash_default.flatten=array_default_default.flatten;wrapperLodash_default.flattenDeep=array_default_default.flattenDeep;wrapperLodash_default.flattenDepth=array_default_default.flattenDepth;wrapperLodash_default.flip=function_default_default.flip;wrapperLodash_default.flow=util_default_default.flow;wrapperLodash_default.flowRight=util_default_default.flowRight;wrapperLodash_default.fromPairs=array_default_default.fromPairs;wrapperLodash_default.functions=object_default_default.functions;wrapperLodash_default.functionsIn=object_default_default.functionsIn;wrapperLodash_default.groupBy=collection_default_default.groupBy;wrapperLodash_default.initial=array_default_default.initial;wrapperLodash_default.intersection=array_default_default.intersection;wrapperLodash_default.intersectionBy=array_default_default.intersectionBy;wrapperLodash_default.intersectionWith=array_default_default.intersectionWith;wrapperLodash_default.invert=object_default_default.invert;wrapperLodash_default.invertBy=object_default_default.invertBy;wrapperLodash_default.invokeMap=collection_default_default.invokeMap;wrapperLodash_default.iteratee=util_default_default.iteratee;wrapperLodash_default.keyBy=collection_default_default.keyBy;wrapperLodash_default.keys=keys_default;wrapperLodash_default.keysIn=object_default_default.keysIn;wrapperLodash_default.map=collection_default_default.map;wrapperLodash_default.mapKeys=object_default_default.mapKeys;wrapperLodash_default.mapValues=object_default_default.mapValues;wrapperLodash_default.matches=util_default_default.matches;wrapperLodash_default.matchesProperty=util_default_default.matchesProperty;wrapperLodash_default.memoize=function_default_default.memoize;wrapperLodash_default.merge=object_default_default.merge;wrapperLodash_default.mergeWith=object_default_default.mergeWith;wrapperLodash_default.method=util_default_default.method;wrapperLodash_default.methodOf=util_default_default.methodOf;wrapperLodash_default.mixin=mixin2;wrapperLodash_default.negate=negate_default;wrapperLodash_default.nthArg=util_default_default.nthArg;wrapperLodash_default.omit=object_default_default.omit;wrapperLodash_default.omitBy=object_default_default.omitBy;wrapperLodash_default.once=function_default_default.once;wrapperLodash_default.orderBy=collection_default_default.orderBy;wrapperLodash_default.over=util_default_default.over;wrapperLodash_default.overArgs=function_default_default.overArgs;wrapperLodash_default.overEvery=util_default_default.overEvery;wrapperLodash_default.overSome=util_default_default.overSome;wrapperLodash_default.partial=function_default_default.partial;wrapperLodash_default.partialRight=function_default_default.partialRight;wrapperLodash_default.partition=collection_default_default.partition;wrapperLodash_default.pick=object_default_default.pick;wrapperLodash_default.pickBy=object_default_default.pickBy;wrapperLodash_default.property=util_default_default.property;wrapperLodash_default.propertyOf=util_default_default.propertyOf;wrapperLodash_default.pull=array_default_default.pull;wrapperLodash_default.pullAll=array_default_default.pullAll;wrapperLodash_default.pullAllBy=array_default_default.pullAllBy;wrapperLodash_default.pullAllWith=array_default_default.pullAllWith;wrapperLodash_default.pullAt=array_default_default.pullAt;wrapperLodash_default.range=util_default_default.range;wrapperLodash_default.rangeRight=util_default_default.rangeRight;wrapperLodash_default.rearg=function_default_default.rearg;wrapperLodash_default.reject=collection_default_default.reject;wrapperLodash_default.remove=array_default_default.remove;wrapperLodash_default.rest=function_default_default.rest;wrapperLodash_default.reverse=array_default_default.reverse;wrapperLodash_default.sampleSize=collection_default_default.sampleSize;wrapperLodash_default.set=object_default_default.set;wrapperLodash_default.setWith=object_default_default.setWith;wrapperLodash_default.shuffle=collection_default_default.shuffle;wrapperLodash_default.slice=array_default_default.slice;wrapperLodash_default.sortBy=collection_default_default.sortBy;wrapperLodash_default.sortedUniq=array_default_default.sortedUniq;wrapperLodash_default.sortedUniqBy=array_default_default.sortedUniqBy;wrapperLodash_default.split=string_default_default.split;wrapperLodash_default.spread=function_default_default.spread;wrapperLodash_default.tail=array_default_default.tail;wrapperLodash_default.take=array_default_default.take;wrapperLodash_default.takeRight=array_default_default.takeRight;wrapperLodash_default.takeRightWhile=array_default_default.takeRightWhile;wrapperLodash_default.takeWhile=array_default_default.takeWhile;wrapperLodash_default.tap=seq_default_default.tap;wrapperLodash_default.throttle=function_default_default.throttle;wrapperLodash_default.thru=thru_default;wrapperLodash_default.toArray=lang_default_default.toArray;wrapperLodash_default.toPairs=object_default_default.toPairs;wrapperLodash_default.toPairsIn=object_default_default.toPairsIn;wrapperLodash_default.toPath=util_default_default.toPath;wrapperLodash_default.toPlainObject=lang_default_default.toPlainObject;wrapperLodash_default.transform=object_default_default.transform;wrapperLodash_default.unary=function_default_default.unary;wrapperLodash_default.union=array_default_default.union;wrapperLodash_default.unionBy=array_default_default.unionBy;wrapperLodash_default.unionWith=array_default_default.unionWith;wrapperLodash_default.uniq=array_default_default.uniq;wrapperLodash_default.uniqBy=array_default_default.uniqBy;wrapperLodash_default.uniqWith=array_default_default.uniqWith;wrapperLodash_default.unset=object_default_default.unset;wrapperLodash_default.unzip=array_default_default.unzip;wrapperLodash_default.unzipWith=array_default_default.unzipWith;wrapperLodash_default.update=object_default_default.update;wrapperLodash_default.updateWith=object_default_default.updateWith;wrapperLodash_default.values=object_default_default.values;wrapperLodash_default.valuesIn=object_default_default.valuesIn;wrapperLodash_default.without=array_default_default.without;wrapperLodash_default.words=string_default_default.words;wrapperLodash_default.wrap=function_default_default.wrap;wrapperLodash_default.xor=array_default_default.xor;wrapperLodash_default.xorBy=array_default_default.xorBy;wrapperLodash_default.xorWith=array_default_default.xorWith;wrapperLodash_default.zip=array_default_default.zip;wrapperLodash_default.zipObject=array_default_default.zipObject;wrapperLodash_default.zipObjectDeep=array_default_default.zipObjectDeep;wrapperLodash_default.zipWith=array_default_default.zipWith;wrapperLodash_default.entries=object_default_default.toPairs;wrapperLodash_default.entriesIn=object_default_default.toPairsIn;wrapperLodash_default.extend=object_default_default.assignIn;wrapperLodash_default.extendWith=object_default_default.assignInWith;mixin2(wrapperLodash_default,wrapperLodash_default);wrapperLodash_default.add=math_default_default.add;wrapperLodash_default.attempt=util_default_default.attempt;wrapperLodash_default.camelCase=string_default_default.camelCase;wrapperLodash_default.capitalize=string_default_default.capitalize;wrapperLodash_default.ceil=math_default_default.ceil;wrapperLodash_default.clamp=number_default_default.clamp;wrapperLodash_default.clone=lang_default_default.clone;wrapperLodash_default.cloneDeep=lang_default_default.cloneDeep;wrapperLodash_default.cloneDeepWith=lang_default_default.cloneDeepWith;wrapperLodash_default.cloneWith=lang_default_default.cloneWith;wrapperLodash_default.conformsTo=lang_default_default.conformsTo;wrapperLodash_default.deburr=string_default_default.deburr;wrapperLodash_default.defaultTo=util_default_default.defaultTo;wrapperLodash_default.divide=math_default_default.divide;wrapperLodash_default.endsWith=string_default_default.endsWith;wrapperLodash_default.eq=lang_default_default.eq;wrapperLodash_default.escape=string_default_default.escape;wrapperLodash_default.escapeRegExp=string_default_default.escapeRegExp;wrapperLodash_default.every=collection_default_default.every;wrapperLodash_default.find=collection_default_default.find;wrapperLodash_default.findIndex=array_default_default.findIndex;wrapperLodash_default.findKey=object_default_default.findKey;wrapperLodash_default.findLast=collection_default_default.findLast;wrapperLodash_default.findLastIndex=array_default_default.findLastIndex;wrapperLodash_default.findLastKey=object_default_default.findLastKey;wrapperLodash_default.floor=math_default_default.floor;wrapperLodash_default.forEach=collection_default_default.forEach;wrapperLodash_default.forEachRight=collection_default_default.forEachRight;wrapperLodash_default.forIn=object_default_default.forIn;wrapperLodash_default.forInRight=object_default_default.forInRight;wrapperLodash_default.forOwn=object_default_default.forOwn;wrapperLodash_default.forOwnRight=object_default_default.forOwnRight;wrapperLodash_default.get=object_default_default.get;wrapperLodash_default.gt=lang_default_default.gt;wrapperLodash_default.gte=lang_default_default.gte;wrapperLodash_default.has=object_default_default.has;wrapperLodash_default.hasIn=object_default_default.hasIn;wrapperLodash_default.head=array_default_default.head;wrapperLodash_default.identity=identity_default;wrapperLodash_default.includes=collection_default_default.includes;wrapperLodash_default.indexOf=array_default_default.indexOf;wrapperLodash_default.inRange=number_default_default.inRange;wrapperLodash_default.invoke=object_default_default.invoke;wrapperLodash_default.isArguments=lang_default_default.isArguments;wrapperLodash_default.isArray=isArray_default;wrapperLodash_default.isArrayBuffer=lang_default_default.isArrayBuffer;wrapperLodash_default.isArrayLike=lang_default_default.isArrayLike;wrapperLodash_default.isArrayLikeObject=lang_default_default.isArrayLikeObject;wrapperLodash_default.isBoolean=lang_default_default.isBoolean;wrapperLodash_default.isBuffer=lang_default_default.isBuffer;wrapperLodash_default.isDate=lang_default_default.isDate;wrapperLodash_default.isElement=lang_default_default.isElement;wrapperLodash_default.isEmpty=lang_default_default.isEmpty;wrapperLodash_default.isEqual=lang_default_default.isEqual;wrapperLodash_default.isEqualWith=lang_default_default.isEqualWith;wrapperLodash_default.isError=lang_default_default.isError;wrapperLodash_default.isFinite=lang_default_default.isFinite;wrapperLodash_default.isFunction=lang_default_default.isFunction;wrapperLodash_default.isInteger=lang_default_default.isInteger;wrapperLodash_default.isLength=lang_default_default.isLength;wrapperLodash_default.isMap=lang_default_default.isMap;wrapperLodash_default.isMatch=lang_default_default.isMatch;wrapperLodash_default.isMatchWith=lang_default_default.isMatchWith;wrapperLodash_default.isNaN=lang_default_default.isNaN;wrapperLodash_default.isNative=lang_default_default.isNative;wrapperLodash_default.isNil=lang_default_default.isNil;wrapperLodash_default.isNull=lang_default_default.isNull;wrapperLodash_default.isNumber=lang_default_default.isNumber;wrapperLodash_default.isObject=isObject_default;wrapperLodash_default.isObjectLike=lang_default_default.isObjectLike;wrapperLodash_default.isPlainObject=lang_default_default.isPlainObject;wrapperLodash_default.isRegExp=lang_default_default.isRegExp;wrapperLodash_default.isSafeInteger=lang_default_default.isSafeInteger;wrapperLodash_default.isSet=lang_default_default.isSet;wrapperLodash_default.isString=lang_default_default.isString;wrapperLodash_default.isSymbol=lang_default_default.isSymbol;wrapperLodash_default.isTypedArray=lang_default_default.isTypedArray;wrapperLodash_default.isUndefined=lang_default_default.isUndefined;wrapperLodash_default.isWeakMap=lang_default_default.isWeakMap;wrapperLodash_default.isWeakSet=lang_default_default.isWeakSet;wrapperLodash_default.join=array_default_default.join;wrapperLodash_default.kebabCase=string_default_default.kebabCase;wrapperLodash_default.last=last_default;wrapperLodash_default.lastIndexOf=array_default_default.lastIndexOf;wrapperLodash_default.lowerCase=string_default_default.lowerCase;wrapperLodash_default.lowerFirst=string_default_default.lowerFirst;wrapperLodash_default.lt=lang_default_default.lt;wrapperLodash_default.lte=lang_default_default.lte;wrapperLodash_default.max=math_default_default.max;wrapperLodash_default.maxBy=math_default_default.maxBy;wrapperLodash_default.mean=math_default_default.mean;wrapperLodash_default.meanBy=math_default_default.meanBy;wrapperLodash_default.min=math_default_default.min;wrapperLodash_default.minBy=math_default_default.minBy;wrapperLodash_default.stubArray=util_default_default.stubArray;wrapperLodash_default.stubFalse=util_default_default.stubFalse;wrapperLodash_default.stubObject=util_default_default.stubObject;wrapperLodash_default.stubString=util_default_default.stubString;wrapperLodash_default.stubTrue=util_default_default.stubTrue;wrapperLodash_default.multiply=math_default_default.multiply;wrapperLodash_default.nth=array_default_default.nth;wrapperLodash_default.noop=util_default_default.noop;wrapperLodash_default.now=date_default_default.now;wrapperLodash_default.pad=string_default_default.pad;wrapperLodash_default.padEnd=string_default_default.padEnd;wrapperLodash_default.padStart=string_default_default.padStart;wrapperLodash_default.parseInt=string_default_default.parseInt;wrapperLodash_default.random=number_default_default.random;wrapperLodash_default.reduce=collection_default_default.reduce;wrapperLodash_default.reduceRight=collection_default_default.reduceRight;wrapperLodash_default.repeat=string_default_default.repeat;wrapperLodash_default.replace=string_default_default.replace;wrapperLodash_default.result=object_default_default.result;wrapperLodash_default.round=math_default_default.round;wrapperLodash_default.sample=collection_default_default.sample;wrapperLodash_default.size=collection_default_default.size;wrapperLodash_default.snakeCase=string_default_default.snakeCase;wrapperLodash_default.some=collection_default_default.some;wrapperLodash_default.sortedIndex=array_default_default.sortedIndex;wrapperLodash_default.sortedIndexBy=array_default_default.sortedIndexBy;wrapperLodash_default.sortedIndexOf=array_default_default.sortedIndexOf;wrapperLodash_default.sortedLastIndex=array_default_default.sortedLastIndex;wrapperLodash_default.sortedLastIndexBy=array_default_default.sortedLastIndexBy;wrapperLodash_default.sortedLastIndexOf=array_default_default.sortedLastIndexOf;wrapperLodash_default.startCase=string_default_default.startCase;wrapperLodash_default.startsWith=string_default_default.startsWith;wrapperLodash_default.subtract=math_default_default.subtract;wrapperLodash_default.sum=math_default_default.sum;wrapperLodash_default.sumBy=math_default_default.sumBy;wrapperLodash_default.template=string_default_default.template;wrapperLodash_default.times=util_default_default.times;wrapperLodash_default.toFinite=lang_default_default.toFinite;wrapperLodash_default.toInteger=toInteger_default;wrapperLodash_default.toLength=lang_default_default.toLength;wrapperLodash_default.toLower=string_default_default.toLower;wrapperLodash_default.toNumber=lang_default_default.toNumber;wrapperLodash_default.toSafeInteger=lang_default_default.toSafeInteger;wrapperLodash_default.toString=lang_default_default.toString;wrapperLodash_default.toUpper=string_default_default.toUpper;wrapperLodash_default.trim=string_default_default.trim;wrapperLodash_default.trimEnd=string_default_default.trimEnd;wrapperLodash_default.trimStart=string_default_default.trimStart;wrapperLodash_default.truncate=string_default_default.truncate;wrapperLodash_default.unescape=string_default_default.unescape;wrapperLodash_default.uniqueId=util_default_default.uniqueId;wrapperLodash_default.upperCase=string_default_default.upperCase;wrapperLodash_default.upperFirst=string_default_default.upperFirst;wrapperLodash_default.each=collection_default_default.forEach;wrapperLodash_default.eachRight=collection_default_default.forEachRight;wrapperLodash_default.first=array_default_default.head;mixin2(wrapperLodash_default,(function(){var source={};return baseForOwn_default(wrapperLodash_default,function(func,methodName){hasOwnProperty26.call(wrapperLodash_default.prototype,methodName)||(source[methodName]=func)}),source})(),{chain:!1});wrapperLodash_default.VERSION=VERSION;(wrapperLodash_default.templateSettings=string_default_default.templateSettings).imports._=wrapperLodash_default;arrayEach_default(["bind","bindKey","curry","curryRight","partial","partialRight"],function(methodName){wrapperLodash_default[methodName].placeholder=wrapperLodash_default});arrayEach_default(["drop","take"],function(methodName,index){LazyWrapper_default.prototype[methodName]=function(n2){n2=n2===void 0?1:nativeMax17(toInteger_default(n2),0);var result2=this.__filtered__&&!index?new LazyWrapper_default(this):this.clone();return result2.__filtered__?result2.__takeCount__=nativeMin15(n2,result2.__takeCount__):result2.__views__.push({size:nativeMin15(n2,MAX_ARRAY_LENGTH7),type:methodName+(result2.__dir__<0?"Right":"")}),result2},LazyWrapper_default.prototype[methodName+"Right"]=function(n2){return this.reverse()[methodName](n2).reverse()}});arrayEach_default(["filter","map","takeWhile"],function(methodName,index){var type=index+1,isFilter=type==LAZY_FILTER_FLAG2||type==LAZY_WHILE_FLAG;LazyWrapper_default.prototype[methodName]=function(iteratee2){var result2=this.clone();return result2.__iteratees__.push({iteratee:baseIteratee_default(iteratee2,3),type}),result2.__filtered__=result2.__filtered__||isFilter,result2}});arrayEach_default(["head","last"],function(methodName,index){var takeName="take"+(index?"Right":"");LazyWrapper_default.prototype[methodName]=function(){return this[takeName](1).value()[0]}});arrayEach_default(["initial","tail"],function(methodName,index){var dropName="drop"+(index?"":"Right");LazyWrapper_default.prototype[methodName]=function(){return this.__filtered__?new LazyWrapper_default(this):this[dropName](1)}});LazyWrapper_default.prototype.compact=function(){return this.filter(identity_default)};LazyWrapper_default.prototype.find=function(predicate){return this.filter(predicate).head()};LazyWrapper_default.prototype.findLast=function(predicate){return this.reverse().find(predicate)};LazyWrapper_default.prototype.invokeMap=baseRest_default(function(path10,args){return typeof path10=="function"?new LazyWrapper_default(this):this.map(function(value){return baseInvoke_default(value,path10,args)})});LazyWrapper_default.prototype.reject=function(predicate){return this.filter(negate_default(baseIteratee_default(predicate)))};LazyWrapper_default.prototype.slice=function(start,end){start=toInteger_default(start);var result2=this;return result2.__filtered__&&(start>0||end<0)?new LazyWrapper_default(result2):(start<0?result2=result2.takeRight(-start):start&&(result2=result2.drop(start)),end!==void 0&&(end=toInteger_default(end),result2=end<0?result2.dropRight(-end):result2.take(end-start)),result2)};LazyWrapper_default.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()};LazyWrapper_default.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH7)};baseForOwn_default(LazyWrapper_default.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=wrapperLodash_default[isTaker?"take"+(methodName=="last"?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);lodashFunc&&(wrapperLodash_default.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper_default,iteratee2=args[0],useLazy=isLazy||isArray_default(value),interceptor=__name(function(value2){var result3=lodashFunc.apply(wrapperLodash_default,arrayPush_default([value2],args));return isTaker&&chainAll?result3[0]:result3},"interceptor");useLazy&&checkIteratee&&typeof iteratee2=="function"&&iteratee2.length!=1&&(isLazy=useLazy=!1);var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper_default(this);var result2=func.apply(value,args);return result2.__actions__.push({func:thru_default,args:[interceptor],thisArg:void 0}),new LodashWrapper_default(result2,chainAll)}return isUnwrapped&&onlyLazy?func.apply(this,args):(result2=this.thru(interceptor),isUnwrapped?isTaker?result2.value()[0]:result2.value():result2)})});arrayEach_default(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto6[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);wrapperLodash_default.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray_default(value)?value:[],args)}return this[chainName](function(value2){return func.apply(isArray_default(value2)?value2:[],args)})}});baseForOwn_default(LazyWrapper_default.prototype,function(func,methodName){var lodashFunc=wrapperLodash_default[methodName];if(lodashFunc){var key=lodashFunc.name+"";hasOwnProperty26.call(realNames_default,key)||(realNames_default[key]=[]),realNames_default[key].push({name:methodName,func:lodashFunc})}});realNames_default[createHybrid_default(void 0,WRAP_BIND_KEY_FLAG7).name]=[{name:"wrapper",func:void 0}];LazyWrapper_default.prototype.clone=lazyClone_default;LazyWrapper_default.prototype.reverse=lazyReverse_default;LazyWrapper_default.prototype.value=lazyValue_default;wrapperLodash_default.prototype.at=seq_default_default.at;wrapperLodash_default.prototype.chain=seq_default_default.wrapperChain;wrapperLodash_default.prototype.commit=seq_default_default.commit;wrapperLodash_default.prototype.next=seq_default_default.next;wrapperLodash_default.prototype.plant=seq_default_default.plant;wrapperLodash_default.prototype.reverse=seq_default_default.reverse;wrapperLodash_default.prototype.toJSON=wrapperLodash_default.prototype.valueOf=wrapperLodash_default.prototype.value=seq_default_default.value;wrapperLodash_default.prototype.first=wrapperLodash_default.prototype.head;symIterator2&&(wrapperLodash_default.prototype[symIterator2]=seq_default_default.toIterator)}});var init_lodash=__esm({"../../node_modules/lodash-es/lodash.js"(){init_add();init_after();init_ary();init_assign();init_assignIn();init_assignInWith();init_assignWith();init_at();init_attempt();init_before();init_bind();init_bindAll();init_bindKey();init_camelCase();init_castArray();init_ceil();init_chain();init_chunk();init_clamp();init_clone();init_cloneDeepWith();init_cloneWith();init_commit();init_compact();init_concat();init_cond();init_conforms();init_conformsTo();init_constant();init_countBy();init_create();init_curry();init_curryRight();init_debounce();init_deburr();init_defaultTo();init_defaults();init_defaultsDeep();init_defer();init_delay();init_difference();init_differenceBy();init_differenceWith();init_divide();init_drop();init_dropRight();init_dropRightWhile();init_dropWhile();init_each();init_eachRight();init_endsWith();init_entries();init_entriesIn();init_eq();init_escape();init_escapeRegExp();init_every();init_extend();init_extendWith();init_fill();init_filter();init_find();init_findIndex();init_findKey();init_findLast();init_findLastIndex();init_findLastKey();init_first();init_flatMap();init_flatMapDeep();init_flatMapDepth();init_flatten();init_flattenDeep();init_flattenDepth();init_flip();init_floor();init_flow();init_flowRight();init_forEach();init_forEachRight();init_forIn();init_forInRight();init_forOwn();init_forOwnRight();init_fromPairs();init_functions();init_functionsIn();init_get();init_groupBy();init_gt();init_gte();init_has();init_hasIn();init_head();init_identity();init_inRange();init_includes();init_indexOf();init_initial();init_intersection();init_intersectionBy();init_intersectionWith();init_invert();init_invertBy();init_invoke();init_invokeMap();init_isArguments();init_isArray();init_isArrayBuffer();init_isArrayLike();init_isArrayLikeObject();init_isBoolean();init_isBuffer();init_isDate();init_isElement();init_isEmpty();init_isEqual();init_isEqualWith();init_isError();init_isFinite();init_isFunction();init_isInteger();init_isLength();init_isMap();init_isMatch();init_isMatchWith();init_isNaN();init_isNative();init_isNil();init_isNull();init_isNumber();init_isObject();init_isObjectLike();init_isPlainObject();init_isRegExp();init_isSafeInteger();init_isSet();init_isString();init_isSymbol();init_isTypedArray();init_isUndefined();init_isWeakMap();init_isWeakSet();init_iteratee();init_join();init_kebabCase();init_keyBy();init_keys();init_keysIn();init_lastIndexOf();init_wrapperLodash();init_lowerCase();init_lowerFirst();init_lt();init_lte();init_map();init_mapKeys();init_matches();init_matchesProperty();init_max();init_maxBy();init_mean();init_meanBy();init_memoize();init_merge();init_method();init_methodOf();init_min();init_minBy();init_mixin();init_multiply();init_negate();init_next();init_noop();init_now();init_nth();init_nthArg();init_omitBy();init_once();init_orderBy();init_over();init_overArgs();init_overEvery();init_overSome();init_pad();init_padEnd();init_padStart();init_parseInt();init_partial();init_partialRight();init_pick();init_plant();init_property();init_propertyOf();init_pull();init_pullAll();init_pullAllBy();init_pullAllWith();init_pullAt();init_random();init_range();init_rangeRight();init_rearg();init_reduce();init_reduceRight();init_remove();init_repeat();init_replace();init_rest();init_result();init_reverse();init_round();init_sampleSize();init_set();init_setWith();init_shuffle();init_size();init_slice();init_snakeCase();init_some();init_sortBy();init_sortedIndex();init_sortedIndexBy();init_sortedIndexOf();init_sortedLastIndex();init_sortedLastIndexBy();init_sortedLastIndexOf();init_sortedUniq();init_sortedUniqBy();init_split();init_spread();init_startCase();init_startsWith();init_stubArray();init_stubFalse();init_stubObject();init_stubString();init_stubTrue();init_subtract();init_sum();init_tail();init_take();init_takeRight();init_takeRightWhile();init_takeWhile();init_tap();init_template();init_templateSettings();init_throttle();init_thru();init_times();init_toArray();init_toFinite();init_toInteger();init_toIterator();init_toJSON();init_toLength();init_toLower();init_toNumber();init_toPairs();init_toPairsIn();init_toPath();init_toPlainObject();init_toSafeInteger();init_toString();init_toUpper();init_transform();init_trim();init_trimEnd();init_trimStart();init_truncate();init_unary();init_unescape();init_union();init_unionBy();init_unionWith();init_uniq();init_uniqWith();init_uniqueId();init_unset();init_unzip();init_unzipWith();init_update();init_updateWith();init_upperCase();init_upperFirst();init_value();init_valueOf();init_values();init_valuesIn();init_without();init_words();init_wrap();init_wrapperAt();init_wrapperChain();init_commit();init_wrapperLodash();init_next();init_plant();init_wrapperReverse();init_toIterator();init_wrapperValue();init_xor();init_xorBy();init_xorWith();init_zip();init_zipObjectDeep();init_zipWith();init_lodash_default();}});function getGrowthBookClientKey(){return process.env.USER_TYPE==="ant"?isEnvTruthy(process.env.ENABLE_GROWTHBOOK_DEV)?"sdk-yZQvlplybuXjYh6L":"sdk-xRVcrliHIlrg4og4":"sdk-zAZezfDKGoZuXXKe"}var init_keys2=__esm({"src/constants/keys.ts"(){init_envUtils();__name(getGrowthBookClientKey,"getGrowthBookClientKey")}});function createBufferedWriter({writeFn,flushIntervalMs=1e3,maxBufferSize=100,maxBufferBytes=1/0,immediateMode=!1}){let buffer=[],bufferBytes=0,flushTimer=null,pendingOverflow=null;function clearTimer(){flushTimer&&(clearTimeout(flushTimer),flushTimer=null)}__name(clearTimer,"clearTimer");function flush(){pendingOverflow&&(writeFn(pendingOverflow.join("")),pendingOverflow=null),buffer.length!==0&&(writeFn(buffer.join("")),buffer=[],bufferBytes=0,clearTimer())}__name(flush,"flush");function scheduleFlush(){flushTimer||(flushTimer=setTimeout(flush,flushIntervalMs))}__name(scheduleFlush,"scheduleFlush");function flushDeferred(){if(pendingOverflow){pendingOverflow.push(...buffer),buffer=[],bufferBytes=0,clearTimer();return}let detached=buffer;buffer=[],bufferBytes=0,clearTimer(),pendingOverflow=detached,setImmediate(()=>{let toWrite=pendingOverflow;pendingOverflow=null,toWrite&&writeFn(toWrite.join(""))})}return __name(flushDeferred,"flushDeferred"),{write(content){if(immediateMode){writeFn(content);return}buffer.push(content),bufferBytes+=content.length,scheduleFlush(),(buffer.length>=maxBufferSize||bufferBytes>=maxBufferBytes)&&flushDeferred()},flush,dispose(){flush()}}}var init_bufferedWriter=__esm({"src/utils/bufferedWriter.ts"(){__name(createBufferedWriter,"createBufferedWriter")}});function registerCleanup(cleanupFn){return cleanupFunctions.add(cleanupFn),()=>cleanupFunctions.delete(cleanupFn)}var cleanupFunctions,init_cleanupRegistry=__esm({"src/utils/cleanupRegistry.ts"(){cleanupFunctions=new Set;__name(registerCleanup,"registerCleanup")}});function extractDebugCategories(message){let categories=[],mcpMatch=message.match(/^MCP server ["']([^"']+)["']/);if(mcpMatch&&mcpMatch[1])categories.push("mcp"),categories.push(mcpMatch[1].toLowerCase());else{let prefixMatch=message.match(/^([^:[]+):/);prefixMatch&&prefixMatch[1]&&categories.push(prefixMatch[1].trim().toLowerCase())}let bracketMatch=message.match(/^\[([^\]]+)]/);bracketMatch&&bracketMatch[1]&&categories.push(bracketMatch[1].trim().toLowerCase()),message.toLowerCase().includes("1p event:")&&categories.push("1p");let secondaryMatch=message.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(secondaryMatch&&secondaryMatch[1]){let secondary=secondaryMatch[1].trim().toLowerCase();secondary.length<30&&!secondary.includes(" ")&&categories.push(secondary)}return Array.from(new Set(categories))}function shouldShowDebugCategories(categories,filter3){return filter3?categories.length===0?!1:filter3.isExclusive?!categories.some(cat=>filter3.exclude.includes(cat)):categories.some(cat=>filter3.include.includes(cat)):!0}function shouldShowDebugMessage(message,filter3){if(!filter3)return!0;let categories=extractDebugCategories(message);return shouldShowDebugCategories(categories,filter3)}var parseDebugFilter,init_debugFilter=__esm({"src/utils/debugFilter.ts"(){init_memoize();parseDebugFilter=memoize_default(filterString=>{if(!filterString||filterString.trim()==="")return null;let filters=filterString.split(",").map(f3=>f3.trim()).filter(Boolean);if(filters.length===0)return null;let hasExclusive=filters.some(f3=>f3.startsWith("!")),hasInclusive=filters.some(f3=>!f3.startsWith("!"));if(hasExclusive&&hasInclusive)return null;let cleanFilters=filters.map(f3=>f3.replace(/^!/,"").toLowerCase());return{include:hasExclusive?[]:cleanFilters,exclude:hasExclusive?cleanFilters:[],isExclusive:hasExclusive}});__name(extractDebugCategories,"extractDebugCategories");__name(shouldShowDebugCategories,"shouldShowDebugCategories");__name(shouldShowDebugMessage,"shouldShowDebugMessage")}});function __classPrivateFieldSet(receiver,state,value,kind,f3){if(kind==="m")throw new TypeError("Private method is not writable");if(kind==="a"&&!f3)throw new TypeError("Private accessor was defined without a setter");if(typeof state=="function"?receiver!==state||!f3:!state.has(receiver))throw new TypeError("Cannot write private member to an object whose class did not declare it");return kind==="a"?f3.call(receiver,value):f3?f3.value=value:state.set(receiver,value),value}function __classPrivateFieldGet(receiver,state,kind,f3){if(kind==="a"&&!f3)throw new TypeError("Private accessor was defined without a getter");if(typeof state=="function"?receiver!==state||!f3:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f3:kind==="a"?f3.call(receiver):f3?f3.value:state.get(receiver)}var init_tslib=__esm({"../../node_modules/@anthropic-ai/sdk/internal/tslib.mjs"(){__name(__classPrivateFieldSet,"__classPrivateFieldSet");__name(__classPrivateFieldGet,"__classPrivateFieldGet")}});var uuid4,init_uuid=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs"(){uuid4=__name(function(){let{crypto:crypto3}=globalThis;if(crypto3?.randomUUID)return uuid4=crypto3.randomUUID.bind(crypto3),crypto3.randomUUID();let u8=new Uint8Array(1),randomByte=crypto3?()=>crypto3.getRandomValues(u8)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,c3=>(+c3^randomByte()&15>>+c3/4).toString(16))},"uuid4")}});function isAbortError(err){return typeof err=="object"&&err!==null&&("name"in err&&err.name==="AbortError"||"message"in err&&String(err.message).includes("FetchRequestCanceledException"))}var castToError,init_errors=__esm({"../../node_modules/@anthropic-ai/sdk/internal/errors.mjs"(){__name(isAbortError,"isAbortError");castToError=__name(err=>{if(err instanceof Error)return err;if(typeof err=="object"&&err!==null){try{if(Object.prototype.toString.call(err)==="[object Error]"){let error40=new Error(err.message,err.cause?{cause:err.cause}:{});return err.stack&&(error40.stack=err.stack),err.cause&&!error40.cause&&(error40.cause=err.cause),err.name&&(error40.name=err.name),error40}}catch{}try{return new Error(JSON.stringify(err))}catch{}}return new Error(err)},"castToError")}});var AnthropicError,APIError,APIUserAbortError,APIConnectionError,APIConnectionTimeoutError,BadRequestError,AuthenticationError,PermissionDeniedError,NotFoundError,ConflictError,UnprocessableEntityError,RateLimitError,InternalServerError,init_error=__esm({"../../node_modules/@anthropic-ai/sdk/core/error.mjs"(){init_errors();AnthropicError=class extends Error{static{__name(this,"AnthropicError")}},APIError=class _APIError extends AnthropicError{static{__name(this,"APIError")}constructor(status,error40,message,headers,type){super(`${_APIError.makeMessage(status,error40,message)}`),this.status=status,this.headers=headers,this.requestID=headers?.get("request-id"),this.error=error40,this.type=type??null}static makeMessage(status,error40,message){let msg=error40?.message?typeof error40.message=="string"?error40.message:JSON.stringify(error40.message):error40?JSON.stringify(error40):message;return status&&msg?`${status} ${msg}`:status?`${status} status code (no body)`:msg||"(no status code or body)"}static generate(status,errorResponse,message,headers){if(!status||!headers)return new APIConnectionError({message,cause:castToError(errorResponse)});let error40=errorResponse,type=error40?.error?.type;return status===400?new BadRequestError(status,error40,message,headers,type):status===401?new AuthenticationError(status,error40,message,headers,type):status===403?new PermissionDeniedError(status,error40,message,headers,type):status===404?new NotFoundError(status,error40,message,headers,type):status===409?new ConflictError(status,error40,message,headers,type):status===422?new UnprocessableEntityError(status,error40,message,headers,type):status===429?new RateLimitError(status,error40,message,headers,type):status>=500?new InternalServerError(status,error40,message,headers,type):new _APIError(status,error40,message,headers,type)}},APIUserAbortError=class extends APIError{static{__name(this,"APIUserAbortError")}constructor({message}={}){super(void 0,void 0,message||"Request was aborted.",void 0)}},APIConnectionError=class extends APIError{static{__name(this,"APIConnectionError")}constructor({message,cause}){super(void 0,void 0,message||"Connection error.",void 0),cause&&(this.cause=cause)}},APIConnectionTimeoutError=class extends APIConnectionError{static{__name(this,"APIConnectionTimeoutError")}constructor({message}={}){super({message:message??"Request timed out."})}},BadRequestError=class extends APIError{static{__name(this,"BadRequestError")}},AuthenticationError=class extends APIError{static{__name(this,"AuthenticationError")}},PermissionDeniedError=class extends APIError{static{__name(this,"PermissionDeniedError")}},NotFoundError=class extends APIError{static{__name(this,"NotFoundError")}},ConflictError=class extends APIError{static{__name(this,"ConflictError")}},UnprocessableEntityError=class extends APIError{static{__name(this,"UnprocessableEntityError")}},RateLimitError=class extends APIError{static{__name(this,"RateLimitError")}},InternalServerError=class extends APIError{static{__name(this,"InternalServerError")}}}});function maybeObj(x2){return typeof x2!="object"?{}:x2??{}}function isEmptyObj(obj){if(!obj)return!0;for(let _k in obj)return!1;return!0}function hasOwn(obj,key){return Object.prototype.hasOwnProperty.call(obj,key)}var startsWithSchemeRegexp,isAbsoluteURL,isArray2,isReadonlyArray,validatePositiveInteger,safeJSON,init_values2=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/values.mjs"(){init_error();startsWithSchemeRegexp=/^[a-z][a-z0-9+.-]*:/i,isAbsoluteURL=__name(url3=>startsWithSchemeRegexp.test(url3),"isAbsoluteURL"),isArray2=__name(val=>(isArray2=Array.isArray,isArray2(val)),"isArray"),isReadonlyArray=isArray2;__name(maybeObj,"maybeObj");__name(isEmptyObj,"isEmptyObj");__name(hasOwn,"hasOwn");validatePositiveInteger=__name((name,n2)=>{if(typeof n2!="number"||!Number.isInteger(n2))throw new AnthropicError(`${name} must be an integer`);if(n2<0)throw new AnthropicError(`${name} must be a positive integer`);return n2},"validatePositiveInteger"),safeJSON=__name(text=>{try{return JSON.parse(text)}catch{return}},"safeJSON")}});var sleep,init_sleep=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs"(){sleep=__name(ms=>new Promise(resolve9=>setTimeout(resolve9,ms)),"sleep")}});var VERSION2,init_version=__esm({"../../node_modules/@anthropic-ai/sdk/version.mjs"(){VERSION2="0.82.0"}});function getDetectedPlatform(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}function getBrowserInfo(){if(typeof navigator>"u"||!navigator)return null;let browserPatterns=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key,pattern}of browserPatterns){let match=pattern.exec(navigator.userAgent);if(match){let major=match[1]||0,minor=match[2]||0,patch=match[3]||0;return{browser:key,version:`${major}.${minor}.${patch}`}}}return null}var isRunningInBrowser,getPlatformProperties,normalizeArch,normalizePlatform,_platformHeaders,getPlatformHeaders,init_detect_platform=__esm({"../../node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs"(){init_version();isRunningInBrowser=__name(()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u","isRunningInBrowser");__name(getDetectedPlatform,"getDetectedPlatform");getPlatformProperties=__name(()=>{let detectedPlatform=getDetectedPlatform();if(detectedPlatform==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":normalizePlatform(Deno.build.os),"X-Stainless-Arch":normalizeArch(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(detectedPlatform==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":normalizePlatform(globalThis.process.platform??"unknown"),"X-Stainless-Arch":normalizeArch(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let browserInfo=getBrowserInfo();return browserInfo?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${browserInfo.browser}`,"X-Stainless-Runtime-Version":browserInfo.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}},"getPlatformProperties");__name(getBrowserInfo,"getBrowserInfo");normalizeArch=__name(arch=>arch==="x32"?"x32":arch==="x86_64"||arch==="x64"?"x64":arch==="arm"?"arm":arch==="aarch64"||arch==="arm64"?"arm64":arch?`other:${arch}`:"unknown","normalizeArch"),normalizePlatform=__name(platform2=>(platform2=platform2.toLowerCase(),platform2.includes("ios")?"iOS":platform2==="android"?"Android":platform2==="darwin"?"MacOS":platform2==="win32"?"Windows":platform2==="freebsd"?"FreeBSD":platform2==="openbsd"?"OpenBSD":platform2==="linux"?"Linux":platform2?`Other:${platform2}`:"Unknown"),"normalizePlatform"),getPlatformHeaders=__name(()=>_platformHeaders??(_platformHeaders=getPlatformProperties()),"getPlatformHeaders")}});function getDefaultFetch(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function makeReadableStream(...args){let ReadableStream2=globalThis.ReadableStream;if(typeof ReadableStream2>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new ReadableStream2(...args)}function ReadableStreamFrom(iterable){let iter=Symbol.asyncIterator in iterable?iterable[Symbol.asyncIterator]():iterable[Symbol.iterator]();return makeReadableStream({start(){},async pull(controller){let{done,value}=await iter.next();done?controller.close():controller.enqueue(value)},async cancel(){await iter.return?.()}})}function ReadableStreamToAsyncIterable(stream4){if(stream4[Symbol.asyncIterator])return stream4;let reader=stream4.getReader();return{async next(){try{let result2=await reader.read();return result2?.done&&reader.releaseLock(),result2}catch(e2){throw reader.releaseLock(),e2}},async return(){let cancelPromise=reader.cancel();return reader.releaseLock(),await cancelPromise,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function CancelReadableStream(stream4){if(stream4===null||typeof stream4!="object")return;if(stream4[Symbol.asyncIterator]){await stream4[Symbol.asyncIterator]().return?.();return}let reader=stream4.getReader(),cancelPromise=reader.cancel();reader.releaseLock(),await cancelPromise}var init_shims=__esm({"../../node_modules/@anthropic-ai/sdk/internal/shims.mjs"(){__name(getDefaultFetch,"getDefaultFetch");__name(makeReadableStream,"makeReadableStream");__name(ReadableStreamFrom,"ReadableStreamFrom");__name(ReadableStreamToAsyncIterable,"ReadableStreamToAsyncIterable");__name(CancelReadableStream,"CancelReadableStream")}});var FallbackEncoder,init_request_options=__esm({"../../node_modules/@anthropic-ai/sdk/internal/request-options.mjs"(){FallbackEncoder=__name(({headers,body})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(body)}),"FallbackEncoder")}});function stringifyQuery(query){return Object.entries(query).filter(([_,value])=>typeof value<"u").map(([key,value])=>{if(typeof value=="string"||typeof value=="number"||typeof value=="boolean")return`${encodeURIComponent(key)}=${encodeURIComponent(value)}`;if(value===null)return`${encodeURIComponent(key)}=`;throw new AnthropicError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}var init_query=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/query.mjs"(){init_error();__name(stringifyQuery,"stringifyQuery")}});function concatBytes(buffers){let length=0;for(let buffer of buffers)length+=buffer.length;let output=new Uint8Array(length),index=0;for(let buffer of buffers)output.set(buffer,index),index+=buffer.length;return output}function encodeUTF8(str){let encoder;return(encodeUTF8_??(encoder=new globalThis.TextEncoder,encodeUTF8_=encoder.encode.bind(encoder)))(str)}function decodeUTF8(bytes){let decoder;return(decodeUTF8_??(decoder=new globalThis.TextDecoder,decodeUTF8_=decoder.decode.bind(decoder)))(bytes)}var encodeUTF8_,decodeUTF8_,init_bytes=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs"(){__name(concatBytes,"concatBytes");__name(encodeUTF8,"encodeUTF8");__name(decodeUTF8,"decodeUTF8")}});function findNewlineIndex(buffer,startIndex){for(let i3=startIndex??0;i3<buffer.length;i3++){if(buffer[i3]===10)return{preceding:i3,index:i3+1,carriage:!1};if(buffer[i3]===13)return{preceding:i3,index:i3+1,carriage:!0}}return null}function findDoubleNewlineIndex(buffer){for(let i3=0;i3<buffer.length-1;i3++){if(buffer[i3]===10&&buffer[i3+1]===10||buffer[i3]===13&&buffer[i3+1]===13)return i3+2;if(buffer[i3]===13&&buffer[i3+1]===10&&i3+3<buffer.length&&buffer[i3+2]===13&&buffer[i3+3]===10)return i3+4}return-1}var _LineDecoder_buffer,_LineDecoder_carriageReturnIndex,LineDecoder,init_line=__esm({"../../node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs"(){init_tslib();init_bytes();LineDecoder=class{static{__name(this,"LineDecoder")}constructor(){_LineDecoder_buffer.set(this,void 0),_LineDecoder_carriageReturnIndex.set(this,void 0),__classPrivateFieldSet(this,_LineDecoder_buffer,new Uint8Array,"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}decode(chunk2){if(chunk2==null)return[];let binaryChunk=chunk2 instanceof ArrayBuffer?new Uint8Array(chunk2):typeof chunk2=="string"?encodeUTF8(chunk2):chunk2;__classPrivateFieldSet(this,_LineDecoder_buffer,concatBytes([__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),binaryChunk]),"f");let lines=[],patternIndex;for(;(patternIndex=findNewlineIndex(__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")))!=null;){if(patternIndex.carriage&&__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")==null){__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,patternIndex.index,"f");continue}if(__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!=null&&(patternIndex.index!==__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")+1||patternIndex.carriage)){lines.push(decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(0,__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")-1))),__classPrivateFieldSet(this,_LineDecoder_buffer,__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")),"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f");continue}let endIndex=__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!==null?patternIndex.preceding-1:patternIndex.preceding,line=decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(0,endIndex));lines.push(line),__classPrivateFieldSet(this,_LineDecoder_buffer,__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(patternIndex.index),"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}return lines}flush(){return __classPrivateFieldGet(this,_LineDecoder_buffer,"f").length?this.decode(`
24
24
  `):[]}};_LineDecoder_buffer=new WeakMap,_LineDecoder_carriageReturnIndex=new WeakMap;LineDecoder.NEWLINE_CHARS=new Set([`
25
25
  `,"\r"]);LineDecoder.NEWLINE_REGEXP=/\r\n|[\n\r]/g;__name(findNewlineIndex,"findNewlineIndex");__name(findDoubleNewlineIndex,"findDoubleNewlineIndex")}});function noop2(){}function makeLogFn(fnLevel,logger,logLevel){return!logger||levelNumbers[fnLevel]>levelNumbers[logLevel]?noop2:logger[fnLevel].bind(logger)}function loggerFor(client2){let logger=client2.logger,logLevel=client2.logLevel??"off";if(!logger)return noopLogger;let cachedLogger=cachedLoggers.get(logger);if(cachedLogger&&cachedLogger[0]===logLevel)return cachedLogger[1];let levelLogger={error:makeLogFn("error",logger,logLevel),warn:makeLogFn("warn",logger,logLevel),info:makeLogFn("info",logger,logLevel),debug:makeLogFn("debug",logger,logLevel)};return cachedLoggers.set(logger,[logLevel,levelLogger]),levelLogger}var levelNumbers,parseLogLevel,noopLogger,cachedLoggers,formatRequestDetails,init_log=__esm({"../../node_modules/@anthropic-ai/sdk/internal/utils/log.mjs"(){init_values2();levelNumbers={off:0,error:200,warn:300,info:400,debug:500},parseLogLevel=__name((maybeLevel,sourceName,client2)=>{if(maybeLevel){if(hasOwn(levelNumbers,maybeLevel))return maybeLevel;loggerFor(client2).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`)}},"parseLogLevel");__name(noop2,"noop");__name(makeLogFn,"makeLogFn");noopLogger={error:noop2,warn:noop2,info:noop2,debug:noop2},cachedLoggers=new WeakMap;__name(loggerFor,"loggerFor");formatRequestDetails=__name(details=>(details.options&&(details.options={...details.options},delete details.options.headers),details.headers&&(details.headers=Object.fromEntries((details.headers instanceof Headers?[...details.headers]:Object.entries(details.headers)).map(([name,value])=>[name,name.toLowerCase()==="x-api-key"||name.toLowerCase()==="authorization"||name.toLowerCase()==="cookie"||name.toLowerCase()==="set-cookie"?"***":value]))),"retryOfRequestLogID"in details&&(details.retryOfRequestLogID&&(details.retryOf=details.retryOfRequestLogID),delete details.retryOfRequestLogID),details),"formatRequestDetails")}});async function*_iterSSEMessages(response,controller){if(!response.body)throw controller.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new AnthropicError("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new AnthropicError("Attempted to iterate over a response with no body");let sseDecoder=new SSEDecoder,lineDecoder=new LineDecoder,iter=ReadableStreamToAsyncIterable(response.body);for await(let sseChunk of iterSSEChunks(iter))for(let line of lineDecoder.decode(sseChunk)){let sse=sseDecoder.decode(line);sse&&(yield sse)}for(let line of lineDecoder.flush()){let sse=sseDecoder.decode(line);sse&&(yield sse)}}async function*iterSSEChunks(iterator2){let data=new Uint8Array;for await(let chunk2 of iterator2){if(chunk2==null)continue;let binaryChunk=chunk2 instanceof ArrayBuffer?new Uint8Array(chunk2):typeof chunk2=="string"?encodeUTF8(chunk2):chunk2,newData=new Uint8Array(data.length+binaryChunk.length);newData.set(data),newData.set(binaryChunk,data.length),data=newData;let patternIndex;for(;(patternIndex=findDoubleNewlineIndex(data))!==-1;)yield data.slice(0,patternIndex),data=data.slice(patternIndex)}data.length>0&&(yield data)}function partition2(str,delimiter){let index=str.indexOf(delimiter);return index!==-1?[str.substring(0,index),delimiter,str.substring(index+delimiter.length)]:[str,"",""]}var _Stream_client,Stream,SSEDecoder,init_streaming=__esm({"../../node_modules/@anthropic-ai/sdk/core/streaming.mjs"(){init_tslib();init_error();init_shims();init_line();init_shims();init_errors();init_values2();init_bytes();init_log();init_error();Stream=class _Stream{static{__name(this,"Stream")}constructor(iterator2,controller,client2){this.iterator=iterator2,_Stream_client.set(this,void 0),this.controller=controller,__classPrivateFieldSet(this,_Stream_client,client2,"f")}static fromSSEResponse(response,controller,client2){let consumed=!1,logger=client2?loggerFor(client2):console;async function*iterator2(){if(consumed)throw new AnthropicError("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");consumed=!0;let done=!1;try{for await(let sse of _iterSSEMessages(response,controller)){if(sse.event==="completion")try{yield JSON.parse(sse.data)}catch(e2){throw logger.error("Could not parse message into JSON:",sse.data),logger.error("From chunk:",sse.raw),e2}if(sse.event==="message_start"||sse.event==="message_delta"||sse.event==="message_stop"||sse.event==="content_block_start"||sse.event==="content_block_delta"||sse.event==="content_block_stop")try{yield JSON.parse(sse.data)}catch(e2){throw logger.error("Could not parse message into JSON:",sse.data),logger.error("From chunk:",sse.raw),e2}if(sse.event!=="ping"&&sse.event==="error"){let body=safeJSON(sse.data)??sse.data,type=body?.error?.type;throw new APIError(void 0,body,void 0,response.headers,type)}}done=!0}catch(e2){if(isAbortError(e2))return;throw e2}finally{done||controller.abort()}}return __name(iterator2,"iterator"),new _Stream(iterator2,controller,client2)}static fromReadableStream(readableStream,controller,client2){let consumed=!1;async function*iterLines(){let lineDecoder=new LineDecoder,iter=ReadableStreamToAsyncIterable(readableStream);for await(let chunk2 of iter)for(let line of lineDecoder.decode(chunk2))yield line;for(let line of lineDecoder.flush())yield line}__name(iterLines,"iterLines");async function*iterator2(){if(consumed)throw new AnthropicError("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");consumed=!0;let done=!1;try{for await(let line of iterLines())done||line&&(yield JSON.parse(line));done=!0}catch(e2){if(isAbortError(e2))return;throw e2}finally{done||controller.abort()}}return __name(iterator2,"iterator"),new _Stream(iterator2,controller,client2)}[(_Stream_client=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let left=[],right=[],iterator2=this.iterator(),teeIterator=__name(queue=>({next:__name(()=>{if(queue.length===0){let result2=iterator2.next();left.push(result2),right.push(result2)}return queue.shift()},"next")}),"teeIterator");return[new _Stream(()=>teeIterator(left),this.controller,__classPrivateFieldGet(this,_Stream_client,"f")),new _Stream(()=>teeIterator(right),this.controller,__classPrivateFieldGet(this,_Stream_client,"f"))]}toReadableStream(){let self2=this,iter;return makeReadableStream({async start(){iter=self2[Symbol.asyncIterator]()},async pull(ctrl){try{let{value,done}=await iter.next();if(done)return ctrl.close();let bytes=encodeUTF8(JSON.stringify(value)+`
26
26
  `);ctrl.enqueue(bytes)}catch(err){ctrl.error(err)}},async cancel(){await iter.return?.()}})}};__name(_iterSSEMessages,"_iterSSEMessages");__name(iterSSEChunks,"iterSSEChunks");SSEDecoder=class{static{__name(this,"SSEDecoder")}constructor(){this.event=null,this.data=[],this.chunks=[]}decode(line){if(line.endsWith("\r")&&(line=line.substring(0,line.length-1)),!line){if(!this.event&&!this.data.length)return null;let sse={event:this.event,data:this.data.join(`
@@ -173,8 +173,8 @@ ${gitignoreEntry}
173
173
  `+" ".repeat(index)),"\r":new Array(maxCachedValues).fill(0).map((_,index)=>"\r"+" ".repeat(index)),"\r\n":new Array(maxCachedValues).fill(0).map((_,index)=>`\r
174
174
  `+" ".repeat(index))}," ":{"\n":new Array(maxCachedValues).fill(0).map((_,index)=>`
175
175
  `+" ".repeat(index)),"\r":new Array(maxCachedValues).fill(0).map((_,index)=>"\r"+" ".repeat(index)),"\r\n":new Array(maxCachedValues).fill(0).map((_,index)=>`\r
176
- `+" ".repeat(index))}}}});var init_format=__esm({"../../node_modules/jsonc-parser/lib/esm/impl/format.js"(){"use strict";init_scanner();init_string_intern()}});var ParseOptions,init_parser3=__esm({"../../node_modules/jsonc-parser/lib/esm/impl/parser.js"(){"use strict";init_scanner();(function(ParseOptions2){ParseOptions2.DEFAULT={allowTrailingComma:!1}})(ParseOptions||(ParseOptions={}))}});var init_edit=__esm({"../../node_modules/jsonc-parser/lib/esm/impl/edit.js"(){"use strict";init_format();init_parser3()}});var ScanError,SyntaxKind,ParseErrorCode,init_main2=__esm({"../../node_modules/jsonc-parser/lib/esm/main.js"(){"use strict";init_format();init_edit();init_scanner();init_parser3();(function(ScanError2){ScanError2[ScanError2.None=0]="None",ScanError2[ScanError2.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",ScanError2[ScanError2.UnexpectedEndOfString=2]="UnexpectedEndOfString",ScanError2[ScanError2.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",ScanError2[ScanError2.InvalidUnicode=4]="InvalidUnicode",ScanError2[ScanError2.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",ScanError2[ScanError2.InvalidCharacter=6]="InvalidCharacter"})(ScanError||(ScanError={}));(function(SyntaxKind2){SyntaxKind2[SyntaxKind2.OpenBraceToken=1]="OpenBraceToken",SyntaxKind2[SyntaxKind2.CloseBraceToken=2]="CloseBraceToken",SyntaxKind2[SyntaxKind2.OpenBracketToken=3]="OpenBracketToken",SyntaxKind2[SyntaxKind2.CloseBracketToken=4]="CloseBracketToken",SyntaxKind2[SyntaxKind2.CommaToken=5]="CommaToken",SyntaxKind2[SyntaxKind2.ColonToken=6]="ColonToken",SyntaxKind2[SyntaxKind2.NullKeyword=7]="NullKeyword",SyntaxKind2[SyntaxKind2.TrueKeyword=8]="TrueKeyword",SyntaxKind2[SyntaxKind2.FalseKeyword=9]="FalseKeyword",SyntaxKind2[SyntaxKind2.StringLiteral=10]="StringLiteral",SyntaxKind2[SyntaxKind2.NumericLiteral=11]="NumericLiteral",SyntaxKind2[SyntaxKind2.LineCommentTrivia=12]="LineCommentTrivia",SyntaxKind2[SyntaxKind2.BlockCommentTrivia=13]="BlockCommentTrivia",SyntaxKind2[SyntaxKind2.LineBreakTrivia=14]="LineBreakTrivia",SyntaxKind2[SyntaxKind2.Trivia=15]="Trivia",SyntaxKind2[SyntaxKind2.Unknown=16]="Unknown",SyntaxKind2[SyntaxKind2.EOF=17]="EOF"})(SyntaxKind||(SyntaxKind={}));(function(ParseErrorCode2){ParseErrorCode2[ParseErrorCode2.InvalidSymbol=1]="InvalidSymbol",ParseErrorCode2[ParseErrorCode2.InvalidNumberFormat=2]="InvalidNumberFormat",ParseErrorCode2[ParseErrorCode2.PropertyNameExpected=3]="PropertyNameExpected",ParseErrorCode2[ParseErrorCode2.ValueExpected=4]="ValueExpected",ParseErrorCode2[ParseErrorCode2.ColonExpected=5]="ColonExpected",ParseErrorCode2[ParseErrorCode2.CommaExpected=6]="CommaExpected",ParseErrorCode2[ParseErrorCode2.CloseBraceExpected=7]="CloseBraceExpected",ParseErrorCode2[ParseErrorCode2.CloseBracketExpected=8]="CloseBracketExpected",ParseErrorCode2[ParseErrorCode2.EndOfFileExpected=9]="EndOfFileExpected",ParseErrorCode2[ParseErrorCode2.InvalidCommentToken=10]="InvalidCommentToken",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfString=12]="UnexpectedEndOfString",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",ParseErrorCode2[ParseErrorCode2.InvalidUnicode=14]="InvalidUnicode",ParseErrorCode2[ParseErrorCode2.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",ParseErrorCode2[ParseErrorCode2.InvalidCharacter=16]="InvalidCharacter"})(ParseErrorCode||(ParseErrorCode={}))}});function parseJSONUncached(json2,shouldLogError){try{return{ok:!0,value:JSON.parse(stripBOM2(json2))}}catch(e2){return shouldLogError&&logError2(e2),{ok:!1}}}var PARSE_CACHE_MAX_KEY_BYTES,parseJSONCached,safeParseJSON,bunJSONLParse,MAX_JSONL_READ_BYTES,init_json=__esm({"src/utils/json.ts"(){init_main2();init_jsonRead();init_log3();init_memoize2();init_slowOperations();PARSE_CACHE_MAX_KEY_BYTES=8*1024;__name(parseJSONUncached,"parseJSONUncached");parseJSONCached=memoizeWithLRU(parseJSONUncached,json2=>json2,50),safeParseJSON=Object.assign(__name(function(json2,shouldLogError=!0){if(!json2)return null;let result2=json2.length>PARSE_CACHE_MAX_KEY_BYTES?parseJSONUncached(json2,shouldLogError):parseJSONCached(json2,shouldLogError);return result2.ok?result2.value:null},"safeParseJSON"),{cache:parseJSONCached.cache}),bunJSONLParse=(()=>{if(typeof Bun>"u")return!1;let jsonl=Bun.JSONL;return jsonl?.parseChunk?jsonl.parseChunk:!1})(),MAX_JSONL_READ_BYTES=100*1024*1024}});import{homedir as homedir4}from"os";import{dirname as dirname8,join as join11}from"path";var CCJK_PERMISSION_CONFIG_PATH,init_ccjkCompatibility=__esm({"src/utils/permissions/ccjkCompatibility.ts"(){init_file();init_fsOperations();init_json();CCJK_PERMISSION_CONFIG_PATH=join11(homedir4(),".ccjk","permissions.json")}});var init_intl=__esm({"src/utils/intl.ts"(){}});var require_emoji_regex=__commonJS({"../../node_modules/emoji-regex/index.js"(exports2,module2){"use strict";module2.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}});var import_emoji_regex,EMOJI_REGEX,bunStringWidth,init_stringWidth=__esm({"src/utils/terminal/stringWidth.ts"(){import_emoji_regex=__toESM(require_emoji_regex());init_intl();EMOJI_REGEX=(0,import_emoji_regex.default)(),bunStringWidth=typeof Bun<"u"&&typeof Bun.stringWidth=="function"?Bun.stringWidth:null}});var init_truncate2=__esm({"src/utils/truncate.ts"(){init_stringWidth();init_intl()}});var init_format2=__esm({"src/utils/format.ts"(){init_intl();init_truncate2()}});import{createRequire}from"node:module";function getPerformance(){return performance2||(performance2=require2("node:perf_hooks").performance),performance2}var require2,performance2,init_profilerBase=__esm({"src/utils/profilerBase.ts"(){init_format2();require2=createRequire(import.meta.url),performance2=null;__name(getPerformance,"getPerformance")}});function profileCheckpoint(name){if(!SHOULD_PROFILE)return;getPerformance().mark(name),DETAILED_PROFILING&&memorySnapshots.push(process.memoryUsage())}var DETAILED_PROFILING,STATSIG_SAMPLE_RATE,STATSIG_LOGGING_SAMPLED,SHOULD_PROFILE,memorySnapshots,init_startupProfiler=__esm({"src/utils/startupProfiler.ts"(){init_state();init_analytics();init_debug();init_envUtils();init_fsOperations();init_profilerBase();init_slowOperations();DETAILED_PROFILING=isEnvTruthy(process.env.CLAUDE_CODE_PROFILE_STARTUP),STATSIG_SAMPLE_RATE=.005,STATSIG_LOGGING_SAMPLED=process.env.USER_TYPE==="ant"||Math.random()<STATSIG_SAMPLE_RATE,SHOULD_PROFILE=DETAILED_PROFILING||STATSIG_LOGGING_SAMPLED,memorySnapshots=[];SHOULD_PROFILE&&profileCheckpoint("profiler_initialized");__name(profileCheckpoint,"profileCheckpoint")}});function getEnabledSettingSources(){let allowed=getAllowedSettingSources(),result2=new Set(allowed);return result2.add("policySettings"),result2.add("flagSettings"),Array.from(result2)}var CLAUDE_CODE_SETTINGS_SCHEMA_URL,init_constants2=__esm({"src/utils/settings/constants.ts"(){init_state();__name(getEnabledSettingSources,"getEnabledSettingSources");CLAUDE_CODE_SETTINGS_SCHEMA_URL="https://json.schemastore.org/claude-code-settings.json"}});function markInternalWrite(path10){timestamps.set(path10,Date.now())}var timestamps,init_internalWrites=__esm({"src/utils/settings/internalWrites.ts"(){timestamps=new Map;__name(markInternalWrite,"markInternalWrite")}});import{join as join12}from"path";var getManagedFilePath,getManagedSettingsDropInDir,init_managedPath=__esm({"src/utils/settings/managedPath.ts"(){init_memoize();init_platform2();getManagedFilePath=memoize_default(function(){if(process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH)return process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH;switch(getPlatform()){case"macos":return"/Library/Application Support/ClaudeCode";case"windows":return"C:\\Program Files\\ClaudeCode";default:return"/etc/claude-code"}}),getManagedSettingsDropInDir=memoize_default(function(){return join12(getManagedFilePath(),"managed-settings.d")})}});function lazySchema(factory2){let cached2;return()=>cached2??=factory2()}var init_lazySchema=__esm({"src/utils/lazySchema.ts"(){__name(lazySchema,"lazySchema")}});var SandboxNetworkConfigSchema,SandboxFilesystemConfigSchema,SandboxSettingsSchema,init_sandboxTypes=__esm({"src/entrypoints/sandboxTypes.ts"(){init_v4();init_lazySchema();SandboxNetworkConfigSchema=lazySchema(()=>external_exports.object({allowedDomains:external_exports.array(external_exports.string()).optional(),deniedDomains:external_exports.array(external_exports.string()).optional().describe("Domains to block from the sandbox even when a broader allowedDomains wildcard would otherwise permit them. Aligned with Claude Code 2.1.114. Read from every settings source and the policy source; deny rules win regardless of allowManagedDomainsOnly."),allowManagedDomainsOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), only allowedDomains and WebFetch(domain:...) allow rules from managed settings are respected. User, project, local, and flag settings domains are ignored. Denied domains are still respected from all sources."),allowUnixSockets:external_exports.array(external_exports.string()).optional().describe("macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path)."),allowAllUnixSockets:external_exports.boolean().optional().describe("If true, allow all Unix sockets (disables blocking on both platforms)."),allowLocalBinding:external_exports.boolean().optional(),httpProxyPort:external_exports.number().optional(),socksProxyPort:external_exports.number().optional()}).optional()),SandboxFilesystemConfigSchema=lazySchema(()=>external_exports.object({allowWrite:external_exports.array(external_exports.string()).optional().describe("Additional paths to allow writing within the sandbox. Merged with paths from Edit(...) allow permission rules."),denyWrite:external_exports.array(external_exports.string()).optional().describe("Additional paths to deny writing within the sandbox. Merged with paths from Edit(...) deny permission rules."),denyRead:external_exports.array(external_exports.string()).optional().describe("Additional paths to deny reading within the sandbox. Merged with paths from Read(...) deny permission rules."),allowRead:external_exports.array(external_exports.string()).optional().describe("Paths to re-allow reading within denyRead regions. Takes precedence over denyRead for matching paths."),allowManagedReadPathsOnly:external_exports.boolean().optional().describe("When true (set in managed settings), only allowRead paths from policySettings are used.")}).optional()),SandboxSettingsSchema=lazySchema(()=>external_exports.object({enabled:external_exports.boolean().optional(),failIfUnavailable:external_exports.boolean().optional().describe("Exit with an error at startup if sandbox.enabled is true but the sandbox cannot start (missing dependencies, unsupported platform, or platform not in enabledPlatforms). When false (default), a warning is shown and commands run unsandboxed. Intended for managed-settings deployments that require sandboxing as a hard gate."),autoAllowBashIfSandboxed:external_exports.boolean().optional(),allowUnsandboxedCommands:external_exports.boolean().optional().describe("Allow commands to run outside the sandbox via the dangerouslyDisableSandbox parameter. When false, the dangerouslyDisableSandbox parameter is completely ignored and all commands must run sandboxed. Default: true."),network:SandboxNetworkConfigSchema(),filesystem:SandboxFilesystemConfigSchema(),ignoreViolations:external_exports.record(external_exports.string(),external_exports.array(external_exports.string())).optional(),enableWeakerNestedSandbox:external_exports.boolean().optional(),enableWeakerNetworkIsolation:external_exports.boolean().optional().describe("macOS only: Allow access to com.apple.trustd.agent in the sandbox. Needed for Go-based CLI tools (gh, gcloud, terraform, etc.) to verify TLS certificates when using httpProxyPort with a MITM proxy and custom CA. **Reduces security** \u2014 opens a potential data exfiltration vector through the trustd service. Default: false"),excludedCommands:external_exports.array(external_exports.string()).optional(),ripgrep:external_exports.object({command:external_exports.string(),args:external_exports.array(external_exports.string()).optional()}).optional().describe("Custom ripgrep configuration for bundled ripgrep support")}).passthrough())}});function isRunningWithBun(){return process.versions.bun!==void 0}var init_bundledMode=__esm({"src/utils/bundledMode.ts"(){__name(isRunningWithBun,"isRunningWithBun")}});function findExecutable2(exe,args){return{cmd:whichSync(exe)??exe,args}}var init_findExecutable=__esm({"src/utils/findExecutable.ts"(){init_which();__name(findExecutable2,"findExecutable")}});import{join as join13}from"path";async function isCommandAvailable(command){try{return!!await which(command)}catch{return!1}}function isConductor(){return process.env.__CFBundleIdentifier==="com.conductor.app"}function detectTerminal(){if(process.env.CURSOR_TRACE_ID||process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("cursor"))return"cursor";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("windsurf"))return"windsurf";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("antigravity"))return"antigravity";let bundleId=process.env.__CFBundleIdentifier?.toLowerCase();if(bundleId?.includes("vscodium"))return"codium";if(bundleId?.includes("windsurf"))return"windsurf";if(bundleId?.includes("com.google.android.studio"))return"androidstudio";if(bundleId){for(let ide of JETBRAINS_IDES)if(bundleId.includes(ide))return ide}if(process.env.VisualStudioVersion)return"visualstudio";if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm")return process.platform==="darwin","pycharm";if(process.env.TERM==="xterm-ghostty")return"ghostty";if(process.env.TERM?.includes("kitty"))return"kitty";if(process.env.TERM_PROGRAM)return process.env.TERM_PROGRAM;if(process.env.TMUX)return"tmux";if(process.env.STY)return"screen";if(process.env.KONSOLE_VERSION)return"konsole";if(process.env.GNOME_TERMINAL_SERVICE)return"gnome-terminal";if(process.env.XTERM_VERSION)return"xterm";if(process.env.VTE_VERSION)return"vte-based";if(process.env.TERMINATOR_UUID)return"terminator";if(process.env.KITTY_WINDOW_ID)return"kitty";if(process.env.ALACRITTY_LOG)return"alacritty";if(process.env.TILIX_ID)return"tilix";if(process.env.WT_SESSION)return"windows-terminal";if(process.env.SESSIONNAME&&process.env.TERM==="cygwin")return"cygwin";if(process.env.MSYSTEM)return process.env.MSYSTEM.toLowerCase();if(process.env.ConEmuANSI||process.env.ConEmuPID||process.env.ConEmuTask)return"conemu";if(process.env.WSL_DISTRO_NAME)return`wsl-${process.env.WSL_DISTRO_NAME}`;if(isSSHSession())return"ssh-session";if(process.env.TERM){let term=process.env.TERM;return term.includes("alacritty")?"alacritty":term.includes("rxvt")?"rxvt":term.includes("termite")?"termite":process.env.TERM}return process.stdout.isTTY?null:"non-interactive"}function isSSHSession(){return!!(process.env.SSH_CONNECTION||process.env.SSH_CLIENT||process.env.SSH_TTY)}function getHostPlatformForAnalytics(){let override=process.env.CLAUDE_CODE_HOST_PLATFORM;return override==="win32"||override==="darwin"||override==="linux"?override:env4.platform}var getGlobalClaudeFile,hasInternetAccess,detectPackageManagers,detectRuntimes,isWslEnvironment,isNpmFromWindowsPath,JETBRAINS_IDES,detectDeploymentEnvironment,env4,init_env2=__esm({"src/utils/env.ts"(){init_memoize();init_oauth();init_bundledMode();init_envUtils();init_findExecutable();init_fsOperations();init_which();getGlobalClaudeFile=memoize_default(()=>{let filename=`.clavue${fileSuffixForOauthConfig()}.json`;return join13(getClavueConfigHomeDir(),filename)}),hasInternetAccess=memoize_default(async()=>{try{let{default:axiosClient}=await Promise.resolve().then(()=>(init_axios2(),axios_exports));return await axiosClient.head("http://1.1.1.1",{signal:AbortSignal.timeout(1e3)}),!0}catch{return!1}});__name(isCommandAvailable,"isCommandAvailable");detectPackageManagers=memoize_default(async()=>{let packageManagers=[];return await isCommandAvailable("npm")&&packageManagers.push("npm"),await isCommandAvailable("yarn")&&packageManagers.push("yarn"),await isCommandAvailable("pnpm")&&packageManagers.push("pnpm"),packageManagers}),detectRuntimes=memoize_default(async()=>{let runtimes=[];return await isCommandAvailable("bun")&&runtimes.push("bun"),await isCommandAvailable("deno")&&runtimes.push("deno"),await isCommandAvailable("node")&&runtimes.push("node"),runtimes}),isWslEnvironment=memoize_default(()=>{try{return getFsImplementation().existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")}catch{return!1}}),isNpmFromWindowsPath=memoize_default(()=>{try{if(!isWslEnvironment())return!1;let{cmd}=findExecutable2("npm",[]);return cmd.startsWith("/mnt/c/")}catch{return!1}});__name(isConductor,"isConductor");JETBRAINS_IDES=["pycharm","intellij","webstorm","phpstorm","rubymine","clion","goland","rider","datagrip","appcode","dataspell","aqua","gateway","fleet","jetbrains","androidstudio"];__name(detectTerminal,"detectTerminal");detectDeploymentEnvironment=memoize_default(()=>{if(isEnvTruthy(process.env.CODESPACES))return"codespaces";if(process.env.GITPOD_WORKSPACE_ID)return"gitpod";if(process.env.REPL_ID||process.env.REPL_SLUG)return"replit";if(process.env.PROJECT_DOMAIN)return"glitch";if(isEnvTruthy(process.env.VERCEL))return"vercel";if(process.env.RAILWAY_ENVIRONMENT_NAME||process.env.RAILWAY_SERVICE_NAME)return"railway";if(isEnvTruthy(process.env.RENDER))return"render";if(isEnvTruthy(process.env.NETLIFY))return"netlify";if(process.env.DYNO)return"heroku";if(process.env.FLY_APP_NAME||process.env.FLY_MACHINE_ID)return"fly.io";if(isEnvTruthy(process.env.CF_PAGES))return"cloudflare-pages";if(process.env.DENO_DEPLOYMENT_ID)return"deno-deploy";if(process.env.AWS_LAMBDA_FUNCTION_NAME)return"aws-lambda";if(process.env.AWS_EXECUTION_ENV==="AWS_ECS_FARGATE")return"aws-fargate";if(process.env.AWS_EXECUTION_ENV==="AWS_ECS_EC2")return"aws-ecs";try{if(getFsImplementation().readFileSync("/sys/hypervisor/uuid",{encoding:"utf8"}).trim().toLowerCase().startsWith("ec2"))return"aws-ec2"}catch{}if(process.env.K_SERVICE)return"gcp-cloud-run";if(process.env.GOOGLE_CLOUD_PROJECT)return"gcp";if(process.env.WEBSITE_SITE_NAME||process.env.WEBSITE_SKU)return"azure-app-service";if(process.env.AZURE_FUNCTIONS_ENVIRONMENT)return"azure-functions";if(process.env.APP_URL?.includes("ondigitalocean.app"))return"digitalocean-app-platform";if(process.env.SPACE_CREATOR_USER_ID)return"huggingface-spaces";if(isEnvTruthy(process.env.GITHUB_ACTIONS))return"github-actions";if(isEnvTruthy(process.env.GITLAB_CI))return"gitlab-ci";if(process.env.CIRCLECI)return"circleci";if(process.env.BUILDKITE)return"buildkite";if(isEnvTruthy(process.env.CI))return"ci";if(process.env.KUBERNETES_SERVICE_HOST)return"kubernetes";try{if(getFsImplementation().existsSync("/.dockerenv"))return"docker"}catch{}return env4.platform==="darwin"?"unknown-darwin":env4.platform==="linux"?"unknown-linux":env4.platform==="win32"?"unknown-win32":"unknown"});__name(isSSHSession,"isSSHSession");env4={hasInternetAccess,isCI:isEnvTruthy(process.env.CI),platform:["win32","darwin"].includes(process.platform)?process.platform:"linux",arch:process.arch,nodeVersion:process.version,terminal:detectTerminal(),isSSH:isSSHSession,getPackageManagers:detectPackageManagers,getRuntimes:detectRuntimes,isRunningWithBun:memoize_default(isRunningWithBun),isWslEnvironment,isNpmFromWindowsPath,isConductor,detectDeploymentEnvironment};__name(getHostPlatformForAnalytics,"getHostPlatformForAnalytics")}});var BLACK_CIRCLE,init_figures2=__esm({"src/constants/figures.ts"(){init_env2();BLACK_CIRCLE=env4.platform==="darwin"?"\u23FA":"\u25CF"}});var EXTERNAL_PERMISSION_MODES,INTERNAL_PERMISSION_MODES,PERMISSION_MODES,init_permissions=__esm({"src/types/permissions.ts"(){EXTERNAL_PERMISSION_MODES=["acceptEdits","bypassPermissions","default","dontAsk","plan","trustedOps"],INTERNAL_PERMISSION_MODES=[...EXTERNAL_PERMISSION_MODES,"auto"],PERMISSION_MODES=INTERNAL_PERMISSION_MODES}});var permissionModeSchema,externalPermissionModeSchema,init_PermissionMode=__esm({"src/utils/permissions/PermissionMode.ts"(){init_v4();init_figures2();init_permissions();init_lazySchema();permissionModeSchema=lazySchema(()=>v4_default.enum(PERMISSION_MODES)),externalPermissionModeSchema=lazySchema(()=>v4_default.enum(EXTERNAL_PERMISSION_MODES))}});var init_coreTypes_generated=__esm({"src/entrypoints/sdk/coreTypes.generated.ts"(){}});var HOOK_EVENTS,init_coreTypes=__esm({"src/entrypoints/sdk/coreTypes.ts"(){init_coreTypes_generated();HOOK_EVENTS=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","StopFailure","SubagentStart","SubagentStop","PreCompact","PostCompact","PermissionRequest","PermissionDenied","Setup","TeammateIdle","TaskCreated","TaskCompleted","Elicitation","ElicitationResult","ConfigChange","WorktreeCreate","WorktreeRemove","InstructionsLoaded","CwdChanged","FileChanged"]}});var init_runtimeTypes=__esm({"src/entrypoints/sdk/runtimeTypes.ts"(){}});var init_toolTypes=__esm({"src/entrypoints/sdk/toolTypes.ts"(){}});var init_agentSdkTypes=__esm({"src/entrypoints/agentSdkTypes.ts"(){init_coreTypes();init_runtimeTypes();init_toolTypes()}});var SHELL_TYPES,init_shellProvider=__esm({"src/utils/shell/shellProvider.ts"(){SHELL_TYPES=["bash","powershell"]}});function buildHookSchemas(){let BashCommandHookSchema=external_exports.object({type:external_exports.literal("command").describe("Shell command hook type"),command:external_exports.string().describe("Shell command to execute"),args:external_exports.array(external_exports.string()).optional().describe("Optional argv array. When set, the hook is executed without a shell (spawn(command, args)) \u2014 no word-splitting, no glob expansion, no $VAR interpolation. Mutually exclusive in semantics with shell parsing of `command`. Recommended when the hook target is a binary and the arguments may contain spaces or shell metacharacters."),if:IfConditionSchema(),shell:external_exports.enum(SHELL_TYPES).optional().describe("Shell interpreter. 'bash' uses your $SHELL (bash/zsh/sh); 'powershell' uses pwsh. Defaults to bash."),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for this specific command"),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution"),async:external_exports.boolean().optional().describe("If true, hook runs in background without blocking"),asyncRewake:external_exports.boolean().optional().describe("If true, hook runs in background and wakes the model on exit code 2 (blocking error). Implies async.")}),PromptHookSchema=external_exports.object({type:external_exports.literal("prompt").describe("LLM prompt hook type"),prompt:external_exports.string().describe("Prompt to evaluate with LLM. Use $ARGUMENTS placeholder for hook input JSON."),if:IfConditionSchema(),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for this specific prompt evaluation"),model:external_exports.string().optional().describe('Model to use for this prompt hook (e.g., "claude-sonnet-4-6"). If not specified, uses the default small fast model.'),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution")}),HttpHookSchema=external_exports.object({type:external_exports.literal("http").describe("HTTP hook type"),url:external_exports.string().url().describe("URL to POST the hook input JSON to"),if:IfConditionSchema(),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for this specific request"),headers:external_exports.record(external_exports.string(),external_exports.string()).optional().describe('Additional headers to include in the request. Values may reference environment variables using $VAR_NAME or ${VAR_NAME} syntax (e.g., "Authorization": "Bearer $MY_TOKEN"). Only variables listed in allowedEnvVars will be interpolated.'),allowedEnvVars:external_exports.array(external_exports.string()).optional().describe("Explicit list of environment variable names that may be interpolated in header values. Only variables listed here will be resolved; all other $VAR references are left as empty strings. Required for env var interpolation to work."),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution")}),AgentHookSchema=external_exports.object({type:external_exports.literal("agent").describe("Agentic verifier hook type"),prompt:external_exports.string().describe('Prompt describing what to verify (e.g. "Verify that unit tests ran and passed."). Use $ARGUMENTS placeholder for hook input JSON.'),if:IfConditionSchema(),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for agent execution (default 60)"),model:external_exports.string().optional().describe('Model to use for this agent hook (e.g., "claude-sonnet-4-6"). If not specified, uses Haiku.'),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution")});return{BashCommandHookSchema,PromptHookSchema,HttpHookSchema,AgentHookSchema}}var IfConditionSchema,HookCommandSchema,HookMatcherSchema,HooksSchema,init_hooks=__esm({"src/schemas/hooks.ts"(){init_agentSdkTypes();init_v4();init_lazySchema();init_shellProvider();IfConditionSchema=lazySchema(()=>external_exports.string().optional().describe('Permission rule syntax to filter when this hook runs (e.g., "Bash(git *)"). Only runs if the tool call matches the pattern. Avoids spawning hooks for non-matching commands.'));__name(buildHookSchemas,"buildHookSchemas");HookCommandSchema=lazySchema(()=>{let{BashCommandHookSchema,PromptHookSchema,AgentHookSchema,HttpHookSchema}=buildHookSchemas();return external_exports.discriminatedUnion("type",[BashCommandHookSchema,PromptHookSchema,AgentHookSchema,HttpHookSchema])}),HookMatcherSchema=lazySchema(()=>external_exports.object({matcher:external_exports.string().optional().describe('String pattern to match (e.g. tool names like "Write")'),hooks:external_exports.array(HookCommandSchema()).describe("List of hooks to execute when the matcher matches")})),HooksSchema=lazySchema(()=>external_exports.partialRecord(external_exports.enum(HOOK_EVENTS),external_exports.array(HookMatcherSchema())))}});var ConfigScopeSchema,TransportSchema,McpStdioServerConfigSchema,McpXaaConfigSchema,McpOAuthConfigSchema,McpSSEServerConfigSchema,McpSSEIDEServerConfigSchema,McpWebSocketIDEServerConfigSchema,McpHTTPServerConfigSchema,McpWebSocketServerConfigSchema,McpSdkServerConfigSchema,McpClaudeAIProxyServerConfigSchema,McpServerConfigSchema,McpJsonConfigSchema,init_types=__esm({"src/services/mcp/types.ts"(){init_v4();init_lazySchema();ConfigScopeSchema=lazySchema(()=>external_exports.enum(["local","user","project","dynamic","enterprise","claudeai","managed"])),TransportSchema=lazySchema(()=>external_exports.enum(["stdio","sse","sse-ide","http","ws","sdk"])),McpStdioServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("stdio").optional(),command:external_exports.string().min(1,"Command cannot be empty"),args:external_exports.array(external_exports.string()).default([]),env:external_exports.record(external_exports.string(),external_exports.string()).optional()})),McpXaaConfigSchema=lazySchema(()=>external_exports.boolean()),McpOAuthConfigSchema=lazySchema(()=>external_exports.object({clientId:external_exports.string().optional(),callbackPort:external_exports.number().int().positive().optional(),authServerMetadataUrl:external_exports.string().url().startsWith("https://",{message:"authServerMetadataUrl must use https://"}).optional(),xaa:McpXaaConfigSchema().optional()})),McpSSEServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("sse"),url:external_exports.string(),headers:external_exports.record(external_exports.string(),external_exports.string()).optional(),headersHelper:external_exports.string().optional(),oauth:McpOAuthConfigSchema().optional()})),McpSSEIDEServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("sse-ide"),url:external_exports.string(),ideName:external_exports.string(),ideRunningInWindows:external_exports.boolean().optional()})),McpWebSocketIDEServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("ws-ide"),url:external_exports.string(),ideName:external_exports.string(),authToken:external_exports.string().optional(),ideRunningInWindows:external_exports.boolean().optional()})),McpHTTPServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("http"),url:external_exports.string(),headers:external_exports.record(external_exports.string(),external_exports.string()).optional(),headersHelper:external_exports.string().optional(),oauth:McpOAuthConfigSchema().optional()})),McpWebSocketServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("ws"),url:external_exports.string(),headers:external_exports.record(external_exports.string(),external_exports.string()).optional(),headersHelper:external_exports.string().optional()})),McpSdkServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("sdk"),name:external_exports.string()})),McpClaudeAIProxyServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("claudeai-proxy"),url:external_exports.string(),id:external_exports.string()})),McpServerConfigSchema=lazySchema(()=>external_exports.union([McpStdioServerConfigSchema(),McpSSEServerConfigSchema(),McpSSEIDEServerConfigSchema(),McpWebSocketIDEServerConfigSchema(),McpHTTPServerConfigSchema(),McpWebSocketServerConfigSchema(),McpSdkServerConfigSchema(),McpClaudeAIProxyServerConfigSchema()])),McpJsonConfigSchema=lazySchema(()=>external_exports.object({mcpServers:external_exports.record(external_exports.string(),McpServerConfigSchema())}))}});function isBlockedOfficialName(name){return ALLOWED_OFFICIAL_MARKETPLACE_NAMES.has(name.toLowerCase())?!1:NON_ASCII_PATTERN.test(name)?!0:BLOCKED_OFFICIAL_NAME_PATTERN.test(name)}var ALLOWED_OFFICIAL_MARKETPLACE_NAMES,BLOCKED_OFFICIAL_NAME_PATTERN,NON_ASCII_PATTERN,RelativePath,RelativeJSONPath,McpbPath,RelativeMarkdownPath,RelativeCommandPath,MarketplaceNameSchema,PluginAuthorSchema,PluginManifestMetadataSchema,PluginHooksSchema,PluginManifestHooksSchema,CommandMetadataSchema,PluginManifestCommandsSchema,PluginManifestAgentsSchema,PluginManifestSkillsSchema,PluginManifestOutputStylesSchema,nonEmptyString,fileExtension,PluginManifestMcpServerSchema,PluginUserConfigOptionSchema,PluginManifestUserConfigSchema,PluginManifestChannelsSchema,LspServerConfigSchema,PluginManifestLspServerSchema,NpmPackageNameSchema,PluginManifestSettingsSchema,PluginManifestSchema,MarketplaceSourceSchema,gitSha,PluginSourceSchema,SettingsMarketplacePluginSchema,PluginMarketplaceEntrySchema,PluginMarketplaceSchema,PluginIdSchema,DEP_REF_REGEX,DependencyRefSchema,SettingsPluginEntrySchema,InstalledPluginSchema,InstalledPluginsFileSchemaV1,PluginScopeSchema,PluginInstallationEntrySchema,InstalledPluginsFileSchemaV2,InstalledPluginsFileSchema,KnownMarketplaceSchema,KnownMarketplacesFileSchema,init_schemas3=__esm({"src/utils/plugins/schemas.ts"(){init_v4();init_hooks();init_types();init_lazySchema();ALLOWED_OFFICIAL_MARKETPLACE_NAMES=new Set(["claude-code-marketplace","claude-code-plugins","claude-plugins-official","anthropic-marketplace","anthropic-plugins","agent-skills","life-sciences","knowledge-work-plugins"]),BLOCKED_OFFICIAL_NAME_PATTERN=/(?:official[^a-z0-9]*(anthropic|claude)|(?:anthropic|claude)[^a-z0-9]*official|^(?:anthropic|claude)[^a-z0-9]*(marketplace|plugins|official))/i,NON_ASCII_PATTERN=/[^\u0020-\u007E]/;__name(isBlockedOfficialName,"isBlockedOfficialName");RelativePath=lazySchema(()=>external_exports.string().startsWith("./")),RelativeJSONPath=lazySchema(()=>RelativePath().endsWith(".json")),McpbPath=lazySchema(()=>external_exports.union([RelativePath().refine(path10=>path10.endsWith(".mcpb")||path10.endsWith(".dxt"),{message:"MCPB file path must end with .mcpb or .dxt"}).describe("Path to MCPB file relative to plugin root"),external_exports.string().url().refine(url3=>url3.endsWith(".mcpb")||url3.endsWith(".dxt"),{message:"MCPB URL must end with .mcpb or .dxt"}).describe("URL to MCPB file")])),RelativeMarkdownPath=lazySchema(()=>RelativePath().endsWith(".md")),RelativeCommandPath=lazySchema(()=>external_exports.union([RelativeMarkdownPath(),RelativePath()])),MarketplaceNameSchema=lazySchema(()=>external_exports.string().min(1,"Marketplace must have a name").refine(name=>!name.includes(" "),{message:'Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")'}).refine(name=>!name.includes("/")&&!name.includes("\\")&&!name.includes("..")&&name!==".",{message:'Marketplace name cannot contain path separators (/ or \\), ".." sequences, or be "."'}).refine(name=>!isBlockedOfficialName(name),{message:"Marketplace name impersonates an official Anthropic/Claude marketplace"}).refine(name=>name.toLowerCase()!=="inline",{message:'Marketplace name "inline" is reserved for --plugin-dir session plugins'}).refine(name=>name.toLowerCase()!=="builtin",{message:'Marketplace name "builtin" is reserved for built-in plugins'})),PluginAuthorSchema=lazySchema(()=>external_exports.object({name:external_exports.string().min(1,"Author name cannot be empty").describe("Display name of the plugin author or organization"),email:external_exports.string().optional().describe("Contact email for support or feedback"),url:external_exports.string().optional().describe("Website, GitHub profile, or organization URL")})),PluginManifestMetadataSchema=lazySchema(()=>external_exports.object({name:external_exports.string().min(1,"Plugin name cannot be empty").refine(name=>!name.includes(" "),{message:'Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")'}).describe("Unique identifier for the plugin, used for namespacing (prefer kebab-case)"),version:external_exports.string().optional().describe("Semantic version (e.g., 1.2.3) following semver.org specification"),description:external_exports.string().optional().describe("Brief, user-facing explanation of what the plugin provides"),author:PluginAuthorSchema().optional().describe("Information about the plugin creator or maintainer"),homepage:external_exports.string().url().optional().describe("Plugin homepage or documentation URL"),repository:external_exports.string().optional().describe("Source code repository URL"),license:external_exports.string().optional().describe("SPDX license identifier (e.g., MIT, Apache-2.0)"),keywords:external_exports.array(external_exports.string()).optional().describe("Tags for plugin discovery and categorization"),dependencies:external_exports.array(DependencyRefSchema()).optional().describe(`Plugins that must be enabled for this plugin to function. Bare names (no "@marketplace") are resolved against the declaring plugin's own marketplace.`)})),PluginHooksSchema=lazySchema(()=>external_exports.object({description:external_exports.string().optional().describe("Brief, user-facing explanation of what these hooks provide"),hooks:external_exports.lazy(()=>HooksSchema()).describe("The hooks provided by the plugin, in the same format as the one used for settings")})),PluginManifestHooksSchema=lazySchema(()=>external_exports.object({hooks:external_exports.union([RelativeJSONPath().describe("Path to file with additional hooks (in addition to those in hooks/hooks.json, if it exists), relative to the plugin root"),external_exports.lazy(()=>HooksSchema()).describe("Additional hooks (in addition to those in hooks/hooks.json, if it exists)"),external_exports.array(external_exports.union([RelativeJSONPath().describe("Path to file with additional hooks (in addition to those in hooks/hooks.json, if it exists), relative to the plugin root"),external_exports.lazy(()=>HooksSchema()).describe("Additional hooks (in addition to those in hooks/hooks.json, if it exists)")]))])})),CommandMetadataSchema=lazySchema(()=>external_exports.object({source:RelativeCommandPath().optional().describe("Path to command markdown file, relative to plugin root"),content:external_exports.string().optional().describe("Inline markdown content for the command"),description:external_exports.string().optional().describe("Command description override"),argumentHint:external_exports.string().optional().describe('Hint for command arguments (e.g., "[file]")'),model:external_exports.string().optional().describe("Default model for this command"),allowedTools:external_exports.array(external_exports.string()).optional().describe("Tools allowed when command runs")}).refine(data=>data.source&&!data.content||!data.source&&data.content,{message:'Command must have either "source" (file path) or "content" (inline markdown), but not both'})),PluginManifestCommandsSchema=lazySchema(()=>external_exports.object({commands:external_exports.union([RelativeCommandPath().describe("Path to additional command file or skill directory (in addition to those in the commands/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativeCommandPath().describe("Path to additional command file or skill directory (in addition to those in the commands/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional command files or skill directories"),external_exports.record(external_exports.string(),CommandMetadataSchema()).describe('Object mapping of command names to their metadata and source files. Command name becomes the slash command name (e.g., "about" \u2192 "/plugin:about")')])})),PluginManifestAgentsSchema=lazySchema(()=>external_exports.object({agents:external_exports.union([RelativeMarkdownPath().describe("Path to additional agent file (in addition to those in the agents/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativeMarkdownPath().describe("Path to additional agent file (in addition to those in the agents/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional agent files")])})),PluginManifestSkillsSchema=lazySchema(()=>external_exports.object({skills:external_exports.union([RelativePath().describe("Path to additional skill directory (in addition to those in the skills/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativePath().describe("Path to additional skill directory (in addition to those in the skills/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional skill directories")])})),PluginManifestOutputStylesSchema=lazySchema(()=>external_exports.object({outputStyles:external_exports.union([RelativePath().describe("Path to additional output styles directory or file (in addition to those in the output-styles/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativePath().describe("Path to additional output styles directory or file (in addition to those in the output-styles/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional output styles directories or files")])})),nonEmptyString=lazySchema(()=>external_exports.string().min(1)),fileExtension=lazySchema(()=>external_exports.string().min(2).refine(ext=>ext.startsWith("."),{message:'File extensions must start with dot (e.g., ".js", not "ts")'})),PluginManifestMcpServerSchema=lazySchema(()=>external_exports.object({mcpServers:external_exports.union([RelativeJSONPath().describe("MCP servers to include in the plugin (in addition to those in the .mcp.json file, if it exists)"),McpbPath().describe("Path or URL to MCPB file containing MCP server configuration"),external_exports.record(external_exports.string(),McpServerConfigSchema()).describe("MCP server configurations keyed by server name"),external_exports.array(external_exports.union([RelativeJSONPath().describe("Path to MCP servers configuration file"),McpbPath().describe("Path or URL to MCPB file"),external_exports.record(external_exports.string(),McpServerConfigSchema()).describe("Inline MCP server configurations")])).describe("Array of MCP server configurations (paths, MCPB files, or inline definitions)")])})),PluginUserConfigOptionSchema=lazySchema(()=>external_exports.object({type:external_exports.enum(["string","number","boolean","directory","file"]).describe("Type of the configuration value"),title:external_exports.string().describe("Human-readable label shown in the config dialog"),description:external_exports.string().describe("Help text shown beneath the field in the config dialog"),required:external_exports.boolean().optional().describe("If true, validation fails when this field is empty"),default:external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.string())]).optional().describe("Default value used when the user provides nothing"),multiple:external_exports.boolean().optional().describe("For string type: allow an array of strings"),sensitive:external_exports.boolean().optional().describe("If true, masks dialog input and stores value in secure storage (keychain/credentials file) instead of settings.json"),min:external_exports.number().optional().describe("Minimum value (number type only)"),max:external_exports.number().optional().describe("Maximum value (number type only)")}).strict()),PluginManifestUserConfigSchema=lazySchema(()=>external_exports.object({userConfig:external_exports.record(external_exports.string().regex(/^[A-Za-z_]\w*$/,"Option keys must be valid identifiers (letters, digits, underscore; no leading digit) \u2014 they become CLAUDE_PLUGIN_OPTION_<KEY> env vars in hooks"),PluginUserConfigOptionSchema()).optional().describe("User-configurable values this plugin needs. Prompted at enable time. Non-sensitive values saved to settings.json; sensitive values to secure storage (macOS keychain or .credentials.json). Available as ${user_config.KEY} in MCP/LSP server config, hook commands, and (non-sensitive only) skill/agent content. Note: sensitive values share a single keychain entry with OAuth tokens \u2014 keep secret counts small to stay under the ~2KB stdin-safe limit (see INC-3028).")})),PluginManifestChannelsSchema=lazySchema(()=>external_exports.object({channels:external_exports.array(external_exports.object({server:external_exports.string().min(1).describe("Name of the MCP server this channel binds to. Must match a key in this plugin's mcpServers."),displayName:external_exports.string().optional().describe('Human-readable name shown in the config dialog title (e.g., "Telegram"). Defaults to the server name.'),userConfig:external_exports.record(external_exports.string(),PluginUserConfigOptionSchema()).optional().describe("Fields to prompt the user for when enabling this plugin in assistant mode. Saved values are substituted into ${user_config.KEY} references in the mcpServers env.")}).strict()).describe("Channels this plugin provides. Each entry declares an MCP server as a message channel and optionally specifies user configuration to prompt for at enable time.")})),LspServerConfigSchema=lazySchema(()=>external_exports.strictObject({command:external_exports.string().min(1).refine(cmd=>!(cmd.includes(" ")&&!cmd.startsWith("/")),{message:"Command should not contain spaces. Use args array for arguments."}).describe('Command to execute the LSP server (e.g., "typescript-language-server")'),args:external_exports.array(nonEmptyString()).optional().describe("Command-line arguments to pass to the server"),extensionToLanguage:external_exports.record(fileExtension(),nonEmptyString()).refine(record2=>Object.keys(record2).length>0,{message:"extensionToLanguage must have at least one mapping"}).describe("Mapping from file extension to LSP language ID. File extensions and languages are derived from this mapping."),transport:external_exports.enum(["stdio","socket"]).default("stdio").describe("Communication transport mechanism"),env:external_exports.record(external_exports.string(),external_exports.string()).optional().describe("Environment variables to set when starting the server"),initializationOptions:external_exports.unknown().optional().describe("Initialization options passed to the server during initialization"),settings:external_exports.unknown().optional().describe("Settings passed to the server via workspace/didChangeConfiguration"),workspaceFolder:external_exports.string().optional().describe("Workspace folder path to use for the server"),startupTimeout:external_exports.number().int().positive().optional().describe("Maximum time to wait for server startup (milliseconds)"),shutdownTimeout:external_exports.number().int().positive().optional().describe("Maximum time to wait for graceful shutdown (milliseconds)"),restartOnCrash:external_exports.boolean().optional().describe("Whether to restart the server if it crashes"),maxRestarts:external_exports.number().int().nonnegative().optional().describe("Maximum number of restart attempts before giving up")})),PluginManifestLspServerSchema=lazySchema(()=>external_exports.object({lspServers:external_exports.union([RelativeJSONPath().describe("Path to .lsp.json configuration file relative to plugin root"),external_exports.record(external_exports.string(),LspServerConfigSchema()).describe("LSP server configurations keyed by server name"),external_exports.array(external_exports.union([RelativeJSONPath().describe("Path to LSP configuration file"),external_exports.record(external_exports.string(),LspServerConfigSchema()).describe("Inline LSP server configurations")])).describe("Array of LSP server configurations (paths or inline definitions)")])})),NpmPackageNameSchema=lazySchema(()=>external_exports.string().refine(name=>!name.includes("..")&&!name.includes("//"),"Package name cannot contain path traversal patterns").refine(name=>{let scopedPackageRegex=/^@[a-z0-9][a-z0-9-._]*\/[a-z0-9][a-z0-9-._]*$/,regularPackageRegex=/^[a-z0-9][a-z0-9-._]*$/;return scopedPackageRegex.test(name)||regularPackageRegex.test(name)},"Invalid npm package name format")),PluginManifestSettingsSchema=lazySchema(()=>external_exports.object({settings:external_exports.record(external_exports.string(),external_exports.unknown()).optional().describe("Settings to merge when plugin is enabled. Only allowlisted keys are kept (currently: agent)")})),PluginManifestSchema=lazySchema(()=>external_exports.object({...PluginManifestMetadataSchema().shape,...PluginManifestHooksSchema().partial().shape,...PluginManifestCommandsSchema().partial().shape,...PluginManifestAgentsSchema().partial().shape,...PluginManifestSkillsSchema().partial().shape,...PluginManifestOutputStylesSchema().partial().shape,...PluginManifestChannelsSchema().partial().shape,...PluginManifestMcpServerSchema().partial().shape,...PluginManifestLspServerSchema().partial().shape,...PluginManifestSettingsSchema().partial().shape,...PluginManifestUserConfigSchema().partial().shape})),MarketplaceSourceSchema=lazySchema(()=>external_exports.discriminatedUnion("source",[external_exports.object({source:external_exports.literal("url"),url:external_exports.string().url().describe("Direct URL to marketplace.json file"),headers:external_exports.record(external_exports.string(),external_exports.string()).optional().describe("Custom HTTP headers (e.g., for authentication)")}),external_exports.object({source:external_exports.literal("github"),repo:external_exports.string().describe("GitHub repository in owner/repo format"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),path:external_exports.string().optional().describe("Path to marketplace.json within repo (defaults to .\u0063laude-plugin/marketplace.json)"),sparsePaths:external_exports.array(external_exports.string()).optional().describe('Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".\u0063laude-plugin", "plugins"]. If omitted, the full repository is cloned.')}),external_exports.object({source:external_exports.literal("git"),url:external_exports.string().describe("Full git repository URL"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),path:external_exports.string().optional().describe("Path to marketplace.json within repo (defaults to .\u0063laude-plugin/marketplace.json)"),sparsePaths:external_exports.array(external_exports.string()).optional().describe('Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".\u0063laude-plugin", "plugins"]. If omitted, the full repository is cloned.')}),external_exports.object({source:external_exports.literal("npm"),package:NpmPackageNameSchema().describe("NPM package containing marketplace.json")}),external_exports.object({source:external_exports.literal("file"),path:external_exports.string().describe("Local file path to marketplace.json")}),external_exports.object({source:external_exports.literal("directory"),path:external_exports.string().describe("Local directory containing .\u0063laude-plugin/marketplace.json")}),external_exports.object({source:external_exports.literal("hostPattern"),hostPattern:external_exports.string().describe('Regex pattern to match the host/domain extracted from any marketplace source type. For github sources, matches against "github.com". For git sources (SSH or HTTPS), extracts the hostname from the URL. Use in strictKnownMarketplaces to allow all marketplaces from a specific host (e.g., "^github\\.mycompany\\.com$").')}),external_exports.object({source:external_exports.literal("pathPattern"),pathPattern:external_exports.string().describe('Regex pattern matched against the .path field of file and directory sources. Use in strictKnownMarketplaces to allow filesystem-based marketplaces alongside hostPattern restrictions for network sources. Use ".*" to allow all filesystem paths, or a narrower pattern (e.g., "^/opt/approved/") to restrict to specific directories.')}),external_exports.object({source:external_exports.literal("settings"),name:MarketplaceNameSchema().refine(name=>!ALLOWED_OFFICIAL_MARKETPLACE_NAMES.has(name.toLowerCase()),{message:"Reserved official marketplace names cannot be used with settings sources. validateOfficialNameSource only accepts github/git sources from anthropics/* for these names; a settings source would be rejected after loadAndCacheMarketplace has already written to disk with cleanupNeeded=false."}).describe("Marketplace name. Must match the extraKnownMarketplaces key (enforced); the synthetic manifest is written under this name. Same validation as PluginMarketplaceSchema plus reserved-name rejection \u2014 validateOfficialNameSource runs after the disk write, too late to clean up."),plugins:external_exports.array(SettingsMarketplacePluginSchema()).describe("Plugin entries declared inline in settings.json"),owner:PluginAuthorSchema().optional()}).describe("Inline marketplace manifest defined directly in settings.json. The reconciler writes a synthetic marketplace.json to the cache; diffMarketplaces detects edits via isEqual on the stored source (the plugins array is inside this object, so edits surface as sourceChanged).")])),gitSha=lazySchema(()=>external_exports.string().length(40).regex(/^[a-f0-9]{40}$/,"Must be a full 40-character lowercase git commit SHA")),PluginSourceSchema=lazySchema(()=>external_exports.union([RelativePath().describe("Path to the plugin root, relative to the marketplace root (the directory containing .\u0063laude-plugin/, not .\u0063laude-plugin/ itself)"),external_exports.object({source:external_exports.literal("npm"),package:NpmPackageNameSchema().or(external_exports.string()).describe("Package name (or url, or local path, or anything else that can be passed to `npm` as a package)"),version:external_exports.string().optional().describe("Specific version or version range (e.g., ^1.0.0, ~2.1.0)"),registry:external_exports.string().url().optional().describe("Custom NPM registry URL (defaults to using system default, likely npmjs.org)")}).describe("NPM package as plugin source"),external_exports.object({source:external_exports.literal("pip"),package:external_exports.string().describe("Python package name as it appears on PyPI"),version:external_exports.string().optional().describe("Version specifier (e.g., ==1.0.0, >=2.0.0, <3.0.0)"),registry:external_exports.string().url().optional().describe("Custom PyPI registry URL (defaults to using system default, likely pypi.org)")}).describe("Python package as plugin source"),external_exports.object({source:external_exports.literal("url"),url:external_exports.string().describe("Full git repository URL (https:// or git@)"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),sha:gitSha().optional().describe("Specific commit SHA to use")}),external_exports.object({source:external_exports.literal("github"),repo:external_exports.string().describe("GitHub repository in owner/repo format"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),sha:gitSha().optional().describe("Specific commit SHA to use")}),external_exports.object({source:external_exports.literal("git-subdir"),url:external_exports.string().describe("Git repository: GitHub owner/repo shorthand, https://, or git@ URL"),path:external_exports.string().min(1).describe('Subdirectory within the repo containing the plugin (e.g., "tools/claude-plugin"). Cloned sparsely using partial clone (--filter=tree:0) to minimize bandwidth for monorepos.'),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),sha:gitSha().optional().describe("Specific commit SHA to use")}).describe("Plugin located in a subdirectory of a larger repository (monorepo). Only the specified subdirectory is materialized; the rest of the repo is not downloaded.")])),SettingsMarketplacePluginSchema=lazySchema(()=>external_exports.object({name:external_exports.string().min(1,"Plugin name cannot be empty").refine(name=>!name.includes(" "),{message:'Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")'}).describe("Plugin name as it appears in the target repository"),source:PluginSourceSchema().describe("Where to fetch the plugin from. Must be a remote source \u2014 relative paths have no marketplace repository to resolve against."),description:external_exports.string().optional(),version:external_exports.string().optional(),strict:external_exports.boolean().optional()}).refine(p=>typeof p.source!="string",{message:'Plugins in a settings-sourced marketplace must use remote sources (github, git-subdir, npm, url, pip). Relative-path sources like "./foo" have no marketplace repository to resolve against.'})),PluginMarketplaceEntrySchema=lazySchema(()=>PluginManifestSchema().partial().extend({name:external_exports.string().min(1,"Plugin name cannot be empty").refine(name=>!name.includes(" "),{message:'Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")'}).describe("Unique identifier matching the plugin name"),source:PluginSourceSchema().describe("Where to fetch the plugin from"),category:external_exports.string().optional().describe('Category for organizing plugins (e.g., "productivity", "development")'),tags:external_exports.array(external_exports.string()).optional().describe("Tags for searchability and discovery"),strict:external_exports.boolean().optional().default(!0).describe("Require the plugin manifest to be present in the plugin folder. If false, the marketplace entry provides the manifest.")})),PluginMarketplaceSchema=lazySchema(()=>external_exports.object({name:MarketplaceNameSchema(),owner:PluginAuthorSchema().describe("Marketplace maintainer or curator information"),plugins:external_exports.array(PluginMarketplaceEntrySchema()).describe("Collection of available plugins in this marketplace"),forceRemoveDeletedPlugins:external_exports.boolean().optional().describe("When true, plugins removed from this marketplace will be automatically uninstalled and flagged for users"),metadata:external_exports.object({pluginRoot:external_exports.string().optional().describe("Base path for relative plugin sources"),version:external_exports.string().optional().describe("Marketplace version"),description:external_exports.string().optional().describe("Marketplace description")}).optional().describe("Optional marketplace metadata"),allowCrossMarketplaceDependenciesOn:external_exports.array(external_exports.string()).optional().describe("Marketplace names whose plugins may be auto-installed as dependencies. Only the root marketplace's allowlist applies \u2014 no transitive trust.")})),PluginIdSchema=lazySchema(()=>external_exports.string().regex(/^[a-z0-9][-a-z0-9._]*@[a-z0-9][-a-z0-9._]*$/i,"Plugin ID must be in format: plugin@marketplace")),DEP_REF_REGEX=/^[a-z0-9][-a-z0-9._]*(@[a-z0-9][-a-z0-9._]*)?(@\^[^@]*)?$/i,DependencyRefSchema=lazySchema(()=>external_exports.union([external_exports.string().regex(DEP_REF_REGEX,"Dependency must be a plugin name, optionally qualified with @marketplace").transform(s2=>s2.replace(/@\^[^@]*$/,"")),external_exports.object({name:external_exports.string().min(1).regex(/^[a-z0-9][-a-z0-9._]*$/i),marketplace:external_exports.string().min(1).regex(/^[a-z0-9][-a-z0-9._]*$/i).optional()}).loose().transform(o2=>o2.marketplace?`${o2.name}@${o2.marketplace}`:o2.name)])),SettingsPluginEntrySchema=lazySchema(()=>external_exports.union([PluginIdSchema(),external_exports.object({id:PluginIdSchema().describe('Plugin identifier (e.g., "formatter@tools")'),version:external_exports.string().optional().describe('Version constraint (e.g., "^2.0.0")'),required:external_exports.boolean().optional().describe("If true, cannot be disabled"),config:external_exports.record(external_exports.string(),external_exports.unknown()).optional().describe("Plugin-specific configuration")})])),InstalledPluginSchema=lazySchema(()=>external_exports.object({version:external_exports.string().describe("Currently installed version"),installedAt:external_exports.string().describe("ISO 8601 timestamp of installation"),lastUpdated:external_exports.string().optional().describe("ISO 8601 timestamp of last update"),installPath:external_exports.string().describe("Absolute path to the installed plugin directory"),gitCommitSha:external_exports.string().optional().describe("Git commit SHA for git-based plugins (for version tracking)")})),InstalledPluginsFileSchemaV1=lazySchema(()=>external_exports.object({version:external_exports.literal(1).describe("Schema version 1"),plugins:external_exports.record(PluginIdSchema(),InstalledPluginSchema()).describe("Map of plugin IDs to their installation metadata")})),PluginScopeSchema=lazySchema(()=>external_exports.enum(["managed","user","project","local"])),PluginInstallationEntrySchema=lazySchema(()=>external_exports.object({scope:PluginScopeSchema().describe("Installation scope"),projectPath:external_exports.string().optional().describe("Project path (required for project/local scopes)"),installPath:external_exports.string().describe("Absolute path to the versioned plugin directory"),version:external_exports.string().optional().describe("Currently installed version"),installedAt:external_exports.string().optional().describe("ISO 8601 timestamp of installation"),lastUpdated:external_exports.string().optional().describe("ISO 8601 timestamp of last update"),gitCommitSha:external_exports.string().optional().describe("Git commit SHA for git-based plugins")})),InstalledPluginsFileSchemaV2=lazySchema(()=>external_exports.object({version:external_exports.literal(2).describe("Schema version 2"),plugins:external_exports.record(PluginIdSchema(),external_exports.array(PluginInstallationEntrySchema())).describe("Map of plugin IDs to arrays of installation entries")})),InstalledPluginsFileSchema=lazySchema(()=>external_exports.union([InstalledPluginsFileSchemaV1(),InstalledPluginsFileSchemaV2()])),KnownMarketplaceSchema=lazySchema(()=>external_exports.object({source:MarketplaceSourceSchema().describe("Where to fetch the marketplace from"),installLocation:external_exports.string().describe("Local cache path where marketplace manifest is stored"),lastUpdated:external_exports.string().describe("ISO 8601 timestamp of last marketplace refresh"),autoUpdate:external_exports.boolean().optional().describe("Whether to automatically update this marketplace and its installed plugins on startup")})),KnownMarketplacesFileSchema=lazySchema(()=>external_exports.record(external_exports.string(),KnownMarketplaceSchema()))}});function normalizeNameForMCP(name){let normalized=name.replace(/[^a-zA-Z0-9_-]/g,"_");return name.startsWith(CLAUDEAI_SERVER_PREFIX)&&(normalized=normalized.replace(/_+/g,"_").replace(/^_|_$/g,"")),normalized}var CLAUDEAI_SERVER_PREFIX,init_normalization=__esm({"src/services/mcp/normalization.ts"(){CLAUDEAI_SERVER_PREFIX="claude.ai ";__name(normalizeNameForMCP,"normalizeNameForMCP")}});function mcpInfoFromString(toolString){let parts=toolString.split("__"),[mcpPart,serverName,...toolNameParts]=parts;if(mcpPart!=="mcp"||!serverName)return null;let toolName=toolNameParts.length>0?toolNameParts.join("__"):void 0;return{serverName,toolName}}var init_mcpStringUtils=__esm({"src/services/mcp/mcpStringUtils.ts"(){init_normalization();__name(mcpInfoFromString,"mcpInfoFromString")}});var AGENT_TOOL_NAME,init_constants3=__esm({"src/tools/AgentTool/constants.ts"(){AGENT_TOOL_NAME="Agent"}});var TASK_OUTPUT_TOOL_NAME,init_constants4=__esm({"src/tools/TaskOutputTool/constants.ts"(){TASK_OUTPUT_TOOL_NAME="TaskOutput"}});var TASK_STOP_TOOL_NAME,init_prompt=__esm({"src/tools/TaskStopTool/prompt.ts"(){TASK_STOP_TOOL_NAME="TaskStop"}});function normalizeLegacyToolName(name){return LEGACY_TOOL_NAME_ALIASES[name]??name}function unescapeRuleContent(content){return content.replace(/\\\(/g,"(").replace(/\\\)/g,")").replace(/\\\\/g,"\\")}function permissionRuleValueFromString(ruleString){let openParenIndex=findFirstUnescapedChar(ruleString,"(");if(openParenIndex===-1)return{toolName:normalizeLegacyToolName(ruleString)};let closeParenIndex=findLastUnescapedChar(ruleString,")");if(closeParenIndex===-1||closeParenIndex<=openParenIndex)return{toolName:normalizeLegacyToolName(ruleString)};if(closeParenIndex!==ruleString.length-1)return{toolName:normalizeLegacyToolName(ruleString)};let toolName=ruleString.substring(0,openParenIndex),rawContent=ruleString.substring(openParenIndex+1,closeParenIndex);if(!toolName)return{toolName:normalizeLegacyToolName(ruleString)};if(rawContent===""||rawContent==="*")return{toolName:normalizeLegacyToolName(toolName)};let ruleContent=unescapeRuleContent(rawContent);return{toolName:normalizeLegacyToolName(toolName),ruleContent}}function findFirstUnescapedChar(str,char){for(let i3=0;i3<str.length;i3++)if(str[i3]===char){let backslashCount=0,j=i3-1;for(;j>=0&&str[j]==="\\";)backslashCount++,j--;if(backslashCount%2===0)return i3}return-1}function findLastUnescapedChar(str,char){for(let i3=str.length-1;i3>=0;i3--)if(str[i3]===char){let backslashCount=0,j=i3-1;for(;j>=0&&str[j]==="\\";)backslashCount++,j--;if(backslashCount%2===0)return i3}return-1}var LEGACY_TOOL_NAME_ALIASES,init_permissionRuleParser=__esm({"src/utils/permissions/permissionRuleParser.ts"(){init_constants3();init_constants4();init_prompt();LEGACY_TOOL_NAME_ALIASES={Task:AGENT_TOOL_NAME,Exec:"Bash",KillShell:TASK_STOP_TOOL_NAME,AgentOutputTool:TASK_OUTPUT_TOOL_NAME,BashOutputTool:TASK_OUTPUT_TOOL_NAME};__name(normalizeLegacyToolName,"normalizeLegacyToolName");__name(unescapeRuleContent,"unescapeRuleContent");__name(permissionRuleValueFromString,"permissionRuleValueFromString");__name(findFirstUnescapedChar,"findFirstUnescapedChar");__name(findLastUnescapedChar,"findLastUnescapedChar")}});function capitalize2(str){return str.charAt(0).toUpperCase()+str.slice(1)}function plural(n2,word,pluralWord=word+"s"){return n2===1?word:pluralWord}var MAX_STRING_LENGTH,init_stringUtils=__esm({"src/utils/stringUtils.ts"(){__name(capitalize2,"capitalize");__name(plural,"plural");MAX_STRING_LENGTH=2**25}});function isFilePatternTool(toolName){return TOOL_VALIDATION_CONFIG.filePatternTools.includes(toolName)}function isBashPrefixTool(toolName){return TOOL_VALIDATION_CONFIG.bashPrefixTools.includes(toolName)}function getCustomValidation(toolName){return TOOL_VALIDATION_CONFIG.customValidation[toolName]}var TOOL_VALIDATION_CONFIG,init_toolValidationConfig=__esm({"src/utils/settings/toolValidationConfig.ts"(){TOOL_VALIDATION_CONFIG={filePatternTools:["Read","Write","Edit","Glob","NotebookRead","NotebookEdit"],bashPrefixTools:["Bash"],customValidation:{WebSearch:__name(content=>content.includes("*")||content.includes("?")?{valid:!1,error:"WebSearch does not support wildcards",suggestion:"Use exact search terms without * or ?",examples:["WebSearch(claude ai)","WebSearch(typescript tutorial)"]}:{valid:!0},"WebSearch"),WebFetch:__name(content=>content.includes("://")||content.startsWith("http")?{valid:!1,error:"WebFetch permissions use domain format, not URLs",suggestion:'Use "domain:hostname" format',examples:["WebFetch(domain:example.com)","WebFetch(domain:github.com)"]}:content.startsWith("domain:")?{valid:!0}:{valid:!1,error:'WebFetch permissions must use "domain:" prefix',suggestion:'Use "domain:hostname" format',examples:["WebFetch(domain:example.com)","WebFetch(domain:*.google.com)"]},"WebFetch")}};__name(isFilePatternTool,"isFilePatternTool");__name(isBashPrefixTool,"isBashPrefixTool");__name(getCustomValidation,"getCustomValidation")}});function isEscaped(str,index){let backslashCount=0,j=index-1;for(;j>=0&&str[j]==="\\";)backslashCount++,j--;return backslashCount%2!==0}function countUnescapedChar(str,char){let count3=0;for(let i3=0;i3<str.length;i3++)str[i3]===char&&!isEscaped(str,i3)&&count3++;return count3}function hasUnescapedEmptyParens(str){for(let i3=0;i3<str.length-1;i3++)if(str[i3]==="("&&str[i3+1]===")"&&!isEscaped(str,i3))return!0;return!1}function validatePermissionRule(rule){if(!rule||rule.trim()==="")return{valid:!1,error:"Permission rule cannot be empty"};let openCount=countUnescapedChar(rule,"("),closeCount=countUnescapedChar(rule,")");if(openCount!==closeCount)return{valid:!1,error:"Mismatched parentheses",suggestion:"Ensure all opening parentheses have matching closing parentheses"};if(hasUnescapedEmptyParens(rule)){let toolName=rule.substring(0,rule.indexOf("("));return toolName?{valid:!1,error:"Empty parentheses",suggestion:`Either specify a pattern or use just "${toolName}" without parentheses`,examples:[`${toolName}`,`${toolName}(some-pattern)`]}:{valid:!1,error:"Empty parentheses with no tool name",suggestion:"Specify a tool name before the parentheses"}}let parsed=permissionRuleValueFromString(rule),mcpInfo=mcpInfoFromString(parsed.toolName);if(mcpInfo)return parsed.ruleContent!==void 0||countUnescapedChar(rule,"(")>0?{valid:!1,error:"MCP rules do not support patterns in parentheses",suggestion:`Use "${parsed.toolName}" without parentheses, or use "mcp__${mcpInfo.serverName}__*" for all tools`,examples:[`mcp__${mcpInfo.serverName}`,`mcp__${mcpInfo.serverName}__*`,mcpInfo.toolName&&mcpInfo.toolName!=="*"?`mcp__${mcpInfo.serverName}__${mcpInfo.toolName}`:void 0].filter(Boolean)}:{valid:!0};if(!parsed.toolName||parsed.toolName.length===0)return{valid:!1,error:"Tool name cannot be empty"};if(parsed.toolName[0]!==parsed.toolName[0]?.toUpperCase())return{valid:!1,error:"Tool names must start with uppercase",suggestion:`Use "${capitalize2(String(parsed.toolName))}"`};let customValidation=getCustomValidation(parsed.toolName);if(customValidation&&parsed.ruleContent!==void 0){let customResult=customValidation(parsed.ruleContent);if(!customResult.valid)return customResult}if(isBashPrefixTool(parsed.toolName)&&parsed.ruleContent!==void 0){let content=parsed.ruleContent;if(content.includes(":*")&&!content.endsWith(":*"))return{valid:!1,error:"The :* pattern must be at the end",suggestion:"Move :* to the end for prefix matching, or use * for wildcard matching",examples:["Bash(npm run:*) - prefix matching (legacy)","Bash(npm run *) - wildcard matching"]};if(content===":*")return{valid:!1,error:"Prefix cannot be empty before :*",suggestion:"Specify a command prefix before :*",examples:["Bash(npm:*)","Bash(git:*)"]}}if(isFilePatternTool(parsed.toolName)&&parsed.ruleContent!==void 0){let content=parsed.ruleContent;if(content.includes(":*"))return{valid:!1,error:'The ":*" syntax is only for Bash prefix rules',suggestion:'Use glob patterns like "*" or "**" for file matching',examples:[`${parsed.toolName}(*.ts) - matches .ts files`,`${parsed.toolName}(src/**) - matches all files in src`,`${parsed.toolName}(**/*.test.ts) - matches test files`]};if(content.includes("*")&&!content.match(/^\*|\*$|\*\*|\/\*|\*\.|\*\)/)&&!content.includes("**"))return{valid:!1,error:"Wildcard placement might be incorrect",suggestion:"Wildcards are typically used at path boundaries",examples:[`${parsed.toolName}(*.js) - all .js files`,`${parsed.toolName}(src/*) - all files directly in src`,`${parsed.toolName}(src/**) - all files recursively in src`]}}return{valid:!0}}var PermissionRuleSchema,init_permissionValidation=__esm({"src/utils/settings/permissionValidation.ts"(){init_v4();init_mcpStringUtils();init_lazySchema();init_permissionRuleParser();init_stringUtils();init_toolValidationConfig();__name(isEscaped,"isEscaped");__name(countUnescapedChar,"countUnescapedChar");__name(hasUnescapedEmptyParens,"hasUnescapedEmptyParens");__name(validatePermissionRule,"validatePermissionRule");PermissionRuleSchema=lazySchema(()=>external_exports.string().superRefine((val,ctx)=>{let result2=validatePermissionRule(val);if(!result2.valid){let message=result2.error;result2.suggestion&&(message+=`. ${result2.suggestion}`),result2.examples&&result2.examples.length>0&&(message+=`. Examples: ${result2.examples.join(", ")}`),ctx.addIssue({code:external_exports.ZodIssueCode.custom,message,params:{received:val}})}}))}});var EnvironmentVariablesSchema,PermissionsSchema,ExtraKnownMarketplaceSchema,AllowedMcpServerEntrySchema,DeniedMcpServerEntrySchema,CUSTOMIZATION_SURFACES,SettingsSchema,init_types2=__esm({"src/utils/settings/types.ts"(){init_v4();init_sandboxTypes();init_envUtils();init_lazySchema();init_PermissionMode();init_schemas3();init_constants2();init_permissionValidation();init_hooks();init_hooks();init_array4();EnvironmentVariablesSchema=lazySchema(()=>external_exports.record(external_exports.string(),external_exports.coerce.string())),PermissionsSchema=lazySchema(()=>external_exports.object({allow:external_exports.array(PermissionRuleSchema()).optional().describe("List of permission rules for allowed operations"),allowed:external_exports.array(external_exports.string()).optional().describe("Compatibility alias used by CCJK permission templates; Clavue preserves it without auto-translating it to canonical allow rules."),deny:external_exports.array(PermissionRuleSchema()).optional().describe("List of permission rules for denied operations"),denied:external_exports.array(external_exports.string()).optional().describe("Compatibility alias used by CCJK permission templates; Clavue preserves it without auto-translating it to canonical deny rules."),ask:external_exports.array(PermissionRuleSchema()).optional().describe("List of permission rules that should always prompt for confirmation"),defaultMode:external_exports.enum(PERMISSION_MODES).optional().describe("Default permission mode when Clavue needs access. External sessions fall back to acceptEdits when unset."),disableBypassPermissionsMode:external_exports.enum(["disable"]).optional().describe("Disable the ability to bypass permission prompts"),trustedOperatorMode:external_exports.boolean().optional().describe("Enable trusted operator workflows for release, deploy, SSH, and publishing commands after explicit user opt-in."),secretUsage:external_exports.enum(["off","ask","local-env-only","trusted-local"]).optional().describe("Controls whether local deploy credentials may be inherited by subprocesses. Provider runtime credentials are always scrubbed."),disableAutoMode:external_exports.enum(["disable"]).optional().describe("Disable auto mode"),additionalDirectories:external_exports.array(external_exports.string()).optional().describe("Additional directories to include in the permission scope"),trustedDirectories:external_exports.array(external_exports.string()).optional().describe("Compatibility alias used by CCJK permission templates; Clavue preserves it without auto-translating it to additionalDirectories."),autoApprovePatterns:external_exports.array(external_exports.string()).optional().describe("Compatibility field preserved for CCJK permission tooling")}).passthrough()),ExtraKnownMarketplaceSchema=lazySchema(()=>external_exports.object({source:MarketplaceSourceSchema().describe("Where to fetch the marketplace from"),installLocation:external_exports.string().optional().describe("Local cache path where marketplace manifest is stored (auto-generated if not provided)"),autoUpdate:external_exports.boolean().optional().describe("Whether to automatically update this marketplace and its installed plugins on startup")})),AllowedMcpServerEntrySchema=lazySchema(()=>external_exports.object({serverName:external_exports.string().regex(/^[a-zA-Z0-9_-]+$/,"Server name can only contain letters, numbers, hyphens, and underscores").optional().describe("Name of the MCP server that users are allowed to configure"),serverCommand:external_exports.array(external_exports.string()).min(1,"Server command must have at least one element (the command)").optional().describe("Command array [command, ...args] to match exactly for allowed stdio servers"),serverUrl:external_exports.string().optional().describe('URL pattern with wildcard support (e.g., "https://*.example.com/*") for allowed remote MCP servers')}).refine(data=>count2([data.serverName!==void 0,data.serverCommand!==void 0,data.serverUrl!==void 0],Boolean)===1,{message:'Entry must have exactly one of "serverName", "serverCommand", or "serverUrl"'})),DeniedMcpServerEntrySchema=lazySchema(()=>external_exports.object({serverName:external_exports.string().regex(/^[a-zA-Z0-9_-]+$/,"Server name can only contain letters, numbers, hyphens, and underscores").optional().describe("Name of the MCP server that is explicitly blocked"),serverCommand:external_exports.array(external_exports.string()).min(1,"Server command must have at least one element (the command)").optional().describe("Command array [command, ...args] to match exactly for blocked stdio servers"),serverUrl:external_exports.string().optional().describe('URL pattern with wildcard support (e.g., "https://*.example.com/*") for blocked remote MCP servers')}).refine(data=>count2([data.serverName!==void 0,data.serverCommand!==void 0,data.serverUrl!==void 0],Boolean)===1,{message:'Entry must have exactly one of "serverName", "serverCommand", or "serverUrl"'})),CUSTOMIZATION_SURFACES=["skills","agents","hooks","mcp"],SettingsSchema=lazySchema(()=>external_exports.object({$schema:external_exports.literal(CLAUDE_CODE_SETTINGS_SCHEMA_URL).optional().describe("JSON Schema reference for Clavue settings"),apiKeyHelper:external_exports.string().optional().describe("Path to a script that outputs authentication values"),awsCredentialExport:external_exports.string().optional().describe("Path to a script that exports AWS credentials"),awsAuthRefresh:external_exports.string().optional().describe("Path to a script that refreshes AWS authentication"),gcpAuthRefresh:external_exports.string().optional().describe("Command to refresh GCP authentication (e.g., gcloud auth application-default login)"),...isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_XAA)?{xaaIdp:external_exports.object({issuer:external_exports.string().url().describe("IdP issuer URL for OIDC discovery"),clientId:external_exports.string().describe("Clavue's client_id registered at the IdP"),callbackPort:external_exports.number().int().positive().optional().describe("Fixed loopback callback port for the IdP OIDC login. Only needed if the IdP does not honor RFC 8252 port-any matching.")}).optional().describe("XAA (SEP-990) IdP connection. Configure once; all XAA-enabled MCP servers reuse this.")}:{},fileSuggestion:external_exports.object({type:external_exports.literal("command"),command:external_exports.string()}).optional().describe("Custom file suggestion configuration for @ mentions"),respectGitignore:external_exports.boolean().optional().describe("Whether file picker should respect .gitignore files (default: true). Note: .ignore files are always respected."),cleanupPeriodDays:external_exports.number().nonnegative().int().optional().describe("Number of days to retain chat transcripts (default: 30). Setting to 0 disables session persistence entirely: no transcripts are written and existing transcripts are deleted at startup."),env:EnvironmentVariablesSchema().optional().describe("Environment variables to set for Clavue sessions"),attribution:external_exports.object({commit:external_exports.string().optional().describe("Attribution text for git commits, including any trailers. Empty string hides attribution."),pr:external_exports.string().optional().describe("Attribution text for pull request descriptions. Empty string hides attribution.")}).optional().describe("Customize attribution text for commits and PRs. Each field defaults to the standard Clavue attribution if not set."),includeCoAuthoredBy:external_exports.boolean().optional().describe("Deprecated: Use attribution instead. Whether to include Clavue's co-authored by attribution in commits and PRs (defaults to true)"),includeGitInstructions:external_exports.boolean().optional().describe("Include built-in commit and PR workflow instructions in Clavue's system prompt (default: true)"),permissions:PermissionsSchema().optional().describe("Tool usage permissions configuration"),model:external_exports.string().optional().describe("Override the default model used by Clavue"),availableModels:external_exports.array(external_exports.string()).optional().describe('Allowlist of models that users can select. Accepts family aliases ("opus" allows any opus version), version prefixes ("opus-4-5" allows only that version), and full model IDs. If undefined, all models are available. If empty array, only the default model is available. Typically set in managed settings by enterprise administrators.'),modelOverrides:external_exports.record(external_exports.string(),external_exports.string()).optional().describe('Override mapping from Anthropic model ID (e.g. "claude-opus-4-6") to provider-specific model ID (e.g. a Bedrock inference profile ARN). Typically set in managed settings by enterprise administrators.'),enableAllProjectMcpServers:external_exports.boolean().optional().describe("Whether to automatically approve all MCP servers in the project"),enabledMcpjsonServers:external_exports.array(external_exports.string()).optional().describe("List of approved MCP servers from .mcp.json"),disabledMcpjsonServers:external_exports.array(external_exports.string()).optional().describe("List of rejected MCP servers from .mcp.json"),allowedMcpServers:external_exports.array(AllowedMcpServerEntrySchema()).optional().describe("Enterprise allowlist of MCP servers that can be used. Applies to all scopes including enterprise servers from managed-mcp.json. If undefined, all servers are allowed. If empty array, no servers are allowed. Denylist takes precedence - if a server is on both lists, it is denied."),deniedMcpServers:external_exports.array(DeniedMcpServerEntrySchema()).optional().describe("Enterprise denylist of MCP servers that are explicitly blocked. If a server is on the denylist, it will be blocked across all scopes including enterprise. Denylist takes precedence over allowlist - if a server is on both lists, it is denied."),hooks:HooksSchema().optional().describe("Custom commands to run before/after tool executions"),worktree:external_exports.object({symlinkDirectories:external_exports.array(external_exports.string()).optional().describe('Directories to symlink from main repository to worktrees to avoid disk bloat. Must be explicitly configured - no directories are symlinked by default. Common examples: "node_modules", ".cache", ".bin"'),sparsePaths:external_exports.array(external_exports.string()).optional().describe("Directories to include when creating worktrees, via git sparse-checkout (cone mode). Dramatically faster in large monorepos \u2014 only the listed paths are written to disk.")}).optional().describe("Git worktree configuration for --worktree flag."),disableAllHooks:external_exports.boolean().optional().describe("Disable all hooks and statusLine execution"),defaultShell:external_exports.enum(["bash","powershell"]).optional().describe("Default shell for input-box ! commands. Defaults to 'bash' on all platforms (no Windows auto-flip)."),allowManagedHooksOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), only hooks from managed settings run. User, project, and local hooks are ignored."),allowedHttpHookUrls:external_exports.array(external_exports.string()).optional().describe('Allowlist of URL patterns that HTTP hooks may target. Supports * as a wildcard (e.g. "https://hooks.example.com/*"). When set, HTTP hooks with non-matching URLs are blocked. If undefined, all URLs are allowed. If empty array, no HTTP hooks are allowed. Arrays merge across settings sources (same semantics as allowedMcpServers).'),httpHookAllowedEnvVars:external_exports.array(external_exports.string()).optional().describe("Allowlist of environment variable names HTTP hooks may interpolate into headers. When set, each hook's effective allowedEnvVars is the intersection with this list. If undefined, no restriction is applied. Arrays merge across settings sources (same semantics as allowedMcpServers)."),allowManagedPermissionRulesOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), only permission rules (allow/deny/ask) from managed settings are respected. User, project, local, and CLI argument permission rules are ignored."),allowManagedMcpServersOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), allowedMcpServers is only read from managed settings. deniedMcpServers still merges from all sources, so users can deny servers for themselves. Users can still add their own MCP servers, but only the admin-defined allowlist applies."),strictPluginOnlyCustomization:external_exports.preprocess(v=>Array.isArray(v)?v.filter(x2=>CUSTOMIZATION_SURFACES.includes(x2)):v,external_exports.union([external_exports.boolean(),external_exports.array(external_exports.enum(CUSTOMIZATION_SURFACES))])).optional().catch(void 0).describe('When set in managed settings, blocks non-plugin customization sources for the listed surfaces. Array form locks specific surfaces (e.g. ["skills", "hooks"]); `true` locks all four; `false` is an explicit no-op. Blocked: ~/.clavue/{surface}/, .clavue/{surface}/ (project), settings.json hooks, .mcp.json. NOT blocked: managed (policySettings) sources, plugin-provided customizations. Composes with strictKnownMarketplaces for end-to-end admin control \u2014 plugins gated by marketplace allowlist, everything else blocked here.'),statusLine:external_exports.preprocess(value=>value&&typeof value=="object"&&!Array.isArray(value)&&Object.keys(value).length===0?void 0:value,external_exports.object({type:external_exports.literal("command"),command:external_exports.string(),padding:external_exports.number().optional()}).optional()).optional().catch(void 0).describe("Custom status line display configuration"),enabledPlugins:external_exports.record(external_exports.string(),external_exports.union([external_exports.array(external_exports.string()),external_exports.boolean(),external_exports.undefined()])).optional().describe('Enabled plugins using plugin-id@marketplace-id format. Example: { "formatter@anthropic-tools": true }. Also supports extended format with version constraints.'),extraKnownMarketplaces:external_exports.record(external_exports.string(),ExtraKnownMarketplaceSchema()).check(ctx=>{for(let[key,entry]of Object.entries(ctx.value))entry.source.source==="settings"&&entry.source.name!==key&&ctx.issues.push({code:"custom",input:entry.source.name,path:[key,"source","name"],message:`Settings-sourced marketplace name must match its extraKnownMarketplaces key (got key "${key}" but source.name "${entry.source.name}")`})}).optional().describe("Additional marketplaces to make available for this repository. Typically used in repository .clavue/settings.json to ensure team members have required plugin sources."),strictKnownMarketplaces:external_exports.array(MarketplaceSourceSchema()).optional().describe("Enterprise strict list of allowed marketplace sources. When set in managed settings, ONLY these exact sources can be added as marketplaces. The check happens BEFORE downloading, so blocked sources never touch the filesystem. Note: this is a policy gate only \u2014 it does NOT register marketplaces. To pre-register allowed marketplaces for users, also set extraKnownMarketplaces."),blockedMarketplaces:external_exports.array(MarketplaceSourceSchema()).optional().describe("Enterprise blocklist of marketplace sources. When set in managed settings, these exact sources are blocked from being added as marketplaces. The check happens BEFORE downloading, so blocked sources never touch the filesystem."),forceLoginMethod:external_exports.enum(["claudeai","console"]).optional().describe('Force a specific login method: "claudeai" for Claude Pro/Max, "console" for Console billing'),forceLoginOrgUUID:external_exports.string().optional().describe("Organization UUID to use for OAuth login"),otelHeadersHelper:external_exports.string().optional().describe("Path to a script that outputs OpenTelemetry headers"),outputStyle:external_exports.string().optional().describe("Controls the output style for assistant responses"),language:external_exports.string().optional().describe('Preferred language for Clavue responses and voice dictation (e.g., "japanese", "spanish")'),uiLocale:external_exports.enum(["zh-CN","en","ja-JP"]).optional().describe("Controls Clavue UI language and default conversation language profile (zh-CN / en / ja-JP)."),skipWebFetchPreflight:external_exports.boolean().optional().describe("Skip the WebFetch blocklist check for enterprise environments with restrictive security policies"),allowBrowser:external_exports.boolean().optional().describe("Allow Clavue to enable browser/page automation capability when the active tools or MCP/plugin surfaces support it"),sandbox:SandboxSettingsSchema().optional(),feedbackSurveyRate:external_exports.number().min(0).max(1).optional().describe("Probability (0\u20131) that the session quality survey appears when eligible. 0.05 is a reasonable starting point."),spinnerTipsEnabled:external_exports.boolean().optional().describe("Whether to show tips in the spinner"),spinnerVerbs:external_exports.object({mode:external_exports.enum(["append","replace"]),verbs:external_exports.array(external_exports.string())}).optional().describe('Customize spinner verbs. mode: "append" adds verbs to defaults, "replace" uses only your verbs.'),spinnerTipsOverride:external_exports.object({excludeDefault:external_exports.boolean().optional(),tips:external_exports.array(external_exports.string())}).optional().describe("Override spinner tips. tips: array of tip strings. excludeDefault: if true, only show custom tips (default: false)."),syntaxHighlightingDisabled:external_exports.boolean().optional().describe("Whether to disable syntax highlighting in diffs"),conversationTokenStatusEnabled:external_exports.boolean().optional().describe("Whether to show live conversation token status in the prompt footer and terminal title. Defaults to true."),orchestrationPreset:external_exports.enum(["safe","balanced","aggressive"]).optional().describe("Controls adaptive runtime model orchestration policy. safe is telemetry-first, balanced is the default production policy, and aggressive is reserved for fuller multi-model autonomy. Environment variable CLAVUE_ORCHESTRATION_PRESET overrides this setting."),orchestrationExecMode:external_exports.enum(["off","observe","full"]).optional().describe("Overrides the orchestration preset execution mode. Defaults to the selected preset: simple turns stay on fast paths, while complex, risky, fallback, or release turns add reviewer/verifier/judge gates. Use observe for telemetry-only planning or off for legacy single-model dispatch. Environment variable CLAVUE_ORCHESTRATION_EXEC overrides this setting."),orchestrationRoleChainEnabled:external_exports.boolean().optional().describe("Enable reviewer/verifier/judge role-chain execution for high-risk, planning, fusion-review, shadow-review, and release-gate modes. Defaults to true. Environment variable CLAVUE_ORCHESTRATION_ROLE_CHAIN overrides this setting."),orchestrationAdversarialReviewEnabled:external_exports.boolean().optional().describe("Enable adversarial reviewer chains for complex or high-risk implementation turns. Product default is true (balanced/aggressive presets). Set false only to force lean hand+eye demotion. Environment variable CLAVUE_ORCHESTRATION_ADVERSARIAL overrides this setting."),modelFailover:external_exports.object({enabled:external_exports.boolean().optional().describe("When combo/role models fail (401/5xx/unavailable), fail over to primary or other healthy slots instead of ending the turn. Default true. Env CLAVUE_SLOT_FAILOVER overrides."),preferPrimary:external_exports.boolean().optional().describe("Prefer mainLoop/primary as the first failover target for aux roles (compute/review/plan). Default true."),softSkipReview:external_exports.boolean().optional().describe("If review/judge cannot be recovered, soft-skip that phase and continue the main path. Default true. Env CLAVUE_REVIEW_SOFT_SKIP overrides."),maxHops:external_exports.number().int().min(1).max(8).optional().describe("Max model hops per failed role step (default 3). Env CLAVUE_SLOT_FAILOVER_MAX overrides.")}).optional().describe("Combo-slot failover when models return 401/5xx/unavailable. Keeps sessions alive by falling back to primary or other configured slots."),terminalTitleFromRename:external_exports.boolean().optional().describe("Whether /rename updates the terminal tab title (defaults to true). Set to false to keep auto-generated topic titles."),alwaysThinkingEnabled:external_exports.boolean().optional().describe("Model deep-thinking. Product default false (opt-in). When true, thinking is enabled for supported models. Absent = off (schema 11+). Not the same as pager show_thinking (journal visibility)."),effortLevel:external_exports.enum(["low","medium","high","xhigh","max","ultra"]).optional().catch(void 0).describe("Persisted main-loop effort. Product default medium (schema 11+). Session /effort pin overrides for one chat."),advisorModel:external_exports.string().optional().describe("Advisor model for the server-side advisor tool."),fastMode:external_exports.boolean().optional().describe("When true, fast mode is enabled. When absent or false, fast mode is off."),fastModePerSessionOptIn:external_exports.boolean().optional().describe("When true, fast mode does not persist across sessions. Each session starts with fast mode off."),promptSuggestionEnabled:external_exports.boolean().optional().describe("When false, prompt suggestions are disabled. When absent or true, prompt suggestions are enabled."),showClearContextOnPlanAccept:external_exports.boolean().optional().describe('When true, the plan-approval dialog offers a "clear context" option. Defaults to false.'),agent:external_exports.string().optional().describe("Name of an agent (built-in or custom) to use for the main thread. Applies the agent's system prompt, tool restrictions, and model."),companyAnnouncements:external_exports.array(external_exports.string()).optional().describe("Company announcements to display at startup (one will be randomly selected if multiple are provided)"),skillOverrides:external_exports.enum(["off","user-invocable-only","name-only"]).optional().catch(void 0).describe("Restrict which skills the model can see and invoke through SkillTool. 'off' disables SkillTool entirely (the model can't invoke skills, but users can still type /<skill>). 'user-invocable-only' hides skills that exist solely as model-invoked side-effects (i.e. with disableModelInvocation set or userInvocable === false). 'name-only' shows skill names but suppresses descriptions/whenToUse in the listing \u2014 useful for token-tight contexts. Unset means no restriction. Affects both the SkillTool prompt listing and the in-conversation skill_listing attachment."),pluginConfigs:external_exports.record(external_exports.string(),external_exports.object({mcpServers:external_exports.record(external_exports.string(),external_exports.record(external_exports.string(),external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.string())]))).optional().describe("User configuration values for MCP servers keyed by server name"),options:external_exports.record(external_exports.string(),external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.string())])).optional().describe("Non-sensitive option values from plugin manifest userConfig, keyed by option name. Sensitive values go to secure storage instead.")})).optional().describe("Per-plugin configuration including MCP server user configs, keyed by plugin ID (plugin@marketplace format)"),remote:external_exports.object({defaultEnvironmentId:external_exports.string().optional().describe("Default environment ID to use for remote sessions")}).optional().describe("Remote session configuration"),autoUpdatesChannel:external_exports.enum(["latest","stable"]).optional().describe("Release channel for auto-updates (latest or stable)"),minimumVersion:external_exports.string().optional().describe("Minimum version to stay on - prevents downgrades when switching to stable channel"),plansDirectory:external_exports.string().optional().describe("Custom directory for plan files, relative to project root. If not set, defaults to ~/.clavue/plans/"),...process.env.USER_TYPE==="ant"?{classifierPermissionsEnabled:external_exports.boolean().optional().describe("Enable AI-based classification for Bash(prompt:...) permission rules")}:{},channelsEnabled:external_exports.boolean().optional().describe("Teams/Enterprise opt-in for channel notifications (MCP servers with the claude/channel capability pushing inbound messages). Default off. Set true to allow; users then select servers via --channels."),allowedChannelPlugins:external_exports.array(external_exports.object({marketplace:external_exports.string(),plugin:external_exports.string()})).optional().describe("Teams/Enterprise allowlist of channel plugins. When set, replaces the default Anthropic allowlist \u2014 admins decide which plugins may push inbound messages. Undefined falls back to the default. Requires channelsEnabled: true."),prefersReducedMotion:external_exports.boolean().optional().describe("Reduce or disable animations for accessibility (spinner shimmer, flash effects, etc.)"),officialMcp:external_exports.enum(["auto","on","off"]).optional().describe("Official Clavue MCP (web_search): auto (Cloud ON / third-party OFF), on, or off. Configure in Settings \xB7 Integrations or /mcp. Env CLAVUE_OFFICIAL_MCP overrides when set."),imageGenMode:external_exports.enum(["auto","official","byok","off"]).optional().describe("Image gen route: auto (BYOK if set else clavue-img), official, byok, or off. Pager Settings \xB7 Image gen. Env CLAVUE_IMAGE_GEN_MODE overrides."),imageGenPrefer:external_exports.enum(["quality","fast","auto"]).optional().describe("Official clavue-img: always z-image-turbo first; Grok Imagine is fallback only. Env CLAVUE_IMAGE_GEN_PREFER overrides."),imageGenByokBaseUrl:external_exports.string().optional().describe("Third-party image API base URL (OpenAI-compatible). Env CLAVUE_IMAGE_GEN_BASE_URL overrides."),imageGenByokModel:external_exports.string().optional().describe("Third-party image model (default grok-imagine-image-quality). Env CLAVUE_IMAGE_GEN_MODEL overrides."),imageGenByokApiKey:external_exports.string().optional().describe("Third-party image API key. Env CLAVUE_IMAGE_GEN_API_KEY preferred for CI. Never commit."),autoMemoryEnabled:external_exports.boolean().optional().describe("Enable auto-memory for this project. When false, Clavue will not read from or write to the auto-memory directory."),autoMemoryDirectory:external_exports.string().optional().describe("Custom directory path for auto-memory storage. Supports ~/ prefix for home directory expansion. Ignored if set in projectSettings (checked-in .clavue/settings.json) for security. When unset, defaults to ~/.clavue/projects/<sanitized-cwd>/memory/."),autoDreamEnabled:external_exports.boolean().optional().describe("Enable background memory consolidation (auto-dream). When set, overrides the server-side default."),memoryVectorSearch:external_exports.enum(["local","provider","off"]).optional().describe("Memory retrieval vector tier (Track C2). local = offline deterministic embedder (default); provider = optional remote embeddings when memoryEmbeddingModel is set; off = BM25-lite+MMR only. Env CLAVUE_MEMORY_VECTOR_SEARCH overrides."),memoryEmbeddingModel:external_exports.string().optional().describe("Provider embedding model name when memoryVectorSearch=provider. No default \u2014 provider tier is opt-in. Env CLAVUE_MEMORY_EMBEDDING_MODEL overrides."),memoryDecayHalfLifeDays:external_exports.number().optional().describe("Temporal decay half-life in days for non-evergreen memories (Grok parity default 7). Set 0 to disable decay. Env CLAVUE_MEMORY_DECAY_HALF_LIFE_DAYS overrides."),showThinkingSummaries:external_exports.boolean().optional().describe("Show thinking summaries in the transcript view (ctrl+o). Default: false."),skipDangerousModePermissionPrompt:external_exports.boolean().optional().describe("Whether the user has accepted the bypass permissions mode dialog"),skipAutoPermissionPrompt:external_exports.boolean().optional().describe("Whether the user has accepted the auto mode opt-in dialog"),useAutoModeDuringPlan:external_exports.boolean().optional().describe("Whether plan mode uses auto mode semantics when auto mode is available (default: true)"),autoMode:external_exports.object({allow:external_exports.array(external_exports.string()).optional().describe('Rules for the auto mode classifier allow section. Include the literal string "$defaults" to inherit the built-in rules at that position.'),soft_deny:external_exports.array(external_exports.string()).optional().describe('Rules for the auto mode classifier deny section. Include the literal string "$defaults" to inherit the built-in rules at that position.'),hard_deny:external_exports.array(external_exports.string()).optional().describe('Rules for the auto mode classifier that block unconditionally \u2014 user intent does not clear these. Include the literal string "$defaults" to inherit the built-in rules at that position. Aligned with Claude Code 2.1.136.'),...process.env.USER_TYPE==="ant"?{deny:external_exports.array(external_exports.string()).optional()}:{},environment:external_exports.array(external_exports.string()).optional().describe('Entries for the auto mode classifier environment section. Include the literal string "$defaults" to inherit the built-in entries at that position.')}).optional().describe("Auto mode classifier prompt customization"),disableAutoMode:external_exports.enum(["disable"]).optional().describe("Disable auto mode"),sshConfigs:external_exports.array(external_exports.object({id:external_exports.string().describe("Unique identifier for this SSH config. Used to match configs across settings sources."),name:external_exports.string().describe("Display name for the SSH connection"),sshHost:external_exports.string().describe('SSH host in format "user@hostname" or "hostname", or a host alias from ~/.ssh/config'),sshPort:external_exports.number().int().optional().describe("SSH port (default: 22)"),sshIdentityFile:external_exports.string().optional().describe("Path to SSH identity file (private key)"),startDirectory:external_exports.string().optional().describe("Default working directory on the remote host. Supports tilde expansion (e.g. ~/projects). If not specified, defaults to the remote user home directory. Can be overridden by the [dir] positional argument in `claude ssh <config> [dir]`.")})).optional().describe("SSH connection configurations for remote environments. Typically set in managed settings by enterprise administrators to pre-configure SSH connections for team members."),claudeMdExcludes:external_exports.array(external_exports.string()).optional().describe('Glob patterns or absolute paths of \u0043LAUDE.md files to exclude from loading. Patterns are matched against absolute file paths using picomatch. Only applies to User, Project, and Local memory types (Managed/policy files cannot be excluded). Examples: "/home/user/monorepo/\u0043LAUDE.md", "**/code/\u0043LAUDE.md", "**/some-dir/.clavue/rules/**"'),pluginTrustMessage:external_exports.string().optional().describe('Custom message to append to the plugin trust warning shown before installation. Only read from policy settings (managed-settings.json / MDM). Useful for enterprise administrators to add organization-specific context (e.g., "All plugins from our internal marketplace are vetted and approved.").')}).passthrough())}});var init_schemaOutput=__esm({"src/utils/settings/schemaOutput.ts"(){init_slowOperations();init_types2()}});function getValidationTip(context){let matcher=TIP_MATCHERS.find(m2=>m2.matches(context));if(!matcher)return null;let tip={...matcher.tip};if(context.code==="invalid_value"&&context.enumValues&&!tip.suggestion&&(tip.suggestion=`Valid values: ${context.enumValues.map(v=>`"${v}"`).join(", ")}`),!tip.docLink&&context.path){let pathPrefix=context.path.split(".")[0];pathPrefix&&(tip.docLink=PATH_DOC_LINKS[pathPrefix])}return tip}var DOCUMENTATION_BASE,TIP_MATCHERS,PATH_DOC_LINKS,init_validationTips=__esm({"src/utils/settings/validationTips.ts"(){DOCUMENTATION_BASE="https://code.\u0063laude.com/docs/en",TIP_MATCHERS=[{matches:__name(ctx=>ctx.path==="permissions.defaultMode"&&ctx.code==="invalid_value","matches"),tip:{suggestion:'Valid modes: "acceptEdits" (faster editing flow), "trustedOps" (auto-approve edits but ask before shell commands), "plan" (analysis only), "bypassPermissions" (auto-accept all), or "default" (legacy stricter prompts). "dontAsk" is deprecated; migrate it to "trustedOps" for release/build/deploy work.',docLink:`${DOCUMENTATION_BASE}/iam#permission-modes`}},{matches:__name(ctx=>ctx.path==="apiKeyHelper"&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Provide a shell command that outputs your API key to stdout. The script should output only the API key. Example: "/bin/generate_temp_api_key.sh"'}},{matches:__name(ctx=>ctx.path==="cleanupPeriodDays"&&ctx.code==="too_small"&&ctx.expected==="0","matches"),tip:{suggestion:"Must be 0 or greater. Set a positive number for days to retain transcripts (default is 30). Setting 0 disables session persistence entirely: no transcripts are written and existing transcripts are deleted at startup."}},{matches:__name(ctx=>ctx.path.startsWith("env.")&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Environment variables must be strings. Wrap numbers and booleans in quotes. Example: "DEBUG": "true", "PORT": "3000"',docLink:`${DOCUMENTATION_BASE}/settings#environment-variables`}},{matches:__name(ctx=>(ctx.path==="permissions.allow"||ctx.path==="permissions.deny")&&ctx.code==="invalid_type"&&ctx.expected==="array","matches"),tip:{suggestion:'Permission rules must be in an array. Format: ["Tool(specifier)"]. Examples: ["Bash(npm run build)", "Edit(docs/**)", "Read(~/.zshrc)"]. Use * for wildcards.'}},{matches:__name(ctx=>ctx.path.includes("hooks")&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Hooks use a matcher + hooks array. The matcher is a string: a tool name ("Bash"), pipe-separated list ("Edit|Write"), or empty to match all. Example: {"PostToolUse": [{"matcher": "Edit|Write", "hooks": [{"type": "command", "command": "echo Done"}]}]}'}},{matches:__name(ctx=>ctx.code==="invalid_type"&&ctx.expected==="boolean","matches"),tip:{suggestion:'Use true or false without quotes. Example: "includeCoAuthoredBy": true'}},{matches:__name(ctx=>ctx.code==="unrecognized_keys","matches"),tip:{suggestion:"Check for typos or refer to the documentation for valid fields",docLink:`${DOCUMENTATION_BASE}/settings`}},{matches:__name(ctx=>ctx.code==="invalid_value"&&ctx.enumValues!==void 0,"matches"),tip:{suggestion:void 0}},{matches:__name(ctx=>ctx.code==="invalid_type"&&ctx.expected==="object"&&ctx.received===null&&ctx.path==="","matches"),tip:{suggestion:"Check for missing commas, unmatched brackets, or trailing commas. Use a JSON validator to identify the exact syntax error."}},{matches:__name(ctx=>ctx.path==="permissions.additionalDirectories"&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Must be an array of directory paths. Example: ["~/projects", "/tmp/workspace"]. You can also use --add-dir flag or /add-dir command',docLink:`${DOCUMENTATION_BASE}/iam#working-directories`}}],PATH_DOC_LINKS={permissions:`${DOCUMENTATION_BASE}/iam#configuring-permissions`,env:`${DOCUMENTATION_BASE}/settings#environment-variables`,hooks:`${DOCUMENTATION_BASE}/hooks`};__name(getValidationTip,"getValidationTip")}});function isInvalidTypeIssue(issue2){return issue2.code==="invalid_type"}function isInvalidValueIssue(issue2){return issue2.code==="invalid_value"}function isUnrecognizedKeysIssue(issue2){return issue2.code==="unrecognized_keys"}function isTooSmallIssue(issue2){return issue2.code==="too_small"}function getReceivedType(value){return value===null?"null":value===void 0?"undefined":Array.isArray(value)?"array":typeof value}function extractReceivedFromMessage(msg){let match=msg.match(/received (\w+)/);return match?match[1]:void 0}function formatZodError(error40,filePath){return error40.issues.map(issue2=>{let path10=issue2.path.map(String).join("."),message=issue2.message,expected,enumValues,expectedValue,receivedValue,invalidValue;if(isInvalidValueIssue(issue2))enumValues=issue2.values.map(v=>String(v)),expectedValue=enumValues.join(" | "),receivedValue=void 0,invalidValue=void 0;else if(isInvalidTypeIssue(issue2)){expectedValue=issue2.expected;let receivedType=extractReceivedFromMessage(issue2.message);receivedValue=receivedType??getReceivedType(issue2.input),invalidValue=receivedType??getReceivedType(issue2.input)}else isTooSmallIssue(issue2)?expectedValue=String(issue2.minimum):issue2.code==="custom"&&"params"in issue2&&(receivedValue=issue2.params.received,invalidValue=receivedValue);let tip=getValidationTip({path:path10,code:issue2.code,expected:expectedValue,received:receivedValue,enumValues,message:issue2.message,value:receivedValue});if(isInvalidValueIssue(issue2))expected=enumValues?.map(v=>`"${v}"`).join(", "),message=`Invalid value. Expected one of: ${expected}`;else if(isInvalidTypeIssue(issue2)){let receivedType=extractReceivedFromMessage(issue2.message)??getReceivedType(issue2.input);issue2.expected==="object"&&receivedType==="null"&&path10===""?message="Invalid or malformed JSON":message=`Expected ${issue2.expected}, but received ${receivedType}`}else if(isUnrecognizedKeysIssue(issue2)){let keys2=issue2.keys.join(", ");message=`Unrecognized ${plural(issue2.keys.length,"field")}: ${keys2}`}else isTooSmallIssue(issue2)&&(message=`Number must be greater than or equal to ${issue2.minimum}`,expected=String(issue2.minimum));return{file:filePath,path:path10,message,expected,invalidValue,suggestion:tip?.suggestion,docLink:tip?.docLink}})}function filterInvalidPermissionRules(data,filePath){if(!data||typeof data!="object")return[];let obj=data;if(!obj.permissions||typeof obj.permissions!="object")return[];let perms=obj.permissions,warnings=[];for(let key of["allow","deny","ask"]){let rules=perms[key];Array.isArray(rules)&&(perms[key]=rules.filter(rule=>{if(typeof rule!="string")return warnings.push({file:filePath,path:`permissions.${key}`,message:`Non-string value in ${key} array was removed`,invalidValue:rule}),!1;let result2=validatePermissionRule(rule);if(!result2.valid){let message=`Invalid permission rule "${rule}" was skipped`;return result2.error&&(message+=`: ${result2.error}`),result2.suggestion&&(message+=`. ${result2.suggestion}`),warnings.push({file:filePath,path:`permissions.${key}`,message,invalidValue:rule}),!1}return!0}))}return warnings}var init_validation2=__esm({"src/utils/settings/validation.ts"(){init_slowOperations();init_stringUtils();init_permissionValidation();init_schemaOutput();init_types2();init_validationTips();__name(isInvalidTypeIssue,"isInvalidTypeIssue");__name(isInvalidValueIssue,"isInvalidValueIssue");__name(isUnrecognizedKeysIssue,"isUnrecognizedKeysIssue");__name(isTooSmallIssue,"isTooSmallIssue");__name(getReceivedType,"getReceivedType");__name(extractReceivedFromMessage,"extractReceivedFromMessage");__name(formatZodError,"formatZodError");__name(filterInvalidPermissionRules,"filterInvalidPermissionRules")}});var init_constants5=__esm({"src/utils/settings/mdm/constants.ts"(){}});var init_rawRead=__esm({"src/utils/settings/mdm/rawRead.ts"(){init_constants5()}});function getMdmSettings(){return mdmCache??EMPTY_RESULT}function getHkcuSettings(){return hkcuCache??EMPTY_RESULT}var EMPTY_RESULT,mdmCache,hkcuCache,init_settings=__esm({"src/utils/settings/mdm/settings.ts"(){init_debug();init_diagLogs();init_fileRead();init_fsOperations();init_json();init_startupProfiler();init_managedPath();init_types2();init_validation2();init_constants5();init_rawRead();EMPTY_RESULT=Object.freeze({settings:{},errors:[]}),mdmCache=null,hkcuCache=null;__name(getMdmSettings,"getMdmSettings");__name(getHkcuSettings,"getHkcuSettings")}});import{dirname as dirname9,join as join14,resolve as resolve6}from"path";import{chmodSync as chmodSync2}from"fs";function getManagedSettingsFilePath(){return join14(getManagedFilePath(),"managed-settings.json")}function loadManagedFileSettings(){let errors=[],merged={},found=!1,{settings,errors:baseErrors}=parseSettingsFile(getManagedSettingsFilePath());errors.push(...baseErrors),settings&&Object.keys(settings).length>0&&(merged=mergeWith_default(merged,settings,settingsMergeCustomizer),found=!0);let dropInDir=getManagedSettingsDropInDir();try{let entries=getFsImplementation().readdirSync(dropInDir).filter(d=>(d.isFile()||d.isSymbolicLink())&&d.name.endsWith(".json")&&!d.name.startsWith(".")).map(d=>d.name).sort();for(let name of entries){let{settings:settings2,errors:fileErrors}=parseSettingsFile(join14(dropInDir,name));errors.push(...fileErrors),settings2&&Object.keys(settings2).length>0&&(merged=mergeWith_default(merged,settings2,settingsMergeCustomizer),found=!0)}}catch(e2){let code=getErrnoCode(e2);code!=="ENOENT"&&code!=="ENOTDIR"&&logError2(e2)}return{settings:found?merged:null,errors}}function handleFileSystemError(error40,path10){typeof error40=="object"&&error40&&"code"in error40&&error40.code==="ENOENT"?logForDebugging(`Broken symlink or missing file encountered for settings.json at path: ${path10}`):logError2(error40)}function parseSettingsFile(path10){let cached2=getCachedParsedFile(path10);if(cached2)return{settings:cached2.settings?clone2(cached2.settings):null,errors:cached2.errors};let result2=parseSettingsFileUncached(path10);return setCachedParsedFile(path10,result2),{settings:result2.settings?clone2(result2.settings):null,errors:result2.errors}}function parseSettingsFileUncached(path10){try{let{resolvedPath}=safeResolvePath(getFsImplementation(),path10),content=readFileSync4(resolvedPath);if(content.trim()==="")return{settings:{},errors:[]};let data=safeParseJSON(content,!1),ruleWarnings=filterInvalidPermissionRules(data,path10),result2=SettingsSchema().safeParse(data);if(!result2.success){let errors=formatZodError(result2.error,path10);return{settings:null,errors:[...ruleWarnings,...errors]}}return{settings:result2.data,errors:ruleWarnings}}catch(error40){return handleFileSystemError(error40,path10),{settings:null,errors:[]}}}function getSettingsRootPathForSource(source){switch(source){case"userSettings":return resolve6(getClaudeConfigHomeDir());case"policySettings":case"projectSettings":case"localSettings":return resolve6(getOriginalCwd());case"flagSettings":{let path10=getFlagSettingsPath();return path10?dirname9(resolve6(path10)):resolve6(getOriginalCwd())}}}function getUserSettingsFilePath(){return getUseCoworkPlugins()||isEnvTruthy(process.env.CLAUDE_CODE_USE_COWORK_PLUGINS)?"cowork_settings.json":"settings.json"}function getSettingsFilePathForSource(source){switch(source){case"userSettings":return join14(getSettingsRootPathForSource(source),getUserSettingsFilePath());case"projectSettings":case"localSettings":return join14(getSettingsRootPathForSource(source),getRelativeSettingsFilePathForSource(source));case"policySettings":return getManagedSettingsFilePath();case"flagSettings":return getFlagSettingsPath()}}function getRelativeSettingsFilePathForSource(source){switch(source){case"projectSettings":return join14(".clavue","settings.json");case"localSettings":return join14(".clavue","settings.local.json")}}function getSettingsForSource(source){let cached2=getCachedSettingsForSource(source);if(cached2!==void 0)return cached2;let result2=getSettingsForSourceUncached(source);return setCachedSettingsForSource(source,result2),result2}function getSettingsForSourceUncached(source){if(source==="policySettings"){let remoteSettings=getRemoteManagedSettingsSyncFromCache();if(remoteSettings&&Object.keys(remoteSettings).length>0)return remoteSettings;let mdmResult=getMdmSettings();if(Object.keys(mdmResult.settings).length>0)return mdmResult.settings;let{settings:fileSettings2}=loadManagedFileSettings();if(fileSettings2)return fileSettings2;let hkcu=getHkcuSettings();return Object.keys(hkcu.settings).length>0?hkcu.settings:null}let settingsFilePath=getSettingsFilePathForSource(source),{settings:fileSettings}=settingsFilePath?parseSettingsFile(settingsFilePath):{settings:null};if(source==="flagSettings"){let inlineSettings=getFlagSettingsInline();if(inlineSettings){let parsed=SettingsSchema().safeParse(inlineSettings);if(parsed.success)return mergeWith_default(fileSettings||{},parsed.data,settingsMergeCustomizer)}}return fileSettings}function updateSettingsForSource(source,settings){if(source==="policySettings"||source==="flagSettings")return{error:null};let filePath=getSettingsFilePathForSource(source);if(!filePath)return{error:null};try{let settingsDir=dirname9(filePath);if(getFsImplementation().mkdirSync(settingsDir,{...process.platform!=="win32"&&(source==="userSettings"||source==="localSettings")?{mode:448}:{}}),process.platform!=="win32"&&(source==="userSettings"||source==="localSettings"))try{chmodSync2(settingsDir,448)}catch{}let existingSettings=getSettingsForSourceUncached(source);if(!existingSettings){let content=null;try{content=readFileSync4(filePath)}catch(e2){if(!isENOENT(e2))throw e2}if(content!==null){let rawData=safeParseJSON(content);if(rawData===null)return{error:new Error(`Invalid JSON syntax in settings file at ${filePath}`)};rawData&&typeof rawData=="object"&&(existingSettings=rawData,logForDebugging(`Using raw settings from ${filePath} due to validation failure`))}}let updatedSettings=mergeWith_default(existingSettings||{},settings,(_objValue,srcValue,key,object2)=>{if(srcValue===void 0&&object2&&typeof key=="string"){delete object2[key];return}if(Array.isArray(srcValue))return srcValue});markInternalWrite(filePath);let shouldForcePrivateSettingsMode=process.platform!=="win32"&&(source==="userSettings"||source==="localSettings");writeFileSyncAndFlush(filePath,jsonStringify(updatedSettings,null,2)+`
177
- `,shouldForcePrivateSettingsMode?{encoding:"utf-8",mode:384}:{encoding:"utf-8"}),shouldForcePrivateSettingsMode&&chmodSync2(filePath,384),resetSettingsCache(),source==="localSettings"&&addFileGlobRuleToGitignore(getRelativeSettingsFilePathForSource("localSettings"),getOriginalCwd())}catch(e2){let error40=new Error(`Failed to read raw settings from ${filePath}: ${e2}`);return logError2(error40),{error:error40}}return{error:null}}function mergeArrays(targetArray,sourceArray){return uniq2([...targetArray,...sourceArray])}function settingsMergeCustomizer(objValue,srcValue){if(Array.isArray(objValue)&&Array.isArray(srcValue))return mergeArrays(objValue,srcValue)}function loadSettingsFromDisk(){if(isLoadingSettings)return{settings:{},errors:[]};let startTime=Date.now();profileCheckpoint("loadSettingsFromDisk_start"),logForDiagnosticsNoPII("info","settings_load_started"),isLoadingSettings=!0;try{let pluginSettings=getPluginSettingsBase(),mergedSettings={};pluginSettings&&(mergedSettings=mergeWith_default(mergedSettings,pluginSettings,settingsMergeCustomizer));let allErrors=[],seenErrors=new Set,seenFiles=new Set;for(let source of getEnabledSettingSources()){if(source==="policySettings"){let policySettings=null,policyErrors=[],remoteSettings=getRemoteManagedSettingsSyncFromCache();if(remoteSettings&&Object.keys(remoteSettings).length>0){let result2=SettingsSchema().safeParse(remoteSettings);result2.success?policySettings=result2.data:policyErrors.push(...formatZodError(result2.error,"remote managed settings"))}if(!policySettings){let mdmResult=getMdmSettings();Object.keys(mdmResult.settings).length>0&&(policySettings=mdmResult.settings),policyErrors.push(...mdmResult.errors)}if(!policySettings){let{settings,errors}=loadManagedFileSettings();settings&&(policySettings=settings),policyErrors.push(...errors)}if(!policySettings){let hkcu=getHkcuSettings();Object.keys(hkcu.settings).length>0&&(policySettings=hkcu.settings),policyErrors.push(...hkcu.errors)}policySettings&&(mergedSettings=mergeWith_default(mergedSettings,policySettings,settingsMergeCustomizer));for(let error40 of policyErrors){let errorKey=`${error40.file}:${error40.path}:${error40.message}`;seenErrors.has(errorKey)||(seenErrors.add(errorKey),allErrors.push(error40))}continue}let filePath=getSettingsFilePathForSource(source);if(filePath){let resolvedPath=resolve6(filePath);if(!seenFiles.has(resolvedPath)){seenFiles.add(resolvedPath);let{settings,errors}=parseSettingsFile(filePath);for(let error40 of errors){let errorKey=`${error40.file}:${error40.path}:${error40.message}`;seenErrors.has(errorKey)||(seenErrors.add(errorKey),allErrors.push(error40))}settings&&(mergedSettings=mergeWith_default(mergedSettings,settings,settingsMergeCustomizer))}}if(source==="flagSettings"){let inlineSettings=getFlagSettingsInline();if(inlineSettings){let parsed=SettingsSchema().safeParse(inlineSettings);parsed.success&&(mergedSettings=mergeWith_default(mergedSettings,parsed.data,settingsMergeCustomizer))}}}return logForDiagnosticsNoPII("info","settings_load_completed",{duration_ms:Date.now()-startTime,source_count:seenFiles.size,error_count:allErrors.length}),{settings:mergedSettings,errors:allErrors}}finally{isLoadingSettings=!1}}function getInitialSettings(){let{settings}=getSettingsWithErrors();return settings||{}}function getSettingsWithErrors(){let cached2=getSessionSettingsCache();if(cached2!==null)return cached2;let result2=loadSettingsFromDisk();return profileCheckpoint("loadSettingsFromDisk_end"),setSessionSettingsCache(result2),result2}var isLoadingSettings,init_settings2=__esm({"src/utils/settings/settings.ts"(){init_mergeWith();init_state();init_syncCacheState();init_array4();init_debug();init_diagLogs();init_envUtils();init_errors2();init_file();init_fileRead();init_fsOperations();init_gitignore();init_json();init_log3();init_platform2();init_ccjkCompatibility();init_slowOperations();init_startupProfiler();init_constants2();init_internalWrites();init_managedPath();init_settings();init_settingsCache();init_types2();init_validation2();__name(getManagedSettingsFilePath,"getManagedSettingsFilePath");__name(loadManagedFileSettings,"loadManagedFileSettings");__name(handleFileSystemError,"handleFileSystemError");__name(parseSettingsFile,"parseSettingsFile");__name(parseSettingsFileUncached,"parseSettingsFileUncached");__name(getSettingsRootPathForSource,"getSettingsRootPathForSource");__name(getUserSettingsFilePath,"getUserSettingsFilePath");__name(getSettingsFilePathForSource,"getSettingsFilePathForSource");__name(getRelativeSettingsFilePathForSource,"getRelativeSettingsFilePathForSource");__name(getSettingsForSource,"getSettingsForSource");__name(getSettingsForSourceUncached,"getSettingsForSourceUncached");__name(updateSettingsForSource,"updateSettingsForSource");__name(mergeArrays,"mergeArrays");__name(settingsMergeCustomizer,"settingsMergeCustomizer");isLoadingSettings=!1;__name(loadSettingsFromDisk,"loadSettingsFromDisk");__name(getInitialSettings,"getInitialSettings");__name(getSettingsWithErrors,"getSettingsWithErrors")}});var init_helpers=__esm({"../../node_modules/agent-base/dist/helpers.js"(){}});import*as net from"net";import*as http3 from"http";import{Agent as HttpsAgent}from"https";var INTERNAL,Agent2,init_dist=__esm({"../../node_modules/agent-base/dist/index.js"(){init_helpers();INTERNAL=Symbol("AgentBaseInternalState"),Agent2=class extends http3.Agent{static{__name(this,"Agent")}constructor(opts){super(opts),this[INTERNAL]={}}isSecureEndpoint(options){if(options){if(typeof options.secureEndpoint=="boolean")return options.secureEndpoint;if(typeof options.protocol=="string")return options.protocol==="https:"}let{stack}=new Error;return typeof stack!="string"?!1:stack.split(`
176
+ `+" ".repeat(index))}}}});var init_format=__esm({"../../node_modules/jsonc-parser/lib/esm/impl/format.js"(){"use strict";init_scanner();init_string_intern()}});var ParseOptions,init_parser3=__esm({"../../node_modules/jsonc-parser/lib/esm/impl/parser.js"(){"use strict";init_scanner();(function(ParseOptions2){ParseOptions2.DEFAULT={allowTrailingComma:!1}})(ParseOptions||(ParseOptions={}))}});var init_edit=__esm({"../../node_modules/jsonc-parser/lib/esm/impl/edit.js"(){"use strict";init_format();init_parser3()}});var ScanError,SyntaxKind,ParseErrorCode,init_main2=__esm({"../../node_modules/jsonc-parser/lib/esm/main.js"(){"use strict";init_format();init_edit();init_scanner();init_parser3();(function(ScanError2){ScanError2[ScanError2.None=0]="None",ScanError2[ScanError2.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",ScanError2[ScanError2.UnexpectedEndOfString=2]="UnexpectedEndOfString",ScanError2[ScanError2.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",ScanError2[ScanError2.InvalidUnicode=4]="InvalidUnicode",ScanError2[ScanError2.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",ScanError2[ScanError2.InvalidCharacter=6]="InvalidCharacter"})(ScanError||(ScanError={}));(function(SyntaxKind2){SyntaxKind2[SyntaxKind2.OpenBraceToken=1]="OpenBraceToken",SyntaxKind2[SyntaxKind2.CloseBraceToken=2]="CloseBraceToken",SyntaxKind2[SyntaxKind2.OpenBracketToken=3]="OpenBracketToken",SyntaxKind2[SyntaxKind2.CloseBracketToken=4]="CloseBracketToken",SyntaxKind2[SyntaxKind2.CommaToken=5]="CommaToken",SyntaxKind2[SyntaxKind2.ColonToken=6]="ColonToken",SyntaxKind2[SyntaxKind2.NullKeyword=7]="NullKeyword",SyntaxKind2[SyntaxKind2.TrueKeyword=8]="TrueKeyword",SyntaxKind2[SyntaxKind2.FalseKeyword=9]="FalseKeyword",SyntaxKind2[SyntaxKind2.StringLiteral=10]="StringLiteral",SyntaxKind2[SyntaxKind2.NumericLiteral=11]="NumericLiteral",SyntaxKind2[SyntaxKind2.LineCommentTrivia=12]="LineCommentTrivia",SyntaxKind2[SyntaxKind2.BlockCommentTrivia=13]="BlockCommentTrivia",SyntaxKind2[SyntaxKind2.LineBreakTrivia=14]="LineBreakTrivia",SyntaxKind2[SyntaxKind2.Trivia=15]="Trivia",SyntaxKind2[SyntaxKind2.Unknown=16]="Unknown",SyntaxKind2[SyntaxKind2.EOF=17]="EOF"})(SyntaxKind||(SyntaxKind={}));(function(ParseErrorCode2){ParseErrorCode2[ParseErrorCode2.InvalidSymbol=1]="InvalidSymbol",ParseErrorCode2[ParseErrorCode2.InvalidNumberFormat=2]="InvalidNumberFormat",ParseErrorCode2[ParseErrorCode2.PropertyNameExpected=3]="PropertyNameExpected",ParseErrorCode2[ParseErrorCode2.ValueExpected=4]="ValueExpected",ParseErrorCode2[ParseErrorCode2.ColonExpected=5]="ColonExpected",ParseErrorCode2[ParseErrorCode2.CommaExpected=6]="CommaExpected",ParseErrorCode2[ParseErrorCode2.CloseBraceExpected=7]="CloseBraceExpected",ParseErrorCode2[ParseErrorCode2.CloseBracketExpected=8]="CloseBracketExpected",ParseErrorCode2[ParseErrorCode2.EndOfFileExpected=9]="EndOfFileExpected",ParseErrorCode2[ParseErrorCode2.InvalidCommentToken=10]="InvalidCommentToken",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfString=12]="UnexpectedEndOfString",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",ParseErrorCode2[ParseErrorCode2.InvalidUnicode=14]="InvalidUnicode",ParseErrorCode2[ParseErrorCode2.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",ParseErrorCode2[ParseErrorCode2.InvalidCharacter=16]="InvalidCharacter"})(ParseErrorCode||(ParseErrorCode={}))}});function parseJSONUncached(json2,shouldLogError){try{return{ok:!0,value:JSON.parse(stripBOM2(json2))}}catch(e2){return shouldLogError&&logError2(e2),{ok:!1}}}var PARSE_CACHE_MAX_KEY_BYTES,parseJSONCached,safeParseJSON,bunJSONLParse,MAX_JSONL_READ_BYTES,init_json=__esm({"src/utils/json.ts"(){init_main2();init_jsonRead();init_log3();init_memoize2();init_slowOperations();PARSE_CACHE_MAX_KEY_BYTES=8*1024;__name(parseJSONUncached,"parseJSONUncached");parseJSONCached=memoizeWithLRU(parseJSONUncached,json2=>json2,50),safeParseJSON=Object.assign(__name(function(json2,shouldLogError=!0){if(!json2)return null;let result2=json2.length>PARSE_CACHE_MAX_KEY_BYTES?parseJSONUncached(json2,shouldLogError):parseJSONCached(json2,shouldLogError);return result2.ok?result2.value:null},"safeParseJSON"),{cache:parseJSONCached.cache}),bunJSONLParse=(()=>{if(typeof Bun>"u")return!1;let jsonl=Bun.JSONL;return jsonl?.parseChunk?jsonl.parseChunk:!1})(),MAX_JSONL_READ_BYTES=100*1024*1024}});import{homedir as homedir4}from"os";import{dirname as dirname8,join as join11}from"path";var CCJK_PERMISSION_CONFIG_PATH,init_ccjkCompatibility=__esm({"src/utils/permissions/ccjkCompatibility.ts"(){init_file();init_fsOperations();init_json();CCJK_PERMISSION_CONFIG_PATH=join11(homedir4(),".ccjk","permissions.json")}});var init_intl=__esm({"src/utils/intl.ts"(){}});var require_emoji_regex=__commonJS({"../../node_modules/emoji-regex/index.js"(exports2,module2){"use strict";module2.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}});var import_emoji_regex,EMOJI_REGEX,bunStringWidth,init_stringWidth=__esm({"src/utils/terminal/stringWidth.ts"(){import_emoji_regex=__toESM(require_emoji_regex());init_intl();EMOJI_REGEX=(0,import_emoji_regex.default)(),bunStringWidth=typeof Bun<"u"&&typeof Bun.stringWidth=="function"?Bun.stringWidth:null}});var init_truncate2=__esm({"src/utils/truncate.ts"(){init_stringWidth();init_intl()}});var init_format2=__esm({"src/utils/format.ts"(){init_intl();init_truncate2()}});import{createRequire}from"node:module";function getPerformance(){return performance2||(performance2=require2("node:perf_hooks").performance),performance2}var require2,performance2,init_profilerBase=__esm({"src/utils/profilerBase.ts"(){init_format2();require2=createRequire(import.meta.url),performance2=null;__name(getPerformance,"getPerformance")}});function profileCheckpoint(name){if(!SHOULD_PROFILE)return;getPerformance().mark(name),DETAILED_PROFILING&&memorySnapshots.push(process.memoryUsage())}var DETAILED_PROFILING,STATSIG_SAMPLE_RATE,STATSIG_LOGGING_SAMPLED,SHOULD_PROFILE,memorySnapshots,init_startupProfiler=__esm({"src/utils/startupProfiler.ts"(){init_state();init_analytics();init_debug();init_envUtils();init_fsOperations();init_profilerBase();init_slowOperations();DETAILED_PROFILING=isEnvTruthy(process.env.CLAUDE_CODE_PROFILE_STARTUP),STATSIG_SAMPLE_RATE=.005,STATSIG_LOGGING_SAMPLED=process.env.USER_TYPE==="ant"||Math.random()<STATSIG_SAMPLE_RATE,SHOULD_PROFILE=DETAILED_PROFILING||STATSIG_LOGGING_SAMPLED,memorySnapshots=[];SHOULD_PROFILE&&profileCheckpoint("profiler_initialized");__name(profileCheckpoint,"profileCheckpoint")}});function getEnabledSettingSources(){let allowed=getAllowedSettingSources(),result2=new Set(allowed);return result2.add("policySettings"),result2.add("flagSettings"),Array.from(result2)}var CLAUDE_CODE_SETTINGS_SCHEMA_URL,init_constants2=__esm({"src/utils/settings/constants.ts"(){init_state();__name(getEnabledSettingSources,"getEnabledSettingSources");CLAUDE_CODE_SETTINGS_SCHEMA_URL="https://json.schemastore.org/claude-code-settings.json"}});function markInternalWrite(path10){timestamps.set(path10,Date.now())}var timestamps,init_internalWrites=__esm({"src/utils/settings/internalWrites.ts"(){timestamps=new Map;__name(markInternalWrite,"markInternalWrite")}});import{join as join12}from"path";var getManagedFilePath,getManagedSettingsDropInDir,init_managedPath=__esm({"src/utils/settings/managedPath.ts"(){init_memoize();init_platform2();getManagedFilePath=memoize_default(function(){if(process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH)return process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH;switch(getPlatform()){case"macos":return"/Library/Application Support/ClaudeCode";case"windows":return"C:\\Program Files\\ClaudeCode";default:return"/etc/claude-code"}}),getManagedSettingsDropInDir=memoize_default(function(){return join12(getManagedFilePath(),"managed-settings.d")})}});function lazySchema(factory2){let cached2;return()=>cached2??=factory2()}var init_lazySchema=__esm({"src/utils/lazySchema.ts"(){__name(lazySchema,"lazySchema")}});var SandboxNetworkConfigSchema,SandboxFilesystemConfigSchema,SandboxSettingsSchema,init_sandboxTypes=__esm({"src/entrypoints/sandboxTypes.ts"(){init_v4();init_lazySchema();SandboxNetworkConfigSchema=lazySchema(()=>external_exports.object({allowedDomains:external_exports.array(external_exports.string()).optional(),deniedDomains:external_exports.array(external_exports.string()).optional().describe("Domains to block from the sandbox even when a broader allowedDomains wildcard would otherwise permit them. Aligned with Claude Code 2.1.114. Read from every settings source and the policy source; deny rules win regardless of allowManagedDomainsOnly."),allowManagedDomainsOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), only allowedDomains and WebFetch(domain:...) allow rules from managed settings are respected. User, project, local, and flag settings domains are ignored. Denied domains are still respected from all sources."),allowUnixSockets:external_exports.array(external_exports.string()).optional().describe("macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path)."),allowAllUnixSockets:external_exports.boolean().optional().describe("If true, allow all Unix sockets (disables blocking on both platforms)."),allowLocalBinding:external_exports.boolean().optional(),httpProxyPort:external_exports.number().optional(),socksProxyPort:external_exports.number().optional()}).optional()),SandboxFilesystemConfigSchema=lazySchema(()=>external_exports.object({allowWrite:external_exports.array(external_exports.string()).optional().describe("Additional paths to allow writing within the sandbox. Merged with paths from Edit(...) allow permission rules."),denyWrite:external_exports.array(external_exports.string()).optional().describe("Additional paths to deny writing within the sandbox. Merged with paths from Edit(...) deny permission rules."),denyRead:external_exports.array(external_exports.string()).optional().describe("Additional paths to deny reading within the sandbox. Merged with paths from Read(...) deny permission rules."),allowRead:external_exports.array(external_exports.string()).optional().describe("Paths to re-allow reading within denyRead regions. Takes precedence over denyRead for matching paths."),allowManagedReadPathsOnly:external_exports.boolean().optional().describe("When true (set in managed settings), only allowRead paths from policySettings are used.")}).optional()),SandboxSettingsSchema=lazySchema(()=>external_exports.object({enabled:external_exports.boolean().optional(),failIfUnavailable:external_exports.boolean().optional().describe("Exit with an error at startup if sandbox.enabled is true but the sandbox cannot start (missing dependencies, unsupported platform, or platform not in enabledPlatforms). When false (default), a warning is shown and commands run unsandboxed. Intended for managed-settings deployments that require sandboxing as a hard gate."),autoAllowBashIfSandboxed:external_exports.boolean().optional(),allowUnsandboxedCommands:external_exports.boolean().optional().describe("Allow commands to run outside the sandbox via the dangerouslyDisableSandbox parameter. When false, the dangerouslyDisableSandbox parameter is completely ignored and all commands must run sandboxed. Default: true."),network:SandboxNetworkConfigSchema(),filesystem:SandboxFilesystemConfigSchema(),ignoreViolations:external_exports.record(external_exports.string(),external_exports.array(external_exports.string())).optional(),enableWeakerNestedSandbox:external_exports.boolean().optional(),enableWeakerNetworkIsolation:external_exports.boolean().optional().describe("macOS only: Allow access to com.apple.trustd.agent in the sandbox. Needed for Go-based CLI tools (gh, gcloud, terraform, etc.) to verify TLS certificates when using httpProxyPort with a MITM proxy and custom CA. **Reduces security** \u2014 opens a potential data exfiltration vector through the trustd service. Default: false"),excludedCommands:external_exports.array(external_exports.string()).optional(),ripgrep:external_exports.object({command:external_exports.string(),args:external_exports.array(external_exports.string()).optional()}).optional().describe("Custom ripgrep configuration for bundled ripgrep support")}).passthrough())}});function isRunningWithBun(){return process.versions.bun!==void 0}var init_bundledMode=__esm({"src/utils/bundledMode.ts"(){__name(isRunningWithBun,"isRunningWithBun")}});function findExecutable2(exe,args){return{cmd:whichSync(exe)??exe,args}}var init_findExecutable=__esm({"src/utils/findExecutable.ts"(){init_which();__name(findExecutable2,"findExecutable")}});import{join as join13}from"path";async function isCommandAvailable(command){try{return!!await which(command)}catch{return!1}}function isConductor(){return process.env.__CFBundleIdentifier==="com.conductor.app"}function detectTerminal(){if(process.env.CURSOR_TRACE_ID||process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("cursor"))return"cursor";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("windsurf"))return"windsurf";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("antigravity"))return"antigravity";let bundleId=process.env.__CFBundleIdentifier?.toLowerCase();if(bundleId?.includes("vscodium"))return"codium";if(bundleId?.includes("windsurf"))return"windsurf";if(bundleId?.includes("com.google.android.studio"))return"androidstudio";if(bundleId){for(let ide of JETBRAINS_IDES)if(bundleId.includes(ide))return ide}if(process.env.VisualStudioVersion)return"visualstudio";if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm")return process.platform==="darwin","pycharm";if(process.env.TERM==="xterm-ghostty")return"ghostty";if(process.env.TERM?.includes("kitty"))return"kitty";if(process.env.TERM_PROGRAM)return process.env.TERM_PROGRAM;if(process.env.TMUX)return"tmux";if(process.env.STY)return"screen";if(process.env.KONSOLE_VERSION)return"konsole";if(process.env.GNOME_TERMINAL_SERVICE)return"gnome-terminal";if(process.env.XTERM_VERSION)return"xterm";if(process.env.VTE_VERSION)return"vte-based";if(process.env.TERMINATOR_UUID)return"terminator";if(process.env.KITTY_WINDOW_ID)return"kitty";if(process.env.ALACRITTY_LOG)return"alacritty";if(process.env.TILIX_ID)return"tilix";if(process.env.WT_SESSION)return"windows-terminal";if(process.env.SESSIONNAME&&process.env.TERM==="cygwin")return"cygwin";if(process.env.MSYSTEM)return process.env.MSYSTEM.toLowerCase();if(process.env.ConEmuANSI||process.env.ConEmuPID||process.env.ConEmuTask)return"conemu";if(process.env.WSL_DISTRO_NAME)return`wsl-${process.env.WSL_DISTRO_NAME}`;if(isSSHSession())return"ssh-session";if(process.env.TERM){let term=process.env.TERM;return term.includes("alacritty")?"alacritty":term.includes("rxvt")?"rxvt":term.includes("termite")?"termite":process.env.TERM}return process.stdout.isTTY?null:"non-interactive"}function isSSHSession(){return!!(process.env.SSH_CONNECTION||process.env.SSH_CLIENT||process.env.SSH_TTY)}function getHostPlatformForAnalytics(){let override=process.env.CLAUDE_CODE_HOST_PLATFORM;return override==="win32"||override==="darwin"||override==="linux"?override:env4.platform}var getGlobalClaudeFile,hasInternetAccess,detectPackageManagers,detectRuntimes,isWslEnvironment,isNpmFromWindowsPath,JETBRAINS_IDES,detectDeploymentEnvironment,env4,init_env2=__esm({"src/utils/env.ts"(){init_memoize();init_oauth();init_bundledMode();init_envUtils();init_findExecutable();init_fsOperations();init_which();getGlobalClaudeFile=memoize_default(()=>{let filename=`.clavue${fileSuffixForOauthConfig()}.json`;return join13(getClavueConfigHomeDir(),filename)}),hasInternetAccess=memoize_default(async()=>{try{let{default:axiosClient}=await Promise.resolve().then(()=>(init_axios2(),axios_exports));return await axiosClient.head("http://1.1.1.1",{signal:AbortSignal.timeout(1e3)}),!0}catch{return!1}});__name(isCommandAvailable,"isCommandAvailable");detectPackageManagers=memoize_default(async()=>{let packageManagers=[];return await isCommandAvailable("npm")&&packageManagers.push("npm"),await isCommandAvailable("yarn")&&packageManagers.push("yarn"),await isCommandAvailable("pnpm")&&packageManagers.push("pnpm"),packageManagers}),detectRuntimes=memoize_default(async()=>{let runtimes=[];return await isCommandAvailable("bun")&&runtimes.push("bun"),await isCommandAvailable("deno")&&runtimes.push("deno"),await isCommandAvailable("node")&&runtimes.push("node"),runtimes}),isWslEnvironment=memoize_default(()=>{try{return getFsImplementation().existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")}catch{return!1}}),isNpmFromWindowsPath=memoize_default(()=>{try{if(!isWslEnvironment())return!1;let{cmd}=findExecutable2("npm",[]);return cmd.startsWith("/mnt/c/")}catch{return!1}});__name(isConductor,"isConductor");JETBRAINS_IDES=["pycharm","intellij","webstorm","phpstorm","rubymine","clion","goland","rider","datagrip","appcode","dataspell","aqua","gateway","fleet","jetbrains","androidstudio"];__name(detectTerminal,"detectTerminal");detectDeploymentEnvironment=memoize_default(()=>{if(isEnvTruthy(process.env.CODESPACES))return"codespaces";if(process.env.GITPOD_WORKSPACE_ID)return"gitpod";if(process.env.REPL_ID||process.env.REPL_SLUG)return"replit";if(process.env.PROJECT_DOMAIN)return"glitch";if(isEnvTruthy(process.env.VERCEL))return"vercel";if(process.env.RAILWAY_ENVIRONMENT_NAME||process.env.RAILWAY_SERVICE_NAME)return"railway";if(isEnvTruthy(process.env.RENDER))return"render";if(isEnvTruthy(process.env.NETLIFY))return"netlify";if(process.env.DYNO)return"heroku";if(process.env.FLY_APP_NAME||process.env.FLY_MACHINE_ID)return"fly.io";if(isEnvTruthy(process.env.CF_PAGES))return"cloudflare-pages";if(process.env.DENO_DEPLOYMENT_ID)return"deno-deploy";if(process.env.AWS_LAMBDA_FUNCTION_NAME)return"aws-lambda";if(process.env.AWS_EXECUTION_ENV==="AWS_ECS_FARGATE")return"aws-fargate";if(process.env.AWS_EXECUTION_ENV==="AWS_ECS_EC2")return"aws-ecs";try{if(getFsImplementation().readFileSync("/sys/hypervisor/uuid",{encoding:"utf8"}).trim().toLowerCase().startsWith("ec2"))return"aws-ec2"}catch{}if(process.env.K_SERVICE)return"gcp-cloud-run";if(process.env.GOOGLE_CLOUD_PROJECT)return"gcp";if(process.env.WEBSITE_SITE_NAME||process.env.WEBSITE_SKU)return"azure-app-service";if(process.env.AZURE_FUNCTIONS_ENVIRONMENT)return"azure-functions";if(process.env.APP_URL?.includes("ondigitalocean.app"))return"digitalocean-app-platform";if(process.env.SPACE_CREATOR_USER_ID)return"huggingface-spaces";if(isEnvTruthy(process.env.GITHUB_ACTIONS))return"github-actions";if(isEnvTruthy(process.env.GITLAB_CI))return"gitlab-ci";if(process.env.CIRCLECI)return"circleci";if(process.env.BUILDKITE)return"buildkite";if(isEnvTruthy(process.env.CI))return"ci";if(process.env.KUBERNETES_SERVICE_HOST)return"kubernetes";try{if(getFsImplementation().existsSync("/.dockerenv"))return"docker"}catch{}return env4.platform==="darwin"?"unknown-darwin":env4.platform==="linux"?"unknown-linux":env4.platform==="win32"?"unknown-win32":"unknown"});__name(isSSHSession,"isSSHSession");env4={hasInternetAccess,isCI:isEnvTruthy(process.env.CI),platform:["win32","darwin"].includes(process.platform)?process.platform:"linux",arch:process.arch,nodeVersion:process.version,terminal:detectTerminal(),isSSH:isSSHSession,getPackageManagers:detectPackageManagers,getRuntimes:detectRuntimes,isRunningWithBun:memoize_default(isRunningWithBun),isWslEnvironment,isNpmFromWindowsPath,isConductor,detectDeploymentEnvironment};__name(getHostPlatformForAnalytics,"getHostPlatformForAnalytics")}});var BLACK_CIRCLE,init_figures2=__esm({"src/constants/figures.ts"(){init_env2();BLACK_CIRCLE=env4.platform==="darwin"?"\u23FA":"\u25CF"}});var EXTERNAL_PERMISSION_MODES,INTERNAL_PERMISSION_MODES,PERMISSION_MODES,init_permissions=__esm({"src/types/permissions.ts"(){EXTERNAL_PERMISSION_MODES=["acceptEdits","bypassPermissions","default","dontAsk","plan","trustedOps"],INTERNAL_PERMISSION_MODES=[...EXTERNAL_PERMISSION_MODES,"auto"],PERMISSION_MODES=INTERNAL_PERMISSION_MODES}});var permissionModeSchema,externalPermissionModeSchema,init_PermissionMode=__esm({"src/utils/permissions/PermissionMode.ts"(){init_v4();init_figures2();init_permissions();init_lazySchema();permissionModeSchema=lazySchema(()=>v4_default.enum(PERMISSION_MODES)),externalPermissionModeSchema=lazySchema(()=>v4_default.enum(EXTERNAL_PERMISSION_MODES))}});var init_coreTypes_generated=__esm({"src/entrypoints/sdk/coreTypes.generated.ts"(){}});var HOOK_EVENTS,init_coreTypes=__esm({"src/entrypoints/sdk/coreTypes.ts"(){init_coreTypes_generated();HOOK_EVENTS=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","StopFailure","SubagentStart","SubagentStop","PreCompact","PostCompact","PermissionRequest","PermissionDenied","Setup","TeammateIdle","TaskCreated","TaskCompleted","Elicitation","ElicitationResult","ConfigChange","WorktreeCreate","WorktreeRemove","InstructionsLoaded","CwdChanged","FileChanged"]}});var init_runtimeTypes=__esm({"src/entrypoints/sdk/runtimeTypes.ts"(){}});var init_toolTypes=__esm({"src/entrypoints/sdk/toolTypes.ts"(){}});var init_agentSdkTypes=__esm({"src/entrypoints/agentSdkTypes.ts"(){init_coreTypes();init_runtimeTypes();init_toolTypes()}});var SHELL_TYPES,init_shellProvider=__esm({"src/utils/shell/shellProvider.ts"(){SHELL_TYPES=["bash","powershell"]}});function buildHookSchemas(){let BashCommandHookSchema=external_exports.object({type:external_exports.literal("command").describe("Shell command hook type"),command:external_exports.string().describe("Shell command to execute"),args:external_exports.array(external_exports.string()).optional().describe("Optional argv array. When set, the hook is executed without a shell (spawn(command, args)) \u2014 no word-splitting, no glob expansion, no $VAR interpolation. Mutually exclusive in semantics with shell parsing of `command`. Recommended when the hook target is a binary and the arguments may contain spaces or shell metacharacters."),if:IfConditionSchema(),shell:external_exports.enum(SHELL_TYPES).optional().describe("Shell interpreter. 'bash' uses your $SHELL (bash/zsh/sh); 'powershell' uses pwsh. Defaults to bash."),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for this specific command"),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution"),async:external_exports.boolean().optional().describe("If true, hook runs in background without blocking"),asyncRewake:external_exports.boolean().optional().describe("If true, hook runs in background and wakes the model on exit code 2 (blocking error). Implies async.")}),PromptHookSchema=external_exports.object({type:external_exports.literal("prompt").describe("LLM prompt hook type"),prompt:external_exports.string().describe("Prompt to evaluate with LLM. Use $ARGUMENTS placeholder for hook input JSON."),if:IfConditionSchema(),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for this specific prompt evaluation"),model:external_exports.string().optional().describe('Model to use for this prompt hook (e.g., "claude-sonnet-4-6"). If not specified, uses the default small fast model.'),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution")}),HttpHookSchema=external_exports.object({type:external_exports.literal("http").describe("HTTP hook type"),url:external_exports.string().url().describe("URL to POST the hook input JSON to"),if:IfConditionSchema(),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for this specific request"),headers:external_exports.record(external_exports.string(),external_exports.string()).optional().describe('Additional headers to include in the request. Values may reference environment variables using $VAR_NAME or ${VAR_NAME} syntax (e.g., "Authorization": "Bearer $MY_TOKEN"). Only variables listed in allowedEnvVars will be interpolated.'),allowedEnvVars:external_exports.array(external_exports.string()).optional().describe("Explicit list of environment variable names that may be interpolated in header values. Only variables listed here will be resolved; all other $VAR references are left as empty strings. Required for env var interpolation to work."),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution")}),AgentHookSchema=external_exports.object({type:external_exports.literal("agent").describe("Agentic verifier hook type"),prompt:external_exports.string().describe('Prompt describing what to verify (e.g. "Verify that unit tests ran and passed."). Use $ARGUMENTS placeholder for hook input JSON.'),if:IfConditionSchema(),timeout:external_exports.number().positive().optional().describe("Timeout in seconds for agent execution (default 60)"),model:external_exports.string().optional().describe('Model to use for this agent hook (e.g., "claude-sonnet-4-6"). If not specified, uses Haiku.'),statusMessage:external_exports.string().optional().describe("Custom status message to display in spinner while hook runs"),once:external_exports.boolean().optional().describe("If true, hook runs once and is removed after execution")});return{BashCommandHookSchema,PromptHookSchema,HttpHookSchema,AgentHookSchema}}var IfConditionSchema,HookCommandSchema,HookMatcherSchema,HooksSchema,init_hooks=__esm({"src/schemas/hooks.ts"(){init_agentSdkTypes();init_v4();init_lazySchema();init_shellProvider();IfConditionSchema=lazySchema(()=>external_exports.string().optional().describe('Permission rule syntax to filter when this hook runs (e.g., "Bash(git *)"). Only runs if the tool call matches the pattern. Avoids spawning hooks for non-matching commands.'));__name(buildHookSchemas,"buildHookSchemas");HookCommandSchema=lazySchema(()=>{let{BashCommandHookSchema,PromptHookSchema,AgentHookSchema,HttpHookSchema}=buildHookSchemas();return external_exports.discriminatedUnion("type",[BashCommandHookSchema,PromptHookSchema,AgentHookSchema,HttpHookSchema])}),HookMatcherSchema=lazySchema(()=>external_exports.object({matcher:external_exports.string().optional().describe('String pattern to match (e.g. tool names like "Write")'),hooks:external_exports.array(HookCommandSchema()).describe("List of hooks to execute when the matcher matches")})),HooksSchema=lazySchema(()=>external_exports.partialRecord(external_exports.enum(HOOK_EVENTS),external_exports.array(HookMatcherSchema())))}});var ConfigScopeSchema,TransportSchema,McpStdioServerConfigSchema,McpXaaConfigSchema,McpOAuthConfigSchema,McpSSEServerConfigSchema,McpSSEIDEServerConfigSchema,McpWebSocketIDEServerConfigSchema,McpHTTPServerConfigSchema,McpWebSocketServerConfigSchema,McpSdkServerConfigSchema,McpClaudeAIProxyServerConfigSchema,McpServerConfigSchema,McpJsonConfigSchema,init_types=__esm({"src/services/mcp/types.ts"(){init_v4();init_lazySchema();ConfigScopeSchema=lazySchema(()=>external_exports.enum(["local","user","project","dynamic","enterprise","claudeai","managed"])),TransportSchema=lazySchema(()=>external_exports.enum(["stdio","sse","sse-ide","http","ws","sdk"])),McpStdioServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("stdio").optional(),command:external_exports.string().min(1,"Command cannot be empty"),args:external_exports.array(external_exports.string()).default([]),env:external_exports.record(external_exports.string(),external_exports.string()).optional()})),McpXaaConfigSchema=lazySchema(()=>external_exports.boolean()),McpOAuthConfigSchema=lazySchema(()=>external_exports.object({clientId:external_exports.string().optional(),callbackPort:external_exports.number().int().positive().optional(),authServerMetadataUrl:external_exports.string().url().startsWith("https://",{message:"authServerMetadataUrl must use https://"}).optional(),xaa:McpXaaConfigSchema().optional()})),McpSSEServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("sse"),url:external_exports.string(),headers:external_exports.record(external_exports.string(),external_exports.string()).optional(),headersHelper:external_exports.string().optional(),oauth:McpOAuthConfigSchema().optional()})),McpSSEIDEServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("sse-ide"),url:external_exports.string(),ideName:external_exports.string(),ideRunningInWindows:external_exports.boolean().optional()})),McpWebSocketIDEServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("ws-ide"),url:external_exports.string(),ideName:external_exports.string(),authToken:external_exports.string().optional(),ideRunningInWindows:external_exports.boolean().optional()})),McpHTTPServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("http"),url:external_exports.string(),headers:external_exports.record(external_exports.string(),external_exports.string()).optional(),headersHelper:external_exports.string().optional(),oauth:McpOAuthConfigSchema().optional()})),McpWebSocketServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("ws"),url:external_exports.string(),headers:external_exports.record(external_exports.string(),external_exports.string()).optional(),headersHelper:external_exports.string().optional()})),McpSdkServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("sdk"),name:external_exports.string()})),McpClaudeAIProxyServerConfigSchema=lazySchema(()=>external_exports.object({type:external_exports.literal("claudeai-proxy"),url:external_exports.string(),id:external_exports.string()})),McpServerConfigSchema=lazySchema(()=>external_exports.union([McpStdioServerConfigSchema(),McpSSEServerConfigSchema(),McpSSEIDEServerConfigSchema(),McpWebSocketIDEServerConfigSchema(),McpHTTPServerConfigSchema(),McpWebSocketServerConfigSchema(),McpSdkServerConfigSchema(),McpClaudeAIProxyServerConfigSchema()])),McpJsonConfigSchema=lazySchema(()=>external_exports.object({mcpServers:external_exports.record(external_exports.string(),McpServerConfigSchema())}))}});function isBlockedOfficialName(name){return ALLOWED_OFFICIAL_MARKETPLACE_NAMES.has(name.toLowerCase())?!1:NON_ASCII_PATTERN.test(name)?!0:BLOCKED_OFFICIAL_NAME_PATTERN.test(name)}var ALLOWED_OFFICIAL_MARKETPLACE_NAMES,BLOCKED_OFFICIAL_NAME_PATTERN,NON_ASCII_PATTERN,RelativePath,RelativeJSONPath,McpbPath,RelativeMarkdownPath,RelativeCommandPath,MarketplaceNameSchema,PluginAuthorSchema,PluginManifestMetadataSchema,PluginHooksSchema,PluginManifestHooksSchema,CommandMetadataSchema,PluginManifestCommandsSchema,PluginManifestAgentsSchema,PluginManifestSkillsSchema,PluginManifestOutputStylesSchema,nonEmptyString,fileExtension,PluginManifestMcpServerSchema,PluginUserConfigOptionSchema,PluginManifestUserConfigSchema,PluginManifestChannelsSchema,LspServerConfigSchema,PluginManifestLspServerSchema,NpmPackageNameSchema,PluginManifestSettingsSchema,PluginManifestSchema,MarketplaceSourceSchema,gitSha,PluginSourceSchema,SettingsMarketplacePluginSchema,PluginMarketplaceEntrySchema,PluginMarketplaceSchema,PluginIdSchema,DEP_REF_REGEX,DependencyRefSchema,SettingsPluginEntrySchema,InstalledPluginSchema,InstalledPluginsFileSchemaV1,PluginScopeSchema,PluginInstallationEntrySchema,InstalledPluginsFileSchemaV2,InstalledPluginsFileSchema,KnownMarketplaceSchema,KnownMarketplacesFileSchema,init_schemas3=__esm({"src/utils/plugins/schemas.ts"(){init_v4();init_hooks();init_types();init_lazySchema();ALLOWED_OFFICIAL_MARKETPLACE_NAMES=new Set(["claude-code-marketplace","claude-code-plugins","claude-plugins-official","anthropic-marketplace","anthropic-plugins","agent-skills","life-sciences","knowledge-work-plugins"]),BLOCKED_OFFICIAL_NAME_PATTERN=/(?:official[^a-z0-9]*(anthropic|claude)|(?:anthropic|claude)[^a-z0-9]*official|^(?:anthropic|claude)[^a-z0-9]*(marketplace|plugins|official))/i,NON_ASCII_PATTERN=/[^\u0020-\u007E]/;__name(isBlockedOfficialName,"isBlockedOfficialName");RelativePath=lazySchema(()=>external_exports.string().startsWith("./")),RelativeJSONPath=lazySchema(()=>RelativePath().endsWith(".json")),McpbPath=lazySchema(()=>external_exports.union([RelativePath().refine(path10=>path10.endsWith(".mcpb")||path10.endsWith(".dxt"),{message:"MCPB file path must end with .mcpb or .dxt"}).describe("Path to MCPB file relative to plugin root"),external_exports.string().url().refine(url3=>url3.endsWith(".mcpb")||url3.endsWith(".dxt"),{message:"MCPB URL must end with .mcpb or .dxt"}).describe("URL to MCPB file")])),RelativeMarkdownPath=lazySchema(()=>RelativePath().endsWith(".md")),RelativeCommandPath=lazySchema(()=>external_exports.union([RelativeMarkdownPath(),RelativePath()])),MarketplaceNameSchema=lazySchema(()=>external_exports.string().min(1,"Marketplace must have a name").refine(name=>!name.includes(" "),{message:'Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")'}).refine(name=>!name.includes("/")&&!name.includes("\\")&&!name.includes("..")&&name!==".",{message:'Marketplace name cannot contain path separators (/ or \\), ".." sequences, or be "."'}).refine(name=>!isBlockedOfficialName(name),{message:"Marketplace name impersonates an official Anthropic/Claude marketplace"}).refine(name=>name.toLowerCase()!=="inline",{message:'Marketplace name "inline" is reserved for --plugin-dir session plugins'}).refine(name=>name.toLowerCase()!=="builtin",{message:'Marketplace name "builtin" is reserved for built-in plugins'})),PluginAuthorSchema=lazySchema(()=>external_exports.object({name:external_exports.string().min(1,"Author name cannot be empty").describe("Display name of the plugin author or organization"),email:external_exports.string().optional().describe("Contact email for support or feedback"),url:external_exports.string().optional().describe("Website, GitHub profile, or organization URL")})),PluginManifestMetadataSchema=lazySchema(()=>external_exports.object({name:external_exports.string().min(1,"Plugin name cannot be empty").refine(name=>!name.includes(" "),{message:'Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")'}).describe("Unique identifier for the plugin, used for namespacing (prefer kebab-case)"),version:external_exports.string().optional().describe("Semantic version (e.g., 1.2.3) following semver.org specification"),description:external_exports.string().optional().describe("Brief, user-facing explanation of what the plugin provides"),author:PluginAuthorSchema().optional().describe("Information about the plugin creator or maintainer"),homepage:external_exports.string().url().optional().describe("Plugin homepage or documentation URL"),repository:external_exports.string().optional().describe("Source code repository URL"),license:external_exports.string().optional().describe("SPDX license identifier (e.g., MIT, Apache-2.0)"),keywords:external_exports.array(external_exports.string()).optional().describe("Tags for plugin discovery and categorization"),dependencies:external_exports.array(DependencyRefSchema()).optional().describe(`Plugins that must be enabled for this plugin to function. Bare names (no "@marketplace") are resolved against the declaring plugin's own marketplace.`)})),PluginHooksSchema=lazySchema(()=>external_exports.object({description:external_exports.string().optional().describe("Brief, user-facing explanation of what these hooks provide"),hooks:external_exports.lazy(()=>HooksSchema()).describe("The hooks provided by the plugin, in the same format as the one used for settings")})),PluginManifestHooksSchema=lazySchema(()=>external_exports.object({hooks:external_exports.union([RelativeJSONPath().describe("Path to file with additional hooks (in addition to those in hooks/hooks.json, if it exists), relative to the plugin root"),external_exports.lazy(()=>HooksSchema()).describe("Additional hooks (in addition to those in hooks/hooks.json, if it exists)"),external_exports.array(external_exports.union([RelativeJSONPath().describe("Path to file with additional hooks (in addition to those in hooks/hooks.json, if it exists), relative to the plugin root"),external_exports.lazy(()=>HooksSchema()).describe("Additional hooks (in addition to those in hooks/hooks.json, if it exists)")]))])})),CommandMetadataSchema=lazySchema(()=>external_exports.object({source:RelativeCommandPath().optional().describe("Path to command markdown file, relative to plugin root"),content:external_exports.string().optional().describe("Inline markdown content for the command"),description:external_exports.string().optional().describe("Command description override"),argumentHint:external_exports.string().optional().describe('Hint for command arguments (e.g., "[file]")'),model:external_exports.string().optional().describe("Default model for this command"),allowedTools:external_exports.array(external_exports.string()).optional().describe("Tools allowed when command runs")}).refine(data=>data.source&&!data.content||!data.source&&data.content,{message:'Command must have either "source" (file path) or "content" (inline markdown), but not both'})),PluginManifestCommandsSchema=lazySchema(()=>external_exports.object({commands:external_exports.union([RelativeCommandPath().describe("Path to additional command file or skill directory (in addition to those in the commands/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativeCommandPath().describe("Path to additional command file or skill directory (in addition to those in the commands/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional command files or skill directories"),external_exports.record(external_exports.string(),CommandMetadataSchema()).describe('Object mapping of command names to their metadata and source files. Command name becomes the slash command name (e.g., "about" \u2192 "/plugin:about")')])})),PluginManifestAgentsSchema=lazySchema(()=>external_exports.object({agents:external_exports.union([RelativeMarkdownPath().describe("Path to additional agent file (in addition to those in the agents/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativeMarkdownPath().describe("Path to additional agent file (in addition to those in the agents/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional agent files")])})),PluginManifestSkillsSchema=lazySchema(()=>external_exports.object({skills:external_exports.union([RelativePath().describe("Path to additional skill directory (in addition to those in the skills/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativePath().describe("Path to additional skill directory (in addition to those in the skills/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional skill directories")])})),PluginManifestOutputStylesSchema=lazySchema(()=>external_exports.object({outputStyles:external_exports.union([RelativePath().describe("Path to additional output styles directory or file (in addition to those in the output-styles/ directory, if it exists), relative to the plugin root"),external_exports.array(RelativePath().describe("Path to additional output styles directory or file (in addition to those in the output-styles/ directory, if it exists), relative to the plugin root")).describe("List of paths to additional output styles directories or files")])})),nonEmptyString=lazySchema(()=>external_exports.string().min(1)),fileExtension=lazySchema(()=>external_exports.string().min(2).refine(ext=>ext.startsWith("."),{message:'File extensions must start with dot (e.g., ".js", not "ts")'})),PluginManifestMcpServerSchema=lazySchema(()=>external_exports.object({mcpServers:external_exports.union([RelativeJSONPath().describe("MCP servers to include in the plugin (in addition to those in the .mcp.json file, if it exists)"),McpbPath().describe("Path or URL to MCPB file containing MCP server configuration"),external_exports.record(external_exports.string(),McpServerConfigSchema()).describe("MCP server configurations keyed by server name"),external_exports.array(external_exports.union([RelativeJSONPath().describe("Path to MCP servers configuration file"),McpbPath().describe("Path or URL to MCPB file"),external_exports.record(external_exports.string(),McpServerConfigSchema()).describe("Inline MCP server configurations")])).describe("Array of MCP server configurations (paths, MCPB files, or inline definitions)")])})),PluginUserConfigOptionSchema=lazySchema(()=>external_exports.object({type:external_exports.enum(["string","number","boolean","directory","file"]).describe("Type of the configuration value"),title:external_exports.string().describe("Human-readable label shown in the config dialog"),description:external_exports.string().describe("Help text shown beneath the field in the config dialog"),required:external_exports.boolean().optional().describe("If true, validation fails when this field is empty"),default:external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.string())]).optional().describe("Default value used when the user provides nothing"),multiple:external_exports.boolean().optional().describe("For string type: allow an array of strings"),sensitive:external_exports.boolean().optional().describe("If true, masks dialog input and stores value in secure storage (keychain/credentials file) instead of settings.json"),min:external_exports.number().optional().describe("Minimum value (number type only)"),max:external_exports.number().optional().describe("Maximum value (number type only)")}).strict()),PluginManifestUserConfigSchema=lazySchema(()=>external_exports.object({userConfig:external_exports.record(external_exports.string().regex(/^[A-Za-z_]\w*$/,"Option keys must be valid identifiers (letters, digits, underscore; no leading digit) \u2014 they become CLAUDE_PLUGIN_OPTION_<KEY> env vars in hooks"),PluginUserConfigOptionSchema()).optional().describe("User-configurable values this plugin needs. Prompted at enable time. Non-sensitive values saved to settings.json; sensitive values to secure storage (macOS keychain or .credentials.json). Available as ${user_config.KEY} in MCP/LSP server config, hook commands, and (non-sensitive only) skill/agent content. Note: sensitive values share a single keychain entry with OAuth tokens \u2014 keep secret counts small to stay under the ~2KB stdin-safe limit (see INC-3028).")})),PluginManifestChannelsSchema=lazySchema(()=>external_exports.object({channels:external_exports.array(external_exports.object({server:external_exports.string().min(1).describe("Name of the MCP server this channel binds to. Must match a key in this plugin's mcpServers."),displayName:external_exports.string().optional().describe('Human-readable name shown in the config dialog title (e.g., "Telegram"). Defaults to the server name.'),userConfig:external_exports.record(external_exports.string(),PluginUserConfigOptionSchema()).optional().describe("Fields to prompt the user for when enabling this plugin in assistant mode. Saved values are substituted into ${user_config.KEY} references in the mcpServers env.")}).strict()).describe("Channels this plugin provides. Each entry declares an MCP server as a message channel and optionally specifies user configuration to prompt for at enable time.")})),LspServerConfigSchema=lazySchema(()=>external_exports.strictObject({command:external_exports.string().min(1).refine(cmd=>!(cmd.includes(" ")&&!cmd.startsWith("/")),{message:"Command should not contain spaces. Use args array for arguments."}).describe('Command to execute the LSP server (e.g., "typescript-language-server")'),args:external_exports.array(nonEmptyString()).optional().describe("Command-line arguments to pass to the server"),extensionToLanguage:external_exports.record(fileExtension(),nonEmptyString()).refine(record2=>Object.keys(record2).length>0,{message:"extensionToLanguage must have at least one mapping"}).describe("Mapping from file extension to LSP language ID. File extensions and languages are derived from this mapping."),transport:external_exports.enum(["stdio","socket"]).default("stdio").describe("Communication transport mechanism"),env:external_exports.record(external_exports.string(),external_exports.string()).optional().describe("Environment variables to set when starting the server"),initializationOptions:external_exports.unknown().optional().describe("Initialization options passed to the server during initialization"),settings:external_exports.unknown().optional().describe("Settings passed to the server via workspace/didChangeConfiguration"),workspaceFolder:external_exports.string().optional().describe("Workspace folder path to use for the server"),startupTimeout:external_exports.number().int().positive().optional().describe("Maximum time to wait for server startup (milliseconds)"),shutdownTimeout:external_exports.number().int().positive().optional().describe("Maximum time to wait for graceful shutdown (milliseconds)"),restartOnCrash:external_exports.boolean().optional().describe("Whether to restart the server if it crashes"),maxRestarts:external_exports.number().int().nonnegative().optional().describe("Maximum number of restart attempts before giving up")})),PluginManifestLspServerSchema=lazySchema(()=>external_exports.object({lspServers:external_exports.union([RelativeJSONPath().describe("Path to .lsp.json configuration file relative to plugin root"),external_exports.record(external_exports.string(),LspServerConfigSchema()).describe("LSP server configurations keyed by server name"),external_exports.array(external_exports.union([RelativeJSONPath().describe("Path to LSP configuration file"),external_exports.record(external_exports.string(),LspServerConfigSchema()).describe("Inline LSP server configurations")])).describe("Array of LSP server configurations (paths or inline definitions)")])})),NpmPackageNameSchema=lazySchema(()=>external_exports.string().refine(name=>!name.includes("..")&&!name.includes("//"),"Package name cannot contain path traversal patterns").refine(name=>{let scopedPackageRegex=/^@[a-z0-9][a-z0-9-._]*\/[a-z0-9][a-z0-9-._]*$/,regularPackageRegex=/^[a-z0-9][a-z0-9-._]*$/;return scopedPackageRegex.test(name)||regularPackageRegex.test(name)},"Invalid npm package name format")),PluginManifestSettingsSchema=lazySchema(()=>external_exports.object({settings:external_exports.record(external_exports.string(),external_exports.unknown()).optional().describe("Settings to merge when plugin is enabled. Only allowlisted keys are kept (currently: agent)")})),PluginManifestSchema=lazySchema(()=>external_exports.object({...PluginManifestMetadataSchema().shape,...PluginManifestHooksSchema().partial().shape,...PluginManifestCommandsSchema().partial().shape,...PluginManifestAgentsSchema().partial().shape,...PluginManifestSkillsSchema().partial().shape,...PluginManifestOutputStylesSchema().partial().shape,...PluginManifestChannelsSchema().partial().shape,...PluginManifestMcpServerSchema().partial().shape,...PluginManifestLspServerSchema().partial().shape,...PluginManifestSettingsSchema().partial().shape,...PluginManifestUserConfigSchema().partial().shape})),MarketplaceSourceSchema=lazySchema(()=>external_exports.discriminatedUnion("source",[external_exports.object({source:external_exports.literal("url"),url:external_exports.string().url().describe("Direct URL to marketplace.json file"),headers:external_exports.record(external_exports.string(),external_exports.string()).optional().describe("Custom HTTP headers (e.g., for authentication)")}),external_exports.object({source:external_exports.literal("github"),repo:external_exports.string().describe("GitHub repository in owner/repo format"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),path:external_exports.string().optional().describe("Path to marketplace.json within repo (defaults to .\u0063laude-plugin/marketplace.json)"),sparsePaths:external_exports.array(external_exports.string()).optional().describe('Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".\u0063laude-plugin", "plugins"]. If omitted, the full repository is cloned.')}),external_exports.object({source:external_exports.literal("git"),url:external_exports.string().describe("Full git repository URL"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),path:external_exports.string().optional().describe("Path to marketplace.json within repo (defaults to .\u0063laude-plugin/marketplace.json)"),sparsePaths:external_exports.array(external_exports.string()).optional().describe('Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".\u0063laude-plugin", "plugins"]. If omitted, the full repository is cloned.')}),external_exports.object({source:external_exports.literal("npm"),package:NpmPackageNameSchema().describe("NPM package containing marketplace.json")}),external_exports.object({source:external_exports.literal("file"),path:external_exports.string().describe("Local file path to marketplace.json")}),external_exports.object({source:external_exports.literal("directory"),path:external_exports.string().describe("Local directory containing .\u0063laude-plugin/marketplace.json")}),external_exports.object({source:external_exports.literal("hostPattern"),hostPattern:external_exports.string().describe('Regex pattern to match the host/domain extracted from any marketplace source type. For github sources, matches against "github.com". For git sources (SSH or HTTPS), extracts the hostname from the URL. Use in strictKnownMarketplaces to allow all marketplaces from a specific host (e.g., "^github\\.mycompany\\.com$").')}),external_exports.object({source:external_exports.literal("pathPattern"),pathPattern:external_exports.string().describe('Regex pattern matched against the .path field of file and directory sources. Use in strictKnownMarketplaces to allow filesystem-based marketplaces alongside hostPattern restrictions for network sources. Use ".*" to allow all filesystem paths, or a narrower pattern (e.g., "^/opt/approved/") to restrict to specific directories.')}),external_exports.object({source:external_exports.literal("settings"),name:MarketplaceNameSchema().refine(name=>!ALLOWED_OFFICIAL_MARKETPLACE_NAMES.has(name.toLowerCase()),{message:"Reserved official marketplace names cannot be used with settings sources. validateOfficialNameSource only accepts github/git sources from anthropics/* for these names; a settings source would be rejected after loadAndCacheMarketplace has already written to disk with cleanupNeeded=false."}).describe("Marketplace name. Must match the extraKnownMarketplaces key (enforced); the synthetic manifest is written under this name. Same validation as PluginMarketplaceSchema plus reserved-name rejection \u2014 validateOfficialNameSource runs after the disk write, too late to clean up."),plugins:external_exports.array(SettingsMarketplacePluginSchema()).describe("Plugin entries declared inline in settings.json"),owner:PluginAuthorSchema().optional()}).describe("Inline marketplace manifest defined directly in settings.json. The reconciler writes a synthetic marketplace.json to the cache; diffMarketplaces detects edits via isEqual on the stored source (the plugins array is inside this object, so edits surface as sourceChanged).")])),gitSha=lazySchema(()=>external_exports.string().length(40).regex(/^[a-f0-9]{40}$/,"Must be a full 40-character lowercase git commit SHA")),PluginSourceSchema=lazySchema(()=>external_exports.union([RelativePath().describe("Path to the plugin root, relative to the marketplace root (the directory containing .\u0063laude-plugin/, not .\u0063laude-plugin/ itself)"),external_exports.object({source:external_exports.literal("npm"),package:NpmPackageNameSchema().or(external_exports.string()).describe("Package name (or url, or local path, or anything else that can be passed to `npm` as a package)"),version:external_exports.string().optional().describe("Specific version or version range (e.g., ^1.0.0, ~2.1.0)"),registry:external_exports.string().url().optional().describe("Custom NPM registry URL (defaults to using system default, likely npmjs.org)")}).describe("NPM package as plugin source"),external_exports.object({source:external_exports.literal("pip"),package:external_exports.string().describe("Python package name as it appears on PyPI"),version:external_exports.string().optional().describe("Version specifier (e.g., ==1.0.0, >=2.0.0, <3.0.0)"),registry:external_exports.string().url().optional().describe("Custom PyPI registry URL (defaults to using system default, likely pypi.org)")}).describe("Python package as plugin source"),external_exports.object({source:external_exports.literal("url"),url:external_exports.string().describe("Full git repository URL (https:// or git@)"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),sha:gitSha().optional().describe("Specific commit SHA to use")}),external_exports.object({source:external_exports.literal("github"),repo:external_exports.string().describe("GitHub repository in owner/repo format"),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),sha:gitSha().optional().describe("Specific commit SHA to use")}),external_exports.object({source:external_exports.literal("git-subdir"),url:external_exports.string().describe("Git repository: GitHub owner/repo shorthand, https://, or git@ URL"),path:external_exports.string().min(1).describe('Subdirectory within the repo containing the plugin (e.g., "tools/claude-plugin"). Cloned sparsely using partial clone (--filter=tree:0) to minimize bandwidth for monorepos.'),ref:external_exports.string().optional().describe('Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.'),sha:gitSha().optional().describe("Specific commit SHA to use")}).describe("Plugin located in a subdirectory of a larger repository (monorepo). Only the specified subdirectory is materialized; the rest of the repo is not downloaded.")])),SettingsMarketplacePluginSchema=lazySchema(()=>external_exports.object({name:external_exports.string().min(1,"Plugin name cannot be empty").refine(name=>!name.includes(" "),{message:'Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")'}).describe("Plugin name as it appears in the target repository"),source:PluginSourceSchema().describe("Where to fetch the plugin from. Must be a remote source \u2014 relative paths have no marketplace repository to resolve against."),description:external_exports.string().optional(),version:external_exports.string().optional(),strict:external_exports.boolean().optional()}).refine(p=>typeof p.source!="string",{message:'Plugins in a settings-sourced marketplace must use remote sources (github, git-subdir, npm, url, pip). Relative-path sources like "./foo" have no marketplace repository to resolve against.'})),PluginMarketplaceEntrySchema=lazySchema(()=>PluginManifestSchema().partial().extend({name:external_exports.string().min(1,"Plugin name cannot be empty").refine(name=>!name.includes(" "),{message:'Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")'}).describe("Unique identifier matching the plugin name"),source:PluginSourceSchema().describe("Where to fetch the plugin from"),category:external_exports.string().optional().describe('Category for organizing plugins (e.g., "productivity", "development")'),tags:external_exports.array(external_exports.string()).optional().describe("Tags for searchability and discovery"),strict:external_exports.boolean().optional().default(!0).describe("Require the plugin manifest to be present in the plugin folder. If false, the marketplace entry provides the manifest.")})),PluginMarketplaceSchema=lazySchema(()=>external_exports.object({name:MarketplaceNameSchema(),owner:PluginAuthorSchema().describe("Marketplace maintainer or curator information"),plugins:external_exports.array(PluginMarketplaceEntrySchema()).describe("Collection of available plugins in this marketplace"),forceRemoveDeletedPlugins:external_exports.boolean().optional().describe("When true, plugins removed from this marketplace will be automatically uninstalled and flagged for users"),metadata:external_exports.object({pluginRoot:external_exports.string().optional().describe("Base path for relative plugin sources"),version:external_exports.string().optional().describe("Marketplace version"),description:external_exports.string().optional().describe("Marketplace description")}).optional().describe("Optional marketplace metadata"),allowCrossMarketplaceDependenciesOn:external_exports.array(external_exports.string()).optional().describe("Marketplace names whose plugins may be auto-installed as dependencies. Only the root marketplace's allowlist applies \u2014 no transitive trust.")})),PluginIdSchema=lazySchema(()=>external_exports.string().regex(/^[a-z0-9][-a-z0-9._]*@[a-z0-9][-a-z0-9._]*$/i,"Plugin ID must be in format: plugin@marketplace")),DEP_REF_REGEX=/^[a-z0-9][-a-z0-9._]*(@[a-z0-9][-a-z0-9._]*)?(@\^[^@]*)?$/i,DependencyRefSchema=lazySchema(()=>external_exports.union([external_exports.string().regex(DEP_REF_REGEX,"Dependency must be a plugin name, optionally qualified with @marketplace").transform(s2=>s2.replace(/@\^[^@]*$/,"")),external_exports.object({name:external_exports.string().min(1).regex(/^[a-z0-9][-a-z0-9._]*$/i),marketplace:external_exports.string().min(1).regex(/^[a-z0-9][-a-z0-9._]*$/i).optional()}).loose().transform(o2=>o2.marketplace?`${o2.name}@${o2.marketplace}`:o2.name)])),SettingsPluginEntrySchema=lazySchema(()=>external_exports.union([PluginIdSchema(),external_exports.object({id:PluginIdSchema().describe('Plugin identifier (e.g., "formatter@tools")'),version:external_exports.string().optional().describe('Version constraint (e.g., "^2.0.0")'),required:external_exports.boolean().optional().describe("If true, cannot be disabled"),config:external_exports.record(external_exports.string(),external_exports.unknown()).optional().describe("Plugin-specific configuration")})])),InstalledPluginSchema=lazySchema(()=>external_exports.object({version:external_exports.string().describe("Currently installed version"),installedAt:external_exports.string().describe("ISO 8601 timestamp of installation"),lastUpdated:external_exports.string().optional().describe("ISO 8601 timestamp of last update"),installPath:external_exports.string().describe("Absolute path to the installed plugin directory"),gitCommitSha:external_exports.string().optional().describe("Git commit SHA for git-based plugins (for version tracking)")})),InstalledPluginsFileSchemaV1=lazySchema(()=>external_exports.object({version:external_exports.literal(1).describe("Schema version 1"),plugins:external_exports.record(PluginIdSchema(),InstalledPluginSchema()).describe("Map of plugin IDs to their installation metadata")})),PluginScopeSchema=lazySchema(()=>external_exports.enum(["managed","user","project","local"])),PluginInstallationEntrySchema=lazySchema(()=>external_exports.object({scope:PluginScopeSchema().describe("Installation scope"),projectPath:external_exports.string().optional().describe("Project path (required for project/local scopes)"),installPath:external_exports.string().describe("Absolute path to the versioned plugin directory"),version:external_exports.string().optional().describe("Currently installed version"),installedAt:external_exports.string().optional().describe("ISO 8601 timestamp of installation"),lastUpdated:external_exports.string().optional().describe("ISO 8601 timestamp of last update"),gitCommitSha:external_exports.string().optional().describe("Git commit SHA for git-based plugins")})),InstalledPluginsFileSchemaV2=lazySchema(()=>external_exports.object({version:external_exports.literal(2).describe("Schema version 2"),plugins:external_exports.record(PluginIdSchema(),external_exports.array(PluginInstallationEntrySchema())).describe("Map of plugin IDs to arrays of installation entries")})),InstalledPluginsFileSchema=lazySchema(()=>external_exports.union([InstalledPluginsFileSchemaV1(),InstalledPluginsFileSchemaV2()])),KnownMarketplaceSchema=lazySchema(()=>external_exports.object({source:MarketplaceSourceSchema().describe("Where to fetch the marketplace from"),installLocation:external_exports.string().describe("Local cache path where marketplace manifest is stored"),lastUpdated:external_exports.string().describe("ISO 8601 timestamp of last marketplace refresh"),autoUpdate:external_exports.boolean().optional().describe("Whether to automatically update this marketplace and its installed plugins on startup")})),KnownMarketplacesFileSchema=lazySchema(()=>external_exports.record(external_exports.string(),KnownMarketplaceSchema()))}});function normalizeNameForMCP(name){let normalized=name.replace(/[^a-zA-Z0-9_-]/g,"_");return name.startsWith(CLAUDEAI_SERVER_PREFIX)&&(normalized=normalized.replace(/_+/g,"_").replace(/^_|_$/g,"")),normalized}var CLAUDEAI_SERVER_PREFIX,init_normalization=__esm({"src/services/mcp/normalization.ts"(){CLAUDEAI_SERVER_PREFIX="claude.ai ";__name(normalizeNameForMCP,"normalizeNameForMCP")}});function mcpInfoFromString(toolString){let parts=toolString.split("__"),[mcpPart,serverName,...toolNameParts]=parts;if(mcpPart!=="mcp"||!serverName)return null;let toolName=toolNameParts.length>0?toolNameParts.join("__"):void 0;return{serverName,toolName}}var init_mcpStringUtils=__esm({"src/services/mcp/mcpStringUtils.ts"(){init_normalization();__name(mcpInfoFromString,"mcpInfoFromString")}});var AGENT_TOOL_NAME,init_constants3=__esm({"src/tools/AgentTool/constants.ts"(){AGENT_TOOL_NAME="Agent"}});var TASK_OUTPUT_TOOL_NAME,init_constants4=__esm({"src/tools/TaskOutputTool/constants.ts"(){TASK_OUTPUT_TOOL_NAME="TaskOutput"}});var TASK_STOP_TOOL_NAME,init_prompt=__esm({"src/tools/TaskStopTool/prompt.ts"(){TASK_STOP_TOOL_NAME="TaskStop"}});function normalizeLegacyToolName(name){return LEGACY_TOOL_NAME_ALIASES[name]??name}function unescapeRuleContent(content){return content.replace(/\\\(/g,"(").replace(/\\\)/g,")").replace(/\\\\/g,"\\")}function permissionRuleValueFromString(ruleString){let openParenIndex=findFirstUnescapedChar(ruleString,"(");if(openParenIndex===-1)return{toolName:normalizeLegacyToolName(ruleString)};let closeParenIndex=findLastUnescapedChar(ruleString,")");if(closeParenIndex===-1||closeParenIndex<=openParenIndex)return{toolName:normalizeLegacyToolName(ruleString)};if(closeParenIndex!==ruleString.length-1)return{toolName:normalizeLegacyToolName(ruleString)};let toolName=ruleString.substring(0,openParenIndex),rawContent=ruleString.substring(openParenIndex+1,closeParenIndex);if(!toolName)return{toolName:normalizeLegacyToolName(ruleString)};if(rawContent===""||rawContent==="*")return{toolName:normalizeLegacyToolName(toolName)};let ruleContent=unescapeRuleContent(rawContent);return{toolName:normalizeLegacyToolName(toolName),ruleContent}}function findFirstUnescapedChar(str,char){for(let i3=0;i3<str.length;i3++)if(str[i3]===char){let backslashCount=0,j=i3-1;for(;j>=0&&str[j]==="\\";)backslashCount++,j--;if(backslashCount%2===0)return i3}return-1}function findLastUnescapedChar(str,char){for(let i3=str.length-1;i3>=0;i3--)if(str[i3]===char){let backslashCount=0,j=i3-1;for(;j>=0&&str[j]==="\\";)backslashCount++,j--;if(backslashCount%2===0)return i3}return-1}var LEGACY_TOOL_NAME_ALIASES,init_permissionRuleParser=__esm({"src/utils/permissions/permissionRuleParser.ts"(){init_constants3();init_constants4();init_prompt();LEGACY_TOOL_NAME_ALIASES={Task:AGENT_TOOL_NAME,Exec:"Bash",KillShell:TASK_STOP_TOOL_NAME,AgentOutputTool:TASK_OUTPUT_TOOL_NAME,BashOutputTool:TASK_OUTPUT_TOOL_NAME};__name(normalizeLegacyToolName,"normalizeLegacyToolName");__name(unescapeRuleContent,"unescapeRuleContent");__name(permissionRuleValueFromString,"permissionRuleValueFromString");__name(findFirstUnescapedChar,"findFirstUnescapedChar");__name(findLastUnescapedChar,"findLastUnescapedChar")}});function capitalize2(str){return str.charAt(0).toUpperCase()+str.slice(1)}function plural(n2,word,pluralWord=word+"s"){return n2===1?word:pluralWord}var MAX_STRING_LENGTH,init_stringUtils=__esm({"src/utils/stringUtils.ts"(){__name(capitalize2,"capitalize");__name(plural,"plural");MAX_STRING_LENGTH=2**25}});function isFilePatternTool(toolName){return TOOL_VALIDATION_CONFIG.filePatternTools.includes(toolName)}function isBashPrefixTool(toolName){return TOOL_VALIDATION_CONFIG.bashPrefixTools.includes(toolName)}function getCustomValidation(toolName){return TOOL_VALIDATION_CONFIG.customValidation[toolName]}var TOOL_VALIDATION_CONFIG,init_toolValidationConfig=__esm({"src/utils/settings/toolValidationConfig.ts"(){TOOL_VALIDATION_CONFIG={filePatternTools:["Read","Write","Edit","Glob","NotebookRead","NotebookEdit"],bashPrefixTools:["Bash"],customValidation:{WebSearch:__name(content=>content.includes("*")||content.includes("?")?{valid:!1,error:"WebSearch does not support wildcards",suggestion:"Use exact search terms without * or ?",examples:["WebSearch(claude ai)","WebSearch(typescript tutorial)"]}:{valid:!0},"WebSearch"),WebFetch:__name(content=>content.includes("://")||content.startsWith("http")?{valid:!1,error:"WebFetch permissions use domain format, not URLs",suggestion:'Use "domain:hostname" format',examples:["WebFetch(domain:example.com)","WebFetch(domain:github.com)"]}:content.startsWith("domain:")?{valid:!0}:{valid:!1,error:'WebFetch permissions must use "domain:" prefix',suggestion:'Use "domain:hostname" format',examples:["WebFetch(domain:example.com)","WebFetch(domain:*.google.com)"]},"WebFetch")}};__name(isFilePatternTool,"isFilePatternTool");__name(isBashPrefixTool,"isBashPrefixTool");__name(getCustomValidation,"getCustomValidation")}});function isEscaped(str,index){let backslashCount=0,j=index-1;for(;j>=0&&str[j]==="\\";)backslashCount++,j--;return backslashCount%2!==0}function countUnescapedChar(str,char){let count3=0;for(let i3=0;i3<str.length;i3++)str[i3]===char&&!isEscaped(str,i3)&&count3++;return count3}function hasUnescapedEmptyParens(str){for(let i3=0;i3<str.length-1;i3++)if(str[i3]==="("&&str[i3+1]===")"&&!isEscaped(str,i3))return!0;return!1}function validatePermissionRule(rule){if(!rule||rule.trim()==="")return{valid:!1,error:"Permission rule cannot be empty"};let openCount=countUnescapedChar(rule,"("),closeCount=countUnescapedChar(rule,")");if(openCount!==closeCount)return{valid:!1,error:"Mismatched parentheses",suggestion:"Ensure all opening parentheses have matching closing parentheses"};if(hasUnescapedEmptyParens(rule)){let toolName=rule.substring(0,rule.indexOf("("));return toolName?{valid:!1,error:"Empty parentheses",suggestion:`Either specify a pattern or use just "${toolName}" without parentheses`,examples:[`${toolName}`,`${toolName}(some-pattern)`]}:{valid:!1,error:"Empty parentheses with no tool name",suggestion:"Specify a tool name before the parentheses"}}let parsed=permissionRuleValueFromString(rule),mcpInfo=mcpInfoFromString(parsed.toolName);if(mcpInfo)return parsed.ruleContent!==void 0||countUnescapedChar(rule,"(")>0?{valid:!1,error:"MCP rules do not support patterns in parentheses",suggestion:`Use "${parsed.toolName}" without parentheses, or use "mcp__${mcpInfo.serverName}__*" for all tools`,examples:[`mcp__${mcpInfo.serverName}`,`mcp__${mcpInfo.serverName}__*`,mcpInfo.toolName&&mcpInfo.toolName!=="*"?`mcp__${mcpInfo.serverName}__${mcpInfo.toolName}`:void 0].filter(Boolean)}:{valid:!0};if(!parsed.toolName||parsed.toolName.length===0)return{valid:!1,error:"Tool name cannot be empty"};if(parsed.toolName[0]!==parsed.toolName[0]?.toUpperCase())return{valid:!1,error:"Tool names must start with uppercase",suggestion:`Use "${capitalize2(String(parsed.toolName))}"`};let customValidation=getCustomValidation(parsed.toolName);if(customValidation&&parsed.ruleContent!==void 0){let customResult=customValidation(parsed.ruleContent);if(!customResult.valid)return customResult}if(isBashPrefixTool(parsed.toolName)&&parsed.ruleContent!==void 0){let content=parsed.ruleContent;if(content.includes(":*")&&!content.endsWith(":*"))return{valid:!1,error:"The :* pattern must be at the end",suggestion:"Move :* to the end for prefix matching, or use * for wildcard matching",examples:["Bash(npm run:*) - prefix matching (legacy)","Bash(npm run *) - wildcard matching"]};if(content===":*")return{valid:!1,error:"Prefix cannot be empty before :*",suggestion:"Specify a command prefix before :*",examples:["Bash(npm:*)","Bash(git:*)"]}}if(isFilePatternTool(parsed.toolName)&&parsed.ruleContent!==void 0){let content=parsed.ruleContent;if(content.includes(":*"))return{valid:!1,error:'The ":*" syntax is only for Bash prefix rules',suggestion:'Use glob patterns like "*" or "**" for file matching',examples:[`${parsed.toolName}(*.ts) - matches .ts files`,`${parsed.toolName}(src/**) - matches all files in src`,`${parsed.toolName}(**/*.test.ts) - matches test files`]};if(content.includes("*")&&!content.match(/^\*|\*$|\*\*|\/\*|\*\.|\*\)/)&&!content.includes("**"))return{valid:!1,error:"Wildcard placement might be incorrect",suggestion:"Wildcards are typically used at path boundaries",examples:[`${parsed.toolName}(*.js) - all .js files`,`${parsed.toolName}(src/*) - all files directly in src`,`${parsed.toolName}(src/**) - all files recursively in src`]}}return{valid:!0}}var PermissionRuleSchema,init_permissionValidation=__esm({"src/utils/settings/permissionValidation.ts"(){init_v4();init_mcpStringUtils();init_lazySchema();init_permissionRuleParser();init_stringUtils();init_toolValidationConfig();__name(isEscaped,"isEscaped");__name(countUnescapedChar,"countUnescapedChar");__name(hasUnescapedEmptyParens,"hasUnescapedEmptyParens");__name(validatePermissionRule,"validatePermissionRule");PermissionRuleSchema=lazySchema(()=>external_exports.string().superRefine((val,ctx)=>{let result2=validatePermissionRule(val);if(!result2.valid){let message=result2.error;result2.suggestion&&(message+=`. ${result2.suggestion}`),result2.examples&&result2.examples.length>0&&(message+=`. Examples: ${result2.examples.join(", ")}`),ctx.addIssue({code:external_exports.ZodIssueCode.custom,message,params:{received:val}})}}))}});var EnvironmentVariablesSchema,PermissionsSchema,ExtraKnownMarketplaceSchema,AllowedMcpServerEntrySchema,DeniedMcpServerEntrySchema,CUSTOMIZATION_SURFACES,SettingsSchema,init_types2=__esm({"src/utils/settings/types.ts"(){init_v4();init_sandboxTypes();init_envUtils();init_lazySchema();init_PermissionMode();init_schemas3();init_constants2();init_permissionValidation();init_hooks();init_hooks();init_array4();EnvironmentVariablesSchema=lazySchema(()=>external_exports.record(external_exports.string(),external_exports.coerce.string())),PermissionsSchema=lazySchema(()=>external_exports.object({allow:external_exports.array(PermissionRuleSchema()).optional().describe("List of permission rules for allowed operations"),allowed:external_exports.array(external_exports.string()).optional().describe("Compatibility alias used by CCJK permission templates; Clavue preserves it without auto-translating it to canonical allow rules."),deny:external_exports.array(PermissionRuleSchema()).optional().describe("List of permission rules for denied operations"),denied:external_exports.array(external_exports.string()).optional().describe("Compatibility alias used by CCJK permission templates; Clavue preserves it without auto-translating it to canonical deny rules."),ask:external_exports.array(PermissionRuleSchema()).optional().describe("List of permission rules that should always prompt for confirmation"),defaultMode:external_exports.enum(PERMISSION_MODES).optional().describe("Default permission mode when Clavue needs access. External sessions fall back to acceptEdits when unset."),disableBypassPermissionsMode:external_exports.enum(["disable"]).optional().describe("Disable the ability to bypass permission prompts"),trustedOperatorMode:external_exports.boolean().optional().describe("Enable trusted operator workflows for release, deploy, SSH, and publishing commands after explicit user opt-in."),secretUsage:external_exports.enum(["off","ask","local-env-only","trusted-local"]).optional().describe("Controls whether local deploy credentials may be inherited by subprocesses. Provider runtime credentials are always scrubbed."),disableAutoMode:external_exports.enum(["disable"]).optional().describe("Disable auto mode"),additionalDirectories:external_exports.array(external_exports.string()).optional().describe("Additional directories to include in the permission scope"),trustedDirectories:external_exports.array(external_exports.string()).optional().describe("Compatibility alias used by CCJK permission templates; Clavue preserves it without auto-translating it to additionalDirectories."),autoApprovePatterns:external_exports.array(external_exports.string()).optional().describe("Compatibility field preserved for CCJK permission tooling")}).passthrough()),ExtraKnownMarketplaceSchema=lazySchema(()=>external_exports.object({source:MarketplaceSourceSchema().describe("Where to fetch the marketplace from"),installLocation:external_exports.string().optional().describe("Local cache path where marketplace manifest is stored (auto-generated if not provided)"),autoUpdate:external_exports.boolean().optional().describe("Whether to automatically update this marketplace and its installed plugins on startup")})),AllowedMcpServerEntrySchema=lazySchema(()=>external_exports.object({serverName:external_exports.string().regex(/^[a-zA-Z0-9_-]+$/,"Server name can only contain letters, numbers, hyphens, and underscores").optional().describe("Name of the MCP server that users are allowed to configure"),serverCommand:external_exports.array(external_exports.string()).min(1,"Server command must have at least one element (the command)").optional().describe("Command array [command, ...args] to match exactly for allowed stdio servers"),serverUrl:external_exports.string().optional().describe('URL pattern with wildcard support (e.g., "https://*.example.com/*") for allowed remote MCP servers')}).refine(data=>count2([data.serverName!==void 0,data.serverCommand!==void 0,data.serverUrl!==void 0],Boolean)===1,{message:'Entry must have exactly one of "serverName", "serverCommand", or "serverUrl"'})),DeniedMcpServerEntrySchema=lazySchema(()=>external_exports.object({serverName:external_exports.string().regex(/^[a-zA-Z0-9_-]+$/,"Server name can only contain letters, numbers, hyphens, and underscores").optional().describe("Name of the MCP server that is explicitly blocked"),serverCommand:external_exports.array(external_exports.string()).min(1,"Server command must have at least one element (the command)").optional().describe("Command array [command, ...args] to match exactly for blocked stdio servers"),serverUrl:external_exports.string().optional().describe('URL pattern with wildcard support (e.g., "https://*.example.com/*") for blocked remote MCP servers')}).refine(data=>count2([data.serverName!==void 0,data.serverCommand!==void 0,data.serverUrl!==void 0],Boolean)===1,{message:'Entry must have exactly one of "serverName", "serverCommand", or "serverUrl"'})),CUSTOMIZATION_SURFACES=["skills","agents","hooks","mcp"],SettingsSchema=lazySchema(()=>external_exports.object({$schema:external_exports.literal(CLAUDE_CODE_SETTINGS_SCHEMA_URL).optional().describe("JSON Schema reference for Clavue settings"),apiKeyHelper:external_exports.string().optional().describe("Path to a script that outputs authentication values"),awsCredentialExport:external_exports.string().optional().describe("Path to a script that exports AWS credentials"),awsAuthRefresh:external_exports.string().optional().describe("Path to a script that refreshes AWS authentication"),gcpAuthRefresh:external_exports.string().optional().describe("Command to refresh GCP authentication (e.g., gcloud auth application-default login)"),...isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_XAA)?{xaaIdp:external_exports.object({issuer:external_exports.string().url().describe("IdP issuer URL for OIDC discovery"),clientId:external_exports.string().describe("Clavue's client_id registered at the IdP"),callbackPort:external_exports.number().int().positive().optional().describe("Fixed loopback callback port for the IdP OIDC login. Only needed if the IdP does not honor RFC 8252 port-any matching.")}).optional().describe("XAA (SEP-990) IdP connection. Configure once; all XAA-enabled MCP servers reuse this.")}:{},fileSuggestion:external_exports.object({type:external_exports.literal("command"),command:external_exports.string()}).optional().describe("Custom file suggestion configuration for @ mentions"),respectGitignore:external_exports.boolean().optional().describe("Whether file picker should respect .gitignore files (default: true). Note: .ignore files are always respected."),cleanupPeriodDays:external_exports.number().nonnegative().int().optional().describe("Number of days to retain chat transcripts (default: 30). Setting to 0 disables session persistence entirely: no transcripts are written and existing transcripts are deleted at startup."),env:EnvironmentVariablesSchema().optional().describe("Environment variables to set for Clavue sessions"),attribution:external_exports.object({commit:external_exports.string().optional().describe("Attribution text for git commits, including any trailers. Empty string hides attribution."),pr:external_exports.string().optional().describe("Attribution text for pull request descriptions. Empty string hides attribution.")}).optional().describe("Customize attribution text for commits and PRs. Each field defaults to the standard Clavue attribution if not set."),includeCoAuthoredBy:external_exports.boolean().optional().describe("Deprecated: Use attribution instead. Whether to include Clavue's co-authored by attribution in commits and PRs (defaults to true)"),includeGitInstructions:external_exports.boolean().optional().describe("Include built-in commit and PR workflow instructions in Clavue's system prompt (default: true)"),permissions:PermissionsSchema().optional().describe("Tool usage permissions configuration"),model:external_exports.string().optional().describe("Override the default model used by Clavue"),availableModels:external_exports.array(external_exports.string()).optional().describe('Allowlist of models that users can select. Accepts family aliases ("opus" allows any opus version), version prefixes ("opus-4-5" allows only that version), and full model IDs. If undefined, all models are available. If empty array, only the default model is available. Typically set in managed settings by enterprise administrators.'),modelOverrides:external_exports.record(external_exports.string(),external_exports.string()).optional().describe('Override mapping from Anthropic model ID (e.g. "claude-opus-4-6") to provider-specific model ID (e.g. a Bedrock inference profile ARN). Typically set in managed settings by enterprise administrators.'),enableAllProjectMcpServers:external_exports.boolean().optional().describe("Whether to automatically approve all MCP servers in the project"),enabledMcpjsonServers:external_exports.array(external_exports.string()).optional().describe("List of approved MCP servers from .mcp.json"),disabledMcpjsonServers:external_exports.array(external_exports.string()).optional().describe("List of rejected MCP servers from .mcp.json"),allowedMcpServers:external_exports.array(AllowedMcpServerEntrySchema()).optional().describe("Enterprise allowlist of MCP servers that can be used. Applies to all scopes including enterprise servers from managed-mcp.json. If undefined, all servers are allowed. If empty array, no servers are allowed. Denylist takes precedence - if a server is on both lists, it is denied."),deniedMcpServers:external_exports.array(DeniedMcpServerEntrySchema()).optional().describe("Enterprise denylist of MCP servers that are explicitly blocked. If a server is on the denylist, it will be blocked across all scopes including enterprise. Denylist takes precedence over allowlist - if a server is on both lists, it is denied."),hooks:HooksSchema().optional().describe("Custom commands to run before/after tool executions"),worktree:external_exports.object({symlinkDirectories:external_exports.array(external_exports.string()).optional().describe('Directories to symlink from main repository to worktrees to avoid disk bloat. Must be explicitly configured - no directories are symlinked by default. Common examples: "node_modules", ".cache", ".bin"'),sparsePaths:external_exports.array(external_exports.string()).optional().describe("Directories to include when creating worktrees, via git sparse-checkout (cone mode). Dramatically faster in large monorepos \u2014 only the listed paths are written to disk.")}).optional().describe("Git worktree configuration for --worktree flag."),disableAllHooks:external_exports.boolean().optional().describe("Disable all hooks and statusLine execution"),defaultShell:external_exports.enum(["bash","powershell"]).optional().describe("Default shell for input-box ! commands. Defaults to 'bash' on all platforms (no Windows auto-flip)."),allowManagedHooksOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), only hooks from managed settings run. User, project, and local hooks are ignored."),allowedHttpHookUrls:external_exports.array(external_exports.string()).optional().describe('Allowlist of URL patterns that HTTP hooks may target. Supports * as a wildcard (e.g. "https://hooks.example.com/*"). When set, HTTP hooks with non-matching URLs are blocked. If undefined, all URLs are allowed. If empty array, no HTTP hooks are allowed. Arrays merge across settings sources (same semantics as allowedMcpServers).'),httpHookAllowedEnvVars:external_exports.array(external_exports.string()).optional().describe("Allowlist of environment variable names HTTP hooks may interpolate into headers. When set, each hook's effective allowedEnvVars is the intersection with this list. If undefined, no restriction is applied. Arrays merge across settings sources (same semantics as allowedMcpServers)."),allowManagedPermissionRulesOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), only permission rules (allow/deny/ask) from managed settings are respected. User, project, local, and CLI argument permission rules are ignored."),allowManagedMcpServersOnly:external_exports.boolean().optional().describe("When true (and set in managed settings), allowedMcpServers is only read from managed settings. deniedMcpServers still merges from all sources, so users can deny servers for themselves. Users can still add their own MCP servers, but only the admin-defined allowlist applies."),strictPluginOnlyCustomization:external_exports.preprocess(v=>Array.isArray(v)?v.filter(x2=>CUSTOMIZATION_SURFACES.includes(x2)):v,external_exports.union([external_exports.boolean(),external_exports.array(external_exports.enum(CUSTOMIZATION_SURFACES))])).optional().catch(void 0).describe('When set in managed settings, blocks non-plugin customization sources for the listed surfaces. Array form locks specific surfaces (e.g. ["skills", "hooks"]); `true` locks all four; `false` is an explicit no-op. Blocked: ~/.clavue/{surface}/, .clavue/{surface}/ (project), settings.json hooks, .mcp.json. NOT blocked: managed (policySettings) sources, plugin-provided customizations. Composes with strictKnownMarketplaces for end-to-end admin control \u2014 plugins gated by marketplace allowlist, everything else blocked here.'),statusLine:external_exports.preprocess(value=>value&&typeof value=="object"&&!Array.isArray(value)&&Object.keys(value).length===0?void 0:value,external_exports.object({type:external_exports.literal("command"),command:external_exports.string(),padding:external_exports.number().optional()}).optional()).optional().catch(void 0).describe("Custom status line display configuration"),enabledPlugins:external_exports.record(external_exports.string(),external_exports.union([external_exports.array(external_exports.string()),external_exports.boolean(),external_exports.undefined()])).optional().describe('Enabled plugins using plugin-id@marketplace-id format. Example: { "formatter@anthropic-tools": true }. Also supports extended format with version constraints.'),extraKnownMarketplaces:external_exports.record(external_exports.string(),ExtraKnownMarketplaceSchema()).check(ctx=>{for(let[key,entry]of Object.entries(ctx.value))entry.source.source==="settings"&&entry.source.name!==key&&ctx.issues.push({code:"custom",input:entry.source.name,path:[key,"source","name"],message:`Settings-sourced marketplace name must match its extraKnownMarketplaces key (got key "${key}" but source.name "${entry.source.name}")`})}).optional().describe("Additional marketplaces to make available for this repository. Typically used in repository .clavue/settings.json to ensure team members have required plugin sources."),strictKnownMarketplaces:external_exports.array(MarketplaceSourceSchema()).optional().describe("Enterprise strict list of allowed marketplace sources. When set in managed settings, ONLY these exact sources can be added as marketplaces. The check happens BEFORE downloading, so blocked sources never touch the filesystem. Note: this is a policy gate only \u2014 it does NOT register marketplaces. To pre-register allowed marketplaces for users, also set extraKnownMarketplaces."),blockedMarketplaces:external_exports.array(MarketplaceSourceSchema()).optional().describe("Enterprise blocklist of marketplace sources. When set in managed settings, these exact sources are blocked from being added as marketplaces. The check happens BEFORE downloading, so blocked sources never touch the filesystem."),forceLoginMethod:external_exports.enum(["claudeai","console"]).optional().describe('Force a specific login method: "claudeai" for Claude Pro/Max, "console" for Console billing'),forceLoginOrgUUID:external_exports.string().optional().describe("Organization UUID to use for OAuth login"),otelHeadersHelper:external_exports.string().optional().describe("Path to a script that outputs OpenTelemetry headers"),outputStyle:external_exports.string().optional().describe("Controls the output style for assistant responses"),language:external_exports.string().optional().describe('Preferred language for Clavue responses and voice dictation (e.g., "japanese", "spanish")'),uiLocale:external_exports.enum(["zh-CN","en","ja-JP"]).optional().describe("Controls Clavue UI language and default conversation language profile (zh-CN / en / ja-JP)."),skipWebFetchPreflight:external_exports.boolean().optional().describe("Skip the WebFetch blocklist check for enterprise environments with restrictive security policies"),allowBrowser:external_exports.boolean().optional().describe("Allow Clavue to enable browser/page automation capability when the active tools or MCP/plugin surfaces support it"),sandbox:SandboxSettingsSchema().optional(),feedbackSurveyRate:external_exports.number().min(0).max(1).optional().describe("Probability (0\u20131) that the session quality survey appears when eligible. 0.05 is a reasonable starting point."),spinnerTipsEnabled:external_exports.boolean().optional().describe("Whether to show tips in the spinner"),spinnerVerbs:external_exports.object({mode:external_exports.enum(["append","replace"]),verbs:external_exports.array(external_exports.string())}).optional().describe('Customize spinner verbs. mode: "append" adds verbs to defaults, "replace" uses only your verbs.'),spinnerTipsOverride:external_exports.object({excludeDefault:external_exports.boolean().optional(),tips:external_exports.array(external_exports.string())}).optional().describe("Override spinner tips. tips: array of tip strings. excludeDefault: if true, only show custom tips (default: false)."),syntaxHighlightingDisabled:external_exports.boolean().optional().describe("Whether to disable syntax highlighting in diffs"),conversationTokenStatusEnabled:external_exports.boolean().optional().describe("Whether to show live conversation token status in the prompt footer and terminal title. Defaults to true."),orchestrationPreset:external_exports.enum(["safe","balanced","aggressive"]).optional().describe("Controls adaptive runtime model orchestration policy. safe is telemetry-first, balanced is the default production policy, and aggressive is reserved for fuller multi-model autonomy. Environment variable CLAVUE_ORCHESTRATION_PRESET overrides this setting."),orchestrationExecMode:external_exports.enum(["off","observe","full"]).optional().describe("Overrides the orchestration preset execution mode. Defaults to the selected preset: simple turns stay on fast paths, while complex, risky, fallback, or release turns add reviewer/verifier/judge gates. Use observe for telemetry-only planning or off for legacy single-model dispatch. Environment variable CLAVUE_ORCHESTRATION_EXEC overrides this setting."),orchestrationRoleChainEnabled:external_exports.boolean().optional().describe("Enable reviewer/verifier/judge role-chain execution for high-risk, planning, fusion-review, shadow-review, and release-gate modes. Defaults to true. Environment variable CLAVUE_ORCHESTRATION_ROLE_CHAIN overrides this setting."),orchestrationAdversarialReviewEnabled:external_exports.boolean().optional().describe("Enable adversarial reviewer chains for complex or high-risk implementation turns. Product default is true (balanced/aggressive presets). Set false only to force lean hand+eye demotion. Environment variable CLAVUE_ORCHESTRATION_ADVERSARIAL overrides this setting."),modelFailover:external_exports.object({enabled:external_exports.boolean().optional().describe("When combo/role models fail (401/5xx/unavailable), fail over to primary or other healthy slots instead of ending the turn. Default true. Env CLAVUE_SLOT_FAILOVER overrides."),preferPrimary:external_exports.boolean().optional().describe("Prefer mainLoop/primary as the first failover target for aux roles (compute/review/plan). Default true."),softSkipReview:external_exports.boolean().optional().describe("If review/judge cannot be recovered, soft-skip that phase and continue the main path. Default true. Env CLAVUE_REVIEW_SOFT_SKIP overrides."),maxHops:external_exports.number().int().min(1).max(8).optional().describe("Max model hops per failed role step (default 3). Env CLAVUE_SLOT_FAILOVER_MAX overrides.")}).optional().describe("Combo-slot failover when models return 401/5xx/unavailable. Keeps sessions alive by falling back to primary or other configured slots."),terminalTitleFromRename:external_exports.boolean().optional().describe("Whether /rename updates the terminal tab title (defaults to true). Set to false to keep auto-generated topic titles."),alwaysThinkingEnabled:external_exports.boolean().optional().describe("Model deep-thinking. Product default false (opt-in). When true, thinking is enabled for supported models. Absent = off (schema 11+). Not the same as pager show_thinking (journal visibility)."),effortLevel:external_exports.enum(["low","medium","high","xhigh","max","ultra"]).optional().catch(void 0).describe("Persisted main-loop effort. Product default medium (schema 11+). Session /effort pin overrides for one chat."),advisorModel:external_exports.string().optional().describe("Advisor model for the server-side advisor tool."),fastMode:external_exports.boolean().optional().describe("When true, fast mode is enabled. When absent or false, fast mode is off."),fastModePerSessionOptIn:external_exports.boolean().optional().describe("When true, fast mode does not persist across sessions. Each session starts with fast mode off."),promptSuggestionEnabled:external_exports.boolean().optional().describe("When false, prompt suggestions are disabled. When absent or true, prompt suggestions are enabled."),showClearContextOnPlanAccept:external_exports.boolean().optional().describe('When true, the plan-approval dialog offers a "clear context" option. Defaults to false.'),agent:external_exports.string().optional().describe("Name of an agent (built-in or custom) to use for the main thread. Applies the agent's system prompt, tool restrictions, and model."),companyAnnouncements:external_exports.array(external_exports.string()).optional().describe("Company announcements to display at startup (one will be randomly selected if multiple are provided)"),skillOverrides:external_exports.enum(["off","user-invocable-only","name-only"]).optional().catch(void 0).describe("Restrict which skills the model can see and invoke through SkillTool. 'off' disables SkillTool entirely (the model can't invoke skills, but users can still type /<skill>). 'user-invocable-only' hides skills that exist solely as model-invoked side-effects (i.e. with disableModelInvocation set or userInvocable === false). 'name-only' shows skill names but suppresses descriptions/whenToUse in the listing \u2014 useful for token-tight contexts. Unset means no restriction. Affects both the SkillTool prompt listing and the in-conversation skill_listing attachment."),pluginConfigs:external_exports.record(external_exports.string(),external_exports.object({mcpServers:external_exports.record(external_exports.string(),external_exports.record(external_exports.string(),external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.string())]))).optional().describe("User configuration values for MCP servers keyed by server name"),options:external_exports.record(external_exports.string(),external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.string())])).optional().describe("Non-sensitive option values from plugin manifest userConfig, keyed by option name. Sensitive values go to secure storage instead.")})).optional().describe("Per-plugin configuration including MCP server user configs, keyed by plugin ID (plugin@marketplace format)"),remote:external_exports.object({defaultEnvironmentId:external_exports.string().optional().describe("Default environment ID to use for remote sessions")}).optional().describe("Remote session configuration"),autoUpdatesChannel:external_exports.enum(["latest","stable"]).optional().describe("Release channel for auto-updates (latest or stable)"),minimumVersion:external_exports.string().optional().describe("Minimum version to stay on - prevents downgrades when switching to stable channel"),plansDirectory:external_exports.string().optional().describe("Custom directory for plan files, relative to project root. If not set, defaults to ~/.clavue/plans/"),...process.env.USER_TYPE==="ant"?{classifierPermissionsEnabled:external_exports.boolean().optional().describe("Enable AI-based classification for Bash(prompt:...) permission rules")}:{},channelsEnabled:external_exports.boolean().optional().describe("Teams/Enterprise opt-in for channel notifications (MCP servers with the claude/channel capability pushing inbound messages). Default off. Set true to allow; users then select servers via --channels."),allowedChannelPlugins:external_exports.array(external_exports.object({marketplace:external_exports.string(),plugin:external_exports.string()})).optional().describe("Teams/Enterprise allowlist of channel plugins. When set, replaces the default Anthropic allowlist \u2014 admins decide which plugins may push inbound messages. Undefined falls back to the default. Requires channelsEnabled: true."),prefersReducedMotion:external_exports.boolean().optional().describe("Reduce or disable animations for accessibility (spinner shimmer, flash effects, etc.)"),officialMcp:external_exports.enum(["auto","on","off"]).optional().describe("Official Clavue MCP (web_search): auto (Cloud ON / third-party OFF), on, or off. Configure in Settings \xB7 Integrations or /mcp. Env CLAVUE_OFFICIAL_MCP overrides when set."),imageGenMode:external_exports.enum(["auto","official","byok","off"]).optional().describe("Image gen route: auto (BYOK if set else clavue-img), official, byok, or off. Pager Settings \xB7 Image gen. Env CLAVUE_IMAGE_GEN_MODE overrides."),imageGenPrefer:external_exports.enum(["quality","fast","auto"]).optional().describe("Official clavue-img: always z-image-turbo first; Grok Imagine is fallback only. Env CLAVUE_IMAGE_GEN_PREFER overrides."),imageGenByokBaseUrl:external_exports.string().optional().describe("Third-party image API base URL (OpenAI-compatible). Env CLAVUE_IMAGE_GEN_BASE_URL overrides."),imageGenByokModel:external_exports.string().optional().describe("Third-party image model (default grok-imagine-image-quality). Env CLAVUE_IMAGE_GEN_MODEL overrides."),imageGenByokApiKey:external_exports.string().optional().describe("Third-party image API key. Env CLAVUE_IMAGE_GEN_API_KEY preferred for CI. Never commit."),autoMemoryEnabled:external_exports.boolean().optional().describe("Enable auto-memory for this project. When false, Clavue will not read from or write to the auto-memory directory."),autoMemoryDirectory:external_exports.string().optional().describe("Custom directory path for auto-memory storage. Supports ~/ prefix for home directory expansion. Ignored if set in projectSettings (checked-in .clavue/settings.json) for security. When unset, defaults to ~/.clavue/projects/<sanitized-cwd>/memory/."),autoDreamEnabled:external_exports.boolean().optional().describe("Enable background memory consolidation (auto-dream). When set, overrides the server-side default."),memoryVectorSearch:external_exports.enum(["local","provider","off"]).optional().describe("Memory retrieval vector tier (Track C2). local = offline deterministic embedder (default); provider = optional remote embeddings when memoryEmbeddingModel is set; off = BM25-lite+MMR only. Env CLAVUE_MEMORY_VECTOR_SEARCH overrides."),memoryEmbeddingModel:external_exports.string().optional().describe("Provider embedding model name when memoryVectorSearch=provider. No default \u2014 provider tier is opt-in. Env CLAVUE_MEMORY_EMBEDDING_MODEL overrides."),memoryDecayHalfLifeDays:external_exports.number().optional().describe("Temporal decay half-life in days for non-evergreen memories (Grok parity default 7). Set 0 to disable decay. Env CLAVUE_MEMORY_DECAY_HALF_LIFE_DAYS overrides."),showThinkingSummaries:external_exports.boolean().optional().describe("Show thinking summaries in the transcript view (ctrl+o). Default: false."),skipDangerousModePermissionPrompt:external_exports.boolean().optional().describe("Whether the user has accepted the bypass permissions mode dialog"),skipAutoPermissionPrompt:external_exports.boolean().optional().describe("Whether the user has accepted the auto mode opt-in dialog"),useAutoModeDuringPlan:external_exports.boolean().optional().describe("Whether plan mode uses auto mode semantics when auto mode is available (default: true)"),autoMode:external_exports.object({allow:external_exports.array(external_exports.string()).optional().describe('Rules for the auto mode classifier allow section. Include the literal string "$defaults" to inherit the built-in rules at that position.'),soft_deny:external_exports.array(external_exports.string()).optional().describe('Rules for the auto mode classifier deny section. Include the literal string "$defaults" to inherit the built-in rules at that position.'),hard_deny:external_exports.array(external_exports.string()).optional().describe('Rules for the auto mode classifier that block unconditionally \u2014 user intent does not clear these. Include the literal string "$defaults" to inherit the built-in rules at that position. Aligned with Claude Code 2.1.136.'),...process.env.USER_TYPE==="ant"?{deny:external_exports.array(external_exports.string()).optional()}:{},environment:external_exports.array(external_exports.string()).optional().describe('Entries for the auto mode classifier environment section. Include the literal string "$defaults" to inherit the built-in entries at that position.')}).optional().describe("Auto mode classifier prompt customization"),disableAutoMode:external_exports.enum(["disable"]).optional().describe("Disable auto mode"),sshConfigs:external_exports.array(external_exports.object({id:external_exports.string().describe("Unique identifier for this SSH config. Used to match configs across settings sources."),name:external_exports.string().describe("Display name for the SSH connection"),sshHost:external_exports.string().describe('SSH host in format "user@hostname" or "hostname", or a host alias from ~/.ssh/config'),sshPort:external_exports.number().int().optional().describe("SSH port (default: 22)"),sshIdentityFile:external_exports.string().optional().describe("Path to SSH identity file (private key)"),startDirectory:external_exports.string().optional().describe("Default working directory on the remote host. Supports tilde expansion (e.g. ~/projects). If not specified, defaults to the remote user home directory. Can be overridden by the [dir] positional argument in `claude ssh <config> [dir]`.")})).optional().describe("SSH connection configurations for remote environments. Typically set in managed settings by enterprise administrators to pre-configure SSH connections for team members."),claudeMdExcludes:external_exports.array(external_exports.string()).optional().describe('Glob patterns or absolute paths of \u0043LAUDE.md files to exclude from loading. Patterns are matched against absolute file paths using picomatch. Only applies to User, Project, and Local memory types (Managed/policy files cannot be excluded). Examples: "/home/user/monorepo/\u0043LAUDE.md", "**/code/\u0043LAUDE.md", "**/some-dir/.clavue/rules/**"'),pluginTrustMessage:external_exports.string().optional().describe('Custom message to append to the plugin trust warning shown before installation. Only read from policy settings (managed-settings.json / MDM). Useful for enterprise administrators to add organization-specific context (e.g., "All plugins from our internal marketplace are vetted and approved.").')}).passthrough())}});var init_schemaOutput=__esm({"src/utils/settings/schemaOutput.ts"(){init_slowOperations();init_types2()}});function getValidationTip(context){let matcher=TIP_MATCHERS.find(m2=>m2.matches(context));if(!matcher)return null;let tip={...matcher.tip};if(context.code==="invalid_value"&&context.enumValues&&!tip.suggestion&&(tip.suggestion=`Valid values: ${context.enumValues.map(v=>`"${v}"`).join(", ")}`),!tip.docLink&&context.path){let pathPrefix=context.path.split(".")[0];pathPrefix&&(tip.docLink=PATH_DOC_LINKS[pathPrefix])}return tip}var DOCUMENTATION_BASE,TIP_MATCHERS,PATH_DOC_LINKS,init_validationTips=__esm({"src/utils/settings/validationTips.ts"(){DOCUMENTATION_BASE="https://code.\u0063laude.com/docs/en",TIP_MATCHERS=[{matches:__name(ctx=>ctx.path==="permissions.defaultMode"&&ctx.code==="invalid_value","matches"),tip:{suggestion:'Valid modes: "acceptEdits" (faster editing flow), "trustedOps" (auto-approve edits but ask before shell commands), "plan" (analysis only), "bypassPermissions" (auto-accept all), or "default" (legacy stricter prompts). "dontAsk" is deprecated; migrate it to "trustedOps" for release/build/deploy work.',docLink:`${DOCUMENTATION_BASE}/iam#permission-modes`}},{matches:__name(ctx=>ctx.path==="apiKeyHelper"&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Provide a shell command that outputs your API key to stdout. The script should output only the API key. Example: "/bin/generate_temp_api_key.sh"'}},{matches:__name(ctx=>ctx.path==="cleanupPeriodDays"&&ctx.code==="too_small"&&ctx.expected==="0","matches"),tip:{suggestion:"Must be 0 or greater. Set a positive number for days to retain transcripts (default is 30). Setting 0 disables session persistence entirely: no transcripts are written and existing transcripts are deleted at startup."}},{matches:__name(ctx=>ctx.path.startsWith("env.")&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Environment variables must be strings. Wrap numbers and booleans in quotes. Example: "DEBUG": "true", "PORT": "3000"',docLink:`${DOCUMENTATION_BASE}/settings#environment-variables`}},{matches:__name(ctx=>(ctx.path==="permissions.allow"||ctx.path==="permissions.deny")&&ctx.code==="invalid_type"&&ctx.expected==="array","matches"),tip:{suggestion:'Permission rules must be in an array. Format: ["Tool(specifier)"]. Examples: ["Bash(npm run build)", "Edit(docs/**)", "Read(~/.zshrc)"]. Use * for wildcards.'}},{matches:__name(ctx=>ctx.path.includes("hooks")&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Hooks use a matcher + hooks array. The matcher is a string: a tool name ("Bash"), pipe-separated list ("Edit|Write"), or empty to match all. Example: {"PostToolUse": [{"matcher": "Edit|Write", "hooks": [{"type": "command", "command": "echo Done"}]}]}'}},{matches:__name(ctx=>ctx.code==="invalid_type"&&ctx.expected==="boolean","matches"),tip:{suggestion:'Use true or false without quotes. Example: "includeCoAuthoredBy": true'}},{matches:__name(ctx=>ctx.code==="unrecognized_keys","matches"),tip:{suggestion:"Check for typos or refer to the documentation for valid fields",docLink:`${DOCUMENTATION_BASE}/settings`}},{matches:__name(ctx=>ctx.code==="invalid_value"&&ctx.enumValues!==void 0,"matches"),tip:{suggestion:void 0}},{matches:__name(ctx=>ctx.code==="invalid_type"&&ctx.expected==="object"&&ctx.received===null&&ctx.path==="","matches"),tip:{suggestion:"Check for missing commas, unmatched brackets, or trailing commas. Use a JSON validator to identify the exact syntax error."}},{matches:__name(ctx=>ctx.path==="permissions.additionalDirectories"&&ctx.code==="invalid_type","matches"),tip:{suggestion:'Must be an array of directory paths. Example: ["~/projects", "/tmp/workspace"]. You can also use --add-dir flag or /add-dir command',docLink:`${DOCUMENTATION_BASE}/iam#working-directories`}}],PATH_DOC_LINKS={permissions:`${DOCUMENTATION_BASE}/iam#configuring-permissions`,env:`${DOCUMENTATION_BASE}/settings#environment-variables`,hooks:`${DOCUMENTATION_BASE}/hooks`};__name(getValidationTip,"getValidationTip")}});function isInvalidTypeIssue(issue2){return issue2.code==="invalid_type"}function isInvalidValueIssue(issue2){return issue2.code==="invalid_value"}function isUnrecognizedKeysIssue(issue2){return issue2.code==="unrecognized_keys"}function isTooSmallIssue(issue2){return issue2.code==="too_small"}function getReceivedType(value){return value===null?"null":value===void 0?"undefined":Array.isArray(value)?"array":typeof value}function extractReceivedFromMessage(msg){let match=msg.match(/received (\w+)/);return match?match[1]:void 0}function formatZodError(error40,filePath){return error40.issues.map(issue2=>{let path10=issue2.path.map(String).join("."),message=issue2.message,expected,enumValues,expectedValue,receivedValue,invalidValue;if(isInvalidValueIssue(issue2))enumValues=issue2.values.map(v=>String(v)),expectedValue=enumValues.join(" | "),receivedValue=void 0,invalidValue=void 0;else if(isInvalidTypeIssue(issue2)){expectedValue=issue2.expected;let receivedType=extractReceivedFromMessage(issue2.message);receivedValue=receivedType??getReceivedType(issue2.input),invalidValue=receivedType??getReceivedType(issue2.input)}else isTooSmallIssue(issue2)?expectedValue=String(issue2.minimum):issue2.code==="custom"&&"params"in issue2&&(receivedValue=issue2.params.received,invalidValue=receivedValue);let tip=getValidationTip({path:path10,code:issue2.code,expected:expectedValue,received:receivedValue,enumValues,message:issue2.message,value:receivedValue});if(isInvalidValueIssue(issue2))expected=enumValues?.map(v=>`"${v}"`).join(", "),message=`Invalid value. Expected one of: ${expected}`;else if(isInvalidTypeIssue(issue2)){let receivedType=extractReceivedFromMessage(issue2.message)??getReceivedType(issue2.input);issue2.expected==="object"&&receivedType==="null"&&path10===""?message="Invalid or malformed JSON":message=`Expected ${issue2.expected}, but received ${receivedType}`}else if(isUnrecognizedKeysIssue(issue2)){let keys2=issue2.keys.join(", ");message=`Unrecognized ${plural(issue2.keys.length,"field")}: ${keys2}`}else isTooSmallIssue(issue2)&&(message=`Number must be greater than or equal to ${issue2.minimum}`,expected=String(issue2.minimum));return{file:filePath,path:path10,message,expected,invalidValue,suggestion:tip?.suggestion,docLink:tip?.docLink}})}function filterInvalidPermissionRules(data,filePath){if(!data||typeof data!="object")return[];let obj=data;if(!obj.permissions||typeof obj.permissions!="object")return[];let perms=obj.permissions,warnings=[];for(let key of["allow","deny","ask"]){let rules=perms[key];Array.isArray(rules)&&(perms[key]=rules.filter(rule=>{if(typeof rule!="string")return warnings.push({file:filePath,path:`permissions.${key}`,message:`Non-string value in ${key} array was removed`,invalidValue:rule}),!1;let result2=validatePermissionRule(rule);if(!result2.valid){let message=`Invalid permission rule "${rule}" was skipped`;return result2.error&&(message+=`: ${result2.error}`),result2.suggestion&&(message+=`. ${result2.suggestion}`),warnings.push({file:filePath,path:`permissions.${key}`,message,invalidValue:rule}),!1}return!0}))}return warnings}var init_validation2=__esm({"src/utils/settings/validation.ts"(){init_slowOperations();init_stringUtils();init_permissionValidation();init_schemaOutput();init_types2();init_validationTips();__name(isInvalidTypeIssue,"isInvalidTypeIssue");__name(isInvalidValueIssue,"isInvalidValueIssue");__name(isUnrecognizedKeysIssue,"isUnrecognizedKeysIssue");__name(isTooSmallIssue,"isTooSmallIssue");__name(getReceivedType,"getReceivedType");__name(extractReceivedFromMessage,"extractReceivedFromMessage");__name(formatZodError,"formatZodError");__name(filterInvalidPermissionRules,"filterInvalidPermissionRules")}});var init_constants5=__esm({"src/utils/settings/mdm/constants.ts"(){}});var init_rawRead=__esm({"src/utils/settings/mdm/rawRead.ts"(){init_constants5()}});function getMdmSettings(){return mdmCache??EMPTY_RESULT}function getHkcuSettings(){return hkcuCache??EMPTY_RESULT}var EMPTY_RESULT,mdmCache,hkcuCache,init_settings=__esm({"src/utils/settings/mdm/settings.ts"(){init_debug();init_diagLogs();init_fileRead();init_fsOperations();init_json();init_startupProfiler();init_managedPath();init_types2();init_validation2();init_constants5();init_rawRead();EMPTY_RESULT=Object.freeze({settings:{},errors:[]}),mdmCache=null,hkcuCache=null;__name(getMdmSettings,"getMdmSettings");__name(getHkcuSettings,"getHkcuSettings")}});function isSecretEnvKeyName(name){return SECRET_ENV_KEY.test(String(name||""))}function sanitizeCheckedInProjectSettings(settings){let next={...settings};for(let key of DROPPED_TOP_LEVEL)key in next&&delete next[key];if(next.permissions&&typeof next.permissions=="object"){let permissions={...next.permissions};for(let key of DROPPED_PERMISSION_KEYS)key in permissions&&delete permissions[key];next.permissions=permissions}if(next.env&&typeof next.env=="object"&&!Array.isArray(next.env)){let env5={...next.env};for(let key of Object.keys(env5))isSecretEnvKeyName(key)&&delete env5[key];next.env=env5}return next}var DROPPED_TOP_LEVEL,DROPPED_PERMISSION_KEYS,SECRET_ENV_KEY,init_projectSettingsSafety=__esm({"src/runtime/projectSettingsSafety.ts"(){DROPPED_TOP_LEVEL=new Set(["apiKeyHelper","awsCredentialExport","awsAuthRefresh","gcpAuthRefresh","xaaIdp","model","availableModels","modelOverrides","skipDangerousModePermissionPrompt","skipAutoPermissionPrompt"]),DROPPED_PERMISSION_KEYS=new Set(["defaultMode","disableBypassPermissionsMode","trustedOperatorMode","secretUsage","disableAutoMode","skipDangerousModePermissionPrompt","skipAutoPermissionPrompt"]),SECRET_ENV_KEY=/(?:api[_-]?key|(?:auth|access)[_-]?token|(?:^|_)token$|secret|password|private[_-]?key|credential)/i;__name(isSecretEnvKeyName,"isSecretEnvKeyName");__name(sanitizeCheckedInProjectSettings,"sanitizeCheckedInProjectSettings")}});import{dirname as dirname9,join as join14,resolve as resolve6}from"path";import{chmodSync as chmodSync2}from"fs";function getManagedSettingsFilePath(){return join14(getManagedFilePath(),"managed-settings.json")}function loadManagedFileSettings(){let errors=[],merged={},found=!1,{settings,errors:baseErrors}=parseSettingsFile(getManagedSettingsFilePath());errors.push(...baseErrors),settings&&Object.keys(settings).length>0&&(merged=mergeWith_default(merged,settings,settingsMergeCustomizer),found=!0);let dropInDir=getManagedSettingsDropInDir();try{let entries=getFsImplementation().readdirSync(dropInDir).filter(d=>(d.isFile()||d.isSymbolicLink())&&d.name.endsWith(".json")&&!d.name.startsWith(".")).map(d=>d.name).sort();for(let name of entries){let{settings:settings2,errors:fileErrors}=parseSettingsFile(join14(dropInDir,name));errors.push(...fileErrors),settings2&&Object.keys(settings2).length>0&&(merged=mergeWith_default(merged,settings2,settingsMergeCustomizer),found=!0)}}catch(e2){let code=getErrnoCode(e2);code!=="ENOENT"&&code!=="ENOTDIR"&&logError2(e2)}return{settings:found?merged:null,errors}}function handleFileSystemError(error40,path10){typeof error40=="object"&&error40&&"code"in error40&&error40.code==="ENOENT"?logForDebugging(`Broken symlink or missing file encountered for settings.json at path: ${path10}`):logError2(error40)}function parseSettingsFile(path10){let cached2=getCachedParsedFile(path10);if(cached2)return{settings:cached2.settings?clone2(cached2.settings):null,errors:cached2.errors};let result2=parseSettingsFileUncached(path10);return setCachedParsedFile(path10,result2),{settings:result2.settings?clone2(result2.settings):null,errors:result2.errors}}function parseSettingsFileUncached(path10){try{let{resolvedPath}=safeResolvePath(getFsImplementation(),path10),content=readFileSync4(resolvedPath);if(content.trim()==="")return{settings:{},errors:[]};let data=safeParseJSON(content,!1),ruleWarnings=filterInvalidPermissionRules(data,path10),result2=SettingsSchema().safeParse(data);if(!result2.success){let errors=formatZodError(result2.error,path10);return{settings:null,errors:[...ruleWarnings,...errors]}}return{settings:result2.data,errors:ruleWarnings}}catch(error40){return handleFileSystemError(error40,path10),{settings:null,errors:[]}}}function getSettingsRootPathForSource(source){switch(source){case"userSettings":return resolve6(getClaudeConfigHomeDir());case"policySettings":case"projectSettings":case"localSettings":return resolve6(getOriginalCwd());case"flagSettings":{let path10=getFlagSettingsPath();return path10?dirname9(resolve6(path10)):resolve6(getOriginalCwd())}}}function getUserSettingsFilePath(){return getUseCoworkPlugins()||isEnvTruthy(process.env.CLAUDE_CODE_USE_COWORK_PLUGINS)?"cowork_settings.json":"settings.json"}function getSettingsFilePathForSource(source){switch(source){case"userSettings":return join14(getSettingsRootPathForSource(source),getUserSettingsFilePath());case"projectSettings":case"localSettings":return join14(getSettingsRootPathForSource(source),getRelativeSettingsFilePathForSource(source));case"policySettings":return getManagedSettingsFilePath();case"flagSettings":return getFlagSettingsPath()}}function getRelativeSettingsFilePathForSource(source){switch(source){case"projectSettings":return join14(".clavue","settings.json");case"localSettings":return join14(".clavue","settings.local.json")}}function getSettingsForSource(source){let cached2=getCachedSettingsForSource(source);if(cached2!==void 0)return cached2;let result2=getSettingsForSourceUncached(source);return setCachedSettingsForSource(source,result2),result2}function getSettingsForSourceUncached(source){if(source==="policySettings"){let remoteSettings=getRemoteManagedSettingsSyncFromCache();if(remoteSettings&&Object.keys(remoteSettings).length>0)return remoteSettings;let mdmResult=getMdmSettings();if(Object.keys(mdmResult.settings).length>0)return mdmResult.settings;let{settings:fileSettings2}=loadManagedFileSettings();if(fileSettings2)return fileSettings2;let hkcu=getHkcuSettings();return Object.keys(hkcu.settings).length>0?hkcu.settings:null}let settingsFilePath=getSettingsFilePathForSource(source),{settings:fileSettings}=settingsFilePath?parseSettingsFile(settingsFilePath):{settings:null};if(source==="projectSettings"&&fileSettings)return sanitizeCheckedInProjectSettings(fileSettings);if(source==="flagSettings"){let inlineSettings=getFlagSettingsInline();if(inlineSettings){let parsed=SettingsSchema().safeParse(inlineSettings);if(parsed.success)return mergeWith_default(fileSettings||{},parsed.data,settingsMergeCustomizer)}}return fileSettings}function updateSettingsForSource(source,settings){if(source==="policySettings"||source==="flagSettings")return{error:null};let filePath=getSettingsFilePathForSource(source);if(!filePath)return{error:null};try{let settingsDir=dirname9(filePath);if(getFsImplementation().mkdirSync(settingsDir,{...process.platform!=="win32"&&(source==="userSettings"||source==="localSettings")?{mode:448}:{}}),process.platform!=="win32"&&(source==="userSettings"||source==="localSettings"))try{chmodSync2(settingsDir,448)}catch{}let existingSettings=getSettingsForSourceUncached(source);if(!existingSettings){let content=null;try{content=readFileSync4(filePath)}catch(e2){if(!isENOENT(e2))throw e2}if(content!==null){let rawData=safeParseJSON(content);if(rawData===null)return{error:new Error(`Invalid JSON syntax in settings file at ${filePath}`)};rawData&&typeof rawData=="object"&&(existingSettings=rawData,logForDebugging(`Using raw settings from ${filePath} due to validation failure`))}}let updatedSettings=mergeWith_default(existingSettings||{},settings,(_objValue,srcValue,key,object2)=>{if(srcValue===void 0&&object2&&typeof key=="string"){delete object2[key];return}if(Array.isArray(srcValue))return srcValue});markInternalWrite(filePath);let shouldForcePrivateSettingsMode=process.platform!=="win32"&&(source==="userSettings"||source==="localSettings");writeFileSyncAndFlush(filePath,jsonStringify(updatedSettings,null,2)+`
177
+ `,shouldForcePrivateSettingsMode?{encoding:"utf-8",mode:384}:{encoding:"utf-8"}),shouldForcePrivateSettingsMode&&chmodSync2(filePath,384),resetSettingsCache(),source==="localSettings"&&addFileGlobRuleToGitignore(getRelativeSettingsFilePathForSource("localSettings"),getOriginalCwd())}catch(e2){let error40=new Error(`Failed to read raw settings from ${filePath}: ${e2}`);return logError2(error40),{error:error40}}return{error:null}}function mergeArrays(targetArray,sourceArray){return uniq2([...targetArray,...sourceArray])}function settingsMergeCustomizer(objValue,srcValue){if(Array.isArray(objValue)&&Array.isArray(srcValue))return mergeArrays(objValue,srcValue)}function loadSettingsFromDisk(){if(isLoadingSettings)return{settings:{},errors:[]};let startTime=Date.now();profileCheckpoint("loadSettingsFromDisk_start"),logForDiagnosticsNoPII("info","settings_load_started"),isLoadingSettings=!0;try{let pluginSettings=getPluginSettingsBase(),mergedSettings={};pluginSettings&&(mergedSettings=mergeWith_default(mergedSettings,pluginSettings,settingsMergeCustomizer));let allErrors=[],seenErrors=new Set,seenFiles=new Set;for(let source of getEnabledSettingSources()){if(source==="policySettings"){let policySettings=null,policyErrors=[],remoteSettings=getRemoteManagedSettingsSyncFromCache();if(remoteSettings&&Object.keys(remoteSettings).length>0){let result2=SettingsSchema().safeParse(remoteSettings);result2.success?policySettings=result2.data:policyErrors.push(...formatZodError(result2.error,"remote managed settings"))}if(!policySettings){let mdmResult=getMdmSettings();Object.keys(mdmResult.settings).length>0&&(policySettings=mdmResult.settings),policyErrors.push(...mdmResult.errors)}if(!policySettings){let{settings,errors}=loadManagedFileSettings();settings&&(policySettings=settings),policyErrors.push(...errors)}if(!policySettings){let hkcu=getHkcuSettings();Object.keys(hkcu.settings).length>0&&(policySettings=hkcu.settings),policyErrors.push(...hkcu.errors)}policySettings&&(mergedSettings=mergeWith_default(mergedSettings,policySettings,settingsMergeCustomizer));for(let error40 of policyErrors){let errorKey=`${error40.file}:${error40.path}:${error40.message}`;seenErrors.has(errorKey)||(seenErrors.add(errorKey),allErrors.push(error40))}continue}let filePath=getSettingsFilePathForSource(source);if(filePath){let resolvedPath=resolve6(filePath);if(!seenFiles.has(resolvedPath)){seenFiles.add(resolvedPath);let{settings,errors}=parseSettingsFile(filePath);for(let error40 of errors){let errorKey=`${error40.file}:${error40.path}:${error40.message}`;seenErrors.has(errorKey)||(seenErrors.add(errorKey),allErrors.push(error40))}if(settings){let incoming=source==="projectSettings"?sanitizeCheckedInProjectSettings(settings):settings;mergedSettings=mergeWith_default(mergedSettings,incoming,settingsMergeCustomizer)}}}if(source==="flagSettings"){let inlineSettings=getFlagSettingsInline();if(inlineSettings){let parsed=SettingsSchema().safeParse(inlineSettings);parsed.success&&(mergedSettings=mergeWith_default(mergedSettings,parsed.data,settingsMergeCustomizer))}}}return logForDiagnosticsNoPII("info","settings_load_completed",{duration_ms:Date.now()-startTime,source_count:seenFiles.size,error_count:allErrors.length}),{settings:mergedSettings,errors:allErrors}}finally{isLoadingSettings=!1}}function getInitialSettings(){let{settings}=getSettingsWithErrors();return settings||{}}function getSettingsWithErrors(){let cached2=getSessionSettingsCache();if(cached2!==null)return cached2;let result2=loadSettingsFromDisk();return profileCheckpoint("loadSettingsFromDisk_end"),setSessionSettingsCache(result2),result2}var isLoadingSettings,init_settings2=__esm({"src/utils/settings/settings.ts"(){init_mergeWith();init_state();init_syncCacheState();init_array4();init_debug();init_diagLogs();init_envUtils();init_errors2();init_file();init_fileRead();init_fsOperations();init_gitignore();init_json();init_log3();init_platform2();init_ccjkCompatibility();init_slowOperations();init_startupProfiler();init_constants2();init_internalWrites();init_managedPath();init_settings();init_projectSettingsSafety();init_settingsCache();init_types2();init_validation2();__name(getManagedSettingsFilePath,"getManagedSettingsFilePath");__name(loadManagedFileSettings,"loadManagedFileSettings");__name(handleFileSystemError,"handleFileSystemError");__name(parseSettingsFile,"parseSettingsFile");__name(parseSettingsFileUncached,"parseSettingsFileUncached");__name(getSettingsRootPathForSource,"getSettingsRootPathForSource");__name(getUserSettingsFilePath,"getUserSettingsFilePath");__name(getSettingsFilePathForSource,"getSettingsFilePathForSource");__name(getRelativeSettingsFilePathForSource,"getRelativeSettingsFilePathForSource");__name(getSettingsForSource,"getSettingsForSource");__name(getSettingsForSourceUncached,"getSettingsForSourceUncached");__name(updateSettingsForSource,"updateSettingsForSource");__name(mergeArrays,"mergeArrays");__name(settingsMergeCustomizer,"settingsMergeCustomizer");isLoadingSettings=!1;__name(loadSettingsFromDisk,"loadSettingsFromDisk");__name(getInitialSettings,"getInitialSettings");__name(getSettingsWithErrors,"getSettingsWithErrors")}});var init_helpers=__esm({"../../node_modules/agent-base/dist/helpers.js"(){}});import*as net from"net";import*as http3 from"http";import{Agent as HttpsAgent}from"https";var INTERNAL,Agent2,init_dist=__esm({"../../node_modules/agent-base/dist/index.js"(){init_helpers();INTERNAL=Symbol("AgentBaseInternalState"),Agent2=class extends http3.Agent{static{__name(this,"Agent")}constructor(opts){super(opts),this[INTERNAL]={}}isSecureEndpoint(options){if(options){if(typeof options.secureEndpoint=="boolean")return options.secureEndpoint;if(typeof options.protocol=="string")return options.protocol==="https:"}let{stack}=new Error;return typeof stack!="string"?!1:stack.split(`
178
178
  `).some(l=>l.indexOf("(https.js:")!==-1||l.indexOf("node:https:")!==-1)}incrementSockets(name){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[name]||(this.sockets[name]=[]);let fakeSocket=new net.Socket({writable:!1});return this.sockets[name].push(fakeSocket),this.totalSocketCount++,fakeSocket}decrementSockets(name,socket){if(!this.sockets[name]||socket===null)return;let sockets=this.sockets[name],index=sockets.indexOf(socket);index!==-1&&(sockets.splice(index,1),this.totalSocketCount--,sockets.length===0&&delete this.sockets[name])}getName(options){return this.isSecureEndpoint(options)?HttpsAgent.prototype.getName.call(this,options):super.getName(options)}createSocket(req,options,cb){let connectOpts={...options,secureEndpoint:this.isSecureEndpoint(options)},name=this.getName(connectOpts),fakeSocket=this.incrementSockets(name);Promise.resolve().then(()=>this.connect(req,connectOpts)).then(socket=>{if(this.decrementSockets(name,fakeSocket),typeof socket.addRequest=="function")try{return socket.addRequest(req,connectOpts)}catch(err){return cb(err)}this[INTERNAL].currentSocket=socket,super.createSocket(req,options,cb)},err=>{this.decrementSockets(name,fakeSocket),cb(err)})}createConnection(){let socket=this[INTERNAL].currentSocket;if(this[INTERNAL].currentSocket=void 0,!socket)throw new Error("No socket was returned in the `connect()` function");return socket}get defaultPort(){return this[INTERNAL].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(v){this[INTERNAL]&&(this[INTERNAL].defaultPort=v)}get protocol(){return this[INTERNAL].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(v){this[INTERNAL]&&(this[INTERNAL].protocol=v)}}}});function parseProxyResponse(socket){return new Promise((resolve9,reject2)=>{let buffersLength=0,buffers=[];function read(){let b=socket.read();b?ondata(b):socket.once("readable",read)}__name(read,"read");function cleanup(){socket.removeListener("end",onend),socket.removeListener("error",onerror),socket.removeListener("readable",read)}__name(cleanup,"cleanup");function onend(){cleanup(),debug("onend"),reject2(new Error("Proxy connection ended before receiving CONNECT response"))}__name(onend,"onend");function onerror(err){cleanup(),debug("onerror %o",err),reject2(err)}__name(onerror,"onerror");function ondata(b){buffers.push(b),buffersLength+=b.length;let buffered=Buffer.concat(buffers,buffersLength),endOfHeaders=buffered.indexOf(`\r
179
179
  \r
180
180
  `);if(endOfHeaders===-1){debug("have not received end of HTTP headers yet..."),read();return}let headerParts=buffered.slice(0,endOfHeaders).toString("ascii").split(`\r
@@ -184,14 +184,14 @@ ${gitignoreEntry}
184
184
  `);let{connect:connect3,buffered}=await proxyResponsePromise;if(req.emit("proxyConnect",connect3),this.emit("proxyConnect",connect3,req),req.emit("proxy",{proxy:this.proxy.href,socket}),connect3.statusCode===200)return req.once("socket",resume),opts.secureEndpoint?(debug2("Upgrading socket connection to TLS"),tls.connect({...omit3(setServernameFromNonIpHost(opts),"host","path","port"),socket})):socket;if(connect3.statusCode===407&&this.onProxyAuth){debug2("Got 407 response, invoking onProxyAuth callback"),socket.destroy();let proxyAuthenticate=connect3.headers["proxy-authenticate"]||"",scheme=Array.isArray(proxyAuthenticate)?proxyAuthenticate[0].split(/\s/)[0]:proxyAuthenticate.split(/\s/)[0],authResponse=await this.onProxyAuth({response:connect3,scheme});return this._connectWithAuth(req,opts,authResponse.headers)}socket.destroy();let fakeSocket=new net2.Socket({writable:!1});return fakeSocket.readable=!0,req.once("socket",s2=>{debug2("Replaying proxy buffer for failed request"),assert2(s2.listenerCount("data")>0),s2.push(buffered),s2.push(null)}),fakeSocket}async _connectWithAuth(req,opts,authHeaders){let{proxy}=this,socket;proxy.protocol==="https:"?socket=tls.connect(setServernameFromNonIpHost(this.connectOpts)):socket=net2.connect(this.connectOpts);let headers=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},host=net2.isIPv6(opts.host)?`[${opts.host}]`:opts.host,payload=`CONNECT ${host}:${opts.port} HTTP/1.1\r
185
185
  `;if(proxy.username||proxy.password){let auth=`${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;headers["Proxy-Authorization"]=`Basic ${Buffer.from(auth).toString("base64")}`}Object.assign(headers,authHeaders),headers.Host=`${host}:${opts.port}`,headers["Proxy-Connection"]||(headers["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let name of Object.keys(headers))payload+=`${name}: ${headers[name]}\r
186
186
  `;let proxyResponsePromise=parseProxyResponse(socket);socket.write(`${payload}\r
187
- `);let{connect:connect3}=await proxyResponsePromise;if(req.emit("proxyConnect",connect3),this.emit("proxyConnect",connect3,req),connect3.statusCode===200)return req.once("socket",resume),opts.secureEndpoint?(debug2("Upgrading socket connection to TLS"),tls.connect({...omit3(setServernameFromNonIpHost(opts),"host","path","port"),socket})):socket;throw socket.destroy(),new Error(`Proxy authentication failed with status ${connect3.statusCode} after retry`)}};HttpsProxyAgent2.protocols=["http","https"];__name(resume,"resume");__name(omit3,"omit")}});var getCACertificates,init_caCerts=__esm({"src/utils/caCerts.ts"(){init_memoize();init_debug();init_envUtils();init_fsOperations();getCACertificates=memoize_default(()=>{let useSystemCA=hasNodeOption("--use-system-ca")||hasNodeOption("--use-openssl-ca"),extraCertsPath=process.env.NODE_EXTRA_CA_CERTS||process.env.CLAVUE_EXTRA_CA_BUNDLE||process.env.GROK_EXTRA_CA_BUNDLE;if(logForDebugging(`CA certs: useSystemCA=${useSystemCA}, extraCertsPath=${extraCertsPath}`),!useSystemCA&&!extraCertsPath)return;let tls2=__require("tls"),certs=[];if(useSystemCA){let getCACerts=tls2.getCACertificates,systemCAs=getCACerts?.("system");if(systemCAs&&systemCAs.length>0)certs.push(...systemCAs),logForDebugging(`CA certs: Loaded ${certs.length} system CA certificates (--use-system-ca)`);else if(!getCACerts&&!extraCertsPath){logForDebugging("CA certs: --use-system-ca set but system CA API unavailable, deferring to runtime");return}else certs.push(...tls2.rootCertificates),logForDebugging(`CA certs: Loaded ${certs.length} bundled root certificates as base (--use-system-ca fallback)`)}else certs.push(...tls2.rootCertificates),logForDebugging(`CA certs: Loaded ${certs.length} bundled root certificates as base`);if(extraCertsPath)try{let extraCert=getFsImplementation().readFileSync(extraCertsPath,{encoding:"utf8"});certs.push(extraCert),logForDebugging(`CA certs: Appended extra certificates from extra CA bundle (${extraCertsPath})`)}catch(error40){logForDebugging(`CA certs: Failed to read extra CA bundle (${extraCertsPath}): ${error40}`,{level:"error"})}return certs.length>0?certs:void 0})}});import{Agent as HttpsAgent2}from"https";var getMTLSConfig,getMTLSAgent,init_mtls=__esm({"src/utils/mtls.ts"(){init_memoize();init_caCerts();init_debug();init_fsOperations();getMTLSConfig=memoize_default(()=>{let config2={};if(process.env.CLAUDE_CODE_CLIENT_CERT)try{config2.cert=getFsImplementation().readFileSync(process.env.CLAUDE_CODE_CLIENT_CERT,{encoding:"utf8"}),logForDebugging("mTLS: Loaded client certificate from CLAUDE_CODE_CLIENT_CERT")}catch(error40){logForDebugging(`mTLS: Failed to load client certificate: ${error40}`,{level:"error"})}if(process.env.CLAUDE_CODE_CLIENT_KEY)try{config2.key=getFsImplementation().readFileSync(process.env.CLAUDE_CODE_CLIENT_KEY,{encoding:"utf8"}),logForDebugging("mTLS: Loaded client key from CLAUDE_CODE_CLIENT_KEY")}catch(error40){logForDebugging(`mTLS: Failed to load client key: ${error40}`,{level:"error"})}if(process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE&&(config2.passphrase=process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE,logForDebugging("mTLS: Using client key passphrase")),Object.keys(config2).length!==0)return config2}),getMTLSAgent=memoize_default(()=>{let mtlsConfig=getMTLSConfig(),caCerts=getCACertificates();if(!mtlsConfig&&!caCerts)return;let agentOptions={...mtlsConfig,...caCerts&&{ca:caCerts},keepAlive:!0};return logForDebugging("mTLS: Creating HTTPS agent with custom certificates"),new HttpsAgent2(agentOptions)})}});function getAddressFamily(options){switch(options.family){case 0:case 4:case 6:return options.family;case"IPv6":return 6;case"IPv4":case void 0:return 4;default:throw new Error(`Unsupported address family: ${options.family}`)}}function getProxyUrl(env5=process.env){return env5.https_proxy||env5.HTTPS_PROXY||env5.http_proxy||env5.HTTP_PROXY}function createHttpsProxyAgent(proxyUrl,extra={}){let mtlsConfig=getMTLSConfig(),caCerts=getCACertificates(),agentOptions={...mtlsConfig&&{cert:mtlsConfig.cert,key:mtlsConfig.key,passphrase:mtlsConfig.passphrase},...caCerts&&{ca:caCerts}};return isEnvTruthy(process.env.CLAUDE_CODE_PROXY_RESOLVES_HOSTS)&&(agentOptions.lookup=(hostname3,options,callback)=>{callback(null,hostname3,getAddressFamily(options))}),new HttpsProxyAgent2(proxyUrl,{...agentOptions,...extra})}async function getAWSClientProxyConfig(){let proxyUrl=getProxyUrl();if(!proxyUrl)return{};let[{NodeHttpHandler},{defaultProvider}]=await Promise.all([import("@smithy/node-http-handler"),import("@aws-sdk/credential-provider-node")]),agent=createHttpsProxyAgent(proxyUrl),requestHandler=new NodeHttpHandler({httpAgent:agent,httpsAgent:agent});return{requestHandler,credentials:defaultProvider({clientConfig:{requestHandler}})}}var getProxyAgent,init_proxy=__esm({"src/utils/proxy.ts"(){init_dist3();init_memoize();init_caCerts();init_debug();init_envUtils();init_mtls();__name(getAddressFamily,"getAddressFamily");__name(getProxyUrl,"getProxyUrl");__name(createHttpsProxyAgent,"createHttpsProxyAgent");getProxyAgent=memoize_default(uri=>{let undiciMod=__require("undici"),mtlsConfig=getMTLSConfig(),caCerts=getCACertificates(),proxyOptions={httpProxy:uri,httpsProxy:uri,noProxy:process.env.NO_PROXY||process.env.no_proxy};if(mtlsConfig||caCerts){let tlsOpts={...mtlsConfig&&{cert:mtlsConfig.cert,key:mtlsConfig.key,passphrase:mtlsConfig.passphrase},...caCerts&&{ca:caCerts}};proxyOptions.connect=tlsOpts,proxyOptions.requestTls=tlsOpts}return new undiciMod.EnvHttpProxyAgent(proxyOptions)});__name(getAWSClientProxyConfig,"getAWSClientProxyConfig")}});function findFirstMatch(profiles,substring){return profiles.find(p=>p.includes(substring))??null}async function createBedrockClient(){let{BedrockClient}=await import("@aws-sdk/client-bedrock"),region=getAWSRegion(),skipAuth=isEnvTruthy(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH),clientConfig={region,...process.env.ANTHROPIC_BEDROCK_BASE_URL&&{endpoint:process.env.ANTHROPIC_BEDROCK_BASE_URL},...await getAWSClientProxyConfig(),...skipAuth&&{requestHandler:new(await import("@smithy/node-http-handler")).NodeHttpHandler,httpAuthSchemes:[{schemeId:"smithy.api#noAuth",identityProvider:__name(()=>async()=>({}),"identityProvider"),signer:new(await import("@smithy/core")).NoAuthSigner}],httpAuthSchemeProvider:__name(()=>[{schemeId:"smithy.api#noAuth"}],"httpAuthSchemeProvider")}};if(!skipAuth&&!process.env.AWS_BEARER_TOKEN_BEDROCK){let cachedCredentials=await refreshAndGetAwsCredentials();if(cachedCredentials){let credentials=cachedCredentials;clientConfig.credentials={accessKeyId:credentials.accessKeyId,secretAccessKey:credentials.secretAccessKey,sessionToken:credentials.sessionToken}}}return new BedrockClient(clientConfig)}var getBedrockInferenceProfiles,getInferenceProfileBackingModel,init_bedrock=__esm({"src/utils/model/bedrock.ts"(){init_memoize();init_auth();init_envUtils();init_log3();init_proxy();getBedrockInferenceProfiles=memoize_default(async function(){let[client2,{ListInferenceProfilesCommand}]=await Promise.all([createBedrockClient(),import("@aws-sdk/client-bedrock")]),allProfiles=[],nextToken;try{do{let command=new ListInferenceProfilesCommand({...nextToken&&{nextToken},typeEquals:"SYSTEM_DEFINED"}),response=await client2.send(command);response.inferenceProfileSummaries&&allProfiles.push(...response.inferenceProfileSummaries),nextToken=response.nextToken}while(nextToken);return allProfiles.filter(profile=>profile.inferenceProfileId?.includes("anthropic")).map(profile=>profile.inferenceProfileId).filter(Boolean)}catch(error40){throw logError2(error40),error40}});__name(findFirstMatch,"findFirstMatch");__name(createBedrockClient,"createBedrockClient");getInferenceProfileBackingModel=memoize_default(async function(profileId){try{let[client2,{GetInferenceProfileCommand}]=await Promise.all([createBedrockClient(),import("@aws-sdk/client-bedrock")]),command=new GetInferenceProfileCommand({inferenceProfileIdentifier:profileId}),response=await client2.send(command);if(!response.models||response.models.length===0)return null;let primaryModel=response.models[0];if(!primaryModel?.modelArn)return null;let lastSlashIndex=primaryModel.modelArn.lastIndexOf("/");return lastSlashIndex>=0?primaryModel.modelArn.substring(lastSlashIndex+1):primaryModel.modelArn}catch(error40){return logError2(error40),null}})}});var CLAUDE_3_7_SONNET_CONFIG,CLAUDE_3_5_V2_SONNET_CONFIG,CLAUDE_3_5_HAIKU_CONFIG,CLAUDE_HAIKU_4_5_CONFIG,CLAUDE_SONNET_4_CONFIG,CLAUDE_SONNET_4_5_CONFIG,CLAUDE_OPUS_4_CONFIG,CLAUDE_OPUS_4_1_CONFIG,CLAUDE_OPUS_4_5_CONFIG,CLAUDE_OPUS_4_6_CONFIG,CLAUDE_OPUS_4_7_CONFIG,CLAUDE_OPUS_4_8_CONFIG,CLAUDE_SONNET_4_6_CONFIG,ALL_MODEL_CONFIGS,CANONICAL_MODEL_IDS,CANONICAL_ID_TO_KEY,init_configs=__esm({"src/utils/model/configs.ts"(){CLAUDE_3_7_SONNET_CONFIG={firstParty:"claude-3-7-sonnet-20250219",bedrock:"us.anthropic.\u0063laude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219",foundry:"claude-3-7-sonnet"},CLAUDE_3_5_V2_SONNET_CONFIG={firstParty:"claude-3-5-sonnet-20241022",bedrock:"anthropic.\u0063laude-3-5-sonnet-20241022-v2:0",vertex:"claude-3-5-sonnet-v2@20241022",foundry:"claude-3-5-sonnet"},CLAUDE_3_5_HAIKU_CONFIG={firstParty:"claude-3-5-haiku-20241022",bedrock:"us.anthropic.\u0063laude-3-5-haiku-20241022-v1:0",vertex:"claude-3-5-haiku@20241022",foundry:"claude-3-5-haiku"},CLAUDE_HAIKU_4_5_CONFIG={firstParty:"claude-haiku-4-5-20251001",bedrock:"us.anthropic.\u0063laude-haiku-4-5-20251001-v1:0",vertex:"claude-haiku-4-5@20251001",foundry:"claude-haiku-4-5"},CLAUDE_SONNET_4_CONFIG={firstParty:"claude-sonnet-4-20250514",bedrock:"us.anthropic.\u0063laude-sonnet-4-20250514-v1:0",vertex:"claude-sonnet-4@20250514",foundry:"claude-sonnet-4"},CLAUDE_SONNET_4_5_CONFIG={firstParty:"claude-sonnet-4-5-20250929",bedrock:"us.anthropic.\u0063laude-sonnet-4-5-20250929-v1:0",vertex:"claude-sonnet-4-5@20250929",foundry:"claude-sonnet-4-5"},CLAUDE_OPUS_4_CONFIG={firstParty:"claude-opus-4-20250514",bedrock:"us.anthropic.\u0063laude-opus-4-20250514-v1:0",vertex:"claude-opus-4@20250514",foundry:"claude-opus-4"},CLAUDE_OPUS_4_1_CONFIG={firstParty:"claude-opus-4-1-20250805",bedrock:"us.anthropic.\u0063laude-opus-4-1-20250805-v1:0",vertex:"claude-opus-4-1@20250805",foundry:"claude-opus-4-1"},CLAUDE_OPUS_4_5_CONFIG={firstParty:"claude-opus-4-5-20251101",bedrock:"us.anthropic.\u0063laude-opus-4-5-20251101-v1:0",vertex:"claude-opus-4-5@20251101",foundry:"claude-opus-4-5"},CLAUDE_OPUS_4_6_CONFIG={firstParty:"claude-opus-4-6",bedrock:"us.anthropic.\u0063laude-opus-4-6-v1",vertex:"claude-opus-4-6",foundry:"claude-opus-4-6"},CLAUDE_OPUS_4_7_CONFIG={firstParty:"claude-opus-4-7",bedrock:"us.anthropic.\u0063laude-opus-4-7-v1",vertex:"claude-opus-4-7",foundry:"claude-opus-4-7"},CLAUDE_OPUS_4_8_CONFIG={firstParty:"claude-opus-4-8",bedrock:"us.anthropic.\u0063laude-opus-4-8-v1",vertex:"claude-opus-4-8",foundry:"claude-opus-4-8"},CLAUDE_SONNET_4_6_CONFIG={firstParty:"claude-sonnet-4-6",bedrock:"us.anthropic.\u0063laude-sonnet-4-6",vertex:"claude-sonnet-4-6",foundry:"claude-sonnet-4-6"},ALL_MODEL_CONFIGS={haiku35:CLAUDE_3_5_HAIKU_CONFIG,haiku45:CLAUDE_HAIKU_4_5_CONFIG,sonnet35:CLAUDE_3_5_V2_SONNET_CONFIG,sonnet37:CLAUDE_3_7_SONNET_CONFIG,sonnet40:CLAUDE_SONNET_4_CONFIG,sonnet45:CLAUDE_SONNET_4_5_CONFIG,sonnet46:CLAUDE_SONNET_4_6_CONFIG,opus40:CLAUDE_OPUS_4_CONFIG,opus41:CLAUDE_OPUS_4_1_CONFIG,opus45:CLAUDE_OPUS_4_5_CONFIG,opus46:CLAUDE_OPUS_4_6_CONFIG,opus47:CLAUDE_OPUS_4_7_CONFIG,opus48:CLAUDE_OPUS_4_8_CONFIG},CANONICAL_MODEL_IDS=Object.values(ALL_MODEL_CONFIGS).map(c3=>c3.firstParty),CANONICAL_ID_TO_KEY=Object.fromEntries(Object.entries(ALL_MODEL_CONFIGS).map(([key,cfg])=>[cfg.firstParty,key]))}});function getAPIProvider(){return isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK)?"bedrock":isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX)?"vertex":isEnvTruthy(process.env.CLAUDE_CODE_USE_FOUNDRY)?"foundry":"firstParty"}function isFirstPartyAnthropicBaseUrl(){let baseUrl=process.env.ANTHROPIC_BASE_URL;if(!baseUrl)return!0;try{let host=new URL(baseUrl).host,allowedHosts=["api.anthropic.com"];return process.env.USER_TYPE==="ant"&&allowedHosts.push("api-staging.anthropic.com"),allowedHosts.includes(host)}catch{return!1}}var init_providers=__esm({"src/utils/model/providers.ts"(){init_envUtils();__name(getAPIProvider,"getAPIProvider");__name(isFirstPartyAnthropicBaseUrl,"isFirstPartyAnthropicBaseUrl")}});function getBuiltinModelStrings(provider){let out={};for(let key of MODEL_KEYS)out[key]=ALL_MODEL_CONFIGS[key][provider];return out}async function getBedrockModelStrings(){let fallback=getBuiltinModelStrings("bedrock"),profiles;try{profiles=await getBedrockInferenceProfiles()}catch(error40){return logError2(error40),fallback}if(!profiles?.length)return fallback;let out={};for(let key of MODEL_KEYS){let needle=ALL_MODEL_CONFIGS[key].firstParty;out[key]=findFirstMatch(profiles,needle)||fallback[key]}return out}function resolveOverriddenModel(modelId){let overrides;try{overrides=getInitialSettings().modelOverrides}catch{return modelId}if(!overrides)return modelId;for(let[canonicalId,override]of Object.entries(overrides))if(override===modelId)return canonicalId;return modelId}function resetModelStringsCache(){modelStringsCacheGeneration+=1,resetModelStrings()}var MODEL_KEYS,modelStringsCacheGeneration,updateBedrockModelStrings,init_modelStrings=__esm({"src/utils/model/modelStrings.ts"(){init_state();init_log3();init_sequential();init_settings2();init_bedrock();init_configs();init_providers();MODEL_KEYS=Object.keys(ALL_MODEL_CONFIGS);__name(getBuiltinModelStrings,"getBuiltinModelStrings");__name(getBedrockModelStrings,"getBedrockModelStrings");__name(resolveOverriddenModel,"resolveOverriddenModel");modelStringsCacheGeneration=0,updateBedrockModelStrings=sequential(async()=>{if(getModelStrings()!==null||getAPIProvider()!=="bedrock")return;let generation=modelStringsCacheGeneration;try{let ms=await getBedrockModelStrings();if(generation!==modelStringsCacheGeneration||getAPIProvider()!=="bedrock"||getModelStrings()!==null)return;setModelStrings(ms)}catch(error40){logError2(error40)}});__name(resetModelStringsCache,"resetModelStringsCache")}});var init_billing=__esm({"src/utils/billing.ts"(){init_auth();init_config3();init_envUtils()}});function getMockSubscriptionType(){return!mockEnabled||process.env.USER_TYPE!=="ant"?null:mockSubscriptionType||DEFAULT_MOCK_SUBSCRIPTION}function shouldUseMockSubscription(){return mockEnabled&&mockSubscriptionType!==null&&process.env.USER_TYPE==="ant"}var mockEnabled,mockSubscriptionType,DEFAULT_MOCK_SUBSCRIPTION,init_mockRateLimits=__esm({"src/services/mockRateLimits.ts"(){init_billing();mockEnabled=!1,mockSubscriptionType=null,DEFAULT_MOCK_SUBSCRIPTION="max";__name(getMockSubscriptionType,"getMockSubscriptionType");__name(shouldUseMockSubscription,"shouldUseMockSubscription")}});var init_getOauthProfile=__esm({"src/services/oauth/getOauthProfile.ts"(){init_oauth();init_auth();init_config3();init_log3()}});function shouldUseClaudeAIAuth(scopes){return!!scopes?.includes(CLAUDE_AI_INFERENCE_SCOPE)}var init_client2=__esm({"src/services/oauth/client.ts"(){init_analytics();init_oauth();init_auth();init_config3();init_debug();init_getOauthProfile();__name(shouldUseClaudeAIAuth,"shouldUseClaudeAIAuth")}});import{mkdirSync as mkdirSync2,writeFileSync as writeFileSync3}from"fs";function maybePersistTokenForSubprocesses(path10,token,tokenName){if(isEnvTruthy(process.env.CLAUDE_CODE_REMOTE))try{mkdirSync2(CCR_TOKEN_DIR,{recursive:!0,mode:448}),writeFileSync3(path10,token,{encoding:"utf8",mode:384}),logForDebugging(`Persisted ${tokenName} to ${path10} for subprocess access`)}catch(error40){logForDebugging(`Failed to persist ${tokenName} to disk (non-fatal): ${errorMessage(error40)}`,{level:"error"})}}function readTokenFromWellKnownFile(path10,tokenName){try{let token=getFsImplementation().readFileSync(path10,{encoding:"utf8"}).trim();return token?(logForDebugging(`Read ${tokenName} from well-known file ${path10}`),token):null}catch(error40){return isENOENT(error40)||logForDebugging(`Failed to read ${tokenName} from ${path10}: ${errorMessage(error40)}`,{level:"debug"}),null}}function getCredentialFromFd({envVar,wellKnownPath,label,getCached,setCached}){let cached2=getCached();if(cached2!==void 0)return cached2;let fdEnv=process.env[envVar];if(!fdEnv){let fromFile2=readTokenFromWellKnownFile(wellKnownPath,label);return setCached(fromFile2),fromFile2}let fd=parseInt(fdEnv,10);if(Number.isNaN(fd))return logForDebugging(`${envVar} must be a valid file descriptor number, got: ${fdEnv}`,{level:"error"}),setCached(null),null;try{let fsOps=getFsImplementation(),fdPath=process.platform==="darwin"||process.platform==="freebsd"?`/dev/fd/${fd}`:`/proc/self/fd/${fd}`,token=fsOps.readFileSync(fdPath,{encoding:"utf8"}).trim();return token?(logForDebugging(`Successfully read ${label} from file descriptor ${fd}`),setCached(token),maybePersistTokenForSubprocesses(wellKnownPath,token,label),token):(logForDebugging(`File descriptor contained empty ${label}`,{level:"error"}),setCached(null),null)}catch(error40){logForDebugging(`Failed to read ${label} from file descriptor ${fd}: ${errorMessage(error40)}`,{level:"error"});let fromFile2=readTokenFromWellKnownFile(wellKnownPath,label);return setCached(fromFile2),fromFile2}}function getOAuthTokenFromFileDescriptor(){return getCredentialFromFd({envVar:"CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",wellKnownPath:CCR_OAUTH_TOKEN_PATH,label:"OAuth token",getCached:getOauthTokenFromFd,setCached:setOauthTokenFromFd})}function getApiKeyFromFileDescriptor(){return getCredentialFromFd({envVar:"CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR",wellKnownPath:CCR_API_KEY_PATH,label:"API key",getCached:getApiKeyFromFd,setCached:setApiKeyFromFd})}var CCR_TOKEN_DIR,CCR_OAUTH_TOKEN_PATH,CCR_API_KEY_PATH,CCR_SESSION_INGRESS_TOKEN_PATH,init_authFileDescriptor=__esm({"src/utils/authFileDescriptor.ts"(){init_state();init_debug();init_envUtils();init_errors2();init_fsOperations();CCR_TOKEN_DIR="/home/claude/.\u0063laude/remote",CCR_OAUTH_TOKEN_PATH=`${CCR_TOKEN_DIR}/.oauth_token`,CCR_API_KEY_PATH=`${CCR_TOKEN_DIR}/.api_key`,CCR_SESSION_INGRESS_TOKEN_PATH=`${CCR_TOKEN_DIR}/.session_ingress_token`;__name(maybePersistTokenForSubprocesses,"maybePersistTokenForSubprocesses");__name(readTokenFromWellKnownFile,"readTokenFromWellKnownFile");__name(getCredentialFromFd,"getCredentialFromFd");__name(getOAuthTokenFromFileDescriptor,"getOAuthTokenFromFileDescriptor");__name(getApiKeyFromFileDescriptor,"getApiKeyFromFileDescriptor")}});import{createHash}from"crypto";import{userInfo}from"os";function getMacOsKeychainStorageServiceName(serviceSuffix=""){let configDir=getClaudeConfigHomeDir(),dirHash=!process.env.CLAVUE_CONFIG_DIR?"":`-${createHash("sha256").update(configDir).digest("hex").substring(0,8)}`;return`Claude Code${getOauthConfig().OAUTH_FILE_SUFFIX}${serviceSuffix}${dirHash}`}function getUsername(){try{return process.env.USER||userInfo().username}catch{return"claude-code-user"}}function clearKeychainCache(){keychainCacheState.cache={data:null,cachedAt:0},keychainCacheState.generation++,keychainCacheState.readInFlight=null}var CREDENTIALS_SERVICE_SUFFIX,KEYCHAIN_CACHE_TTL_MS,keychainCacheState,init_macOsKeychainHelpers=__esm({"src/utils/secureStorage/macOsKeychainHelpers.ts"(){init_oauth();init_envUtils();CREDENTIALS_SERVICE_SUFFIX="-credentials";__name(getMacOsKeychainStorageServiceName,"getMacOsKeychainStorageServiceName");__name(getUsername,"getUsername");KEYCHAIN_CACHE_TTL_MS=3e4,keychainCacheState={cache:{data:null,cachedAt:0},generation:0,readInFlight:null};__name(clearKeychainCache,"clearKeychainCache")}});function normalizeApiKeyForConfig(apiKey){return apiKey.slice(-20)}var init_authPortable=__esm({"src/utils/authPortable.ts"(){init_envUtils();init_macOsKeychainHelpers();__name(normalizeApiKeyForConfig,"normalizeApiKeyForConfig")}});function isValidAwsStsOutput(obj){if(!obj||typeof obj!="object")return!1;let output=obj;if(!output.Credentials||typeof output.Credentials!="object")return!1;let credentials=output.Credentials;return typeof credentials.AccessKeyId=="string"&&typeof credentials.SecretAccessKey=="string"&&typeof credentials.SessionToken=="string"&&credentials.AccessKeyId.length>0&&credentials.SecretAccessKey.length>0&&credentials.SessionToken.length>0}async function checkStsCallerIdentity(){let{STSClient,GetCallerIdentityCommand}=await import("@aws-sdk/client-sts");await new STSClient().send(new GetCallerIdentityCommand({}))}async function clearAwsIniCache(){try{logForDebugging("Clearing AWS credential provider cache");let{fromIni}=await import("@aws-sdk/credential-providers");await fromIni({ignoreCache:!0})(),logForDebugging("AWS credential provider cache refreshed")}catch{logForDebugging("Failed to clear AWS credential cache (this is expected if no credentials are configured)")}}var init_aws=__esm({"src/utils/aws.ts"(){init_debug();__name(isValidAwsStsOutput,"isValidAwsStsOutput");__name(checkStsCallerIdentity,"checkStsCallerIdentity");__name(clearAwsIniCache,"clearAwsIniCache")}});var AwsAuthStatusManager,init_awsAuthStatusManager=__esm({"src/utils/awsAuthStatusManager.ts"(){init_signal();AwsAuthStatusManager=class _AwsAuthStatusManager{static{__name(this,"AwsAuthStatusManager")}static instance=null;status={isAuthenticating:!1,output:[]};changed=createSignal();static getInstance(){return _AwsAuthStatusManager.instance||(_AwsAuthStatusManager.instance=new _AwsAuthStatusManager),_AwsAuthStatusManager.instance}getStatus(){return{...this.status,output:[...this.status.output]}}startAuthentication(){this.status={isAuthenticating:!0,output:[]},this.changed.emit(this.getStatus())}addOutput(line){this.status.output.push(line),this.changed.emit(this.getStatus())}setError(error40){this.status.error=error40,this.changed.emit(this.getStatus())}endAuthentication(success2){success2?this.status={isAuthenticating:!1,output:[]}:this.status.isAuthenticating=!1,this.changed.emit(this.getStatus())}subscribe=this.changed.subscribe;static reset(){_AwsAuthStatusManager.instance&&(_AwsAuthStatusManager.instance.changed.clear(),_AwsAuthStatusManager.instance=null)}}}});var CLAUDE_CODE_20250219_BETA_HEADER,INTERLEAVED_THINKING_BETA_HEADER,CONTEXT_1M_BETA_HEADER,CONTEXT_MANAGEMENT_BETA_HEADER,STRUCTURED_OUTPUTS_BETA_HEADER,WEB_SEARCH_BETA_HEADER,TOOL_SEARCH_BETA_HEADER_3P,PROMPT_CACHING_SCOPE_BETA_HEADER,REDACT_THINKING_BETA_HEADER,TOKEN_EFFICIENT_TOOLS_BETA_HEADER,SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER,CLI_INTERNAL_BETA_HEADER,BEDROCK_EXTRA_PARAMS_HEADERS,init_betas=__esm({"src/constants/betas.ts"(){CLAUDE_CODE_20250219_BETA_HEADER="claude-code-20250219",INTERLEAVED_THINKING_BETA_HEADER="interleaved-thinking-2025-05-14",CONTEXT_1M_BETA_HEADER="context-1m-2025-08-07",CONTEXT_MANAGEMENT_BETA_HEADER="context-management-2025-06-27",STRUCTURED_OUTPUTS_BETA_HEADER="structured-outputs-2025-12-15",WEB_SEARCH_BETA_HEADER="web-search-2025-03-05",TOOL_SEARCH_BETA_HEADER_3P="tool-search-tool-2025-10-19",PROMPT_CACHING_SCOPE_BETA_HEADER="prompt-caching-scope-2026-01-05",REDACT_THINKING_BETA_HEADER="redact-thinking-2026-02-12",TOKEN_EFFICIENT_TOOLS_BETA_HEADER="token-efficient-tools-2026-03-28",SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER="",CLI_INTERNAL_BETA_HEADER=process.env.USER_TYPE==="ant"?"cli-internal-2026-02-09":"",BEDROCK_EXTRA_PARAMS_HEADERS=new Set([INTERLEAVED_THINKING_BETA_HEADER,CONTEXT_1M_BETA_HEADER,TOOL_SEARCH_BETA_HEADER_3P])}});function compareVersion(a2,b){return a2.major-b.major||a2.minor-b.minor}function parseVersion(raw){if(!raw)return null;let parts=raw.split("-").map(part=>Number.parseInt(part,10));return parts.some(part=>Number.isNaN(part))?null:(parts[1]!==void 0&&parts[1]>=2e7&&(parts[1]=0),{major:parts[0]??0,minor:parts[1]??0})}function parseClaudeModelIdentity(model){let normalized=String(model??"").trim().toLowerCase();if(!normalized)return null;let modern=/claude-(opus|sonnet|haiku)-([0-9]+(?:-[0-9]+)?)/.exec(normalized);if(modern?.[1]&&modern[2]){let version2=parseVersion(modern[2]);return version2?{family:modern[1],version:version2}:null}let legacy=/claude-([0-9]+(?:-[0-9]+)?)-(opus|sonnet|haiku)/.exec(normalized);if(legacy?.[1]&&legacy[2]){let version2=parseVersion(legacy[1]);return version2?{family:legacy[2],version:version2}:null}return null}function getClaudeModelTokenProfile(model){let identity4=parseClaudeModelIdentity(model);return identity4?CLAUDE_MODEL_TOKEN_PROFILES.filter(profile=>profile.family===identity4.family).sort((a2,b)=>compareVersion(b.version,a2.version)).find(profile=>compareVersion(profile.version,identity4.version)<=0)??null:null}function getClaudeCanonicalModelName(model){let identity4=parseClaudeModelIdentity(model);if(!identity4||identity4.version.major<4)return null;let version2=identity4.version.minor===0?String(identity4.version.major):`${identity4.version.major}-${identity4.version.minor}`;return`claude-${identity4.family}-${version2}`}var CLAUDE_MODEL_TOKEN_PROFILES,init_claudeModelProfiles=__esm({"src/utils/model/claudeModelProfiles.ts"(){CLAUDE_MODEL_TOKEN_PROFILES=[{family:"haiku",version:{major:4,minor:5},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!1,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"February 2025"},{family:"sonnet",version:{major:4,minor:0},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!1,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"sonnet",version:{major:4,minor:5},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!1,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"sonnet",version:{major:4,minor:6},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!0,maxEffort:!1,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"August 2025"},{family:"opus",version:{major:4,minor:0},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:32e3,effort:!1,maxEffort:!0,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"opus",version:{major:4,minor:1},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:32e3,effort:!1,maxEffort:!0,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"opus",version:{major:4,minor:5},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!0,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"May 2025"},{family:"opus",version:{major:4,minor:6},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:64e3,maxOutputTokens:128e3,effort:!0,maxEffort:!0,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"May 2025"},{family:"opus",version:{major:4,minor:7},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:64e3,maxOutputTokens:128e3,effort:!0,maxEffort:!0,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"January 2026"},{family:"opus",version:{major:4,minor:8},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:64e3,maxOutputTokens:128e3,effort:!0,maxEffort:!0,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"January 2026"}];__name(compareVersion,"compareVersion");__name(parseVersion,"parseVersion");__name(parseClaudeModelIdentity,"parseClaudeModelIdentity");__name(getClaudeModelTokenProfile,"getClaudeModelTokenProfile");__name(getClaudeCanonicalModelName,"getClaudeCanonicalModelName")}});var cooldownTriggered,cooldownExpired,onCooldownTriggered,onCooldownExpired,overageRejection,onFastModeOverageRejection,orgFastModeChange,onOrgFastModeChanged,init_fastMode=__esm({"src/utils/fastMode.ts"(){init_oauth();init_growthbook();init_state();init_analytics();init_auth();init_bundledMode();init_config3();init_debug();init_envUtils();init_model();init_providers();init_privacyLevel();init_settings2();init_signal();cooldownTriggered=createSignal(),cooldownExpired=createSignal(),onCooldownTriggered=cooldownTriggered.subscribe,onCooldownExpired=cooldownExpired.subscribe,overageRejection=createSignal(),onFastModeOverageRejection=overageRejection.subscribe,orgFastModeChange=createSignal(),onOrgFastModeChanged=orgFastModeChange.subscribe}});var COST_TIER_3_15,COST_TIER_15_75,COST_TIER_5_25,COST_HAIKU_35,COST_HAIKU_45,MODEL_COSTS,init_modelCost=__esm({"src/utils/modelCost.ts"(){init_analytics();init_state();init_fastMode();init_configs();init_model();COST_TIER_3_15={inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:.3,webSearchRequests:.01},COST_TIER_15_75={inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5,webSearchRequests:.01},COST_TIER_5_25={inputTokens:5,outputTokens:25,promptCacheWriteTokens:6.25,promptCacheReadTokens:.5,webSearchRequests:.01},COST_HAIKU_35={inputTokens:.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:.08,webSearchRequests:.01},COST_HAIKU_45={inputTokens:1,outputTokens:5,promptCacheWriteTokens:1.25,promptCacheReadTokens:.1,webSearchRequests:.01},MODEL_COSTS={[firstPartyNameToCanonical(CLAUDE_3_5_HAIKU_CONFIG.firstParty)]:COST_HAIKU_35,[firstPartyNameToCanonical(CLAUDE_HAIKU_4_5_CONFIG.firstParty)]:COST_HAIKU_45,[firstPartyNameToCanonical(CLAUDE_3_5_V2_SONNET_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_3_7_SONNET_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_SONNET_4_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_SONNET_4_5_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_SONNET_4_6_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_OPUS_4_CONFIG.firstParty)]:COST_TIER_15_75,[firstPartyNameToCanonical(CLAUDE_OPUS_4_1_CONFIG.firstParty)]:COST_TIER_15_75,[firstPartyNameToCanonical(CLAUDE_OPUS_4_5_CONFIG.firstParty)]:COST_TIER_5_25,[firstPartyNameToCanonical(CLAUDE_OPUS_4_6_CONFIG.firstParty)]:COST_TIER_5_25}}});var init_aliases=__esm({"src/utils/model/aliases.ts"(){}});var init_modelAllowlist=__esm({"src/utils/model/modelAllowlist.ts"(){init_settings2();init_aliases();init_model();init_modelStrings()}});function getAntModelOverrideConfig(){return process.env.USER_TYPE!=="ant"?null:getFeatureValue_CACHED_MAY_BE_STALE("tengu_ant_model_override",null)}function getAntModels(){return process.env.USER_TYPE!=="ant"?[]:getAntModelOverrideConfig()?.antModels??[]}function resolveAntModel(model){if(process.env.USER_TYPE!=="ant"||model===void 0)return;let lower3=model.toLowerCase();return getAntModels().find(m2=>m2.alias===model||lower3.includes(m2.model.toLowerCase()))}var init_antModels=__esm({"src/utils/model/antModels.ts"(){init_growthbook();__name(getAntModelOverrideConfig,"getAntModelOverrideConfig");__name(getAntModels,"getAntModels");__name(resolveAntModel,"resolveAntModel")}});function firstPartyNameToCanonical(name){name=name.toLowerCase();let claudeCanonical=getClaudeCanonicalModelName(name);if(claudeCanonical)return claudeCanonical;if(name.includes("claude-3-7-sonnet"))return"claude-3-7-sonnet";if(name.includes("claude-3-5-sonnet"))return"claude-3-5-sonnet";if(name.includes("claude-3-5-haiku"))return"claude-3-5-haiku";if(name.includes("claude-3-opus"))return"claude-3-opus";if(name.includes("claude-3-sonnet"))return"claude-3-sonnet";if(name.includes("claude-3-haiku"))return"claude-3-haiku";let match=name.match(/(claude-(\d+-\d+-)?\w+)/);return match&&match[1]?match[1]:name}function getCanonicalName(fullModelName){return firstPartyNameToCanonical(resolveOverriddenModel(fullModelName))}var init_model=__esm({"src/utils/model/model.ts"(){init_state();init_auth();init_context();init_envUtils();init_modelStrings();init_configs();init_claudeModelProfiles();init_modelCost();init_settings2();init_providers();init_figures2();init_modelAllowlist();init_aliases();init_antModels();init_stringUtils();__name(firstPartyNameToCanonical,"firstPartyNameToCanonical");__name(getCanonicalName,"getCanonicalName")}});function compareProviderVersion(a2,b){return a2.major-b.major||a2.minor-b.minor}function stripModelDecorators(model){return String(model??"").trim().toLowerCase().replace(/\[(?:1|2)m\]$/i,"")}function fromClaudeProfile(profile){if(!profile)return null;let version2=profile.version.minor===0?String(profile.version.major):`${profile.version.major}-${profile.version.minor}`;return{family:"claude",baseModel:`claude-${profile.family}-${version2}`,maxInputTokens:profile.maxInputTokens,oneMillionContext:profile.oneMillionContext,defaultOutputTokens:profile.defaultOutputTokens,maxOutputTokens:profile.maxOutputTokens,thinking:profile.thinking,adaptiveThinking:profile.adaptiveThinking,effort:profile.effort,maxEffort:profile.maxEffort,knowledgeCutoff:profile.knowledgeCutoff,source:"anthropic"}}function parseQwenIdentity(model){let match=/(?:^|[^a-z0-9])qwen[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"qwen",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseDeepSeekIdentity(model){let match=/(?:^|[^a-z0-9])deepseek[-_]?v?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"deepseek",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseGlmIdentity(model){let match=/(?:^|[^a-z0-9])glm[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"glm",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseKimiIdentity(model){let match=/(?:^|[^a-z0-9])kimi[-_]?k?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"kimi",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseGptIdentity(model){let match=/(?:^|[^a-z0-9])gpt[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"gpt",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseGrokIdentity(model){let match=/(?:^|[^a-z0-9])grok[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"grok",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseProviderIdentity(model){return parseQwenIdentity(model)??parseDeepSeekIdentity(model)??parseGlmIdentity(model)??parseKimiIdentity(model)??parseGrokIdentity(model)??parseGptIdentity(model)}function variantMatches(requestedVariant,profileVariant){return profileVariant?requestedVariant===profileVariant?!0:!requestedVariant||profileVariant.length<2?!1:requestedVariant.startsWith(profileVariant)||requestedVariant===profileVariant:!requestedVariant}function resolveProviderProfile(model){let identity4=parseProviderIdentity(model);if(!identity4)return null;let sameFamily=PROVIDER_MODEL_TOKEN_PROFILES.filter(profile=>profile.family===identity4.family&&compareProviderVersion(profile.version,identity4.version)<=0);if(sameFamily.length===0)return null;let variantMatchesFirst=sameFamily.filter(profile=>variantMatches(identity4.variant,profile.variant)).sort((a2,b)=>compareProviderVersion(b.version,a2.version));return variantMatchesFirst[0]?variantMatchesFirst[0]:null}function getProviderModelTokenProfile(model){let normalized=stripModelDecorators(model);if(!normalized)return null;let claudeProfile=fromClaudeProfile(getClaudeModelTokenProfile(normalized));if(claudeProfile)return claudeProfile;let profile=resolveProviderProfile(normalized);return profile?{family:profile.family,baseModel:profile.baseModel,maxInputTokens:profile.maxInputTokens,oneMillionContext:profile.maxInputTokens>=1e6,defaultOutputTokens:profile.defaultOutputTokens,maxOutputTokens:profile.maxOutputTokens,thinking:profile.thinking,adaptiveThinking:profile.adaptiveThinking,...profile.thinkingBudgetTokens!==void 0?{thinkingBudgetTokens:profile.thinkingBudgetTokens}:{},effort:profile.effort,maxEffort:profile.maxEffort,knowledgeCutoff:profile.knowledgeCutoff,source:profile.source}:null}var PROVIDER_MODEL_TOKEN_PROFILES,init_providerModelProfiles=__esm({"src/utils/model/providerModelProfiles.ts"(){init_claudeModelProfiles();PROVIDER_MODEL_TOKEN_PROFILES=[{family:"qwen",baseModel:"qwen3.6-plus",version:{major:3,minor:6},variant:"plus",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:8e4,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"qwen",baseModel:"qwen3.6-flash",version:{major:3,minor:6},variant:"flash",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:128e3,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"qwen",baseModel:"qwen3.7-max",version:{major:3,minor:7},variant:"max",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:256e3,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"aliyun"},{family:"qwen",baseModel:"qwen3.7-plus",version:{major:3,minor:7},variant:"plus",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:256e3,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"deepseek",baseModel:"deepseek-v4-pro",version:{major:4,minor:0},variant:"pro",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:384e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"aliyun"},{family:"deepseek",baseModel:"deepseek-v4-flash",version:{major:4,minor:0},variant:"flash",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:384e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"glm",baseModel:"glm-5.2",version:{major:5,minor:2},variant:"",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:131e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:131e3,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"aliyun"},{family:"kimi",baseModel:"kimi-k2.7-code",version:{major:2,minor:7},variant:"code",maxInputTokens:256e3,defaultOutputTokens:64e3,maxOutputTokens:96e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:8e4,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"gpt",baseModel:"gpt-5.5",version:{major:5,minor:5},variant:"",maxInputTokens:2e5,defaultOutputTokens:16e3,maxOutputTokens:32e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"openai"},{family:"gpt",baseModel:"gpt-5.4",version:{major:5,minor:4},variant:"",maxInputTokens:4e5,defaultOutputTokens:16e3,maxOutputTokens:32e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"openai"},{family:"gpt",baseModel:"gpt-5",version:{major:5,minor:0},variant:"",maxInputTokens:4e5,defaultOutputTokens:16e3,maxOutputTokens:32e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"openai"},{family:"gpt",baseModel:"gpt-4o",version:{major:4,minor:0},variant:"o",maxInputTokens:128e3,defaultOutputTokens:16e3,maxOutputTokens:16e3,thinking:!1,adaptiveThinking:!1,effort:!1,maxEffort:!1,knowledgeCutoff:null,source:"openai"},{family:"grok",baseModel:"grok-4.6",version:{major:4,minor:6},variant:"",maxInputTokens:5e5,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:"2026-02-01",source:"xai"},{family:"grok",baseModel:"grok-4.5",version:{major:4,minor:5},variant:"",maxInputTokens:5e5,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:"2026-02-01",source:"xai"},{family:"grok",baseModel:"grok-4.3",version:{major:4,minor:3},variant:"",maxInputTokens:1e6,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"xai"},{family:"grok",baseModel:"grok-4",version:{major:4,minor:0},variant:"",maxInputTokens:256e3,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"xai"}];__name(compareProviderVersion,"compareProviderVersion");__name(stripModelDecorators,"stripModelDecorators");__name(fromClaudeProfile,"fromClaudeProfile");__name(parseQwenIdentity,"parseQwenIdentity");__name(parseDeepSeekIdentity,"parseDeepSeekIdentity");__name(parseGlmIdentity,"parseGlmIdentity");__name(parseKimiIdentity,"parseKimiIdentity");__name(parseGptIdentity,"parseGptIdentity");__name(parseGrokIdentity,"parseGrokIdentity");__name(parseProviderIdentity,"parseProviderIdentity");__name(variantMatches,"variantMatches");__name(resolveProviderProfile,"resolveProviderProfile");__name(getProviderModelTokenProfile,"getProviderModelTokenProfile")}});var APP_NAME,APP_VERSION_FALLBACK,APP_VERSION,APP_WORDMARK,APP_BRAND_LOCKUP,init_branding=__esm({"src/constants/branding.ts"(){APP_NAME="Clavue",APP_VERSION_FALLBACK="11.2.19",APP_VERSION=typeof MACRO<"u"?"11.2.19":APP_VERSION_FALLBACK,APP_WORDMARK=`/${APP_NAME.toLowerCase()}`,APP_BRAND_LOCKUP=`\u9F8D ${APP_NAME.toUpperCase()}`}});function clear3PModelCapabilityOverrideCache(){get3PModelCapabilityOverride.cache?.clear?.()}var TIERS,get3PModelCapabilityOverride,init_modelSupportOverrides=__esm({"src/utils/model/modelSupportOverrides.ts"(){init_memoize();init_providers();TIERS=[{modelEnvVar:"ANTHROPIC_DEFAULT_OPUS_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES"},{modelEnvVar:"ANTHROPIC_DEFAULT_SONNET_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES"},{modelEnvVar:"ANTHROPIC_DEFAULT_HAIKU_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES"}],get3PModelCapabilityOverride=memoize_default((model,capability)=>{if(getAPIProvider()==="firstParty")return;let m2=model.toLowerCase();for(let tier of TIERS){let pinned=process.env[tier.modelEnvVar],capabilities=process.env[tier.capabilitiesEnvVar];if(!(!pinned||capabilities===void 0)&&m2===pinned.toLowerCase())return capabilities.toLowerCase().split(",").map(s2=>s2.trim()).includes(capability)}},(model,capability)=>`${model.toLowerCase()}:${capability}`);__name(clear3PModelCapabilityOverrideCache,"clear3PModelCapabilityOverrideCache")}});import{createRequire as createRequire2}from"node:module";function loadUpdateSettingsForSource(){let candidates=["./settings/settings.js","./settings/settings.ts"];for(let id of candidates)try{let mod=requireSettings(id);if(typeof mod.updateSettingsForSource=="function")return mod.updateSettingsForSource}catch{}return null}function persistDurableMainEffort(level){let raw=String(level??"").trim().toLowerCase();(raw==="x-high"||raw==="x_high")&&(raw="xhigh");try{let updateSettingsForSource2=loadUpdateSettingsForSource();if(!updateSettingsForSource2)return{ok:!1};if(!raw||raw==="auto"||raw==="unset"||raw==="clear")return updateSettingsForSource2("userSettings",{effortLevel:void 0}).error?{ok:!1}:{ok:!0,cleared:!0};if(!PERSISTABLE.has(raw))return{ok:!1};let persistable=raw;return updateSettingsForSource2("userSettings",{effortLevel:persistable}).error?{ok:!1}:{ok:!0,persisted:persistable}}catch{return{ok:!1}}}var requireSettings,PERSISTABLE,init_effortPersist=__esm({"src/utils/effortPersist.ts"(){requireSettings=createRequire2(import.meta.url),PERSISTABLE=new Set(["low","medium","high","xhigh","max","ultra"]);__name(loadUpdateSettingsForSource,"loadUpdateSettingsForSource");__name(persistDurableMainEffort,"persistDurableMainEffort")}});import{existsSync as existsSync2,mkdirSync as mkdirSync3,readFileSync as readFileSync6,renameSync as renameSync2,unlinkSync as unlinkSync2,writeFileSync as writeFileSync4}from"node:fs";import{join as join15}from"node:path";function pathFor(){return join15(getClavueConfigHomeDir(),FILE)}function writeJsonAtomic(target,body){let tmp=`${target}.${process.pid}.${Date.now()}.tmp`;writeFileSync4(tmp,body,"utf8");try{renameSync2(tmp,target)}catch{try{writeFileSync4(target,body,"utf8")}finally{try{unlinkSync2(tmp)}catch{}}}}function normalizeDurableExecutionSpeed(raw){let s2=String(raw??"").trim().toLowerCase();return s2==="grok"||s2==="turbo"||s2==="fast"||s2==="speed"?"grok":s2==="balanced"||s2==="auto"||s2==="normal"?"balanced":s2==="quality"||s2==="high"||s2==="deep"?"quality":null}function persistDurableExecutionSpeed(speed){try{let dir=getClavueConfigHomeDir();mkdirSync3(dir,{recursive:!0});let raw=String(speed??"").trim().toLowerCase();if(!raw||raw==="clear"||raw==="default"||raw==="env"||raw==="unset")return writeJsonAtomic(pathFor(),`${JSON.stringify({speed:null,updatedAt:new Date().toISOString()},null,2)}
187
+ `);let{connect:connect3}=await proxyResponsePromise;if(req.emit("proxyConnect",connect3),this.emit("proxyConnect",connect3,req),connect3.statusCode===200)return req.once("socket",resume),opts.secureEndpoint?(debug2("Upgrading socket connection to TLS"),tls.connect({...omit3(setServernameFromNonIpHost(opts),"host","path","port"),socket})):socket;throw socket.destroy(),new Error(`Proxy authentication failed with status ${connect3.statusCode} after retry`)}};HttpsProxyAgent2.protocols=["http","https"];__name(resume,"resume");__name(omit3,"omit")}});var getCACertificates,init_caCerts=__esm({"src/utils/caCerts.ts"(){init_memoize();init_debug();init_envUtils();init_fsOperations();getCACertificates=memoize_default(()=>{let useSystemCA=hasNodeOption("--use-system-ca")||hasNodeOption("--use-openssl-ca"),extraCertsPath=process.env.NODE_EXTRA_CA_CERTS||process.env.CLAVUE_EXTRA_CA_BUNDLE||process.env.GROK_EXTRA_CA_BUNDLE;if(logForDebugging(`CA certs: useSystemCA=${useSystemCA}, extraCertsPath=${extraCertsPath}`),!useSystemCA&&!extraCertsPath)return;let tls2=__require("tls"),certs=[];if(useSystemCA){let getCACerts=tls2.getCACertificates,systemCAs=getCACerts?.("system");if(systemCAs&&systemCAs.length>0)certs.push(...systemCAs),logForDebugging(`CA certs: Loaded ${certs.length} system CA certificates (--use-system-ca)`);else if(!getCACerts&&!extraCertsPath){logForDebugging("CA certs: --use-system-ca set but system CA API unavailable, deferring to runtime");return}else certs.push(...tls2.rootCertificates),logForDebugging(`CA certs: Loaded ${certs.length} bundled root certificates as base (--use-system-ca fallback)`)}else certs.push(...tls2.rootCertificates),logForDebugging(`CA certs: Loaded ${certs.length} bundled root certificates as base`);if(extraCertsPath)try{let extraCert=getFsImplementation().readFileSync(extraCertsPath,{encoding:"utf8"});certs.push(extraCert),logForDebugging(`CA certs: Appended extra certificates from extra CA bundle (${extraCertsPath})`)}catch(error40){logForDebugging(`CA certs: Failed to read extra CA bundle (${extraCertsPath}): ${error40}`,{level:"error"})}return certs.length>0?certs:void 0})}});import{Agent as HttpsAgent2}from"https";var getMTLSConfig,getMTLSAgent,init_mtls=__esm({"src/utils/mtls.ts"(){init_memoize();init_caCerts();init_debug();init_fsOperations();getMTLSConfig=memoize_default(()=>{let config2={};if(process.env.CLAUDE_CODE_CLIENT_CERT)try{config2.cert=getFsImplementation().readFileSync(process.env.CLAUDE_CODE_CLIENT_CERT,{encoding:"utf8"}),logForDebugging("mTLS: Loaded client certificate from CLAUDE_CODE_CLIENT_CERT")}catch(error40){logForDebugging(`mTLS: Failed to load client certificate: ${error40}`,{level:"error"})}if(process.env.CLAUDE_CODE_CLIENT_KEY)try{config2.key=getFsImplementation().readFileSync(process.env.CLAUDE_CODE_CLIENT_KEY,{encoding:"utf8"}),logForDebugging("mTLS: Loaded client key from CLAUDE_CODE_CLIENT_KEY")}catch(error40){logForDebugging(`mTLS: Failed to load client key: ${error40}`,{level:"error"})}if(process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE&&(config2.passphrase=process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE,logForDebugging("mTLS: Using client key passphrase")),Object.keys(config2).length!==0)return config2}),getMTLSAgent=memoize_default(()=>{let mtlsConfig=getMTLSConfig(),caCerts=getCACertificates();if(!mtlsConfig&&!caCerts)return;let agentOptions={...mtlsConfig,...caCerts&&{ca:caCerts},keepAlive:!0};return logForDebugging("mTLS: Creating HTTPS agent with custom certificates"),new HttpsAgent2(agentOptions)})}});function getAddressFamily(options){switch(options.family){case 0:case 4:case 6:return options.family;case"IPv6":return 6;case"IPv4":case void 0:return 4;default:throw new Error(`Unsupported address family: ${options.family}`)}}function getProxyUrl(env5=process.env){return env5.https_proxy||env5.HTTPS_PROXY||env5.http_proxy||env5.HTTP_PROXY}function createHttpsProxyAgent(proxyUrl,extra={}){let mtlsConfig=getMTLSConfig(),caCerts=getCACertificates(),agentOptions={...mtlsConfig&&{cert:mtlsConfig.cert,key:mtlsConfig.key,passphrase:mtlsConfig.passphrase},...caCerts&&{ca:caCerts}};return isEnvTruthy(process.env.CLAUDE_CODE_PROXY_RESOLVES_HOSTS)&&(agentOptions.lookup=(hostname3,options,callback)=>{callback(null,hostname3,getAddressFamily(options))}),new HttpsProxyAgent2(proxyUrl,{...agentOptions,...extra})}async function getAWSClientProxyConfig(){let proxyUrl=getProxyUrl();if(!proxyUrl)return{};let[{NodeHttpHandler},{defaultProvider}]=await Promise.all([import("@smithy/node-http-handler"),import("@aws-sdk/credential-provider-node")]),agent=createHttpsProxyAgent(proxyUrl),requestHandler=new NodeHttpHandler({httpAgent:agent,httpsAgent:agent});return{requestHandler,credentials:defaultProvider({clientConfig:{requestHandler}})}}var getProxyAgent,init_proxy=__esm({"src/utils/proxy.ts"(){init_dist3();init_memoize();init_caCerts();init_debug();init_envUtils();init_mtls();__name(getAddressFamily,"getAddressFamily");__name(getProxyUrl,"getProxyUrl");__name(createHttpsProxyAgent,"createHttpsProxyAgent");getProxyAgent=memoize_default(uri=>{let undiciMod=__require("undici"),mtlsConfig=getMTLSConfig(),caCerts=getCACertificates(),proxyOptions={httpProxy:uri,httpsProxy:uri,noProxy:process.env.NO_PROXY||process.env.no_proxy};if(mtlsConfig||caCerts){let tlsOpts={...mtlsConfig&&{cert:mtlsConfig.cert,key:mtlsConfig.key,passphrase:mtlsConfig.passphrase},...caCerts&&{ca:caCerts}};proxyOptions.connect=tlsOpts,proxyOptions.requestTls=tlsOpts}return new undiciMod.EnvHttpProxyAgent(proxyOptions)});__name(getAWSClientProxyConfig,"getAWSClientProxyConfig")}});function findFirstMatch(profiles,substring){return profiles.find(p=>p.includes(substring))??null}async function createBedrockClient(){let{BedrockClient}=await import("@aws-sdk/client-bedrock"),region=getAWSRegion(),skipAuth=isEnvTruthy(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH),clientConfig={region,...process.env.ANTHROPIC_BEDROCK_BASE_URL&&{endpoint:process.env.ANTHROPIC_BEDROCK_BASE_URL},...await getAWSClientProxyConfig(),...skipAuth&&{requestHandler:new(await import("@smithy/node-http-handler")).NodeHttpHandler,httpAuthSchemes:[{schemeId:"smithy.api#noAuth",identityProvider:__name(()=>async()=>({}),"identityProvider"),signer:new(await import("@smithy/core")).NoAuthSigner}],httpAuthSchemeProvider:__name(()=>[{schemeId:"smithy.api#noAuth"}],"httpAuthSchemeProvider")}};if(!skipAuth&&!process.env.AWS_BEARER_TOKEN_BEDROCK){let cachedCredentials=await refreshAndGetAwsCredentials();if(cachedCredentials){let credentials=cachedCredentials;clientConfig.credentials={accessKeyId:credentials.accessKeyId,secretAccessKey:credentials.secretAccessKey,sessionToken:credentials.sessionToken}}}return new BedrockClient(clientConfig)}var getBedrockInferenceProfiles,getInferenceProfileBackingModel,init_bedrock=__esm({"src/utils/model/bedrock.ts"(){init_memoize();init_auth();init_envUtils();init_log3();init_proxy();getBedrockInferenceProfiles=memoize_default(async function(){let[client2,{ListInferenceProfilesCommand}]=await Promise.all([createBedrockClient(),import("@aws-sdk/client-bedrock")]),allProfiles=[],nextToken;try{do{let command=new ListInferenceProfilesCommand({...nextToken&&{nextToken},typeEquals:"SYSTEM_DEFINED"}),response=await client2.send(command);response.inferenceProfileSummaries&&allProfiles.push(...response.inferenceProfileSummaries),nextToken=response.nextToken}while(nextToken);return allProfiles.filter(profile=>profile.inferenceProfileId?.includes("anthropic")).map(profile=>profile.inferenceProfileId).filter(Boolean)}catch(error40){throw logError2(error40),error40}});__name(findFirstMatch,"findFirstMatch");__name(createBedrockClient,"createBedrockClient");getInferenceProfileBackingModel=memoize_default(async function(profileId){try{let[client2,{GetInferenceProfileCommand}]=await Promise.all([createBedrockClient(),import("@aws-sdk/client-bedrock")]),command=new GetInferenceProfileCommand({inferenceProfileIdentifier:profileId}),response=await client2.send(command);if(!response.models||response.models.length===0)return null;let primaryModel=response.models[0];if(!primaryModel?.modelArn)return null;let lastSlashIndex=primaryModel.modelArn.lastIndexOf("/");return lastSlashIndex>=0?primaryModel.modelArn.substring(lastSlashIndex+1):primaryModel.modelArn}catch(error40){return logError2(error40),null}})}});var CLAUDE_3_7_SONNET_CONFIG,CLAUDE_3_5_V2_SONNET_CONFIG,CLAUDE_3_5_HAIKU_CONFIG,CLAUDE_HAIKU_4_5_CONFIG,CLAUDE_SONNET_4_CONFIG,CLAUDE_SONNET_4_5_CONFIG,CLAUDE_OPUS_4_CONFIG,CLAUDE_OPUS_4_1_CONFIG,CLAUDE_OPUS_4_5_CONFIG,CLAUDE_OPUS_4_6_CONFIG,CLAUDE_OPUS_4_7_CONFIG,CLAUDE_OPUS_4_8_CONFIG,CLAUDE_SONNET_4_6_CONFIG,ALL_MODEL_CONFIGS,CANONICAL_MODEL_IDS,CANONICAL_ID_TO_KEY,init_configs=__esm({"src/utils/model/configs.ts"(){CLAUDE_3_7_SONNET_CONFIG={firstParty:"claude-3-7-sonnet-20250219",bedrock:"us.anthropic.\u0063laude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219",foundry:"claude-3-7-sonnet"},CLAUDE_3_5_V2_SONNET_CONFIG={firstParty:"claude-3-5-sonnet-20241022",bedrock:"anthropic.\u0063laude-3-5-sonnet-20241022-v2:0",vertex:"claude-3-5-sonnet-v2@20241022",foundry:"claude-3-5-sonnet"},CLAUDE_3_5_HAIKU_CONFIG={firstParty:"claude-3-5-haiku-20241022",bedrock:"us.anthropic.\u0063laude-3-5-haiku-20241022-v1:0",vertex:"claude-3-5-haiku@20241022",foundry:"claude-3-5-haiku"},CLAUDE_HAIKU_4_5_CONFIG={firstParty:"claude-haiku-4-5-20251001",bedrock:"us.anthropic.\u0063laude-haiku-4-5-20251001-v1:0",vertex:"claude-haiku-4-5@20251001",foundry:"claude-haiku-4-5"},CLAUDE_SONNET_4_CONFIG={firstParty:"claude-sonnet-4-20250514",bedrock:"us.anthropic.\u0063laude-sonnet-4-20250514-v1:0",vertex:"claude-sonnet-4@20250514",foundry:"claude-sonnet-4"},CLAUDE_SONNET_4_5_CONFIG={firstParty:"claude-sonnet-4-5-20250929",bedrock:"us.anthropic.\u0063laude-sonnet-4-5-20250929-v1:0",vertex:"claude-sonnet-4-5@20250929",foundry:"claude-sonnet-4-5"},CLAUDE_OPUS_4_CONFIG={firstParty:"claude-opus-4-20250514",bedrock:"us.anthropic.\u0063laude-opus-4-20250514-v1:0",vertex:"claude-opus-4@20250514",foundry:"claude-opus-4"},CLAUDE_OPUS_4_1_CONFIG={firstParty:"claude-opus-4-1-20250805",bedrock:"us.anthropic.\u0063laude-opus-4-1-20250805-v1:0",vertex:"claude-opus-4-1@20250805",foundry:"claude-opus-4-1"},CLAUDE_OPUS_4_5_CONFIG={firstParty:"claude-opus-4-5-20251101",bedrock:"us.anthropic.\u0063laude-opus-4-5-20251101-v1:0",vertex:"claude-opus-4-5@20251101",foundry:"claude-opus-4-5"},CLAUDE_OPUS_4_6_CONFIG={firstParty:"claude-opus-4-6",bedrock:"us.anthropic.\u0063laude-opus-4-6-v1",vertex:"claude-opus-4-6",foundry:"claude-opus-4-6"},CLAUDE_OPUS_4_7_CONFIG={firstParty:"claude-opus-4-7",bedrock:"us.anthropic.\u0063laude-opus-4-7-v1",vertex:"claude-opus-4-7",foundry:"claude-opus-4-7"},CLAUDE_OPUS_4_8_CONFIG={firstParty:"claude-opus-4-8",bedrock:"us.anthropic.\u0063laude-opus-4-8-v1",vertex:"claude-opus-4-8",foundry:"claude-opus-4-8"},CLAUDE_SONNET_4_6_CONFIG={firstParty:"claude-sonnet-4-6",bedrock:"us.anthropic.\u0063laude-sonnet-4-6",vertex:"claude-sonnet-4-6",foundry:"claude-sonnet-4-6"},ALL_MODEL_CONFIGS={haiku35:CLAUDE_3_5_HAIKU_CONFIG,haiku45:CLAUDE_HAIKU_4_5_CONFIG,sonnet35:CLAUDE_3_5_V2_SONNET_CONFIG,sonnet37:CLAUDE_3_7_SONNET_CONFIG,sonnet40:CLAUDE_SONNET_4_CONFIG,sonnet45:CLAUDE_SONNET_4_5_CONFIG,sonnet46:CLAUDE_SONNET_4_6_CONFIG,opus40:CLAUDE_OPUS_4_CONFIG,opus41:CLAUDE_OPUS_4_1_CONFIG,opus45:CLAUDE_OPUS_4_5_CONFIG,opus46:CLAUDE_OPUS_4_6_CONFIG,opus47:CLAUDE_OPUS_4_7_CONFIG,opus48:CLAUDE_OPUS_4_8_CONFIG},CANONICAL_MODEL_IDS=Object.values(ALL_MODEL_CONFIGS).map(c3=>c3.firstParty),CANONICAL_ID_TO_KEY=Object.fromEntries(Object.entries(ALL_MODEL_CONFIGS).map(([key,cfg])=>[cfg.firstParty,key]))}});function getAPIProvider(){return isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK)?"bedrock":isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX)?"vertex":isEnvTruthy(process.env.CLAUDE_CODE_USE_FOUNDRY)?"foundry":"firstParty"}function isFirstPartyAnthropicBaseUrl(){let baseUrl=process.env.ANTHROPIC_BASE_URL;if(!baseUrl)return!0;try{let host=new URL(baseUrl).host,allowedHosts=["api.anthropic.com"];return process.env.USER_TYPE==="ant"&&allowedHosts.push("api-staging.anthropic.com"),allowedHosts.includes(host)}catch{return!1}}var init_providers=__esm({"src/utils/model/providers.ts"(){init_envUtils();__name(getAPIProvider,"getAPIProvider");__name(isFirstPartyAnthropicBaseUrl,"isFirstPartyAnthropicBaseUrl")}});function getBuiltinModelStrings(provider){let out={};for(let key of MODEL_KEYS)out[key]=ALL_MODEL_CONFIGS[key][provider];return out}async function getBedrockModelStrings(){let fallback=getBuiltinModelStrings("bedrock"),profiles;try{profiles=await getBedrockInferenceProfiles()}catch(error40){return logError2(error40),fallback}if(!profiles?.length)return fallback;let out={};for(let key of MODEL_KEYS){let needle=ALL_MODEL_CONFIGS[key].firstParty;out[key]=findFirstMatch(profiles,needle)||fallback[key]}return out}function resolveOverriddenModel(modelId){let overrides;try{overrides=getInitialSettings().modelOverrides}catch{return modelId}if(!overrides)return modelId;for(let[canonicalId,override]of Object.entries(overrides))if(override===modelId)return canonicalId;return modelId}function resetModelStringsCache(){modelStringsCacheGeneration+=1,resetModelStrings()}var MODEL_KEYS,modelStringsCacheGeneration,updateBedrockModelStrings,init_modelStrings=__esm({"src/utils/model/modelStrings.ts"(){init_state();init_log3();init_sequential();init_settings2();init_bedrock();init_configs();init_providers();MODEL_KEYS=Object.keys(ALL_MODEL_CONFIGS);__name(getBuiltinModelStrings,"getBuiltinModelStrings");__name(getBedrockModelStrings,"getBedrockModelStrings");__name(resolveOverriddenModel,"resolveOverriddenModel");modelStringsCacheGeneration=0,updateBedrockModelStrings=sequential(async()=>{if(getModelStrings()!==null||getAPIProvider()!=="bedrock")return;let generation=modelStringsCacheGeneration;try{let ms=await getBedrockModelStrings();if(generation!==modelStringsCacheGeneration||getAPIProvider()!=="bedrock"||getModelStrings()!==null)return;setModelStrings(ms)}catch(error40){logError2(error40)}});__name(resetModelStringsCache,"resetModelStringsCache")}});var init_billing=__esm({"src/utils/billing.ts"(){init_auth();init_config3();init_envUtils()}});function getMockSubscriptionType(){return!mockEnabled||process.env.USER_TYPE!=="ant"?null:mockSubscriptionType||DEFAULT_MOCK_SUBSCRIPTION}function shouldUseMockSubscription(){return mockEnabled&&mockSubscriptionType!==null&&process.env.USER_TYPE==="ant"}var mockEnabled,mockSubscriptionType,DEFAULT_MOCK_SUBSCRIPTION,init_mockRateLimits=__esm({"src/services/mockRateLimits.ts"(){init_billing();mockEnabled=!1,mockSubscriptionType=null,DEFAULT_MOCK_SUBSCRIPTION="max";__name(getMockSubscriptionType,"getMockSubscriptionType");__name(shouldUseMockSubscription,"shouldUseMockSubscription")}});var init_getOauthProfile=__esm({"src/services/oauth/getOauthProfile.ts"(){init_oauth();init_auth();init_config3();init_log3()}});function shouldUseClaudeAIAuth(scopes){return!!scopes?.includes(CLAUDE_AI_INFERENCE_SCOPE)}var init_client2=__esm({"src/services/oauth/client.ts"(){init_analytics();init_oauth();init_auth();init_config3();init_debug();init_getOauthProfile();__name(shouldUseClaudeAIAuth,"shouldUseClaudeAIAuth")}});import{mkdirSync as mkdirSync2,writeFileSync as writeFileSync3}from"fs";function maybePersistTokenForSubprocesses(path10,token,tokenName){if(isEnvTruthy(process.env.CLAUDE_CODE_REMOTE))try{mkdirSync2(CCR_TOKEN_DIR,{recursive:!0,mode:448}),writeFileSync3(path10,token,{encoding:"utf8",mode:384}),logForDebugging(`Persisted ${tokenName} to ${path10} for subprocess access`)}catch(error40){logForDebugging(`Failed to persist ${tokenName} to disk (non-fatal): ${errorMessage(error40)}`,{level:"error"})}}function readTokenFromWellKnownFile(path10,tokenName){try{let token=getFsImplementation().readFileSync(path10,{encoding:"utf8"}).trim();return token?(logForDebugging(`Read ${tokenName} from well-known file ${path10}`),token):null}catch(error40){return isENOENT(error40)||logForDebugging(`Failed to read ${tokenName} from ${path10}: ${errorMessage(error40)}`,{level:"debug"}),null}}function getCredentialFromFd({envVar,wellKnownPath,label,getCached,setCached}){let cached2=getCached();if(cached2!==void 0)return cached2;let fdEnv=process.env[envVar];if(!fdEnv){let fromFile2=readTokenFromWellKnownFile(wellKnownPath,label);return setCached(fromFile2),fromFile2}let fd=parseInt(fdEnv,10);if(Number.isNaN(fd))return logForDebugging(`${envVar} must be a valid file descriptor number, got: ${fdEnv}`,{level:"error"}),setCached(null),null;try{let fsOps=getFsImplementation(),fdPath=process.platform==="darwin"||process.platform==="freebsd"?`/dev/fd/${fd}`:`/proc/self/fd/${fd}`,token=fsOps.readFileSync(fdPath,{encoding:"utf8"}).trim();return token?(logForDebugging(`Successfully read ${label} from file descriptor ${fd}`),setCached(token),maybePersistTokenForSubprocesses(wellKnownPath,token,label),token):(logForDebugging(`File descriptor contained empty ${label}`,{level:"error"}),setCached(null),null)}catch(error40){logForDebugging(`Failed to read ${label} from file descriptor ${fd}: ${errorMessage(error40)}`,{level:"error"});let fromFile2=readTokenFromWellKnownFile(wellKnownPath,label);return setCached(fromFile2),fromFile2}}function getOAuthTokenFromFileDescriptor(){return getCredentialFromFd({envVar:"CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",wellKnownPath:CCR_OAUTH_TOKEN_PATH,label:"OAuth token",getCached:getOauthTokenFromFd,setCached:setOauthTokenFromFd})}function getApiKeyFromFileDescriptor(){return getCredentialFromFd({envVar:"CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR",wellKnownPath:CCR_API_KEY_PATH,label:"API key",getCached:getApiKeyFromFd,setCached:setApiKeyFromFd})}var CCR_TOKEN_DIR,CCR_OAUTH_TOKEN_PATH,CCR_API_KEY_PATH,CCR_SESSION_INGRESS_TOKEN_PATH,init_authFileDescriptor=__esm({"src/utils/authFileDescriptor.ts"(){init_state();init_debug();init_envUtils();init_errors2();init_fsOperations();CCR_TOKEN_DIR="/home/claude/.\u0063laude/remote",CCR_OAUTH_TOKEN_PATH=`${CCR_TOKEN_DIR}/.oauth_token`,CCR_API_KEY_PATH=`${CCR_TOKEN_DIR}/.api_key`,CCR_SESSION_INGRESS_TOKEN_PATH=`${CCR_TOKEN_DIR}/.session_ingress_token`;__name(maybePersistTokenForSubprocesses,"maybePersistTokenForSubprocesses");__name(readTokenFromWellKnownFile,"readTokenFromWellKnownFile");__name(getCredentialFromFd,"getCredentialFromFd");__name(getOAuthTokenFromFileDescriptor,"getOAuthTokenFromFileDescriptor");__name(getApiKeyFromFileDescriptor,"getApiKeyFromFileDescriptor")}});import{createHash}from"crypto";import{userInfo}from"os";function getMacOsKeychainStorageServiceName(serviceSuffix=""){let configDir=getClaudeConfigHomeDir(),dirHash=!process.env.CLAVUE_CONFIG_DIR?"":`-${createHash("sha256").update(configDir).digest("hex").substring(0,8)}`;return`Claude Code${getOauthConfig().OAUTH_FILE_SUFFIX}${serviceSuffix}${dirHash}`}function getUsername(){try{return process.env.USER||userInfo().username}catch{return"claude-code-user"}}function clearKeychainCache(){keychainCacheState.cache={data:null,cachedAt:0},keychainCacheState.generation++,keychainCacheState.readInFlight=null}var CREDENTIALS_SERVICE_SUFFIX,KEYCHAIN_CACHE_TTL_MS,keychainCacheState,init_macOsKeychainHelpers=__esm({"src/utils/secureStorage/macOsKeychainHelpers.ts"(){init_oauth();init_envUtils();CREDENTIALS_SERVICE_SUFFIX="-credentials";__name(getMacOsKeychainStorageServiceName,"getMacOsKeychainStorageServiceName");__name(getUsername,"getUsername");KEYCHAIN_CACHE_TTL_MS=3e4,keychainCacheState={cache:{data:null,cachedAt:0},generation:0,readInFlight:null};__name(clearKeychainCache,"clearKeychainCache")}});function normalizeApiKeyForConfig(apiKey){return apiKey.slice(-20)}var init_authPortable=__esm({"src/utils/authPortable.ts"(){init_envUtils();init_macOsKeychainHelpers();__name(normalizeApiKeyForConfig,"normalizeApiKeyForConfig")}});function isValidAwsStsOutput(obj){if(!obj||typeof obj!="object")return!1;let output=obj;if(!output.Credentials||typeof output.Credentials!="object")return!1;let credentials=output.Credentials;return typeof credentials.AccessKeyId=="string"&&typeof credentials.SecretAccessKey=="string"&&typeof credentials.SessionToken=="string"&&credentials.AccessKeyId.length>0&&credentials.SecretAccessKey.length>0&&credentials.SessionToken.length>0}async function checkStsCallerIdentity(){let{STSClient,GetCallerIdentityCommand}=await import("@aws-sdk/client-sts");await new STSClient().send(new GetCallerIdentityCommand({}))}async function clearAwsIniCache(){try{logForDebugging("Clearing AWS credential provider cache");let{fromIni}=await import("@aws-sdk/credential-providers");await fromIni({ignoreCache:!0})(),logForDebugging("AWS credential provider cache refreshed")}catch{logForDebugging("Failed to clear AWS credential cache (this is expected if no credentials are configured)")}}var init_aws=__esm({"src/utils/aws.ts"(){init_debug();__name(isValidAwsStsOutput,"isValidAwsStsOutput");__name(checkStsCallerIdentity,"checkStsCallerIdentity");__name(clearAwsIniCache,"clearAwsIniCache")}});var AwsAuthStatusManager,init_awsAuthStatusManager=__esm({"src/utils/awsAuthStatusManager.ts"(){init_signal();AwsAuthStatusManager=class _AwsAuthStatusManager{static{__name(this,"AwsAuthStatusManager")}static instance=null;status={isAuthenticating:!1,output:[]};changed=createSignal();static getInstance(){return _AwsAuthStatusManager.instance||(_AwsAuthStatusManager.instance=new _AwsAuthStatusManager),_AwsAuthStatusManager.instance}getStatus(){return{...this.status,output:[...this.status.output]}}startAuthentication(){this.status={isAuthenticating:!0,output:[]},this.changed.emit(this.getStatus())}addOutput(line){this.status.output.push(line),this.changed.emit(this.getStatus())}setError(error40){this.status.error=error40,this.changed.emit(this.getStatus())}endAuthentication(success2){success2?this.status={isAuthenticating:!1,output:[]}:this.status.isAuthenticating=!1,this.changed.emit(this.getStatus())}subscribe=this.changed.subscribe;static reset(){_AwsAuthStatusManager.instance&&(_AwsAuthStatusManager.instance.changed.clear(),_AwsAuthStatusManager.instance=null)}}}});var CLAUDE_CODE_20250219_BETA_HEADER,INTERLEAVED_THINKING_BETA_HEADER,CONTEXT_1M_BETA_HEADER,CONTEXT_MANAGEMENT_BETA_HEADER,STRUCTURED_OUTPUTS_BETA_HEADER,WEB_SEARCH_BETA_HEADER,TOOL_SEARCH_BETA_HEADER_3P,PROMPT_CACHING_SCOPE_BETA_HEADER,REDACT_THINKING_BETA_HEADER,TOKEN_EFFICIENT_TOOLS_BETA_HEADER,SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER,CLI_INTERNAL_BETA_HEADER,BEDROCK_EXTRA_PARAMS_HEADERS,init_betas=__esm({"src/constants/betas.ts"(){CLAUDE_CODE_20250219_BETA_HEADER="claude-code-20250219",INTERLEAVED_THINKING_BETA_HEADER="interleaved-thinking-2025-05-14",CONTEXT_1M_BETA_HEADER="context-1m-2025-08-07",CONTEXT_MANAGEMENT_BETA_HEADER="context-management-2025-06-27",STRUCTURED_OUTPUTS_BETA_HEADER="structured-outputs-2025-12-15",WEB_SEARCH_BETA_HEADER="web-search-2025-03-05",TOOL_SEARCH_BETA_HEADER_3P="tool-search-tool-2025-10-19",PROMPT_CACHING_SCOPE_BETA_HEADER="prompt-caching-scope-2026-01-05",REDACT_THINKING_BETA_HEADER="redact-thinking-2026-02-12",TOKEN_EFFICIENT_TOOLS_BETA_HEADER="token-efficient-tools-2026-03-28",SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER="",CLI_INTERNAL_BETA_HEADER=process.env.USER_TYPE==="ant"?"cli-internal-2026-02-09":"",BEDROCK_EXTRA_PARAMS_HEADERS=new Set([INTERLEAVED_THINKING_BETA_HEADER,CONTEXT_1M_BETA_HEADER,TOOL_SEARCH_BETA_HEADER_3P])}});function compareVersion(a2,b){return a2.major-b.major||a2.minor-b.minor}function parseVersion(raw){if(!raw)return null;let parts=raw.split("-").map(part=>Number.parseInt(part,10));return parts.some(part=>Number.isNaN(part))?null:(parts[1]!==void 0&&parts[1]>=2e7&&(parts[1]=0),{major:parts[0]??0,minor:parts[1]??0})}function parseClaudeModelIdentity(model){let normalized=String(model??"").trim().toLowerCase();if(!normalized)return null;let modern=/claude-(opus|sonnet|haiku)-([0-9]+(?:-[0-9]+)?)/.exec(normalized);if(modern?.[1]&&modern[2]){let version2=parseVersion(modern[2]);return version2?{family:modern[1],version:version2}:null}let legacy=/claude-([0-9]+(?:-[0-9]+)?)-(opus|sonnet|haiku)/.exec(normalized);if(legacy?.[1]&&legacy[2]){let version2=parseVersion(legacy[1]);return version2?{family:legacy[2],version:version2}:null}return null}function getClaudeModelTokenProfile(model){let identity4=parseClaudeModelIdentity(model);return identity4?CLAUDE_MODEL_TOKEN_PROFILES.filter(profile=>profile.family===identity4.family).sort((a2,b)=>compareVersion(b.version,a2.version)).find(profile=>compareVersion(profile.version,identity4.version)<=0)??null:null}function getClaudeCanonicalModelName(model){let identity4=parseClaudeModelIdentity(model);if(!identity4||identity4.version.major<4)return null;let version2=identity4.version.minor===0?String(identity4.version.major):`${identity4.version.major}-${identity4.version.minor}`;return`claude-${identity4.family}-${version2}`}var CLAUDE_MODEL_TOKEN_PROFILES,init_claudeModelProfiles=__esm({"src/utils/model/claudeModelProfiles.ts"(){CLAUDE_MODEL_TOKEN_PROFILES=[{family:"haiku",version:{major:4,minor:5},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!1,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"February 2025"},{family:"sonnet",version:{major:4,minor:0},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!1,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"sonnet",version:{major:4,minor:5},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!1,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"sonnet",version:{major:4,minor:6},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!0,maxEffort:!1,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"August 2025"},{family:"opus",version:{major:4,minor:0},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:32e3,effort:!1,maxEffort:!0,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"opus",version:{major:4,minor:1},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:32e3,effort:!1,maxEffort:!0,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"January 2025"},{family:"opus",version:{major:4,minor:5},maxInputTokens:2e5,oneMillionContext:!1,defaultOutputTokens:32e3,maxOutputTokens:64e3,effort:!1,maxEffort:!0,thinking:!0,adaptiveThinking:!1,knowledgeCutoff:"May 2025"},{family:"opus",version:{major:4,minor:6},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:64e3,maxOutputTokens:128e3,effort:!0,maxEffort:!0,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"May 2025"},{family:"opus",version:{major:4,minor:7},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:64e3,maxOutputTokens:128e3,effort:!0,maxEffort:!0,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"January 2026"},{family:"opus",version:{major:4,minor:8},maxInputTokens:1e6,oneMillionContext:!0,defaultOutputTokens:64e3,maxOutputTokens:128e3,effort:!0,maxEffort:!0,thinking:!0,adaptiveThinking:!0,knowledgeCutoff:"January 2026"}];__name(compareVersion,"compareVersion");__name(parseVersion,"parseVersion");__name(parseClaudeModelIdentity,"parseClaudeModelIdentity");__name(getClaudeModelTokenProfile,"getClaudeModelTokenProfile");__name(getClaudeCanonicalModelName,"getClaudeCanonicalModelName")}});var cooldownTriggered,cooldownExpired,onCooldownTriggered,onCooldownExpired,overageRejection,onFastModeOverageRejection,orgFastModeChange,onOrgFastModeChanged,init_fastMode=__esm({"src/utils/fastMode.ts"(){init_oauth();init_growthbook();init_state();init_analytics();init_auth();init_bundledMode();init_config3();init_debug();init_envUtils();init_model();init_providers();init_privacyLevel();init_settings2();init_signal();cooldownTriggered=createSignal(),cooldownExpired=createSignal(),onCooldownTriggered=cooldownTriggered.subscribe,onCooldownExpired=cooldownExpired.subscribe,overageRejection=createSignal(),onFastModeOverageRejection=overageRejection.subscribe,orgFastModeChange=createSignal(),onOrgFastModeChanged=orgFastModeChange.subscribe}});var COST_TIER_3_15,COST_TIER_15_75,COST_TIER_5_25,COST_HAIKU_35,COST_HAIKU_45,MODEL_COSTS,init_modelCost=__esm({"src/utils/modelCost.ts"(){init_analytics();init_state();init_fastMode();init_configs();init_model();COST_TIER_3_15={inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:.3,webSearchRequests:.01},COST_TIER_15_75={inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5,webSearchRequests:.01},COST_TIER_5_25={inputTokens:5,outputTokens:25,promptCacheWriteTokens:6.25,promptCacheReadTokens:.5,webSearchRequests:.01},COST_HAIKU_35={inputTokens:.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:.08,webSearchRequests:.01},COST_HAIKU_45={inputTokens:1,outputTokens:5,promptCacheWriteTokens:1.25,promptCacheReadTokens:.1,webSearchRequests:.01},MODEL_COSTS={[firstPartyNameToCanonical(CLAUDE_3_5_HAIKU_CONFIG.firstParty)]:COST_HAIKU_35,[firstPartyNameToCanonical(CLAUDE_HAIKU_4_5_CONFIG.firstParty)]:COST_HAIKU_45,[firstPartyNameToCanonical(CLAUDE_3_5_V2_SONNET_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_3_7_SONNET_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_SONNET_4_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_SONNET_4_5_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_SONNET_4_6_CONFIG.firstParty)]:COST_TIER_3_15,[firstPartyNameToCanonical(CLAUDE_OPUS_4_CONFIG.firstParty)]:COST_TIER_15_75,[firstPartyNameToCanonical(CLAUDE_OPUS_4_1_CONFIG.firstParty)]:COST_TIER_15_75,[firstPartyNameToCanonical(CLAUDE_OPUS_4_5_CONFIG.firstParty)]:COST_TIER_5_25,[firstPartyNameToCanonical(CLAUDE_OPUS_4_6_CONFIG.firstParty)]:COST_TIER_5_25}}});var init_aliases=__esm({"src/utils/model/aliases.ts"(){}});var init_modelAllowlist=__esm({"src/utils/model/modelAllowlist.ts"(){init_settings2();init_aliases();init_model();init_modelStrings()}});function getAntModelOverrideConfig(){return process.env.USER_TYPE!=="ant"?null:getFeatureValue_CACHED_MAY_BE_STALE("tengu_ant_model_override",null)}function getAntModels(){return process.env.USER_TYPE!=="ant"?[]:getAntModelOverrideConfig()?.antModels??[]}function resolveAntModel(model){if(process.env.USER_TYPE!=="ant"||model===void 0)return;let lower3=model.toLowerCase();return getAntModels().find(m2=>m2.alias===model||lower3.includes(m2.model.toLowerCase()))}var init_antModels=__esm({"src/utils/model/antModels.ts"(){init_growthbook();__name(getAntModelOverrideConfig,"getAntModelOverrideConfig");__name(getAntModels,"getAntModels");__name(resolveAntModel,"resolveAntModel")}});function firstPartyNameToCanonical(name){name=name.toLowerCase();let claudeCanonical=getClaudeCanonicalModelName(name);if(claudeCanonical)return claudeCanonical;if(name.includes("claude-3-7-sonnet"))return"claude-3-7-sonnet";if(name.includes("claude-3-5-sonnet"))return"claude-3-5-sonnet";if(name.includes("claude-3-5-haiku"))return"claude-3-5-haiku";if(name.includes("claude-3-opus"))return"claude-3-opus";if(name.includes("claude-3-sonnet"))return"claude-3-sonnet";if(name.includes("claude-3-haiku"))return"claude-3-haiku";let match=name.match(/(claude-(\d+-\d+-)?\w+)/);return match&&match[1]?match[1]:name}function getCanonicalName(fullModelName){return firstPartyNameToCanonical(resolveOverriddenModel(fullModelName))}var init_model=__esm({"src/utils/model/model.ts"(){init_state();init_auth();init_context();init_envUtils();init_modelStrings();init_configs();init_claudeModelProfiles();init_modelCost();init_settings2();init_providers();init_figures2();init_modelAllowlist();init_aliases();init_antModels();init_stringUtils();__name(firstPartyNameToCanonical,"firstPartyNameToCanonical");__name(getCanonicalName,"getCanonicalName")}});function compareProviderVersion(a2,b){return a2.major-b.major||a2.minor-b.minor}function stripModelDecorators(model){return String(model??"").trim().toLowerCase().replace(/\[(?:1|2)m\]$/i,"")}function fromClaudeProfile(profile){if(!profile)return null;let version2=profile.version.minor===0?String(profile.version.major):`${profile.version.major}-${profile.version.minor}`;return{family:"claude",baseModel:`claude-${profile.family}-${version2}`,maxInputTokens:profile.maxInputTokens,oneMillionContext:profile.oneMillionContext,defaultOutputTokens:profile.defaultOutputTokens,maxOutputTokens:profile.maxOutputTokens,thinking:profile.thinking,adaptiveThinking:profile.adaptiveThinking,effort:profile.effort,maxEffort:profile.maxEffort,knowledgeCutoff:profile.knowledgeCutoff,source:"anthropic"}}function parseQwenIdentity(model){let match=/(?:^|[^a-z0-9])qwen[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"qwen",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseDeepSeekIdentity(model){let match=/(?:^|[^a-z0-9])deepseek[-_]?v?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"deepseek",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseGlmIdentity(model){let match=/(?:^|[^a-z0-9])glm[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"glm",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseKimiIdentity(model){let match=/(?:^|[^a-z0-9])kimi[-_]?k?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"kimi",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseGptIdentity(model){let match=/(?:^|[^a-z0-9])gpt[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"gpt",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseGrokIdentity(model){let match=/(?:^|[^a-z0-9])grok[-_]?([0-9]+)(?:[.-]([0-9]+))?(?:[-_.]?([a-z][a-z0-9]*))?/i.exec(model);return match?.[1]?{family:"grok",version:{major:Number.parseInt(match[1],10),minor:Number.parseInt(match[2]??"0",10)},variant:match[3]??""}:null}function parseProviderIdentity(model){return parseQwenIdentity(model)??parseDeepSeekIdentity(model)??parseGlmIdentity(model)??parseKimiIdentity(model)??parseGrokIdentity(model)??parseGptIdentity(model)}function variantMatches(requestedVariant,profileVariant){return profileVariant?requestedVariant===profileVariant?!0:!requestedVariant||profileVariant.length<2?!1:requestedVariant.startsWith(profileVariant)||requestedVariant===profileVariant:!requestedVariant}function resolveProviderProfile(model){let identity4=parseProviderIdentity(model);if(!identity4)return null;let sameFamily=PROVIDER_MODEL_TOKEN_PROFILES.filter(profile=>profile.family===identity4.family&&compareProviderVersion(profile.version,identity4.version)<=0);if(sameFamily.length===0)return null;let variantMatchesFirst=sameFamily.filter(profile=>variantMatches(identity4.variant,profile.variant)).sort((a2,b)=>compareProviderVersion(b.version,a2.version));return variantMatchesFirst[0]?variantMatchesFirst[0]:null}function getProviderModelTokenProfile(model){let normalized=stripModelDecorators(model);if(!normalized)return null;let claudeProfile=fromClaudeProfile(getClaudeModelTokenProfile(normalized));if(claudeProfile)return claudeProfile;let profile=resolveProviderProfile(normalized);return profile?{family:profile.family,baseModel:profile.baseModel,maxInputTokens:profile.maxInputTokens,oneMillionContext:profile.maxInputTokens>=1e6,defaultOutputTokens:profile.defaultOutputTokens,maxOutputTokens:profile.maxOutputTokens,thinking:profile.thinking,adaptiveThinking:profile.adaptiveThinking,...profile.thinkingBudgetTokens!==void 0?{thinkingBudgetTokens:profile.thinkingBudgetTokens}:{},effort:profile.effort,maxEffort:profile.maxEffort,knowledgeCutoff:profile.knowledgeCutoff,source:profile.source}:null}var PROVIDER_MODEL_TOKEN_PROFILES,init_providerModelProfiles=__esm({"src/utils/model/providerModelProfiles.ts"(){init_claudeModelProfiles();PROVIDER_MODEL_TOKEN_PROFILES=[{family:"qwen",baseModel:"qwen3.6-plus",version:{major:3,minor:6},variant:"plus",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:8e4,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"qwen",baseModel:"qwen3.6-flash",version:{major:3,minor:6},variant:"flash",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:128e3,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"qwen",baseModel:"qwen3.7-max",version:{major:3,minor:7},variant:"max",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:256e3,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"aliyun"},{family:"qwen",baseModel:"qwen3.7-plus",version:{major:3,minor:7},variant:"plus",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:256e3,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"deepseek",baseModel:"deepseek-v4-pro",version:{major:4,minor:0},variant:"pro",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:384e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"aliyun"},{family:"deepseek",baseModel:"deepseek-v4-flash",version:{major:4,minor:0},variant:"flash",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:384e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"glm",baseModel:"glm-5.2",version:{major:5,minor:2},variant:"",maxInputTokens:1e6,defaultOutputTokens:64e3,maxOutputTokens:131e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:131e3,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"aliyun"},{family:"kimi",baseModel:"kimi-k2.7-code",version:{major:2,minor:7},variant:"code",maxInputTokens:256e3,defaultOutputTokens:64e3,maxOutputTokens:96e3,thinking:!0,adaptiveThinking:!1,thinkingBudgetTokens:8e4,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"aliyun"},{family:"gpt",baseModel:"gpt-5.5",version:{major:5,minor:5},variant:"",maxInputTokens:2e5,defaultOutputTokens:16e3,maxOutputTokens:32e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"openai"},{family:"gpt",baseModel:"gpt-5.4",version:{major:5,minor:4},variant:"",maxInputTokens:4e5,defaultOutputTokens:16e3,maxOutputTokens:32e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!0,knowledgeCutoff:null,source:"openai"},{family:"gpt",baseModel:"gpt-5",version:{major:5,minor:0},variant:"",maxInputTokens:4e5,defaultOutputTokens:16e3,maxOutputTokens:32e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"openai"},{family:"gpt",baseModel:"gpt-4o",version:{major:4,minor:0},variant:"o",maxInputTokens:128e3,defaultOutputTokens:16e3,maxOutputTokens:16e3,thinking:!1,adaptiveThinking:!1,effort:!1,maxEffort:!1,knowledgeCutoff:null,source:"openai"},{family:"grok",baseModel:"grok-4.6",version:{major:4,minor:6},variant:"",maxInputTokens:5e5,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:"2026-02-01",source:"xai"},{family:"grok",baseModel:"grok-4.5",version:{major:4,minor:5},variant:"",maxInputTokens:5e5,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:"2026-02-01",source:"xai"},{family:"grok",baseModel:"grok-4.3",version:{major:4,minor:3},variant:"",maxInputTokens:1e6,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"xai"},{family:"grok",baseModel:"grok-4",version:{major:4,minor:0},variant:"",maxInputTokens:256e3,defaultOutputTokens:32e3,maxOutputTokens:64e3,thinking:!0,adaptiveThinking:!1,effort:!0,maxEffort:!1,knowledgeCutoff:null,source:"xai"}];__name(compareProviderVersion,"compareProviderVersion");__name(stripModelDecorators,"stripModelDecorators");__name(fromClaudeProfile,"fromClaudeProfile");__name(parseQwenIdentity,"parseQwenIdentity");__name(parseDeepSeekIdentity,"parseDeepSeekIdentity");__name(parseGlmIdentity,"parseGlmIdentity");__name(parseKimiIdentity,"parseKimiIdentity");__name(parseGptIdentity,"parseGptIdentity");__name(parseGrokIdentity,"parseGrokIdentity");__name(parseProviderIdentity,"parseProviderIdentity");__name(variantMatches,"variantMatches");__name(resolveProviderProfile,"resolveProviderProfile");__name(getProviderModelTokenProfile,"getProviderModelTokenProfile")}});var APP_NAME,APP_VERSION_FALLBACK,APP_VERSION,APP_WORDMARK,APP_BRAND_LOCKUP,init_branding=__esm({"src/constants/branding.ts"(){APP_NAME="Clavue",APP_VERSION_FALLBACK="11.2.21",APP_VERSION=typeof MACRO<"u"?"11.2.21":APP_VERSION_FALLBACK,APP_WORDMARK=`/${APP_NAME.toLowerCase()}`,APP_BRAND_LOCKUP=`\u9F8D ${APP_NAME.toUpperCase()}`}});function clear3PModelCapabilityOverrideCache(){get3PModelCapabilityOverride.cache?.clear?.()}var TIERS,get3PModelCapabilityOverride,init_modelSupportOverrides=__esm({"src/utils/model/modelSupportOverrides.ts"(){init_memoize();init_providers();TIERS=[{modelEnvVar:"ANTHROPIC_DEFAULT_OPUS_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES"},{modelEnvVar:"ANTHROPIC_DEFAULT_SONNET_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES"},{modelEnvVar:"ANTHROPIC_DEFAULT_HAIKU_MODEL",capabilitiesEnvVar:"ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES"}],get3PModelCapabilityOverride=memoize_default((model,capability)=>{if(getAPIProvider()==="firstParty")return;let m2=model.toLowerCase();for(let tier of TIERS){let pinned=process.env[tier.modelEnvVar],capabilities=process.env[tier.capabilitiesEnvVar];if(!(!pinned||capabilities===void 0)&&m2===pinned.toLowerCase())return capabilities.toLowerCase().split(",").map(s2=>s2.trim()).includes(capability)}},(model,capability)=>`${model.toLowerCase()}:${capability}`);__name(clear3PModelCapabilityOverrideCache,"clear3PModelCapabilityOverrideCache")}});import{createRequire as createRequire2}from"node:module";function loadUpdateSettingsForSource(){let candidates=["./settings/settings.js","./settings/settings.ts"];for(let id of candidates)try{let mod=requireSettings(id);if(typeof mod.updateSettingsForSource=="function")return mod.updateSettingsForSource}catch{}return null}function persistDurableMainEffort(level){let raw=String(level??"").trim().toLowerCase();(raw==="x-high"||raw==="x_high")&&(raw="xhigh");try{let updateSettingsForSource2=loadUpdateSettingsForSource();if(!updateSettingsForSource2)return{ok:!1};if(!raw||raw==="auto"||raw==="unset"||raw==="clear")return updateSettingsForSource2("userSettings",{effortLevel:void 0}).error?{ok:!1}:{ok:!0,cleared:!0};if(!PERSISTABLE.has(raw))return{ok:!1};let persistable=raw;return updateSettingsForSource2("userSettings",{effortLevel:persistable}).error?{ok:!1}:{ok:!0,persisted:persistable}}catch{return{ok:!1}}}var requireSettings,PERSISTABLE,init_effortPersist=__esm({"src/utils/effortPersist.ts"(){requireSettings=createRequire2(import.meta.url),PERSISTABLE=new Set(["low","medium","high","xhigh","max","ultra"]);__name(loadUpdateSettingsForSource,"loadUpdateSettingsForSource");__name(persistDurableMainEffort,"persistDurableMainEffort")}});import{existsSync as existsSync2,mkdirSync as mkdirSync3,readFileSync as readFileSync6,renameSync as renameSync2,unlinkSync as unlinkSync2,writeFileSync as writeFileSync4}from"node:fs";import{join as join15}from"node:path";function pathFor(){return join15(getClavueConfigHomeDir(),FILE)}function writeJsonAtomic(target,body){let tmp=`${target}.${process.pid}.${Date.now()}.tmp`;writeFileSync4(tmp,body,"utf8");try{renameSync2(tmp,target)}catch{try{writeFileSync4(target,body,"utf8")}finally{try{unlinkSync2(tmp)}catch{}}}}function normalizeDurableExecutionSpeed(raw){let s2=String(raw??"").trim().toLowerCase();return s2==="grok"||s2==="turbo"||s2==="fast"||s2==="speed"?"grok":s2==="balanced"||s2==="auto"||s2==="normal"?"balanced":s2==="quality"||s2==="high"||s2==="deep"?"quality":null}function persistDurableExecutionSpeed(speed){try{let dir=getClavueConfigHomeDir();mkdirSync3(dir,{recursive:!0});let raw=String(speed??"").trim().toLowerCase();if(!raw||raw==="clear"||raw==="default"||raw==="env"||raw==="unset")return writeJsonAtomic(pathFor(),`${JSON.stringify({speed:null,updatedAt:new Date().toISOString()},null,2)}
188
188
  `),{ok:!0,cleared:!0,speed:null};let next=normalizeDurableExecutionSpeed(raw);return next?(writeJsonAtomic(pathFor(),`${JSON.stringify({speed:next,updatedAt:new Date().toISOString()},null,2)}
189
189
  `),{ok:!0,speed:next}):{ok:!1}}catch{return{ok:!1}}}var FILE,init_executionSpeedPersist=__esm({"src/runtime/executionSpeedPersist.ts"(){init_envUtils();FILE="execution-speed.json";__name(pathFor,"pathFor");__name(writeJsonAtomic,"writeJsonAtomic");__name(normalizeDurableExecutionSpeed,"normalizeDurableExecutionSpeed");__name(persistDurableExecutionSpeed,"persistDurableExecutionSpeed")}});function modelLower(model){return String(model??"").trim().toLowerCase()}function isOpenAiCompatChatEffortFamily(model){let m2=modelLower(model);return m2?!!(m2.includes("grok")||m2.startsWith("grok-")||m2.includes("gpt-5")||m2.includes("gpt-6")||m2.includes("codex")||m2.startsWith("o1")||m2.startsWith("o3")||m2.startsWith("o4")||m2.includes("gpt")||m2.includes("deepseek")||m2.includes("qwen")||m2.includes("qwq")||m2.includes("glm")||m2.includes("chatglm")||m2.includes("kimi")||m2.includes("moonshot")||m2.includes("minimax")||m2.includes("abab")||m2.includes("gemini")):!1}function detectProviderReasoningWire(model){let m2=modelLower(model);return m2?m2.includes("grok")||m2.startsWith("grok-")?"grok_chat":m2.includes("claude")||m2.includes("anthropic")?"anthropic":m2.includes("gpt-5")||m2.includes("gpt-6")||m2.includes("codex")||m2.startsWith("o1")||m2.startsWith("o3")||m2.startsWith("o4")?"openai_responses":m2.includes("gpt")||m2.includes("openai")?"openai_chat":m2.includes("deepseek")||m2.includes("qwen")||m2.includes("qwq")||m2.includes("glm")||m2.includes("kimi")||m2.includes("moonshot")||m2.includes("minimax")||m2.includes("gemini")?"openai_compat_chat":"unknown":"unknown"}function mapChatCompletionsReasoningEffort(model,effortRaw){let effort=effortRaw.trim().toLowerCase();if(!effort)return;let m2=modelLower(model);return m2.includes("grok")?effort==="xhigh"||effort==="max"||effort==="ultra"||effort==="x-high"||effort==="x_high"?"high":effort==="none"||effort==="minimal"?/(^|[^0-9])grok-4\.3([^0-9]|$)/.test(m2)||/(^|[^0-9])grok-4-3([^0-9]|$)/.test(m2)?"none":"low":effort==="low"||effort==="medium"||effort==="high"?effort:"high":effort==="xhigh"||effort==="max"||effort==="ultra"||effort==="x-high"||effort==="x_high"?"high":effort==="none"||effort==="minimal"||effort==="low"||effort==="medium"||effort==="high"?effort==="minimal"||effort==="none"?"low":effort:"high"}function mapResponsesReasoningEffort(effortRaw){let effort=effortRaw.trim().toLowerCase();switch(effort){case"none":case"minimal":case"low":case"medium":case"high":return effort;case"xhigh":case"x-high":case"x_high":case"x high":case"max":case"ultra":return"xhigh";default:return"high"}}var init_providerReasoningEffort=__esm({"src/utils/model/providerReasoningEffort.ts"(){__name(modelLower,"modelLower");__name(isOpenAiCompatChatEffortFamily,"isOpenAiCompatChatEffortFamily");__name(detectProviderReasoningWire,"detectProviderReasoningWire");__name(mapChatCompletionsReasoningEffort,"mapChatCompletionsReasoningEffort");__name(mapResponsesReasoningEffort,"mapResponsesReasoningEffort")}});function snapshotHintFromProviderCache(snapshot){if(!snapshot)return null;let hint={};return snapshot.responsesReasoningMedium&&(hint.responsesReasoningMedium=!0),snapshot.responsesReasoningXHigh&&(hint.responsesReasoningXHigh=!0),snapshot.anthropicToolUse===!0&&(hint.anthropicToolUse=!0),snapshot.anthropicToolUse===!1&&(hint.anthropicToolUse=!1),typeof snapshot.maxInputTokens=="number"&&Number.isFinite(snapshot.maxInputTokens)&&snapshot.maxInputTokens>=1e3&&(hint.maxInputTokens=Math.floor(snapshot.maxInputTokens)),Object.keys(hint).length>0?hint:null}function norm(model){return String(model??"").trim()}function lower(model){return norm(model).toLowerCase()}function detectNativeModelFamily(model){let m2=lower(model);return m2?m2.includes("grok")?"grok":m2.includes("claude")||m2.includes("anthropic")||m2.includes("sonnet")||m2.includes("opus")||m2.includes("haiku")?"claude":m2.includes("qwen")||m2.includes("qwq")?"qwen":m2.includes("deepseek")?"deepseek":m2.includes("glm")||m2.includes("chatglm")?"glm":m2.includes("kimi")||m2.includes("moonshot")?"kimi":m2.includes("minimax")||m2.includes("abab")?"minimax":m2.includes("gemini")?"gemini":m2.includes("gpt")||m2.includes("codex")||m2.startsWith("o1")||m2.startsWith("o3")||m2.startsWith("o4")?"gpt":"unknown":"unknown"}function thinkingWireFrom(wire,family,supportsEffort){return wire==="anthropic"||family==="claude"?"anthropic":wire==="openai_responses"?"responses":wire==="grok_chat"||wire==="openai_compat_chat"||wire==="openai_chat"||supportsEffort?"reasoning_effort":"none"}function familyThinkingDefault(family,m2){return family==="grok"||family==="qwen"||family==="deepseek"||family==="glm"||family==="kimi"||family==="minimax"||family==="gemini"?!0:family==="gpt"?m2.includes("gpt-5")||m2.includes("gpt-6")||m2.includes("codex")||m2.startsWith("o1")||m2.startsWith("o3")||m2.startsWith("o4"):family==="claude"?!m2.includes("claude-3-"):!1}function familyVisionDefault(family,m2){return family==="claude"?!m2.includes("haiku-3"):family==="grok"?/grok-4|grok-2-vision|vision/.test(m2):family==="gpt"?/gpt-4o|gpt-4\.1|gpt-5|gpt-image|vision/.test(m2):family==="gemini"?!0:family==="qwen"?/vl|vision/.test(m2):family==="glm"?/4v|vision/.test(m2):/vision|vl-/.test(m2)}function emptyUnknown(model){return{model,family:"unknown",supportsTools:!0,supportsThinking:!1,supportsEffort:!1,supportsVision:!1,supportsCache:!1,supportsVendorSearch:!1,thinkingWire:"none",effortValues:[],defaultCodingEffort:null,maxInputTokens:null,source:"unknown"}}function applySnapshot(cap,snapshot){if(!snapshot)return cap;let source=cap.source,supportsEffort=cap.supportsEffort,supportsThinking=cap.supportsThinking,supportsTools=cap.supportsTools,maxInputTokens=cap.maxInputTokens;return snapshot.responsesReasoningMedium&&(supportsEffort=!0,supportsThinking=!0,source="snapshot"),snapshot.responsesReasoningXHigh&&(supportsEffort=!0,source="snapshot"),snapshot.anthropicToolUse===!0&&(supportsTools=!0,source="snapshot"),snapshot.anthropicToolUse===!1&&(supportsTools=!1,source="snapshot"),typeof snapshot.maxInputTokens=="number"&&Number.isFinite(snapshot.maxInputTokens)&&snapshot.maxInputTokens>=1e3&&(maxInputTokens=Math.floor(snapshot.maxInputTokens),source="snapshot"),{...cap,supportsEffort,supportsThinking,supportsTools,maxInputTokens,defaultCodingEffort:supportsEffort?cap.defaultCodingEffort??"medium":null,source}}function resolveModelNativeCapability(model,snapshot){let raw=norm(model);if(!raw)return emptyUnknown("");let m2=raw.toLowerCase(),profile=getProviderModelTokenProfile(raw),family=profile?.family??detectNativeModelFamily(raw),wire=detectProviderReasoningWire(raw),ovThinking=get3PModelCapabilityOverride(raw,"thinking"),ovEffort=get3PModelCapabilityOverride(raw,"effort"),ovVision=get3PModelCapabilityOverride(raw,"vision"),ovTools=get3PModelCapabilityOverride(raw,"tool_use"),supportsThinking=ovThinking??profile?.thinking??familyThinkingDefault(family,m2),supportsEffort=ovEffort??profile?.effort??(isOpenAiCompatChatEffortFamily(raw)||wire==="openai_responses"||wire==="grok_chat"),supportsVision=ovVision??familyVisionDefault(family,m2),supportsTools=ovTools??!0,thinkingWire=thinkingWireFrom(wire,family,!!supportsEffort),effortValues=family==="grok"?["none","low","medium","high"]:thinkingWire==="responses"?["none","minimal","low","medium","high","xhigh"]:supportsEffort?["low","medium","high"]:[],defaultCodingEffort=supportsEffort?"medium":null,supportsVendorSearch=family==="grok"||family==="claude"||/sonar|perplexity|search/i.test(m2);return applySnapshot({model:raw,family,supportsTools,supportsThinking:!!supportsThinking,supportsEffort:!!supportsEffort,supportsVision:!!supportsVision,supportsCache:family==="claude"||family==="grok"||family==="deepseek"||family==="gpt"||family==="qwen",supportsVendorSearch,thinkingWire,effortValues,defaultCodingEffort,maxInputTokens:profile?.maxInputTokens??null,source:profile?"profile":family==="unknown"?"unknown":"family"},snapshot)}var init_modelNativeCapability=__esm({"src/utils/model/modelNativeCapability.ts"(){init_modelSupportOverrides();init_providerModelProfiles();init_providerReasoningEffort();__name(snapshotHintFromProviderCache,"snapshotHintFromProviderCache");__name(norm,"norm");__name(lower,"lower");__name(detectNativeModelFamily,"detectNativeModelFamily");__name(thinkingWireFrom,"thinkingWireFrom");__name(familyThinkingDefault,"familyThinkingDefault");__name(familyVisionDefault,"familyVisionDefault");__name(emptyUnknown,"emptyUnknown");__name(applySnapshot,"applySnapshot");__name(resolveModelNativeCapability,"resolveModelNativeCapability")}});function isUltrathinkEnabled(){return!1}var init_thinking=__esm({"src/utils/thinking.ts"(){init_growthbook();init_model();init_modelSupportOverrides();init_providers();init_settings2();init_providerModelProfiles();init_antModels();init_modelNativeCapability();__name(isUltrathinkEnabled,"isUltrathinkEnabled")}});function normalizeLiteralCandidate(rawLiteral){return rawLiteral.trim().replace(/^(?:the\s+word|word)\s+/i,"").replace(/[\s。.!!??]+$/u,"").trim()}function stripMatchingQuotes(value){let quotePairs=[['"','"'],["'","'"],["`","`"],["\u201C","\u201D"],["\u2018","\u2019"]];for(let[open2,close]of quotePairs)if(value.startsWith(open2)&&value.endsWith(close)&&value.length>=2)return value.slice(open2.length,value.length-close.length).trim();return null}function isSafeBareLiteral(value){return/^[A-Za-z0-9][A-Za-z0-9_.:\/@#=+\-]*$/.test(value)}function isLiteralTextOnlyPrompt(rawUserText){let text=String(rawUserText??"").trim();if(!text||text.length>120)return!1;for(let pattern of TEXT_ONLY_LITERAL_DIRECTIVE_PATTERNS){let match=pattern.exec(text);if(!match?.[1])continue;let literal2=normalizeLiteralCandidate(match[1]);if(!literal2||literal2.includes(`
190
190
  `))continue;let quoted=stripMatchingQuotes(literal2);if(quoted!==null)return quoted.length>0&&quoted.length<=64&&!quoted.includes(`
191
191
  `);if(literal2.length<=64&&isSafeBareLiteral(literal2))return!0}return!1}function isOperationalHeavyPrompt(rawUserText){let text=String(rawUserText??"").trim();return text?OPERATIONAL_HEAVY_PATTERNS.some(pattern=>pattern.test(text)):!1}function isExecutionContinuationPrompt(rawUserText){let text=String(rawUserText??"").trim();return text?EXECUTION_CONTINUATION_PATTERNS.some(pattern=>pattern.test(text)):!1}function isAmbitiousExecutionPrompt(rawUserText){let text=String(rawUserText??"").trim();return text?AMBITIOUS_EXECUTION_PATTERNS.some(pattern=>pattern.test(text)):!1}function isDevelopmentExecutionPrompt(rawUserText){let text=String(rawUserText??"").trim();return text?isExecutionContinuationPrompt(text)||isAmbitiousExecutionPrompt(text)||DEVELOPMENT_EXECUTION_PATTERNS.some(pattern=>pattern.test(text)):!1}function isExternalResearchPrompt(rawUserText){let text=String(rawUserText??"").trim();return text?EXTERNAL_RESEARCH_PATTERNS.some(pattern=>pattern.test(text)):!1}function classifyGpt5EffortIntent(rawUserText){let text=String(rawUserText??"").trim();return text?isOperationalHeavyPrompt(text)||isAmbitiousExecutionPrompt(text)?isOperationalHeavyPrompt(text)?"heavy":"development":isExecutionContinuationPrompt(text)?"development":isLiteralTextOnlyPrompt(text)||text.length<=60&&TRIVIAL_PATTERNS.some(pattern=>pattern.test(text))||text.length<=80&&STATUS_CHECK_PATTERNS.some(pattern=>pattern.test(text))?"trivial":HEAVY_PATTERNS.some(pattern=>pattern.test(text))?"heavy":isDevelopmentExecutionPrompt(text)?"development":"standard":"standard"}function getGpt5EffortRecommendation(rawUserText){let intent=classifyGpt5EffortIntent(rawUserText);switch(intent){case"trivial":return{intent,recommendedEffort:"low",reason:"short acknowledgement / literal prompt \u2014 low effort sufficient"};case"development":return{intent,recommendedEffort:"high",reason:"development execution prompt \u2014 high effort recommended with bounded local tool use"};case"heavy":return{intent,recommendedEffort:"high",reason:isOperationalHeavyPrompt(rawUserText)?OPERATIONAL_HEAVY_REASON:"detected refactor / debug / deep-analysis keywords \u2014 high effort recommended"};default:return{intent,recommendedEffort:"medium",reason:"standard information turn \u2014 medium effort balances reasoning depth and latency"}}}function isGpt5xFamilyModel(model){let normalized=String(model??"").trim().toLowerCase();return!normalized||normalized.includes("codex")?!1:/^gpt-5(?:[.-]|$)/.test(normalized)}function isGpt5EffortAutotuneEnabled(env5=process.env){let raw=String(env5.CLAVUE_GPT5_EFFORT_AUTOTUNE??env5.MYCLAUDE_GPT5_EFFORT_AUTOTUNE??"").trim().toLowerCase();return!(raw==="0"||raw==="false"||raw==="off"||raw==="disabled")}var OPERATIONAL_HEAVY_REASON,STATUS_CHECK_PATTERNS,EXECUTION_CONTINUATION_PATTERNS,AMBITIOUS_EXECUTION_PATTERNS,DEVELOPMENT_EXECUTION_PATTERNS,EXTERNAL_RESEARCH_PATTERNS,TRIVIAL_PATTERNS,OPERATIONAL_HEAVY_PATTERNS,HEAVY_PATTERNS,TEXT_ONLY_LITERAL_DIRECTIVE_PATTERNS,init_gpt5EffortIntent=__esm({"src/utils/model/gpt5EffortIntent.ts"(){OPERATIONAL_HEAVY_REASON="detected release / deploy / publish / signing operations \u2014 high effort recommended",STATUS_CHECK_PATTERNS=[/^(检查|查看|看看|确认|了解下?)(下|一下)?(当前|现在)?(的)?(生产|部署|运行|发布|线上|服务)?(情况|状态|进度|环境)/u,/^(当前|现在|线上)(生产|部署|运行|服务)?(情况|状态|怎么样)/u,/^(什么情况|现在什么情况)/u],EXECUTION_CONTINUATION_PATTERNS=[/^(continue|go on|next|keep going|proceed|carry on)(?:\s+(?:working|developing|coding|with\s+the\s+task|the\s+task))?[\s.!?]*$/i,/^(继续|下一步|继续开发|继续做|接着做|持续开发|把.*做完|做完|完成它)[\s。!?]*$/u],AMBITIOUS_EXECUTION_PATTERNS=[/(火力全开|全力推进|持续开发到.*结束|做到.*满分|全面优化|全面提升|拉满|满分)/u,/\b(full\s+speed|go\s+all\s+in|push\s+hard|finish\s+it|make\s+it\s+perfect)\b/i],DEVELOPMENT_EXECUTION_PATTERNS=[/\b(add|build|change|complete|continue|develop|edit|finish|fix|implement|integrate|make|modify|optimize|patch|refactor|repair|ship|update|wire)\b/i,/\b(write|add)\s+(?:the\s+)?(?:test|tests|unit\s+tests|coverage)\b/i,/\b(debug(?:ging)?|diagnose|investigat(?:e|ion)|triage)\s+(?:the|this|my|a|an|why|how|it|code|bug|issue|error|failure|failing)\b/i,/\b(?:please\s+debug|help\s+me\s+debug|can\s+you\s+debug)\b/i,/\b(root[- ]cause|root cause)\b/i,/\b(failing|failure|error)\s+(?:test|tests|build|typecheck|ci|in|on|with|when|while)\b/i,/\btrace\s+(?:the|this|my|a|an|down|through|call|stack|error|bug)\b/i,/(实现|修复|开发|继续开发|继续编码|继续实现|继续修|继续修复|接着做|接着开发|接着改|新增|添加|增加|修改|改一下|改掉|调整|补充|补上|接入|对接|完成|做完|解决|定位|排查|诊断|根因|重构|优化|追溯|梳理|报错|出问题|卡住|阻塞|效率低|低效|调试一下|调试这个|联调一下|进行联调|开始联调|启动联调|联调失败|联调控制|联调链路|联合调试|dev:joint)/u,/(実装|修正|開発|直して|バグ|調査|原因|リファクタ|最適化|続けて実装|続けて開発)/u],EXTERNAL_RESEARCH_PATTERNS=[/\b(web|internet|online|browse|browsing|search\s+the\s+web|look\s+up|latest|current\s+docs?|official\s+docs?|documentation|stackoverflow|github\s+issue)\b/i,/(联网|网上|网页|浏览器|搜索网络|查网络|最新文档|官方文档|官网|资料|Stack\s*Overflow|GitHub\s*Issue)/iu],TRIVIAL_PATTERNS=[/^(ok|okay|yes|no|sure|thanks|thank you|cool|got it|understood|nice)[\s.!?]*$/i,/^(好的|嗯|可以|行|不行|对|不对|是|不是|有|没有)[\s。!?]*$/u,/^(what is|what's|whats)\s+(\w+\s){1,3}\?$/i,/^\w+\??$/u],OPERATIONAL_HEAVY_PATTERNS=[/\b(release|deploy|deployment|publish|publishing|codesign|code[- ]?sign(?:ing)?|notarize|notarization|appcast|vps)\b/i,/\bsign(?:ing)?\s+(?:the\s+)?(?:mac\s+)?(?:app|binary|artifact|package|installer|dmg|build|release)\b/i,/(发布|上线|部署|发版|发\s*(?:npm\s*)?包|推送到生产|生产发布|生产部署|签名|公证|应用公证|代码签名)/u],HEAVY_PATTERNS=[/\b(redesign|architect)\b/i,/\b(why\s+(does|is|are|was|did))\b/i,/\b(explain in detail|deep dive|comprehensive|thorough|systematically)\b/i,/\b(plan|design|outline|propose|spec out|specification)\b/i,/\bacross (multiple|all|several)\s+(files|modules|components|services)\b/i,/(架构设计|深度分析|系统性重构|系统性设计|全面优化|全面升级|全面重构|彻底重构|彻底排查|彻底改造|彻底诊断|彻底分析|根因)/u,/(アーキテクチャ|再設計|徹底的|包括的|深掘り|システム設計)/u],TEXT_ONLY_LITERAL_DIRECTIVE_PATTERNS=[/^(?:请)?(?:只|仅|只要|直接)?(?:输出|回复|回答|返回|打印|说)(?:一下|下)?[\s::]+(.+)$/u,/^(?:please\s+)?(?:just|only|simply)\s+(?:output|print|reply|respond|return|say)(?:\s+only)?(?:\s+with)?[\s::]+(.+)$/i,/^(?:please\s+)?(?:output|print|reply|respond|return|say)\s+only(?:\s+with)?[\s::]+(.+)$/i,/^(?:please\s+)?(?:reply|respond)\s+only\s+(?:with\s+)?(.+)$/i];__name(normalizeLiteralCandidate,"normalizeLiteralCandidate");__name(stripMatchingQuotes,"stripMatchingQuotes");__name(isSafeBareLiteral,"isSafeBareLiteral");__name(isLiteralTextOnlyPrompt,"isLiteralTextOnlyPrompt");__name(isOperationalHeavyPrompt,"isOperationalHeavyPrompt");__name(isExecutionContinuationPrompt,"isExecutionContinuationPrompt");__name(isAmbitiousExecutionPrompt,"isAmbitiousExecutionPrompt");__name(isDevelopmentExecutionPrompt,"isDevelopmentExecutionPrompt");__name(isExternalResearchPrompt,"isExternalResearchPrompt");__name(classifyGpt5EffortIntent,"classifyGpt5EffortIntent");__name(getGpt5EffortRecommendation,"getGpt5EffortRecommendation");__name(isGpt5xFamilyModel,"isGpt5xFamilyModel");__name(isGpt5EffortAutotuneEnabled,"isGpt5EffortAutotuneEnabled")}});function textLen(raw){return String(raw??"").trim().length}function isSimpleSingleFileMutationPrompt(rawUserText){let text=String(rawUserText??"").trim();if(!text||text.length>220||COMPLEX_MULTI_FILE.some(r2=>r2.test(text))||/\b(multiple|several|many|across|entire|whole|all)\s+(files?|modules?|paths?)\b/i.test(text)||/(多个|多文件|跨文件|全仓库|整个项目)/u.test(text)||new RegExp(String.raw`\band\s+[\w./-]+\.(?:${SIMPLE_FILE_EXT})\b`,"i").test(text)||new RegExp(String.raw`\b[\w./-]+\.(?:${SIMPLE_FILE_EXT})\b\s+and\s+[\w./-]+\.(?:${SIMPLE_FILE_EXT})\b`,"i").test(text)||/\b(fix|debug|repair|refactor|implement|patch|migrate|optimize|test|tests|spec|build|deploy|release)\b/i.test(text)||/(修复|调试|重构|实现|测试|迁移|优化|部署|发版)/u.test(text))return!1;let files=[...text.matchAll(SIMPLE_FILE_RE)].map(m2=>m2[1].toLowerCase());return!(new Set(files).size!==1||!/\b(create|write|touch|put|save|output|generate|dump|emit)\b/i.test(text)&&!/(创建|写入|写到|写个|写一个|生成|保存到|输出到)/u.test(text))}function isSimpleSingleFileFixRunPrompt(rawUserText){let text=String(rawUserText??"").trim();if(!text||text.length>400||COMPLEX_MULTI_FILE.some(r2=>r2.test(text))||/\b(multiple|several|many|across|entire|whole)\s+(files?|modules?)\b/i.test(text)||/(多个|多文件|跨文件|全仓库)/u.test(text))return!1;let files=[...text.matchAll(SIMPLE_FILE_RE)].map(m2=>m2[1].toLowerCase());return!(new Set(files).size!==1||!(/\b(fix|repair|patch|debug|correct|change|update|edit|modify)\b/i.test(text)||/(修复|修改|改一下|改掉|修一下)/u.test(text))||/\b(architecture|redesign|from\s+scratch|refactor\s+the\s+whole)\b/i.test(text))}function classifyTaskDifficulty(rawUserText){let text=String(rawUserText??"").trim();if(!text)return"standard";if(isOperationalHeavyPrompt(text))return"critical";if(isAmbitiousExecutionPrompt(text)||HEAVY_REASONING.some(r2=>r2.test(text))||COMPLEX_MULTI_FILE.some(r2=>r2.test(text)))return"complex";if(text.length<=48&&/^(ok|okay|yes|sure|thanks|thank you|cool|got it|好的|嗯|可以|行|谢谢|多谢)([\s,,、]+(ok|okay|yes|sure|thanks|thank you|cool|好的|嗯|可以|谢谢|了))*[\s.!?。!?]*$/iu.test(text))return"trivial";if(isSimpleSingleFileMutationPrompt(text)||isSimpleSingleFileFixRunPrompt(text))return"light";let intent=classifyGpt5EffortIntent(text);return intent==="heavy"?"complex":intent==="development"||isDevelopmentExecutionPrompt(text)?"development":intent==="trivial"||isLiteralTextOnlyPrompt(text)?"trivial":text.length<=80&&intent==="standard"&&(/^(检查|查看|status|what('?s| is)\s+the|how\s+is)/iu.test(text)||/^(当前|现在).*(状态|情况)/u.test(text))?"light":isExternalResearchPrompt(text)&&!isDevelopmentExecutionPrompt(text)?textLen(text)>200?"standard":"light":"standard"}function lightRoleTable(planner,reviewer,judge,fallback){return{summarize:"low",extract:"low",classify:"low",searchMemory:"low",quickSummary:"low",background:"low",verifier:"low",planner,reviewer,judge,fallback}}function resolveTaskDifficultyPlan(rawUserText){let difficulty=classifyTaskDifficulty(rawUserText),gpt=getGpt5EffortRecommendation(rawUserText);switch(difficulty){case"trivial":return{difficulty,intent:gpt.intent,mainLoopEffort:"low",roleEffort:lightRoleTable("low","low","low","low"),orchestrationBudget:"low",allowRoleChain:!1,preferScoutExec:!1,reason:"trivial turn \u2014 low effort, no multi-role chain"};case"light":return{difficulty,intent:gpt.intent,mainLoopEffort:"low",roleEffort:lightRoleTable("low","low","low","medium"),orchestrationBudget:"low",allowRoleChain:!1,preferScoutExec:!1,reason:"light status/research \u2014 low effort, single path"};case"standard":return{difficulty,intent:gpt.intent,mainLoopEffort:"medium",roleEffort:lightRoleTable("medium","medium","medium","medium"),orchestrationBudget:"normal",allowRoleChain:!1,preferScoutExec:!0,reason:"standard info turn \u2014 medium effort; skip heavy composition"};case"development":return{difficulty,intent:gpt.intent,mainLoopEffort:"medium",roleEffort:lightRoleTable("medium","medium","medium","medium"),orchestrationBudget:"normal",allowRoleChain:!0,preferScoutExec:!0,reason:"development execution \u2014 medium main effort (default); light helpers; scout_exec preferred \xB7 pin /effort high when stuck"};case"complex":return{difficulty,intent:gpt.intent,mainLoopEffort:"high",roleEffort:lightRoleTable("high","high","high","high"),orchestrationBudget:"high",allowRoleChain:!0,preferScoutExec:!1,reason:"complex multi-area work \u2014 high effort + multi-role composition"};case"critical":return{difficulty,intent:gpt.intent,mainLoopEffort:"high",roleEffort:lightRoleTable("high","high","high","high"),orchestrationBudget:"high",allowRoleChain:!0,preferScoutExec:!1,reason:"release/deploy critical \u2014 high effort + full quality gates"};default:return{difficulty:"standard",intent:"standard",mainLoopEffort:"medium",roleEffort:lightRoleTable("medium","medium","medium","medium"),orchestrationBudget:"normal",allowRoleChain:!1,preferScoutExec:!0,reason:"fallback standard"}}}function isEffortAutotuneEnabled(env5=process.env){let raw=String(env5.CLAVUE_EFFORT_AUTOTUNE??env5.CLAVUE_GPT5_EFFORT_AUTOTUNE??env5.MYCLAUDE_GPT5_EFFORT_AUTOTUNE??"").trim().toLowerCase();return!(raw==="0"||raw==="false"||raw==="off"||raw==="disabled")}var COMPLEX_MULTI_FILE,HEAVY_REASONING,SIMPLE_FILE_EXT,SIMPLE_FILE_RE,init_taskDifficulty=__esm({"src/utils/model/taskDifficulty.ts"(){init_citedPathPattern();init_gpt5EffortIntent();COMPLEX_MULTI_FILE=[/\b(across|multiple|several|many)\s+(files?|modules?|packages?|services?|components?)\b/i,/\b(entire|whole)\s+(codebase|project|repo|repository)\b/i,/\b(migration|migrate|upgrade)\s+(the\s+)?(schema|database|api|stack)\b/i,/(跨|多个|多模块|全仓库|全项目|大范围|系统性重构|架构升级)/u],HEAVY_REASONING=[/\b(architecture|redesign|from\s+scratch|greenfield|security\s+audit|threat\s+model)\b/i,/(架构设计|从零|安全审计|威胁建模|深度重构)/u];__name(textLen,"textLen");SIMPLE_FILE_EXT="txt|md|json|py|ts|tsx|js|jsx|css|html|yml|yaml|toml|sh|csv|rs|go|java|kt|rb|php|swift|c|cc|cpp|h|hpp|sql|xml|ini|env|log",SIMPLE_FILE_RE=citedPathRegExp(String.raw`([\w./-]+\.(?:${SIMPLE_FILE_EXT}))`,"gi",{allowPathCharLead:!0});__name(isSimpleSingleFileMutationPrompt,"isSimpleSingleFileMutationPrompt");__name(isSimpleSingleFileFixRunPrompt,"isSimpleSingleFileFixRunPrompt");__name(classifyTaskDifficulty,"classifyTaskDifficulty");__name(lightRoleTable,"lightRoleTable");__name(resolveTaskDifficultyPlan,"resolveTaskDifficultyPlan");__name(isEffortAutotuneEnabled,"isEffortAutotuneEnabled")}});function modelFamilyKey(model){let m2=String(model||"").toLowerCase();return m2?/claude|anthropic|sonnet|opus|haiku/.test(m2)?"claude":/gpt|o1|o3|o4|codex|openai/.test(m2)?"openai":/gemini|google/.test(m2)?"google":/deepseek/.test(m2)?"deepseek":/grok|xai/.test(m2)?"xai":/\bglm\b|chatglm|zhipu/.test(m2)||m2.startsWith("glm-")?"glm":/qwen|qwq|tongyi|dashscope/.test(m2)?"qwen":/kimi|moonshot/.test(m2)?"kimi":/minimax|abab|m2\./.test(m2)||m2.includes("minimax")?"minimax":/yi-|01-ai|yi1/.test(m2)?"yi":/mistral|mixtral|codestral/.test(m2)?"mistral":/llama|meta-llama|codellama/.test(m2)?"llama":/clavue/.test(m2)?"clavue":/ollama|lmstudio|vllm|local-/.test(m2)?"local":m2.split(/[-/_.]/)[0]||"unknown":"unknown"}var ROUTE_SLOT_ALIASES,ALL_ROUTE_SLOTS,ALL_MODEL_ROLES,init_modelRolesCore=__esm({"src/utils/model/modelRolesCore.ts"(){ROUTE_SLOT_ALIASES={primary:["primary"],subagent:["subagent","sonnet"],smallFast:["smallfast","haiku"],plan:["plan","opus"],explore:["explore","sonnet"],general:["general","sonnet"],team:["team","sonnet"],guide:["guide","opus"],review:["review","sonnet"]},ALL_ROUTE_SLOTS=Object.keys(ROUTE_SLOT_ALIASES);__name(modelFamilyKey,"modelFamilyKey");ALL_MODEL_ROLES=["mainLoop","summarize","extract","classify","searchMemory","quickSummary","background","planner","reviewer","judge","verifier","fallback"]}});function inferRoleFromQuerySource(querySource){let q=String(querySource??"").trim().toLowerCase();return q?q==="repl_main_thread"||q.startsWith("repl_main_thread:")?"mainLoop":q==="compact"||q.includes("compact")||q.includes("summar")?"summarize":q.includes("extract")||q.includes("session_memory")||q.includes("memory")?q.includes("search")||q.includes("relevant")?"searchMemory":q.includes("extract")?"extract":"background":q.includes("classif")||q.includes("yolo")?"classify":q.includes("tool_use_summary")||q.includes("quick")?"quickSummary":q.includes("plan")?"planner":q.includes("review")?"reviewer":q.includes("judge")||q.includes("ensemble_judge")?"judge":q.includes("verif")?"verifier":q==="away_summary"||q==="auto_dream"||q==="magic_docs"||q.includes("background")||q.includes("hook")||q.includes("title")?"background":q.startsWith("agent:")||q==="sdk"||q==="hook_agent"?"fallback":null:null}function resolveRoleEffortPreference(input){let role=input.role??null,pin=input.roleOverride;if(pin==="auto")return null;if(pin==="low"||pin==="medium"||pin==="high"||pin==="xhigh"||pin==="max"||pin==="ultra")return pin;if(!role||role==="mainLoop")return;let dyn=input.difficultyRoleEffort;if(dyn==="low"||dyn==="medium"||dyn==="high"||dyn==="xhigh"||dyn==="max"||dyn==="ultra")return dyn;let def=DEFAULT_ROLE_EFFORT[role];if(def==="auto")return null;if(def)return def}var DEFAULT_ROLE_EFFORT,EFFICIENCY_ISOLATED_ROLES,init_roleEffortPolicy=__esm({"src/utils/model/roleEffortPolicy.ts"(){init_modelRolesCore();DEFAULT_ROLE_EFFORT={mainLoop:void 0,summarize:"low",extract:"low",classify:"low",searchMemory:"low",quickSummary:"low",background:"low",verifier:"low",planner:"medium",reviewer:"medium",judge:"medium",fallback:"medium"},EFFICIENCY_ISOLATED_ROLES=new Set(ALL_MODEL_ROLES.filter(r2=>r2!=="mainLoop"));__name(inferRoleFromQuerySource,"inferRoleFromQuerySource");__name(resolveRoleEffortPreference,"resolveRoleEffortPreference")}});var modelEffortAuto_exports={};__export(modelEffortAuto_exports,{applyMainLoopModelEffortFloor:()=>applyMainLoopModelEffortFloor,classifyModelEffortClass:()=>classifyModelEffortClass,effortLevelAtLeast:()=>effortLevelAtLeast,mainLoopEffortFloorForModel:()=>mainLoopEffortFloorForModel,suggestedEffortForModelRole:()=>suggestedEffortForModelRole});function classifyModelEffortClass(model){let m2=String(model||"").trim().toLowerCase();return m2?/review|codex-auto-review|\brev\b|clavue-2\.1-rev/.test(m2)?"review":/minimax/.test(m2)?/(flash|lite|air|turbo|fast)/.test(m2)?"flash":"workhorse":/\bluna\b|flash|spark|haiku|\bmini\b|(?:^|[-_/])mini(?:$|[-_/])|nano|lite|\bfast\b|dspark|codex-spark|2\.1-fast|composer|grok-2\b|deepseek-chat|gemini.*flash/.test(m2)?"flash":/\bsol\b|opus|xhigh|ultra|reasoner|thinking|\bo3\b|\bo4\b|multi-agent|gpt-5\.6-(max|ultra|pro)|deepseek-r1|deepseek.*reasoner|claude-opus|grok-build/.test(m2)?"frontier":/grok-4\.5|grok-4\.3|gpt-5\.5|gpt-5\.4|claude-sonnet|clavue-2\.1(?!-fast|-pro|-rev)|terra|qwen3|glm-4|kimi|moonshot/.test(m2)?"workhorse":/\bpro\b|\bmax\b/.test(m2)?"frontier":"workhorse":"workhorse"}function mainLoopEffortFloorForModel(model){switch(classifyModelEffortClass(model)){default:return"medium"}}function suggestedEffortForModelRole(model,role){let cls=classifyModelEffortClass(model);return role==="light"?"low":role==="mainLoop"?mainLoopEffortFloorForModel(model):role==="planner"||role==="judge"||role==="reviewer"||role==="fallback"?"medium":mainLoopEffortFloorForModel(model)}function effortLevelAtLeast(effort,floor2){let a2=EFFORT_ORDER.indexOf(effort),b=EFFORT_ORDER.indexOf(floor2);return a2<0?floor2:b<0||a2>=b?effort:floor2}function applyMainLoopModelEffortFloor(model,effort,env5=process.env){let flag=String(env5.CLAVUE_MODEL_EFFORT_FLOOR??"1").trim().toLowerCase();if(flag==="0"||flag==="false"||flag==="off"||flag==="no")return effort;let floor2=mainLoopEffortFloorForModel(model);return effort===void 0?floor2:effort}var EFFORT_ORDER,init_modelEffortAuto=__esm({"src/utils/model/modelEffortAuto.ts"(){EFFORT_ORDER=["low","medium","high","xhigh","max","ultra"];__name(classifyModelEffortClass,"classifyModelEffortClass");__name(mainLoopEffortFloorForModel,"mainLoopEffortFloorForModel");__name(suggestedEffortForModelRole,"suggestedEffortForModelRole");__name(effortLevelAtLeast,"effortLevelAtLeast");__name(applyMainLoopModelEffortFloor,"applyMainLoopModelEffortFloor")}});var modelNativeCapabilityLive_exports={};__export(modelNativeCapabilityLive_exports,{resolveLiveModelNativeCapability:()=>resolveLiveModelNativeCapability});function resolveLiveModelNativeCapability(model){let raw=String(model??"").trim(),hint=null;try{let profiles=(init_providerProfiles(),__toCommonJS(providerProfiles_exports)),profile=profiles.getResolvedCurrentProviderProfile?.();if(profile&&raw&&profiles.getCachedProviderCapabilitySnapshot){let snap=profiles.getCachedProviderCapabilitySnapshot(profile,raw,{allowStale:!0});hint=snapshotHintFromProviderCache(snap)}}catch{hint=null}return resolveModelNativeCapability(raw,hint)}var init_modelNativeCapabilityLive=__esm({"src/utils/model/modelNativeCapabilityLive.ts"(){init_modelNativeCapability();__name(resolveLiveModelNativeCapability,"resolveLiveModelNativeCapability")}});var slotThinkingPolicy_exports={};__export(slotThinkingPolicy_exports,{formatSlotThinkingDoctorLines:()=>formatSlotThinkingDoctorLines,isSlotThinkingPolicyEnabled:()=>isSlotThinkingPolicyEnabled,mapModelRoleToSlot:()=>mapModelRoleToSlot,resolveAllSlotThinking:()=>resolveAllSlotThinking,resolveEffortFromSlotThinking:()=>resolveEffortFromSlotThinking,resolveSlotThinking:()=>resolveSlotThinking,resolveThinkingFromSlotThinking:()=>resolveThinkingFromSlotThinking,slotEffortToApiLevel:()=>slotEffortToApiLevel});function tierOf(t2){return t2==="T1"||t2==="T2"||t2==="T0"?t2:"T1"}function resolveSlotThinking(input){let slot=input.slot,tier=tierOf(input.pathTier),supports=input.modelSupportsThinking!==!1,quality=!!input.qualityMode||!!input.userWantsReview;if(slot==="hand"){let effortNative=input.thinkingWire==="reasoning_effort"||input.thinkingWire==="responses",effort2="low";effortNative?effort2=tier==="T0"?"low":tier==="T2"||quality?"high":"medium":effort2=tier==="T2"?"low":"off";let apiEffort=effort2==="off"?"low":effort2;return{slot,effort:apiEffort,thinkingConfig:{type:"disabled"},skipSlot:!1,reason:effortNative?`hand ${tier} \u2014 effort ${apiEffort} (native ${input.thinkingWire})`:tier==="T0"?"hand T0 \u2014 low effort, thinking off (tool path)":"hand \u2014 low effort, thinking off (tools not prose)",chrome:`hand:${apiEffort}`}}if(slot==="plan"){if(tier==="T0"&&!input.intakeNeedsDigest)return{slot,effort:"off",thinkingConfig:{type:"disabled"},skipSlot:!0,reason:"plan T0 \u2014 skip slot (single-flight hand)",chrome:"plan:skip"};let needDigest=!!input.intakeNeedsDigest,effort2=tier==="T2"||needDigest||quality?"medium":"low";return{slot,effort:effort2,thinkingConfig:supports?effort2==="medium"?{type:"enabled",budgetTokens:4e3}:{type:"adaptive"}:{type:"disabled"},skipSlot:!1,reason:needDigest?"plan \u2014 medium for payload digest":`plan ${tier} \u2014 ${effort2} structure`,chrome:`plan:${effort2}`}}if(tier==="T0"&&!quality&&!input.userWantsReview)return{slot,effort:"off",thinkingConfig:{type:"disabled"},skipSlot:!0,reason:"eye T0 \u2014 zero tax (Path Tier single-flight)",chrome:"eye:skip"};let effort="medium";return tier==="T2"||quality?effort=quality&&tier==="T2"?"max":"high":tier==="T1"&&(effort=quality?"high":"medium"),{slot,effort,thinkingConfig:supports?effort==="max"?{type:"enabled",budgetTokens:16e3}:effort==="high"?{type:"enabled",budgetTokens:1e4}:{type:"adaptive"}:{type:"disabled"},skipSlot:!1,reason:`eye ${tier}${quality?"+quality":""} \u2014 ${effort} independent critique`,chrome:`eye:${effort}`}}function resolveAllSlotThinking(input){let base={pathTier:input.pathTier,qualityMode:input.qualityMode,userWantsReview:input.userWantsReview,intakeNeedsDigest:input.intakeNeedsDigest,modelSupportsThinking:input.modelSupportsThinking,thinkingWire:input.thinkingWire},hand=resolveSlotThinking({...base,slot:"hand"}),plan=resolveSlotThinking({...base,slot:"plan"}),eye=resolveSlotThinking({...base,slot:"eye"}),chrome=`think=${hand.chrome} \xB7 ${plan.chrome} \xB7 ${eye.chrome}`,line=`slot thinking: ${chrome} \xB7 tier=${input.pathTier??"T1"}`;return{hand,plan,eye,chrome,line}}function formatSlotThinkingDoctorLines(input){let zh=!!input.zh,all3=resolveAllSlotThinking({pathTier:input.pathTier,qualityMode:input.qualityMode});return zh?[`\u624B/\u8111/\u773C\u601D\u8003\uFF1A${all3.chrome}`,"\xB7 \u624B=\u5DE5\u5177\u4F4E\u601D \xB7 \u8111=\u7ED3\u6784\u4E2D\u601D \xB7 \u773C=\u72EC\u7ACB\u9AD8\u601D\uFF08T0 \u514D\u773C\u7A0E\uFF09"]:[`hand/plan/eye: ${all3.chrome}`,"\xB7 hand=tools low-think \xB7 plan=structure \xB7 eye=high independent (T0 eye tax=0)"]}function mapModelRoleToSlot(role){let r2=String(role??"").trim().toLowerCase();return r2?r2==="mainloop"||r2==="main"||r2==="primary"||r2==="fallback"||r2==="hand"?"hand":r2==="planner"||r2==="plan"||r2==="summarize"||r2==="extract"||r2==="classify"||r2==="quicksummary"||r2==="searchmemory"||r2==="background"?"plan":r2==="reviewer"||r2==="review"||r2==="judge"||r2==="adversary"||r2==="eye"?"eye":r2==="verifier"?"plan":null:null}function slotEffortToApiLevel(effort){if(effort!=="off")return effort==="low"?"low":effort==="medium"?"medium":effort==="high"?"high":effort==="max"?"max":"medium"}function resolveEffortFromSlotThinking(input){let slot=mapModelRoleToSlot(input.role);if(!slot)return;let d=resolveSlotThinking({slot,pathTier:input.pathTier,qualityMode:input.qualityMode,userWantsReview:input.userWantsReview,intakeNeedsDigest:input.intakeNeedsDigest,thinkingWire:input.thinkingWire});if(!d.skipSlot)return slotEffortToApiLevel(d.effort)}function resolveThinkingFromSlotThinking(input){let slot=mapModelRoleToSlot(input.role);if(!slot)return{type:"adaptive"};let d=resolveSlotThinking({slot,pathTier:input.pathTier,qualityMode:input.qualityMode,userWantsReview:input.userWantsReview,intakeNeedsDigest:input.intakeNeedsDigest,modelSupportsThinking:input.modelSupportsThinking});return d.skipSlot?{type:"disabled"}:d.thinkingConfig}function isSlotThinkingPolicyEnabled(env5=process.env){let v=String(env5.CLAVUE_SLOT_THINKING_POLICY??"1").trim().toLowerCase();return!["0","false","off","no"].includes(v)}var init_slotThinkingPolicy=__esm({"src/runtime/slotThinkingPolicy.ts"(){__name(tierOf,"tierOf");__name(resolveSlotThinking,"resolveSlotThinking");__name(resolveAllSlotThinking,"resolveAllSlotThinking");__name(formatSlotThinkingDoctorLines,"formatSlotThinkingDoctorLines");__name(mapModelRoleToSlot,"mapModelRoleToSlot");__name(slotEffortToApiLevel,"slotEffortToApiLevel");__name(resolveEffortFromSlotThinking,"resolveEffortFromSlotThinking");__name(resolveThinkingFromSlotThinking,"resolveThinkingFromSlotThinking");__name(isSlotThinkingPolicyEnabled,"isSlotThinkingPolicyEnabled")}});var pathTier_exports={};__export(pathTier_exports,{applyPathTierSoftLaw:()=>applyPathTierSoftLaw,classifyPathTier:()=>classifyPathTier,classifyPathTierStructural:()=>classifyPathTierStructural,countPlanSerialHops:()=>countPlanSerialHops,extractTaskFacts:()=>extractTaskFacts,formatPathTierExplain:()=>formatPathTierExplain,hasMutationImplementLanguage:()=>hasMutationImplementLanguage,inferIntakePathTierFloorFromText:()=>inferIntakePathTierFloorFromText,isRunOrReconOnlyTask:()=>isRunOrReconOnlyTask,raisePathTierToFloor:()=>raisePathTierToFloor,stripMetaForPathTier:()=>stripMetaForPathTier,stripRunVerifyNoise:()=>stripRunVerifyNoise,toHonestyReviewFields:()=>toHonestyReviewFields});function toHonestyReviewFields(decision){return decision?{pathTier:decision.tier,allowBlockingReview:decision.allowBlockingReview,hopBudget:decision.hopBudget,pathTierReason:decision.reason}:{pathTier:null,allowBlockingReview:void 0,hopBudget:null,pathTierReason:null}}function normalizeCitedPathSeps(t2){return t2.replace(/\\/g,"/")}function countPaths(t2){let n2=normalizeCitedPathSeps(t2);return DIR_QUALIFIED_PATH_RE.lastIndex=0,(n2.match(DIR_QUALIFIED_PATH_RE)??[]).length}function extractPaths(t2){let n2=normalizeCitedPathSeps(t2);return DIR_QUALIFIED_PATH_RE.lastIndex=0,[...n2.matchAll(DIR_QUALIFIED_PATH_RE)].map(m2=>m2[1])}function shareCommonDirectory(paths2){if(paths2.length<2)return!1;let dirs=paths2.map(p=>{let idx=p.lastIndexOf("/");return idx>=0?p.substring(0,idx):""});return dirs.every(d=>d===dirs[0])}function countPathRefs(t2){let withDir=countPaths(t2);BARE_BASENAME_RE.lastIndex=0;let bareOnly=(t2.match(BARE_BASENAME_RE)??[]).filter(m2=>!String(m2).includes("/")).length;return Math.max(withDir,bareOnly>0?Math.max(withDir,bareOnly):withDir)}function extractTaskFacts(userText){let t2=stripMetaForPathTier(userText),pathCountDir=countPaths(t2),pathCountBare=countPathRefs(t2),hasHeavyMark=HEAVY.test(t2),hasLightMark=LIGHT_MARK.test(t2),hasImplement=hasMutationImplementLanguage(t2)||/\b(implement|feature|refactor|fix|edit|write|create|patch)\b/i.test(t2)||/(实现|重构|功能|修复|改代码)/u.test(t2),hasVerifyDuty=/\b(until\s+green|make\s+it\s+green|tests?\s+pass|all\s+tests?\s+pass|ensure\s+(it\s+)?works|ci\s+(pass|green))\b/i.test(t2)||/(测通|确保通过|保证通过|跑通|测绿|必须先运行|改完再跑|最终验证|跑上述)/u.test(t2),hasCheckCommand=/\b(?:npm|pnpm|yarn|bun)\s+test\b/i.test(t2)||/\bnode\s+[\w./-]+\b/i.test(t2)||/\bpython3?\s+[\w./\\-]+\b/i.test(t2)||/\b(pytest|cargo\s+test|go\s+test)\b/i.test(t2)||/用\s*Bash\s*(?:运行|执行)/u.test(t2),isPureQaShape=t2.length>0&&t2.length<400&&(/^(what|why|how|explain|who|when|which)\b/i.test(t2)||/^(是什么|什么是|为什么|怎么|怎样|解释|你好|hello|hi)\b/iu.test(t2)||/^(你好|您好|hello|hi|hey|嗨)[\s!!.。??]*$/iu.test(t2))&&!hasImplement,isReviewShape=/\b(security\s+risks?|before\s+we\s+merge|code\s+review|review\s+this\s+diff|review\s+the\s+diff)\b/i.test(t2)||/\breview\b/i.test(t2)&&/\b(diff|pr|pull\s*request|merge|security|vuln)\b/i.test(t2);return{charLen:t2.length,pathCount:pathCountBare,pathCountDir,pathCountBare,hasHeavyMark,hasLightMark,hasImplement,hasVerifyDuty,hasCheckCommand,isPureQaShape,isReviewShape}}function formatPathTierExplain(decision){let f3=decision.facts;return[decision.tier,`hop${decision.hopBudget}`,decision.allowScout?"plan=on":"plan=off",decision.allowBlockingReview?"review=on":"review=off",decision.allowHeavyPanels?"heavy=on":null,f3?f3.pathCountDir!==f3.pathCountBare?`paths=${f3.pathCountBare}\xB7dir=${f3.pathCountDir}`:`paths=${f3.pathCountBare}`:null,f3&&f3.charLen>0?`len=${f3.charLen}`:null,f3?.hasVerifyDuty?"verify_duty":null,f3?.hasCheckCommand?"check_cmd":null,f3?.hasHeavyMark?"heavy_mark":null,decision.reason].filter(Boolean).join(" \xB7 ")}function withFactsAndExplain(decision,userText){let facts=extractTaskFacts(userText),next={...decision,facts};return{...next,explain:formatPathTierExplain(next)}}function applyPathTierSoftLaw(decision,userText){if(decision.tier!=="T0"||decision.confidence>=.75)return decision;try{let pin=String(process.env.CLAVUE_DEV_TEMPO||"").trim().toLowerCase();if(pin==="vibe"||pin==="fast"||pin==="light")return decision}catch{}let t2=String(userText??"").trim();return!t2||/empty_turn|pure_qa|light_everyday|shell_oneshot|bounded_single_file|bounded_two_file|two_file_tight|two_file_implement_primary|verify_only_smoke|run_or_recon/i.test(decision.reason)||!(/\b(implement|feature|refactor|fix|edit|write|实现|重构|功能)\b/i.test(t2)||countPaths(t2)>=1)?decision:{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason:`soft_upgrade_from_T0:${decision.reason}`,confidence:decision.confidence}}function stripMetaForPathTier(userText){let t2=String(userText??"");return t2=t2.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi," "),t2=t2.replace(/<coding-loop-discipline>[\s\S]*?<\/coding-loop-discipline>/gi," "),t2=t2.replace(/\s+/g," ").trim(),t2.length>900&&(t2=t2.slice(-900)),t2}function classifyPathTier(userText,opts){let t2=stripMetaForPathTier(userText),decision=applyPathTierSoftLaw(classifyPathTierCore(t2,opts),t2),floor2=opts?.intakePathTierFloor??inferIntakePathTierFloorFromText(t2);return decision=raisePathTierToFloor(decision,floor2),withFactsAndExplain(decision,t2)}function raisePathTierToFloor(decision,floor2){if(!floor2||floor2==="T0")return decision;let rank={T0:0,T1:1,T2:2};return rank[floor2]<=rank[decision.tier]?decision:floor2==="T2"?{...tierDecision("T2",`intake_floor:${decision.reason}`,decision.confidence)}:{...tierDecision("T1",`intake_floor:${decision.reason}`,decision.confidence)}}function inferIntakePathTierFloorFromText(userText){let t2=String(userText??"");return t2.length>=12e3||t2.length>=2e3||/```[\s\S]{400,}?```/.test(t2)?"T1":"T0"}function classifyPathTierStructural(userText,opts){return classifyPathTier(userText,{executionSpeedMode:opts?.executionSpeedMode,complexImplementation:!1})}function classifyPathTierCore(t2,opts){let qualityMode=(opts?.executionSpeedMode??"grok")==="quality";if(!t2)return tierDecision("T0","empty_turn",.9);if(isVerifyOnlySmokeCore(t2))return tierDecision("T0","verify_only_smoke",.93);if(HEAVY.test(t2)||t2.length>900&&countPaths(t2)===0)return tierDecision("T2","heavy_or_complex_signals",.85);if(countPaths(t2)===2&&(/\b(fix|repair|edit|bug|patch|add=|mul=|a\+b|a\*b)\b/i.test(t2)||/(修|改|修复)/u.test(t2)||/\b(until\s+green|make\s+it\s+green|tests?\s+pass)\b/i.test(t2)||/(测通|确保通过)/u.test(t2))&&!HEAVY.test(t2))return tierDecision("T0","bounded_two_file_fix",.88);let nPaths=countPaths(t2),scaffoldCreateShape=/\b(scaffold|from\s+empty|greenfield|boilerplate)\b/i.test(t2)||/\b(create|write)\b/i.test(t2)&&/\b(package|module|project|app|repo)\b/i.test(t2)||/\bminimal\b/i.test(t2)&&/\b(package|module|project|app|scaffold)\b/i.test(t2)||/\b(implement|create|write)\b/i.test(t2)&&/\b(calc|add|mul|math|hello)\b/i.test(t2)&&!/\b(feature|flags?|middleware|auth|suite)\b/i.test(t2),featureImplementShape=/\b(feature|flags?|middleware|auth|suite|integration)\b/i.test(t2)||/\bunit\s+tests?\b/i.test(t2)||/(功能|特性|中间件|单测|测试套件)/u.test(t2);if(nPaths>=2&&nPaths<=8&&t2.length<=900&&!HEAVY.test(t2)&&scaffoldCreateShape&&!featureImplementShape&&!/\b(refactor|migrate|across modules|production|architecture|thorough)\b/i.test(t2)&&!/(重构|迁移|跨模块|架构|全量)/u.test(t2))return tierDecision("T0","scaffold_create_multifile",.9);if(nPaths>=3)return shareCommonDirectory(extractPaths(t2))?/\b(implement|feature|flags?|middleware|auth|suite|integration|unit\s+tests?|refactor)\b/i.test(t2)||/(实现|功能|特性|中间件|单测|测试套件|重构)/u.test(t2)?{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!0,allowHeavyPanels:!1,reason:"multi_path_same_dir_feature",confidence:.78}:{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason:"multi_path_same_dir",confidence:.8}:tierDecision("T2","multi_path_area",.8);if(t2.length<=48&&/^(你好|您好|hello|hi|hey|嗨|哈喽|thanks|thank you|ok|okay|好的|嗯|继续|继续吧|继续做|go on|continue|cont\.?)[\s!!.。??]*$/iu.test(t2))return tierDecision("T0","pure_qa",.95);if(t2.length<400&&(/^(what|why|how|explain|who|when|which)\b/i.test(t2)||/^(是什么|什么是|为什么|怎么|怎样|解释)/u.test(t2))&&!/\b(fix|implement|edit|write|create)\b/i.test(t2)&&!/(实现|重构|功能)/u.test(t2))return tierDecision("T0","pure_qa",.9);if(LIGHT_MARK.test(t2)&&t2.length<=280&&!HEAVY.test(t2))return tierDecision("T0","light_everyday",.95);let paths2=countPaths(t2),singleFile=paths2<=1&&(/\.\w{1,12}\b/.test(t2)||/\b(calc|hello|bug)\.(js|ts|py|txt|go|rs)\b/i.test(t2)||/\b[\w.-]+\.(js|ts|tsx|jsx|py|go|rs|txt|json|md)\b/i.test(t2)),fixShape=/\b(fix|edit|change|return|so that|returns?|exit\s*0|do not expand|minimal|不要扩展|最小|subtract|addition|patch(?:ing)?)\b/i.test(t2)||/\b(until\s+green|make\s+it\s+green|make\s+it\s+pass|ensure\s+(it\s+)?works|make\s+sure\s+(it\s+)?works|all\s+tests?\s+pass|tests?\s+must\s+pass)\b/i.test(t2)||/(修|改).{0,40}(返回|等于|通过|绿|bug|错误|测通|测过)/u.test(t2)||/(修|改|修复).{0,48}(测通|测绿|确保通过|保证通过|跑通|测一下)/u.test(t2)||/(把|将).{0,60}(改成|改为|修成)/u.test(t2)||/\bsum\s*\(\s*\d+\s*,\s*\d+\s*\)/i.test(t2),shortEnough=t2.length<=520;if(singleFile&&fixShape&&shortEnough&&!HEAVY.test(t2))return qualityMode?{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason:"bounded_fix_quality_mode_t1",confidence:.8}:tierDecision("T0","bounded_single_file_fix",.92);if(t2.length<=200&&/^(pwd|ls|date|whoami|echo|git status|npm test|node )/i.test(t2)&&!/\b(fix|implement|write)\b/i.test(t2))return tierDecision("T0","shell_oneshot",.9);if(paths2===2&&shortEnough&&!HEAVY.test(t2))return qualityMode?{tier:"T1",hopBudget:2,allowBlockingReview:!0,allowScout:!0,allowHeavyPanels:!1,reason:"two_file_implement",confidence:.75}:/\b(keep scope|do not expand|minimal|tight|不要扩展|最小)\b/i.test(t2)||/\b(until\s+green|make\s+it\s+green|tests?\s+pass)\b/i.test(t2)||/(测通|确保通过)/u.test(t2)?{tier:"T0",hopBudget:1,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason:"two_file_tight_primary_only",confidence:.86}:{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!0,allowHeavyPanels:!1,reason:"two_file_implement_t1_plan",confidence:.78};if(/\b(security\s+risks?|before\s+we\s+merge|code\s+review|review\s+this\s+diff|review\s+the\s+diff)\b/i.test(t2)||/\breview\b/i.test(t2)&&/\b(diff|pr|pull\s*request|merge|security|vuln)\b/i.test(t2))return{tier:"T1",hopBudget:2,allowBlockingReview:!0,allowScout:!1,allowHeavyPanels:!1,reason:"review_shaped_t1",confidence:.78};if(/\b(implement|feature|refactor|add tests?|suite)\b/i.test(t2)||/(实现|重构|功能|测试套件)/u.test(t2)){if(t2.length>600||countPaths(t2)>=2)return{tier:"T1",hopBudget:3,allowBlockingReview:!0,allowScout:!0,allowHeavyPanels:!1,reason:"standard_implement",confidence:.7};if(t2.length>=28){let deepEarn=countPaths(t2)>=1||/\b(unit\s+tests?|test\s+suite|middleware|feature\s+flags?|integration)\b/i.test(t2)||/(单测|测试套件|中间件|特性|功能开关)/u.test(t2);return{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:deepEarn,allowHeavyPanels:!1,reason:deepEarn?"standard_implement_short":"standard_implement_short_lean",confidence:.68}}}return opts?.complexImplementation?tierDecision("T2","heavy_or_complex_signals",.85):qualityMode?{tier:"T1",hopBudget:3,allowBlockingReview:!0,allowScout:!0,allowHeavyPanels:!1,reason:"default_quality_t1",confidence:.55}:{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason:"default_t1_lean",confidence:.55}}function stripRunVerifyNoise(raw){return String(raw??"").replace(/\b(?:npm|pnpm|yarn|bun)\s+test(?:\s+--[\w.-]+)*/gi," ").replace(/\bnode\s+[\w./-]*test[\w./-]*\b/gi," ").replace(/\b[\w.-]+\.test\.\w+\b/gi," ").replace(/\btest\.(?:mjs|cjs|js|ts|tsx|jsx)\b/gi," ").replace(/\s+/g," ").trim()}function hasMutationImplementLanguage(raw){if(hasBroadMutationProhibition(raw))return!1;let t2=stripRunVerifyNoise(raw);return!t2||(t2=t2.replace(/\b(do\s+not|don't|dont|never|forbid(?:den)?)\s+(?:to\s+)?(edit|write|fix|change|patch|implement)\b/gi," ").replace(/(禁止|不要|勿|别)\s*(Edit|Write|Fix|修改|编辑|改代码)/gu," ").replace(/\s+/g," ").trim(),!t2)?!1:!!(/\b(create|write|fix|implement|edit|change|bug|refactor|feature|patch|add\s+tests?)\b/i.test(t2)||/\b(unit\s+tests?|add\s+a\s+test|write\s+tests?|补测试|写测试|加测试)\b/i.test(t2)||/(实现|重构|修复|改代码|编辑|新增功能|缺陷|功能开发|改完|修好|补上)/u.test(t2)||/(改|修).{0,24}(文件|代码|bug|错误|返回|等于|摘要)/u.test(t2)||/(修|改|修复)/u.test(t2)&&/\b[\w.-]+\.(?:tsx|ets|ts|jsx|mjs|cjs|json|js|py|go|rs|java|kts|kt|rb|phtml|php|pm|pl|lua|cpp|cxx|cc|cshtml|aspx|ashx|asp|vb|fsx|fs|cs|c|swift|mm|md|m|dart|bats|sh)\b/i.test(t2))}function isRunOrReconOnlyTask(raw){let t2=String(raw??"").trim();return t2?hasBroadMutationProhibition(t2)?!0:t2.length>480||hasMutationImplementLanguage(t2)||/\b(npm\s+publish|rebuild:dist|bump\s+version)\b/i.test(t2)||/(发布新版本|重新发布|开始开发)/u.test(t2)?!1:!!(/(跑一下测试|跑测试|运行测试|跑一下|执行测试|测通|测一下)/u.test(t2)||/\b(?:npm|pnpm|yarn|bun)\s+test\b/i.test(t2)||/\bnode\s+[\w./-]*test[\w./-]*\b/i.test(t2)||/用\s*Bash\s*(?:运行|执行)/u.test(t2)||/\b(?:run|execute)\s+(?:the\s+)?(?:tests?|npm\s+test|node\s+)/i.test(t2)||/\b(until\s+green|make\s+it\s+green|ci\s+(pass|green)|all\s+tests?\s+pass)\b/i.test(t2)||t2.length<=240&&(/(看下|看看|读一下|读取|核对)\s*package\.json/u.test(t2)||/\bread\s+package\.json\b/i.test(t2)||/package\.json.{0,40}scripts/i.test(t2))||/(进行联调|开始联调|启动联调|联调一下|联调链路|联调控制|联合调试|dev:joint)/u.test(t2)&&(/(读|看|核对|端口|启动|package\.json|node\s|npm\s|pnpm\s|Bash)/u.test(t2)||t2.length<=120)):!1}function isVerifyOnlySmokeCore(t2){return!t2||t2.length>480||/\b(npm\s+publish|rebuild:dist|bump\s+version|implement|refactor|migrate)\b/i.test(t2)||/(发布新版本|重新发布|开始开发|实现|重构)/u.test(t2)?!1:!!(isRunOrReconOnlyTask(t2)||/\b(npm\s+view|npx\s+-y\s+iclavue|clavue\s+--version|iclavue\s+--version|--version)\b/i.test(t2)||t2.length<=160&&(/(真实测试|验证版本|看下版本|验证一下)/u.test(t2)||/\b(smoke\s*test|install\s+-g\s+iclavue)\b/i.test(t2))||/^(测一下|帮我测|验证一下版本|看下 npm)/u.test(t2))}function tierDecision(tier,reason,confidence){return tier==="T0"?{tier:"T0",hopBudget:1,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason,confidence}:tier==="T2"?{tier:"T2",hopBudget:4,allowBlockingReview:!0,allowScout:!0,allowHeavyPanels:!0,reason,confidence}:{tier:"T1",hopBudget:2,allowBlockingReview:!1,allowScout:!1,allowHeavyPanels:!1,reason,confidence}}function countPlanSerialHops(roles){let n2=0;for(let r2 of roles){let p=String(r2.phase||"");(p==="primary"||p==="review"||p==="verify"||p==="judge"||p==="adversary"||p==="probe"||p==="scout")&&(n2+=1)}return Math.max(1,n2)}var HEAVY,LIGHT_MARK,DIR_QUALIFIED_PATH_RE,BARE_BASENAME_RE,init_pathTier=__esm({"src/runtime/pathTier.ts"(){init_citedPathPattern();init_userTurnIntent();__name(toHonestyReviewFields,"toHonestyReviewFields");HEAVY=/\b(end-to-end|e2e|across|multi[-\s]?file|multi[-\s]?module|refactor|architecture|production|migrate|release|security\s+audit|adversarial|thorough|融合|架构|发布|上线|全量|跨模块)\b/i,LIGHT_MARK=/\b(quick\s+fix|small\s+typo|typo|trivial\s+fix|nit)\b|(错别字|笔误|小修|小改|修一下)/i,DIR_QUALIFIED_PATH_RE=citedPathRegExp(`(${dirQualifiedBody(1,8)})`,"g"),BARE_BASENAME_RE=citedPathRegExp(String.raw`([\w.-]+\.(?:js|ts|tsx|jsx|mjs|cjs|py|go|rs|txt|json|md|vue|svelte))`,"gi");__name(normalizeCitedPathSeps,"normalizeCitedPathSeps");__name(countPaths,"countPaths");__name(extractPaths,"extractPaths");__name(shareCommonDirectory,"shareCommonDirectory");__name(countPathRefs,"countPathRefs");__name(extractTaskFacts,"extractTaskFacts");__name(formatPathTierExplain,"formatPathTierExplain");__name(withFactsAndExplain,"withFactsAndExplain");__name(applyPathTierSoftLaw,"applyPathTierSoftLaw");__name(stripMetaForPathTier,"stripMetaForPathTier");__name(classifyPathTier,"classifyPathTier");__name(raisePathTierToFloor,"raisePathTierToFloor");__name(inferIntakePathTierFloorFromText,"inferIntakePathTierFloorFromText");__name(classifyPathTierStructural,"classifyPathTierStructural");__name(classifyPathTierCore,"classifyPathTierCore");__name(stripRunVerifyNoise,"stripRunVerifyNoise");__name(hasMutationImplementLanguage,"hasMutationImplementLanguage");__name(isRunOrReconOnlyTask,"isRunOrReconOnlyTask");__name(isVerifyOnlySmokeCore,"isVerifyOnlySmokeCore");__name(tierDecision,"tierDecision");__name(countPlanSerialHops,"countPlanSerialHops")}});var effort_exports={};__export(effort_exports,{EFFORT_LEVELS:()=>EFFORT_LEVELS,clampEffortLevelForModel:()=>clampEffortLevelForModel,configureAdaptiveGptCapabilityParams:()=>configureAdaptiveGptCapabilityParams,convertEffortValueToLevel:()=>convertEffortValueToLevel,getDefaultEffortForModel:()=>getDefaultEffortForModel,getDisplayedEffortLevel:()=>getDisplayedEffortLevel,getEffortEnvOverride:()=>getEffortEnvOverride,getEffortLevelDescription:()=>getEffortLevelDescription,getEffortSuffix:()=>getEffortSuffix,getEffortValueDescription:()=>getEffortValueDescription,getInitialEffortSetting:()=>getInitialEffortSetting,getOpusDefaultEffortConfig:()=>getOpusDefaultEffortConfig,getSupportedEffortLevels:()=>getSupportedEffortLevels,isEffortLevel:()=>isEffortLevel,isGptResponsesEffortFamily:()=>isGptResponsesEffortFamily,isValidNumericEffort:()=>isValidNumericEffort,modelSupportsEffort:()=>modelSupportsEffort,modelSupportsMaxEffort:()=>modelSupportsMaxEffort,parseEffortValue:()=>parseEffortValue,resolveAdaptiveGptCapabilityProfile:()=>resolveAdaptiveGptCapabilityProfile,resolveAppliedEffort:()=>resolveAppliedEffort,resolvePickerEffortPersistence:()=>resolvePickerEffortPersistence,toPersistableEffort:()=>toPersistableEffort});function modelSupportsEffort(model){let m2=model.toLowerCase();if(isEnvTruthy(process.env.CLAUDE_CODE_ALWAYS_ENABLE_EFFORT))return!0;let cap=resolveModelNativeCapability(model);try{cap=(init_modelNativeCapabilityLive(),__toCommonJS(modelNativeCapabilityLive_exports)).resolveLiveModelNativeCapability(model)}catch{}if(cap.family!=="claude"&&cap.family!=="unknown")return cap.supportsEffort;let supported3P=get3PModelCapabilityOverride(model,"effort");if(supported3P!==void 0)return supported3P;let profile=getProviderModelTokenProfile(model);return profile?profile.effort:m2.includes("gpt-5")||m2.includes("gpt-6")||m2.includes("codex")||m2.startsWith("gpt5")||m2.startsWith("gpt6")||m2.includes("opus-5")||m2.includes("opus-6")||m2.includes("gemini-3-5")||m2.includes("gemini")&&m2.includes("high")?!0:m2.includes("haiku")||m2.includes("sonnet")||m2.includes("opus")?!1:getAPIProvider()==="firstParty"}function isGptResponsesEffortFamily(model){let m2=String(model||"").toLowerCase();return m2.includes("gpt-5")||m2.includes("gpt-6")||m2.includes("codex")||m2.startsWith("gpt5")||m2.startsWith("gpt6")||m2.includes("gpt-")&&(m2.includes("o1")||m2.includes("o3")||m2.includes("o4")||/gpt-5(?:\.|\b)/.test(m2)||/gpt-6(?:\.|\b)/.test(m2))}function getSupportedEffortLevels(model,snapshot){let routeEffort=getRouteEffortSupported(snapshot);if(!modelSupportsEffort(model)&&!routeEffort)return[];let base=["low","medium","high"],routePeak=getRouteMaxSupported(snapshot),familyPeak=modelSupportsMaxEffort(model);return(snapshot!=null?routePeak||!isGptResponsesEffortFamily(model)&&familyPeak:familyPeak)?isGptResponsesEffortFamily(model)?["low","medium","high","xhigh"]:["low","medium","high","max"]:base}function modelSupportsMaxEffort(model){let m2=model.toLowerCase();if(m2.includes("grok")||m2.startsWith("grok-"))return!1;let supported3P=get3PModelCapabilityOverride(model,"max_effort");if(supported3P!==void 0)return supported3P;let profile=getProviderModelTokenProfile(model);return profile?profile.maxEffort:!!(m2.includes("opus-5")||m2.includes("opus-6")||m2.includes("gpt-5")||m2.includes("gpt-6")||m2.includes("codex")||m2.startsWith("gpt5")||m2.startsWith("gpt6")||process.env.USER_TYPE==="ant"&&resolveAntModel(model))}function clampEffortLevelForModel(model,effort){if(effort==null)return;let raw=String(effort).trim().toLowerCase();if(!raw)return;if(raw==="auto"||raw==="unset"||((raw==="x-high"||raw==="x_high")&&(raw="xhigh"),!(raw==="max"||raw==="xhigh"||raw==="ultra")))return raw;let m2=String(model??"").trim();return m2?modelSupportsMaxEffort(m2)?raw:"high":raw}function isEffortLevel(value){return EFFORT_LEVELS.includes(value)}function parseEffortValue(value){if(value==null||value==="")return;if(typeof value=="number"&&isValidNumericEffort(value))return value;let str=String(value).trim().toLowerCase();if(str==="xhigh"||str==="x-high"||str==="x_high"||str==="x high")return"xhigh";if(isEffortLevel(str))return str;let numericValue=parseInt(str,10);if(!isNaN(numericValue)&&isValidNumericEffort(numericValue))return numericValue}function toPersistableEffort(value){if(value==="low"||value==="medium"||value==="high"||value==="xhigh"||value==="max"||value==="ultra")return value}function getInitialEffortSetting(){return toPersistableEffort(getInitialSettings().effortLevel)}function resolvePickerEffortPersistence(picked,modelDefault,priorPersisted,toggledInPicker){return priorPersisted!==void 0||toggledInPicker||picked!==modelDefault?picked:void 0}function getEffortEnvOverride(){let envOverride=process.env.CLAUDE_CODE_EFFORT_LEVEL;return envOverride?.toLowerCase()==="unset"||envOverride?.toLowerCase()==="auto"?null:parseEffortValue(envOverride)}function getRouteMaxSupported(snapshot){return snapshot?.responsesReasoningXHigh===!0}function getRouteEffortSupported(snapshot){return snapshot?.responsesReasoningMedium===!0||snapshot?.responsesReasoningXHigh===!0}function canUseMaxEffortForRoute(model,context){let m2=model.toLowerCase();if(m2.includes("grok")||m2.startsWith("grok-"))return!1;let routeMaxSupported=getRouteMaxSupported(context?.routeSnapshot),explicit3P=get3PModelCapabilityOverride(model,"max_effort");if(explicit3P!==void 0)return explicit3P||routeMaxSupported;let snapshotPresent=context?.routeSnapshot!=null;return isGptResponsesEffortFamily(model)?snapshotPresent?routeMaxSupported:modelSupportsMaxEffort(model):snapshotPresent&&routeMaxSupported||modelSupportsMaxEffort(model)}function isProviderAutoEffortCandidate(context){return isEffortAutotuneEnabled()?!0:context?.routeDecision?context.routeDecision.familyShaping==="gpt_codex":!1}function isMainCodingThreadQuerySource(querySource){let value=String(querySource??"").toLowerCase();return value==="repl_main_thread"||value.startsWith("repl_main_thread:")}function isAgentLaneQuerySource(querySource){let value=String(querySource??"").toLowerCase();return value==="verification_agent"||value==="agent_summary"||value==="tool_use_summary_generation"||value.startsWith("agent:")}function isMaxEffortQuerySource(querySource){let value=String(querySource??"").toLowerCase();return value==="auto_mode"||value==="auto_mode_critique"||value==="compact"||value==="web_fetch_apply"||value==="session_memory"}function isLightQuerySource(querySource){let value=String(querySource??"").toLowerCase();return value==="sdk"||value==="feedback"||value==="prompt_suggestion"||value==="generate_session_title"||value==="rename_generate_name"||value==="teleport_generate_title"||value==="mcp_datetime_parse"||value==="permission_explainer"}function getGptVerbosityEnvOverride(){let value=process.env.CLAVUE_GPT_VERBOSITY?.trim().toLowerCase();if(!(!value||value==="auto"||value==="unset"))return value==="low"||value==="medium"||value==="high"?value:null}function getCompatibilityCap(qualityTier){switch(qualityTier){case"native":case"compatible":return;case"degraded":return"high";case"chat_only":case"blocked":return"medium";default:return}}function clampEffortLevel(effort,cap){if(!cap)return effort;let order=EFFORT_LEVELS.slice();return order.indexOf(effort)<=order.indexOf(cap)?effort:cap}function resolveDifficultyAutotunedEffort(model,context,userTurnText,fallback){if(userTurnText&&isEffortAutotuneEnabled()){let level=resolveTaskDifficultyPlan(userTurnText).mainLoopEffort;return level==="max"||level==="xhigh"||level==="ultra"?canUseMaxEffortForRoute(model,context)?level:"high":level}if(userTurnText&&isGpt5xFamilyModel(model)&&isGpt5EffortAutotuneEnabled())switch(getGpt5EffortRecommendation(userTurnText).recommendedEffort){case"low":return"low";case"medium":return"medium";case"high":return"high";case"max":return canUseMaxEffortForRoute(model,context)?"max":"high";default:return fallback}return fallback}function getAutoEffortForProviderRoute(model,context){if(!context||!isProviderAutoEffortCandidate(context))return;if(context.routeSnapshot&&!getRouteEffortSupported(context.routeSnapshot)){if(!modelSupportsEffort(model))return}else if(!modelSupportsEffort(model))return;let qualityCap=getCompatibilityCap(context.routeDecision?.qualityTier),autotuneOn=isEffortAutotuneEnabled(),gptAutotuneEnabled=isGpt5xFamilyModel(model)&&isGpt5EffortAutotuneEnabled(),resolved="high";if(context.fastMode||isLightQuerySource(context.querySource))resolved="low";else if(context.agentId||isAgentLaneQuerySource(context.querySource))if(autotuneOn&&context.userTurnText){let plan=resolveTaskDifficultyPlan(context.userTurnText);resolved=plan.difficulty==="trivial"||plan.difficulty==="light"?"low":plan.difficulty==="standard"?"medium":"high"}else resolved="high";else(autotuneOn||gptAutotuneEnabled)&&isMainCodingThreadQuerySource(context.querySource)?resolved=resolveDifficultyAutotunedEffort(model,context,context.userTurnText,resolved):isMaxEffortQuerySource(context.querySource)?resolved=canUseMaxEffortForRoute(model,context)?"max":"high":(autotuneOn||gptAutotuneEnabled)&&context.userTurnText&&(resolved=resolveDifficultyAutotunedEffort(model,context,context.userTurnText,resolved));return resolved=clampEffortLevel(resolved,qualityCap),(resolved==="xhigh"||resolved==="max"||resolved==="ultra")&&!canUseMaxEffortForRoute(model,context)?"high":resolved}function getAdaptiveGptCapabilityGear(context){return context?.fastMode||isLightQuerySource(context?.querySource)?"fast":context?.agentId||isAgentLaneQuerySource(context?.querySource)?"workhorse":"max_quality"}function getVerbosityForGear(gear){switch(gear){case"fast":return"low";case"workhorse":return"medium";case"max_quality":return"medium"}}function resolveAdaptiveGptCapabilityProfile(model,appStateEffortValue,context){let gear=getAdaptiveGptCapabilityGear(context),verbosity=getGptVerbosityEnvOverride()??getVerbosityForGear(gear);return{gear,effort:resolveAppliedEffort(model,appStateEffortValue,context),verbosity}}function configureAdaptiveGptCapabilityParams(model,appStateEffortValue,outputConfig,context){if(!isProviderAutoEffortCandidate(context)||"verbosity"in outputConfig)return;let profile=resolveAdaptiveGptCapabilityProfile(model,appStateEffortValue,context);return outputConfig.verbosity=profile.verbosity,profile}function clampResolvedEffortForRoute(resolved,model,context){return(resolved==="xhigh"||resolved==="max"||resolved==="ultra")&&!canUseMaxEffortForRoute(model,context)?"high":resolved}function resolveAppliedEffort(model,appStateEffortValue,context){let sessionId=context?.sessionId,role=context?.role??inferRoleFromQuerySource(context?.querySource)??null,roleOverride=context?.roleEffortOverride;if(roleOverride===void 0&&role){let pinned=getSessionRoleEffortOverride(role,sessionId);pinned!==void 0&&(roleOverride=pinned)}let sessionEffort=getSessionEffortOverride(sessionId),difficultyRoleEffort;role&&role!=="mainLoop"&&isEffortAutotuneEnabled()&&context?.userTurnText&&(difficultyRoleEffort=resolveTaskDifficultyPlan(context.userTurnText).roleEffort[role]);try{let slotPol=(init_slotThinkingPolicy(),__toCommonJS(slotThinkingPolicy_exports)),pathTierMod=(init_pathTier(),__toCommonJS(pathTier_exports));if(role&&slotPol.isSlotThinkingPolicyEnabled()&&(context?.userTurnText||role==="reviewer"||role==="planner")){let tier=context?.userTurnText?pathTierMod.classifyPathTierStructural(context.userTurnText).tier:"T1",qualityMode=/\b(thorough|quality|release|认真审|严格)\b/i.test(String(context?.userTurnText||"")),userWantsReview=/\b(review|code\s*review|审查|评审)\b/i.test(String(context?.userTurnText||"")),thinkingWire=null;try{thinkingWire=(init_modelNativeCapabilityLive(),__toCommonJS(modelNativeCapabilityLive_exports)).resolveLiveModelNativeCapability(model).thinkingWire}catch{thinkingWire=null}let slotEffort=slotPol.resolveEffortFromSlotThinking({role,pathTier:tier,qualityMode,userWantsReview,thinkingWire});if(slotEffort){if(role==="mainLoop")(tier==="T0"||tier==="T1")&&(difficultyRoleEffort=difficultyRoleEffort??slotEffort,tier==="T0"&&(difficultyRoleEffort="low"));else if(!difficultyRoleEffort)difficultyRoleEffort=slotEffort;else if(role==="reviewer"){let rank={low:1,medium:2,high:3,xhigh:4,max:5,ultra:6};(rank[slotEffort]??0)>(rank[difficultyRoleEffort]??0)&&(difficultyRoleEffort=slotEffort)}}}}catch{}let rolePref=resolveRoleEffortPreference({role,roleOverride,sessionEffort,appStateEffort:appStateEffortValue,difficultyRoleEffort});if(role&&role!=="mainLoop"&&EFFICIENCY_ISOLATED_ROLES.has(role))return rolePref===null?void 0:rolePref!==void 0?clampResolvedEffortForRoute(rolePref,model,context):void 0;let envOverride=getEffortEnvOverride();if(envOverride===null)return;let resolved=envOverride??(sessionEffort&&sessionEffort!=="auto"?sessionEffort:void 0)??(sessionEffort==="auto"?void 0:appStateEffortValue)??getAutoEffortForProviderRoute(model,context)??getDefaultEffortForModel(model);if(!role||role==="mainLoop"){let floored=applyMainLoopModelEffortFloor(model,resolved);floored!==void 0&&(resolved=floored)}else if(role==="planner"||role==="reviewer"||role==="judge")try{let auto=(init_modelEffortAuto(),__toCommonJS(modelEffortAuto_exports)),roleFloor=auto.suggestedEffortForModelRole?.(model,role==="judge"?"judge":role)??auto.applyMainLoopModelEffortFloor?.(model,resolved);if(roleFloor!==void 0){let order=["low","medium","high","xhigh","max"],cur=String(resolved||""),a2=order.indexOf(cur),b=order.indexOf(String(roleFloor));(a2<0||b>=0&&b>a2)&&(resolved=roleFloor)}}catch{}return clampResolvedEffortForRoute(resolved,model,context)}function getDisplayedEffortLevel(model,appStateEffort){let resolved=resolveAppliedEffort(model,appStateEffort)??"high";return convertEffortValueToLevel(resolved)}function getEffortSuffix(model,effortValue){if(effortValue===void 0)return"";let resolved=resolveAppliedEffort(model,effortValue);return resolved===void 0?"":` with ${convertEffortValueToLevel(resolved)} effort`}function isValidNumericEffort(value){return Number.isInteger(value)}function convertEffortValueToLevel(value){return typeof value=="string"?isEffortLevel(value)?value:"high":process.env.USER_TYPE==="ant"&&typeof value=="number"?value<=50?"low":value<=85?"medium":value<=100?"high":"max":"high"}function getEffortLevelDescription(level){switch(level){case"low":return"Quick, straightforward implementation with minimal overhead";case"medium":return"Balanced approach with standard implementation and testing";case"high":return"Comprehensive implementation with extensive testing and documentation";case"xhigh":return"Deeper reasoning for complex GPT-5.x and supported model tasks";case"max":return"Maximum capability with deepest reasoning on supported models";case"ultra":return"Highest available reasoning budget on supported GPT-5.x routes"}}function getEffortValueDescription(value){return process.env.USER_TYPE==="ant"&&typeof value=="number"?`[ANT-ONLY] Numeric effort value of ${value}`:typeof value=="string"?getEffortLevelDescription(value):"Balanced approach with standard implementation and testing"}function getOpusDefaultEffortConfig(){let config2=getFeatureValue_CACHED_MAY_BE_STALE("tengu_grey_step2",OPUS_DEFAULT_EFFORT_CONFIG_DEFAULT);return{...OPUS_DEFAULT_EFFORT_CONFIG_DEFAULT,...config2}}function getDefaultEffortForModel(model){if(process.env.USER_TYPE==="ant"){let config2=getAntModelOverrideConfig();if(config2?.defaultModel!==void 0&&model.toLowerCase()===config2.defaultModel.toLowerCase()&&config2?.defaultModelEffortLevel)return config2.defaultModelEffortLevel;let antModel=resolveAntModel(model);if(antModel){if(antModel.defaultEffortLevel)return antModel.defaultEffortLevel;if(antModel.defaultEffortValue!==void 0)return antModel.defaultEffortValue}return}let profile=getProviderModelTokenProfile(model);if(profile?.family==="claude"&&/^claude-opus-4-(?:[6-9]|[1-9][0-9])/.test(profile.baseModel)&&(isProSubscriber()||getOpusDefaultEffortConfig().enabled&&(isMaxSubscriber()||isTeamSubscriber()))||isUltrathinkEnabled()&&modelSupportsEffort(model))return"medium";if(modelSupportsEffort(model)){let cls=classifyModelEffortClass(model);if(cls==="flash"||cls==="workhorse")return mainLoopEffortFloorForModel(model);if(cls==="frontier")return"medium"}}var EFFORT_LEVELS,OPUS_DEFAULT_EFFORT_CONFIG_DEFAULT,init_effort=__esm({"src/utils/effort.ts"(){init_thinking();init_settings2();init_auth();init_growthbook();init_providers();init_modelSupportOverrides();init_envUtils();init_gpt5EffortIntent();init_taskDifficulty();init_providerModelProfiles();init_modelNativeCapability();init_antModels();init_roleEffortPolicy();init_sessionComboRouting();init_modelEffortAuto();EFFORT_LEVELS=["low","medium","high","xhigh","max","ultra"];__name(modelSupportsEffort,"modelSupportsEffort");__name(isGptResponsesEffortFamily,"isGptResponsesEffortFamily");__name(getSupportedEffortLevels,"getSupportedEffortLevels");__name(modelSupportsMaxEffort,"modelSupportsMaxEffort");__name(clampEffortLevelForModel,"clampEffortLevelForModel");__name(isEffortLevel,"isEffortLevel");__name(parseEffortValue,"parseEffortValue");__name(toPersistableEffort,"toPersistableEffort");__name(getInitialEffortSetting,"getInitialEffortSetting");__name(resolvePickerEffortPersistence,"resolvePickerEffortPersistence");__name(getEffortEnvOverride,"getEffortEnvOverride");__name(getRouteMaxSupported,"getRouteMaxSupported");__name(getRouteEffortSupported,"getRouteEffortSupported");__name(canUseMaxEffortForRoute,"canUseMaxEffortForRoute");__name(isProviderAutoEffortCandidate,"isProviderAutoEffortCandidate");__name(isMainCodingThreadQuerySource,"isMainCodingThreadQuerySource");__name(isAgentLaneQuerySource,"isAgentLaneQuerySource");__name(isMaxEffortQuerySource,"isMaxEffortQuerySource");__name(isLightQuerySource,"isLightQuerySource");__name(getGptVerbosityEnvOverride,"getGptVerbosityEnvOverride");__name(getCompatibilityCap,"getCompatibilityCap");__name(clampEffortLevel,"clampEffortLevel");__name(resolveDifficultyAutotunedEffort,"resolveDifficultyAutotunedEffort");__name(getAutoEffortForProviderRoute,"getAutoEffortForProviderRoute");__name(getAdaptiveGptCapabilityGear,"getAdaptiveGptCapabilityGear");__name(getVerbosityForGear,"getVerbosityForGear");__name(resolveAdaptiveGptCapabilityProfile,"resolveAdaptiveGptCapabilityProfile");__name(configureAdaptiveGptCapabilityParams,"configureAdaptiveGptCapabilityParams");__name(clampResolvedEffortForRoute,"clampResolvedEffortForRoute");__name(resolveAppliedEffort,"resolveAppliedEffort");__name(getDisplayedEffortLevel,"getDisplayedEffortLevel");__name(getEffortSuffix,"getEffortSuffix");__name(isValidNumericEffort,"isValidNumericEffort");__name(convertEffortValueToLevel,"convertEffortValueToLevel");__name(getEffortLevelDescription,"getEffortLevelDescription");__name(getEffortValueDescription,"getEffortValueDescription");OPUS_DEFAULT_EFFORT_CONFIG_DEFAULT={enabled:!0,dialogTitle:"We recommend medium effort for Opus",dialogDescription:"Effort determines how long Clavue thinks for when completing your task. We recommend medium effort for most tasks to balance speed and intelligence and maximize rate limits. Use ultrathink to trigger high effort when needed."};__name(getOpusDefaultEffortConfig,"getOpusDefaultEffortConfig");__name(getDefaultEffortForModel,"getDefaultEffortForModel")}});import{existsSync as existsSync3,mkdirSync as mkdirSync4,readFileSync as readFileSync7,renameSync as renameSync3,unlinkSync as unlinkSync3,writeFileSync as writeFileSync5}from"fs";import{join as join16}from"path";function emptyState(){return{combo:{...EMPTY_COMBO},roleEfforts:{}}}function isSafeSessionId(value){return typeof value=="string"&&value.length>0&&value.length<=256&&!/[\u0000-\u001f\u007f]/.test(value)}function normalizeSessionId(sessionId){return String(sessionId??"").trim()||activeSessionId||"default"}function isDurableSessionRouteId(sessionId){let id=String(sessionId??"").trim();return!(!isSafeSessionId(id)||id==="default"||id.startsWith("pending-"))}function sessionRouteStoreDir(){return join16(getClavueConfigHomeDir(),"session-route")}function sessionRouteStorePath(sessionId){return join16(sessionRouteStoreDir(),`${sessionId}.json`)}function cloneState(state){return{combo:{...state.combo},...state.providerProfileId?{providerProfileId:state.providerProfileId}:{},...state.model?{model:state.model}:{},...state.effort?{effort:state.effort}:{},roleEfforts:{...state.roleEfforts??{}},...state.executionSpeed?{executionSpeed:state.executionSpeed}:{},...state.efficiencyChrome?{efficiencyChrome:{...state.efficiencyChrome}}:{}}}function scrubBroadcastRoleEffortPins(state){let main=state.effort,map3=state.roleEfforts||{},isolated=Object.keys(map3).filter(k=>k!=="mainLoop");if(!main||main==="auto"||isolated.length<4||!isolated.every(k=>map3[k]===main))return!1;let next={};return map3.mainLoop&&(next.mainLoop=map3.mainLoop),state.roleEfforts=next,!0}function stateHasDurablePins(state){return state.providerProfileId&&state.providerProfileId.trim()||state.model&&String(state.model).trim()||state.effort||state.executionSpeed||state.roleEfforts&&Object.keys(state.roleEfforts).length>0||typeof state.combo.lightHandEnabled=="boolean"?!0:Object.values(state.combo).some(v=>typeof v=="string"&&v.trim().length>0)}function persistSessionRouteState(sessionId){let id=normalizeSessionId(sessionId);if(isDurableSessionRouteId(id))try{let state=sessionStates.get(id);if(!state||!stateHasDurablePins(state)){let path11=sessionRouteStorePath(id);existsSync3(path11)&&unlinkSync3(path11);return}mkdirSync4(sessionRouteStoreDir(),{recursive:!0}),scrubBroadcastRoleEffortPins(state);let envelope={sessionId:id,updatedAt:Date.now(),state:cloneState(state)},path10=sessionRouteStorePath(id),tmp=`${path10}.${process.pid}.${Date.now().toString(36)}.tmp`;writeFileSync5(tmp,JSON.stringify(envelope),"utf8");try{renameSync3(tmp,path10)}catch{try{unlinkSync3(tmp)}catch{}writeFileSync5(path10,JSON.stringify(envelope),"utf8")}}catch{}}function loadSessionRouteState(sessionId,opts){let id=normalizeSessionId(sessionId);if(!isDurableSessionRouteId(id))return null;if(!opts?.force&&diskHydrated.has(id)&&sessionStates.has(id))return cloneState(sessionStates.get(id));if(!opts?.force&&diskHydrated.has(id)&&!sessionStates.has(id))return null;diskHydrated.add(id);try{let path10=sessionRouteStorePath(id);if(!existsSync3(path10))return null;let raw=JSON.parse(readFileSync7(path10,"utf8"));if(!raw||typeof raw!="object"||!raw.state||typeof raw.state!="object")return null;let incoming=raw.state,combo={};if(incoming.combo&&typeof incoming.combo=="object")for(let[key,value]of Object.entries(incoming.combo)){if(key==="lightHandEnabled"&&typeof value=="boolean"){combo.lightHandEnabled=value;continue}COMBO_KEYS.has(key)&&typeof value=="string"&&value.trim()&&(combo[key]=value.trim())}let restored={combo,roleEfforts:{}};return typeof incoming.providerProfileId=="string"&&incoming.providerProfileId.trim()&&(restored.providerProfileId=incoming.providerProfileId.trim()),typeof incoming.model=="string"&&incoming.model.trim()&&(restored.model=incoming.model.trim()),typeof incoming.effort=="string"&&incoming.effort.trim()&&(restored.effort=incoming.effort.trim()),incoming.roleEfforts&&typeof incoming.roleEfforts=="object"&&(restored.roleEfforts={...incoming.roleEfforts},scrubBroadcastRoleEffortPins(restored)),typeof incoming.executionSpeed=="string"&&(incoming.executionSpeed==="grok"||incoming.executionSpeed==="balanced"||incoming.executionSpeed==="quality")&&(restored.executionSpeed=incoming.executionSpeed),incoming.efficiencyChrome&&typeof incoming.efficiencyChrome=="object"&&(restored.efficiencyChrome={...incoming.efficiencyChrome}),(!sessionStates.has(id)||opts?.force)&&sessionStates.set(id,restored),cloneState(sessionStates.get(id))}catch{return null}}function ensureState(sessionId){let id=normalizeSessionId(sessionId);!sessionStates.has(id)&&isDurableSessionRouteId(id)&&loadSessionRouteState(id);let state=sessionStates.get(id);return state||(state=emptyState(),sessionStates.set(id,state)),state}function touchPersist(sessionId){persistSessionRouteState(sessionId)}function persistDurableEffortBestEffort(level){try{persistDurableMainEffort(level)}catch{}}function hydrateSessionRouteStateFromEnv(env5=process.env){let raw=env5[SESSION_ROUTE_STATE_ENV],handoff=env5[SESSION_ROUTE_HANDOFF_ENV]==="1";if(delete env5[SESSION_ROUTE_STATE_ENV],delete env5[SESSION_ROUTE_HANDOFF_ENV],!(!handoff||!raw))try{let envelope=JSON.parse(raw),id=String(envelope.sessionId??"").trim();if(!isSafeSessionId(id)||!envelope.state||typeof envelope.state!="object")return;let state=envelope.state,combo={};if(state.combo&&typeof state.combo=="object")for(let[key,value]of Object.entries(state.combo))COMBO_KEYS.has(key)&&typeof value=="string"&&value.trim()&&(combo[key]=value.trim());let restored={combo,roleEfforts:{}};if(typeof state.providerProfileId=="string"&&state.providerProfileId.trim()&&(restored.providerProfileId=state.providerProfileId.trim()),sessionStates.set(id,restored),typeof state.model=="string"&&setSessionModelOverride(state.model,id),typeof state.effort=="string"&&setSessionEffortOverride(state.effort,id),state.roleEfforts&&typeof state.roleEfforts=="object"){for(let[role,effort]of Object.entries(state.roleEfforts))typeof effort=="string"&&setSessionRoleEffortOverride(role,effort,id);let live=sessionStates.get(id);live&&scrubBroadcastRoleEffortPins(live)}typeof state.executionSpeed=="string"&&setSessionExecutionSpeed(state.executionSpeed,id),activeSessionId=id}catch{}}function getSessionProviderProfileId(sessionId){let id=ensureState(sessionId).providerProfileId;return id&&id.trim()?id.trim():void 0}function clearModelLinePins(state){state.combo={...EMPTY_COMBO},delete state.model,delete state.effort,state.roleEfforts={}}function setSessionProviderResolver(resolver){sessionProviderResolver=resolver}function ensureSessionProviderPinned(sessionId,explicitProfileId){let state=ensureState(sessionId??void 0);if(state.providerProfileId&&state.providerProfileId.trim())return;let id=String(explicitProfileId??"").trim();if(!id&&sessionProviderResolver)try{id=String(sessionProviderResolver(sessionId??void 0)??"").trim()}catch{id=""}if(!id)try{let mod=(init_providerProfiles(),__toCommonJS(providerProfiles_exports));id=String(mod.getResolvedCurrentProviderProfile?.(sessionId??void 0)?.id||mod.getActiveProviderProfileId?.()||"").trim()}catch{id=""}id&&(state.providerProfileId=id,touchPersist(sessionId))}function clearSessionOverlaysForUnboundProfiles(){for(let state of sessionStates.values())state.providerProfileId&&state.providerProfileId.trim()||clearModelLinePins(state)}function hasSessionComboRoutingOverride(sessionId){let combo=ensureState(sessionId).combo;return typeof combo.lightHandEnabled=="boolean"?!0:Object.values(combo).some(v=>typeof v=="string"&&v.trim().length>0)}function applySessionComboRoutingOverride(base,sessionId){if(!base&&!hasSessionComboRoutingOverride(sessionId))return base??null;let override=ensureState(sessionId).combo,merged={...base??{}};for(let[rawKey,rawValue]of Object.entries(override)){let key=rawKey;if(key==="lightHandEnabled"&&typeof rawValue=="boolean"){merged.lightHandEnabled=rawValue;continue}if(typeof rawValue!="string")continue;let value=rawValue.trim();value&&COMBO_KEYS.has(key)&&(merged[key]=value)}return merged}function getSessionModelOverride(sessionId){let model=ensureState(sessionId).model;return model&&model.trim()?model.trim():void 0}function resolveSessionEffortModel(sessionId){let pin=getSessionModelOverride(sessionId);if(pin)return pin;try{let{getResolvedCurrentProviderProfile:getResolvedCurrentProviderProfile2}=(init_providerProfiles(),__toCommonJS(providerProfiles_exports)),profile=getResolvedCurrentProviderProfile2(sessionId),routing=applySessionComboRoutingOverride(profile?.modelRouting,sessionId),fromRoute=String(routing?.primaryModel||routing?.generalModel||"").trim();if(fromRoute)return fromRoute}catch{}return String(process.env.CLAVUE_MODEL||process.env.ANTHROPIC_MODEL||process.env.OPENAI_MODEL||"").trim()}function clampEffortForSessionModel(effort,sessionId,modelHint){let raw=String(effort??"").trim().toLowerCase();if(!raw||raw==="auto"||raw==="unset")return raw||effort;let model=String(modelHint||resolveSessionEffortModel(sessionId)||"");try{let{clampEffortLevelForModel:clampEffortLevelForModel2}=(init_effort(),__toCommonJS(effort_exports));return clampEffortLevelForModel2(model,raw)??raw}catch{let m2=model.toLowerCase();return(m2.includes("grok")||m2.startsWith("grok-"))&&(raw==="max"||raw==="xhigh"||raw==="ultra"||raw==="x-high"||raw==="x_high")?"high":raw}}function reclampSessionEffortPins(sessionId,modelHint){let state=ensureState(sessionId);if(state.effort&&state.effort!=="auto"){let next=clampEffortForSessionModel(state.effort,sessionId,modelHint);(next==="low"||next==="medium"||next==="high"||next==="max"||next==="xhigh"||next==="ultra")&&(state.effort=next)}let map3=state.roleEfforts;if(map3)for(let key of Object.keys(map3)){let cur=map3[key];if(!cur||cur==="auto")continue;let next=clampEffortForSessionModel(cur,sessionId,modelHint);(next==="low"||next==="medium"||next==="high"||next==="max"||next==="xhigh"||next==="ultra"||next==="auto")&&(map3[key]=next)}}function setSessionModelOverride(model,sessionId){ensureSessionProviderPinned(sessionId);let state=ensureState(sessionId),value=String(model??"").trim();!value||value==="default"?delete state.model:state.model=value,reclampSessionEffortPins(sessionId,value&&value!=="default"?value:void 0),touchPersist(sessionId)}function getSessionEffortOverride(sessionId){return ensureState(sessionId).effort}function setSessionEffortOverride(effort,sessionId){effort!=null&&ensureSessionProviderPinned(sessionId);let state=ensureState(sessionId);if(effort==null){delete state.effort,touchPersist(sessionId);return}let raw=String(effort).trim().toLowerCase();if(!raw){delete state.effort,touchPersist(sessionId);return}return raw==="auto"||raw==="unset"?(state.effort="auto",touchPersist(sessionId),persistDurableEffortBestEffort("auto"),"auto"):((raw==="x-high"||raw==="x_high")&&(raw="xhigh"),raw=clampEffortForSessionModel(raw,sessionId),raw==="low"||raw==="medium"||raw==="high"||raw==="max"||raw==="xhigh"||raw==="ultra"?(state.effort=raw,touchPersist(sessionId),persistDurableEffortBestEffort(raw),raw):state.effort)}function normalizeRoleEffortKey(role){let raw=String(role||"").trim().toLowerCase().replace(/[_\s-]+/g,"");if(!raw)return null;let aliases={main:"mainLoop",mainloop:"mainLoop",primary:"mainLoop",summary:"summarize",compact:"summarize",memory:"searchMemory",search:"searchMemory",quick:"quickSummary",bg:"background",plan:"planner",review:"reviewer",verify:"verifier",agent:"fallback",subagent:"fallback"},known=["mainLoop","summarize","extract","classify","searchMemory","quickSummary","background","planner","reviewer","judge","verifier","fallback"];if(known.includes(raw))return raw;for(let k of known)if(k.toLowerCase()===raw)return k;return aliases[raw]??null}function getSessionRoleEffortOverride(role,sessionId){let key=normalizeRoleEffortKey(role);if(!key)return;let map3=ensureState(sessionId).roleEfforts;if(map3)return map3[key]}function setSessionRoleEffortOverride(role,effort,sessionId){let key=normalizeRoleEffortKey(role);if(!key)return;effort!=null&&String(effort).trim()!==""&&ensureSessionProviderPinned(sessionId);let state=ensureState(sessionId),map3={...state.roleEfforts??{}};if(effort==null||String(effort).trim()===""){delete map3[key],state.roleEfforts=map3,key==="mainLoop"&&delete state.effort,touchPersist(sessionId);return}let raw=String(effort).trim().toLowerCase(),pinned;if(raw==="auto"||raw==="unset"?pinned="auto":(raw==="x-high"||raw==="x_high")&&(raw="xhigh"),!pinned)if(raw=clampEffortForSessionModel(raw,sessionId),raw==="low"||raw==="medium"||raw==="high"||raw==="max"||raw==="xhigh"||raw==="ultra")pinned=raw;else return map3[key];return map3[key]=pinned,state.roleEfforts=map3,key==="mainLoop"?setSessionEffortOverride(pinned,sessionId):touchPersist(sessionId),pinned}function setSessionExecutionSpeed(speed,sessionId){let state=ensureState(sessionId),mirrorDurable=__name(value=>{try{persistDurableExecutionSpeed(value)}catch{}},"mirrorDurable");if(speed==null||String(speed).trim()===""){delete state.executionSpeed,touchPersist(sessionId);return}let raw=String(speed).trim().toLowerCase();if(raw==="clear"||raw==="default"||raw==="env"||raw==="unset"){delete state.executionSpeed,touchPersist(sessionId),mirrorDurable(null);return}return raw==="grok"||raw==="turbo"||raw==="fast"||raw==="speed"?(state.executionSpeed="grok",touchPersist(sessionId),mirrorDurable("grok"),"grok"):raw==="balanced"||raw==="auto"||raw==="normal"?(state.executionSpeed="balanced",touchPersist(sessionId),mirrorDurable("balanced"),"balanced"):raw==="quality"||raw==="high"||raw==="deep"?(state.executionSpeed="quality",touchPersist(sessionId),mirrorDurable("quality"),"quality"):state.executionSpeed}var EMPTY_COMBO,activeSessionId,sessionStates,diskHydrated,COMBO_KEYS,SESSION_ROUTE_STATE_ENV,SESSION_ROUTE_HANDOFF_ENV,sessionProviderResolver,init_sessionComboRouting=__esm({"src/utils/model/sessionComboRouting.ts"(){init_envUtils();init_effortPersist();init_executionSpeedPersist();EMPTY_COMBO={},activeSessionId="default",sessionStates=new Map,diskHydrated=new Set;__name(emptyState,"emptyState");COMBO_KEYS=new Set(["primaryModel","smallFastModel","subagentModel","planModel","reviewModel","exploreModel","generalModel","guideModel","teamModel"]);__name(isSafeSessionId,"isSafeSessionId");__name(normalizeSessionId,"normalizeSessionId");__name(isDurableSessionRouteId,"isDurableSessionRouteId");__name(sessionRouteStoreDir,"sessionRouteStoreDir");__name(sessionRouteStorePath,"sessionRouteStorePath");__name(cloneState,"cloneState");__name(scrubBroadcastRoleEffortPins,"scrubBroadcastRoleEffortPins");__name(stateHasDurablePins,"stateHasDurablePins");__name(persistSessionRouteState,"persistSessionRouteState");__name(loadSessionRouteState,"loadSessionRouteState");__name(ensureState,"ensureState");__name(touchPersist,"touchPersist");__name(persistDurableEffortBestEffort,"persistDurableEffortBestEffort");SESSION_ROUTE_STATE_ENV="CLAVUE_SESSION_ROUTE_STATE",SESSION_ROUTE_HANDOFF_ENV="CLAVUE_PAGER_ROUTE_HANDOFF";__name(hydrateSessionRouteStateFromEnv,"hydrateSessionRouteStateFromEnv");__name(getSessionProviderProfileId,"getSessionProviderProfileId");__name(clearModelLinePins,"clearModelLinePins");sessionProviderResolver=null;__name(setSessionProviderResolver,"setSessionProviderResolver");__name(ensureSessionProviderPinned,"ensureSessionProviderPinned");__name(clearSessionOverlaysForUnboundProfiles,"clearSessionOverlaysForUnboundProfiles");hydrateSessionRouteStateFromEnv();__name(hasSessionComboRoutingOverride,"hasSessionComboRoutingOverride");__name(applySessionComboRoutingOverride,"applySessionComboRoutingOverride");__name(getSessionModelOverride,"getSessionModelOverride");__name(resolveSessionEffortModel,"resolveSessionEffortModel");__name(clampEffortForSessionModel,"clampEffortForSessionModel");__name(reclampSessionEffortPins,"reclampSessionEffortPins");__name(setSessionModelOverride,"setSessionModelOverride");__name(getSessionEffortOverride,"getSessionEffortOverride");__name(setSessionEffortOverride,"setSessionEffortOverride");__name(normalizeRoleEffortKey,"normalizeRoleEffortKey");__name(getSessionRoleEffortOverride,"getSessionRoleEffortOverride");__name(setSessionRoleEffortOverride,"setSessionRoleEffortOverride");__name(setSessionExecutionSpeed,"setSessionExecutionSpeed")}});function normalizeValue2(value){return String(value??"").trim()}function completeProviderRoutingSlotsFromPrimary(rawRouting,baseRouting={}){let presetId=normalizeValue2(rawRouting.presetId||baseRouting.presetId),primaryModel=normalizeValue2(rawRouting.primaryModel)||normalizeValue2(baseRouting.primaryModel),slotFallback=(presetId==="provider_default"||presetId==="custom")&&normalizeValue2(rawRouting.primaryModel).length>0?primaryModel:"",subagentModel=normalizeValue2(rawRouting.subagentModel)||normalizeValue2(baseRouting.subagentModel)||slotFallback,generalModel=normalizeValue2(rawRouting.generalModel)||normalizeValue2(baseRouting.generalModel)||subagentModel,planModel=normalizeValue2(rawRouting.planModel)||normalizeValue2(baseRouting.planModel)||primaryModel,exploreModel=normalizeValue2(rawRouting.exploreModel)||normalizeValue2(baseRouting.exploreModel)||generalModel,teamModel=normalizeValue2(rawRouting.teamModel)||normalizeValue2(baseRouting.teamModel)||generalModel,guideModel=normalizeValue2(rawRouting.guideModel)||normalizeValue2(baseRouting.guideModel)||planModel,rawReview=normalizeValue2(rawRouting.reviewModel),reviewModel=__name(v=>{if(!v)return!0;let lower3=v.toLowerCase();return lower3==="inherit"||lower3==="model"||lower3==="your-model"||lower3.startsWith("example-")||lower3.includes("placeholder")||lower3.includes("changeme")},"isBlankReview")(rawReview)?"":rawReview;return{primaryModel,subagentModel,smallFastModel:normalizeValue2(rawRouting.smallFastModel)||normalizeValue2(baseRouting.smallFastModel)||"",planModel,exploreModel,generalModel,teamModel,guideModel,reviewModel}}function inferProviderModelFamily(model){let normalizedModel=normalizeValue2(model).toLowerCase();return normalizedModel?normalizedModel.includes("claude")?"claude":normalizedModel.startsWith("gpt-")||normalizedModel.startsWith("o1")||normalizedModel.startsWith("o3")||normalizedModel.startsWith("o4")||normalizedModel.includes("codex")?"openai":normalizedModel.startsWith("gemini-")?"gemini":normalizedModel.startsWith("grok-")?"grok":normalizedModel.startsWith("deepseek-")?"deepseek":normalizedModel.startsWith("qwen")?"qwen":normalizedModel.startsWith("kimi-")?"kimi":normalizedModel.startsWith("swe-")?"swe":normalizedModel.startsWith("glm-")?"glm":normalizedModel.startsWith("lingsi-")?"lingsi":"unknown":"unknown"}function isAnthropicMessagesCompatibleFamily(family){return family==="claude"||family==="deepseek"||family==="qwen"||family==="kimi"||family==="swe"||family==="glm"||family==="lingsi"}function getProviderModeSlotValues(routing){let primaryModel=normalizeValue2(routing?.primaryModel),executionModel=normalizeValue2(routing?.subagentModel)||normalizeValue2(routing?.generalModel)||primaryModel,fastModel=normalizeValue2(routing?.smallFastModel)||executionModel||primaryModel,planModel=normalizeValue2(routing?.planModel)||normalizeValue2(routing?.guideModel)||primaryModel;return{primaryModel,haikuModel:fastModel||executionModel||primaryModel,sonnetModel:executionModel||primaryModel,opusModel:planModel||primaryModel}}function getProviderModeRawSlotValues(routing){return{primary:normalizeValue2(routing?.primaryModel),haiku:normalizeValue2(routing?.smallFastModel),sonnet:normalizeValue2(routing?.subagentModel)||normalizeValue2(routing?.generalModel),opus:normalizeValue2(routing?.planModel)||normalizeValue2(routing?.guideModel)}}function getConfiguredFamilies(routing){let slotValues=getProviderModeSlotValues(routing);return new Set(Object.values(slotValues).map(model=>inferProviderModelFamily(model)).filter(family=>family!=="unknown"))}function localize(language,english,chinese){return language==="zh"?chinese:english}function isProviderModelModeId(value){return VALID_PROVIDER_MODEL_MODES.has(value)}function getProviderModelModeDefinition(modeId){return PROVIDER_MODEL_MODE_DEFINITIONS[modeId]}function getDefaultProviderModelModeForProviderPreset(providerId){return providerId==="anthropic"||providerId==="glm"||providerId==="minimax"||providerId==="openrouter"?"anthropic_native":providerId==="kimi"||providerId==="openai"||providerId==="openrouter_openai"||providerId==="xai"||providerId==="deepseek"||providerId==="gemini"?"openai_native":"hybrid_compatible"}function getProviderModelModeForProfile(profile){let explicitMode=normalizeValue2(profile?.modelMode);if(isProviderModelModeId(explicitMode))return explicitMode;let presetId=normalizeValue2(profile?.modelRouting?.presetId);if(presetId==="claude_code_heritage")return"anthropic_native";if(presetId==="gpt_5_5_max"||presetId==="gpt_5_4_codex"||presetId==="gpt_5_1_stable"||presetId==="gpt_5_3_codex")return"openai_native";let configuredFamilies=getConfiguredFamilies(profile?.modelRouting);return configuredFamilies.size===1?configuredFamilies.has("claude")?"anthropic_native":configuredFamilies.has("openai")?"openai_native":"hybrid_compatible":configuredFamilies.size>1?"hybrid_compatible":getDefaultProviderModelModeForProviderPreset(profile?.providerId)}function getProviderModeSlotDefinition(modeId,slot){return getProviderModelModeDefinition(modeId).slotDefinitions[slot]}function getProviderModeAllowedModels(modeId,slot){return[...getProviderModeSlotDefinition(modeId,slot).allowedModels??[]]}function isProviderModelCompatibleWithMode(modeId,model){let normalizedModel=normalizeValue2(model);if(!normalizedModel)return!1;getProviderModelModeDefinition(modeId);let family=inferProviderModelFamily(normalizedModel);return modeId==="anthropic_native"?isAnthropicMessagesCompatibleFamily(family):modeId==="openai_native"?family==="openai":!0}function getProviderModeAllowedModelsForRole(modeId,role){switch(role){case"primary":return getProviderModeAllowedModels(modeId,"primary");case"subagent":return getProviderModeAllowedModels(modeId,"sonnet");case"fast":return getProviderModeAllowedModels(modeId,"haiku");case"plan":return getProviderModeAllowedModels(modeId,"opus")}}function createDefaultProviderModeSlotValues(modeId){if(modeId==="hybrid_compatible")return{primaryModel:"gpt-5.5",haikuModel:"deepseek-v4-flash",sonnetModel:"deepseek-v4-pro",opusModel:"gpt-5.5"};let definition=getProviderModelModeDefinition(modeId);return{primaryModel:definition.slotDefinitions.primary.defaultModel,haikuModel:definition.slotDefinitions.haiku.defaultModel,sonnetModel:definition.slotDefinitions.sonnet.defaultModel,opusModel:definition.slotDefinitions.opus.defaultModel}}function validateProviderModeRouting(modeId,routing,{language="en",requireExplicitHybridSelections=!1}={}){let definition=getProviderModelModeDefinition(modeId),rawSlotValues=getProviderModeRawSlotValues(routing),issues=[];for(let slot of PROVIDER_MODE_SLOT_ORDER){let model=rawSlotValues[slot],slotDefinition=definition.slotDefinitions[slot],normalizedModel=normalizeValue2(model),allowedModels=slotDefinition.allowedModels??[];if(!normalizedModel){requireExplicitHybridSelections&&slotDefinition.requireExplicitSelection===!0&&issues.push({level:"error",slot,message:localize(language,`${slotDefinition.label} is required for ${definition.label} mode.`,`${definition.label} \u6A21\u5F0F\u4E0B\u5FC5\u987B\u8BBE\u7F6E${slotDefinition.label}\u3002`)});continue}allowedModels.length>0&&!allowedModels.includes(normalizedModel)&&requireExplicitHybridSelections&&issues.push({level:"error",slot,message:localize(language,`${slotDefinition.label} is required to be explicitly set for this hybrid selection flow.`,`${slotDefinition.label} \u5728\u6B64\u7279\u6B8A\u6DF7\u5408\u9009\u62E9\u6D41\u7A0B\u4E2D\u9700\u8981\u660E\u786E\u8BBE\u7F6E\u3002`)})}return issues}function filterProviderModeAutoRepairCandidates(modeId,roles,candidates){let definition=getProviderModelModeDefinition(modeId),uniqueCandidates=[...new Set(candidates.map(candidate=>candidate.trim()))].filter(Boolean).filter(candidate=>isProviderModelCompatibleWithMode(modeId,candidate)),allowedSets=roles.map(role=>getProviderModeAllowedModelsForRole(modeId,role)).filter(models=>models.length>0).map(models=>new Set(models));return allowedSets.length===0?uniqueCandidates:uniqueCandidates.filter(candidate=>allowedSets.every(allowedModels=>allowedModels.has(candidate)))}var PROVIDER_MODE_SLOT_ORDER,PROVIDER_MODEL_MODE_DEFINITIONS,VALID_PROVIDER_MODEL_MODES,init_providerModes=__esm({"src/utils/providerModes.ts"(){__name(normalizeValue2,"normalizeValue");__name(completeProviderRoutingSlotsFromPrimary,"completeProviderRoutingSlotsFromPrimary");PROVIDER_MODE_SLOT_ORDER=["primary","haiku","sonnet","opus"];__name(inferProviderModelFamily,"inferProviderModelFamily");__name(isAnthropicMessagesCompatibleFamily,"isAnthropicMessagesCompatibleFamily");__name(getProviderModeSlotValues,"getProviderModeSlotValues");__name(getProviderModeRawSlotValues,"getProviderModeRawSlotValues");__name(getConfiguredFamilies,"getConfiguredFamilies");PROVIDER_MODEL_MODE_DEFINITIONS={anthropic_native:{id:"anthropic_native",label:"Anthropic-native",description:"Claude-family mode. Keep routing on Anthropic-compatible Claude models and validate native tool calling on that family.",providerPresetIds:["anthropic","openrouter","glm","minimax","custom"],routingPresetIds:["claude_code_heritage"],defaultRoutingPresetId:"claude_code_heritage",slotDefinitions:{primary:{label:"\u542F\u52A8\u6A21\u578B",description:"Main session workhorse model for Anthropic-native mode.",placeholder:"claude-sonnet-4-6",defaultModel:"claude-sonnet-4-6"},haiku:{label:"\u8F7B\u91CF\u6A21\u578B",description:"Fast-response helper slot for Anthropic-native mode.",placeholder:"claude-haiku-4-5",defaultModel:"claude-haiku-4-5"},sonnet:{label:"\u4E2D\u5EA6\u6A21\u578B",description:"Execution slot for day-to-day coding and subagent work in Anthropic-native mode.",placeholder:"claude-sonnet-4-6",defaultModel:"claude-sonnet-4-6"},opus:{label:"\u8BA1\u7B97\u6A21\u578B",description:"Planning and guidance slot for Anthropic-native mode.",placeholder:"claude-opus-4-6",defaultModel:"claude-opus-4-6"}}},openai_native:{id:"openai_native",label:"OpenAI-native",description:"GPT/Codex-family mode. Keep routing on GPT/Codex models and validate the Responses compatibility route on that family.",providerPresetIds:["openai","openrouter_openai","deepseek","kimi","xai","gemini","openrouter","custom"],routingPresetIds:["gpt_5_5_max","gpt_5_4_codex","gpt_5_1_stable","gpt_5_3_codex"],defaultRoutingPresetId:"gpt_5_5_max",slotDefinitions:{primary:{label:"\u542F\u52A8\u6A21\u578B",description:"Main session workhorse model for OpenAI-native mode.",placeholder:"gpt-5.5",defaultModel:"gpt-5.5",recommendedModels:["gpt-5.5","gpt-5.4","gpt-5.3-codex","gpt-5.1"]},haiku:{label:"\u8F7B\u91CF\u6A21\u578B",description:"Fast-response helper slot for OpenAI-native mode.",placeholder:"gpt-5.3-codex",defaultModel:"gpt-5.3-codex",recommendedModels:["gpt-5.3-codex","gpt-5.4","gpt-5.1"]},sonnet:{label:"\u4E2D\u5EA6\u6A21\u578B",description:"Execution slot for day-to-day coding and subagent work in OpenAI-native mode.",placeholder:"gpt-5.5",defaultModel:"gpt-5.5",recommendedModels:["gpt-5.5","gpt-5.3-codex","gpt-5.4","gpt-5.1"]},opus:{label:"\u8BA1\u7B97\u6A21\u578B",description:"Planning and guidance slot for OpenAI-native mode.",placeholder:"gpt-5.5",defaultModel:"gpt-5.5",recommendedModels:["gpt-5.5","gpt-5.4","gpt-5.3-codex","gpt-5.1"]}}},hybrid_compatible:{id:"hybrid_compatible",label:"Hybrid-compatible",description:"Mixed-family mode. Supports all major model families via custom/OpenAI-compatible gateways (gpt-5.*, claude-*, gemini-*, grok-*, kimi-*, swe-*, glm-*, lingsi-* etc.). Model names are matched by prefix for maximum flexibility with user-managed endpoints.",providerPresetIds:["custom","openrouter","openrouter_openai","openai","deepseek","xai","gemini"],routingPresetIds:["custom","gpt55_deepseek_combo","deepseek_gpt_combo","grok_current","deepseek_v4_pro"],defaultRoutingPresetId:"gpt55_deepseek_combo",slotDefinitions:{primary:{label:"\u542F\u52A8\u6A21\u578B",description:"Main session slot. For custom providers: accepts any model string (gpt-5.*, claude-*, gemini-*, grok-* etc.). Prefix matching is used for routing.",placeholder:"gemini-3-5-flash-high",defaultModel:"gpt-5.5",requireExplicitSelection:!1},haiku:{label:"\u8F7B\u91CF\u6A21\u578B",description:"Fast helper slot. For custom providers: any fast model via prefix (e.g. gpt-5.3-*, gemini-3-5-flash, claude-haiku-*)",placeholder:"gemini-3-5-flash",defaultModel:"gpt-5.3-codex",requireExplicitSelection:!1},sonnet:{label:"\u4E2D\u5EA6\u6A21\u578B",description:"Execution slot. For custom providers: any strong model via prefix matching (gpt-5.5-*, claude-sonnet-*, gemini-*, grok-*)",placeholder:"gemini-3-5-flash-high",defaultModel:"claude-sonnet-4-6",requireExplicitSelection:!1},opus:{label:"\u8BA1\u7B97\u6A21\u578B",description:"Planning slot. For custom providers: any top-tier model via prefix (gpt-5.5-*, claude-opus-*, gemini-*, grok-*)",placeholder:"gemini-3-5-flash-high",defaultModel:"claude-opus-4-6",requireExplicitSelection:!1}}}},VALID_PROVIDER_MODEL_MODES=new Set(Object.keys(PROVIDER_MODEL_MODE_DEFINITIONS));__name(localize,"localize");__name(isProviderModelModeId,"isProviderModelModeId");__name(getProviderModelModeDefinition,"getProviderModelModeDefinition");__name(getDefaultProviderModelModeForProviderPreset,"getDefaultProviderModelModeForProviderPreset");__name(getProviderModelModeForProfile,"getProviderModelModeForProfile");__name(getProviderModeSlotDefinition,"getProviderModeSlotDefinition");__name(getProviderModeAllowedModels,"getProviderModeAllowedModels");__name(isProviderModelCompatibleWithMode,"isProviderModelCompatibleWithMode");__name(getProviderModeAllowedModelsForRole,"getProviderModeAllowedModelsForRole");__name(createDefaultProviderModeSlotValues,"createDefaultProviderModeSlotValues");__name(validateProviderModeRouting,"validateProviderModeRouting");__name(filterProviderModeAutoRepairCandidates,"filterProviderModeAutoRepairCandidates")}});function normalizeValue3(value){return String(value||"").trim()}function getConfiguredFamilies2(routing){let models=[routing?.primaryModel,routing?.subagentModel,routing?.smallFastModel,routing?.planModel,routing?.exploreModel,routing?.generalModel,routing?.teamModel,routing?.guideModel];return new Set(models.map(model=>inferProviderModelFamily(model)).filter(family=>family!=="unknown"))}function getConfiguredStrategyId(profile){let strategyId=normalizeValue3(profile?.modelRouting?.presetId);return strategyId==="provider_default"||strategyId==="claude_code_heritage"||strategyId==="gpt_5_5_max"||strategyId==="gpt_5_4_codex"||strategyId==="gpt_5_1_stable"||strategyId==="gpt_5_3_codex"||strategyId==="gpt55_deepseek_combo"||strategyId==="deepseek_gpt_combo"||strategyId==="custom"?strategyId:"unknown"}function inferProviderExperienceFamily(profile){return getProviderModelModeForProfile(profile)}function isGptFamilyModel(model){let normalized=String(model??"").trim().toLowerCase();return!normalized||normalized.includes("codex")?!1:/^gpt-5(?:[.-]|$)/.test(normalized)||/^gpt-6(?:[.-]|$)/.test(normalized)}function getHomogeneousSlotPerformanceWarning(profile,{language="en"}={}){let routing=profile?.modelRouting;if(!routing)return null;let slotValues=getProviderModeSlotValues(routing),configuredModels=[routing.primaryModel,routing.smallFastModel,slotValues.haikuModel,slotValues.sonnetModel,slotValues.opusModel].map(value=>String(value??"").trim()).filter(Boolean);if(configuredModels.length===0)return null;let uniqueModels=[...new Set(configuredModels)];if(uniqueModels.length!==1||!isGptFamilyModel(uniqueModels[0]))return null;let model=uniqueModels[0];return language==="zh"?`[WARN] \u6240\u6709 provider \u69FD\u4F4D\u5F53\u524D\u90FD\u8DEF\u7531\u5230 ${model}\u3002\u5206\u7C7B\u5668\u3001\u538B\u7F29\u548C\u5B50\u4EE3\u7406\u65E0\u6CD5\u4F7F\u7528\u66F4\u5FEB\u6A21\u578B\uFF1B\u5982\u9700\u63D0\u901F\u8BF7\u901A\u8FC7 /provider \u914D\u7F6E\u4E0D\u540C\u69FD\u4F4D\uFF0C\u6216\u7528 /effort \u663E\u5F0F\u9009\u62E9\u63A8\u7406\u7B49\u7EA7\u3002Clavue \u4E0D\u4F1A\u81EA\u52A8\u8986\u76D6\u4F60\u7684 effort \u8BBE\u7F6E\u3002`:`[WARN] Every provider slot currently routes to ${model}. Classifiers, compaction, and subagents cannot use a faster model. Reconfigure slots via /provider or choose an explicit effort tier with /effort. Clavue will not override your effort settings automatically.`}function getProviderLocalValidationWarnings(profile,{language="en"}={}){if(!profile)return[];let modeId=inferProviderExperienceFamily(profile),strategyId=getConfiguredStrategyId(profile),configuredFamilies=getConfiguredFamilies2(profile.modelRouting),warnings=validateProviderModeRouting(modeId,profile.modelRouting,{language,requireExplicitHybridSelections:!1}).filter(issue2=>issue2.level==="warn"||issue2.level==="error").map(issue2=>`[WARN] ${issue2.message}`);strategyId==="claude_code_heritage"&&configuredFamilies.has("openai")&&warnings.push(language==="zh"?"[WARN] Anthropic-native heritage \u8DEF\u7531\u5E94\u4F18\u5148\u4FDD\u6301\u5728 Claude family \u5185\u3002\u82E5\u8981\u5207\u6362\u5230 GPT family\uFF0C\u8BF7\u6539\u7528 OpenAI-native \u7B56\u7565\u3002":"[WARN] Anthropic-native heritage routing should stay in the Claude family. Switch to an OpenAI-native strategy if the GPT family is intentional."),(strategyId==="gpt_5_4_codex"||strategyId==="gpt_5_1_stable"||strategyId==="gpt_5_3_codex")&&configuredFamilies.has("claude")&&warnings.push(language==="zh"?"[WARN] OpenAI-native \u8DEF\u7531\u7B56\u7565\u5F53\u524D\u6DF7\u5165\u4E86 Claude family \u6A21\u578B\u3002\u82E5\u8FD9\u662F\u6709\u610F\u884C\u4E3A\uFF0C\u8BF7\u6539\u7528 Custom routing\u3002":"[WARN] The OpenAI-native routing strategy is mixed with Claude-family models. Use Custom routing if this blend is intentional."),strategyId==="custom"&&configuredFamilies.size>1&&warnings.push(language==="zh"?"[WARN] Custom routing \u5F53\u524D\u8DE8\u8D8A\u591A\u4E2A model family\u3002\u8BF7\u5728\u4F9D\u8D56\u539F\u751F\u5DE5\u4F5C\u6D41\u524D\u91CD\u65B0\u9A8C\u8BC1\u8FD9\u6761\u8DEF\u7531\u3002":"[WARN] Custom routing spans multiple model families. Revalidate the route before relying on native workflows."),normalizeValue3(profile.providerId)==="anthropic"&&modeId==="openai_native"&&warnings.push(language==="zh"?"[WARN] \u5F53\u524D\u4F7F\u7528\u5B98\u65B9 Anthropic preset\uFF0C\u4F46\u8DEF\u7531\u7B56\u7565\u662F OpenAI-native\u3002\u8FD9\u901A\u5E38\u610F\u5473\u7740 provider preset \u4E0E\u6A21\u578B\u5BB6\u65CF\u610F\u56FE\u4E0D\u4E00\u81F4\u3002":"[WARN] The official Anthropic preset is paired with an OpenAI-native routing strategy. This usually means the provider preset and model-family intent are misaligned.");let homogeneousSlotWarning=getHomogeneousSlotPerformanceWarning(profile,{language});return homogeneousSlotWarning&&warnings.push(homogeneousSlotWarning),warnings}var CURRENT_PROVIDER_PROFILE_ID,init_providerProfileMetadata=__esm({"src/utils/providerProfileMetadata.ts"(){init_providerModes();CURRENT_PROVIDER_PROFILE_ID="__current_provider__";__name(normalizeValue3,"normalizeValue");__name(getConfiguredFamilies2,"getConfiguredFamilies");__name(getConfiguredStrategyId,"getConfiguredStrategyId");__name(inferProviderExperienceFamily,"inferProviderExperienceFamily");__name(isGptFamilyModel,"isGptFamilyModel");__name(getHomogeneousSlotPerformanceWarning,"getHomogeneousSlotPerformanceWarning");__name(getProviderLocalValidationWarnings,"getProviderLocalValidationWarnings")}});function isPlaceholderProviderCredential(value){let normalizedValue=value.trim().toLowerCase();return normalizedValue?PLACEHOLDER_PROVIDER_CREDENTIAL_EXACT_VALUES.has(normalizedValue)?!0:/^your[-_\s]?[a-z0-9_-]*(api[-_\s]?key|auth[-_\s]?token|key|token)[a-z0-9_-]*$/iu.test(normalizedValue)||/^(sk|sk-ant|sk-proj|sk-or|sk-[a-z0-9_-]+)[-_]?your[-_a-z0-9]*here$/iu.test(normalizedValue)||/^(sk|sk-ant|sk-proj|sk-or|sk-[a-z0-9_-]+)[-_]?(test|example|placeholder|dummy|fake)$/iu.test(normalizedValue)||/^(test|example|placeholder|dummy|fake)[-_]?(api[-_]?key|auth[-_]?token|token)$/iu.test(normalizedValue):!1}var PLACEHOLDER_PROVIDER_CREDENTIAL_EXACT_VALUES,init_providerCredentials=__esm({"src/utils/providerCredentials.ts"(){PLACEHOLDER_PROVIDER_CREDENTIAL_EXACT_VALUES=new Set(["your_api_key","your-api-key","your_api_key_here","your-api-key-here","your_key","your-key","your_key_here","your-key-here","your api key","your api key here","your key","your key here","your_token","your-token","your_token_here","your-token-here","your auth token","your auth token here","api_key","api-key","api_key_here","api-key-here","auth_token","auth-token","auth_token_here","auth-token-here","token_here","token-here","placeholder","<api_key>","<api-key>","<your_api_key>","<your-api-key>","<token>","<your_token>","<your-token>"]);__name(isPlaceholderProviderCredential,"isPlaceholderProviderCredential")}});function normalizeProviderBaseUrl(value){let trimmedValue=String(value??"").trim();return trimmedValue?trimmedValue.replace(/\/v1(?:\/messages|\/responses)?\/?$/i,"").replace(/\/+$/,""):""}function extractRawProviderHost(value){let match=String(value).trim().match(/^(?:https?:\/\/)?([^/:?#\s]+)/i);return String(match?.[1]??"").trim().toLowerCase().replace(/^\[|\]$/g,"")}function isValidIpv4Host(host){return/^\d{1,3}(?:\.\d{1,3}){3}$/.test(host)?host.split(".").every(part=>{let n2=Number(part);return Number.isInteger(n2)&&n2>=0&&n2<=255}):!1}function validateProviderBaseUrl(value){let normalized=normalizeProviderBaseUrl(value);if(!normalized)return{ok:!1,normalized:"",error:"Provider base URL is required (e.g. https://api.example.com)."};if(/^[a-z][a-z0-9+.-]*:\/\//i.test(normalized)&&!/^https?:\/\//i.test(normalized))return{ok:!1,normalized,error:`Provider base URL must use http or https (got ${normalized.split("://")[0]}://).`};if(!/^https?:\/\//i.test(normalized)){let bareHost=extractRawProviderHost(normalized);if(!bareHost.includes(".")&&bareHost!=="localhost"&&!isValidIpv4Host(bareHost))return{ok:!1,normalized,error:"API URL must start with http:// or https://, or be a full domain (e.g. api.example.com)."};normalized=`https://${normalized}`}let rawHost=extractRawProviderHost(normalized);if(!rawHost)return{ok:!1,normalized,error:"Provider base URL is missing a hostname."};if(/^\d+$/.test(rawHost))return{ok:!1,normalized,error:`Provider base URL host looks truncated (${rawHost}). Use a full hostname or IPv4 address.`};if(/^\d+(?:\.\d+){1,2}$/.test(rawHost))return{ok:!1,normalized,error:`Provider base URL host looks like an incomplete IP (${rawHost}).`};let parsed;try{parsed=new URL(normalized)}catch{return{ok:!1,normalized,error:`Invalid provider base URL: ${normalized}`}}if(parsed.protocol!=="http:"&&parsed.protocol!=="https:")return{ok:!1,normalized,error:`Provider base URL must use http or https (got ${parsed.protocol}).`};let host=String(parsed.hostname||"").trim().toLowerCase();return host?isValidIpv4Host(rawHost)||isValidIpv4Host(host)?{ok:!0,normalized}:host==="localhost"||host==="::1"||rawHost==="localhost"?{ok:!0,normalized}:!/[a-z]/i.test(rawHost)||rawHost.length<2?{ok:!1,normalized,error:`Provider base URL host is not a valid hostname (${rawHost}).`}:rawHost.startsWith(".")||rawHost.endsWith(".")||rawHost.includes("..")?{ok:!1,normalized,error:`Provider base URL host is malformed (${rawHost}).`}:{ok:!0,normalized}:{ok:!1,normalized,error:"Provider base URL is missing a hostname."}}function assertValidProviderBaseUrl(value){let result2=validateProviderBaseUrl(value);if(!result2.ok)throw new Error(result2.error||"Invalid provider base URL.");return result2.normalized}var init_providerRuntimeCore=__esm({"src/utils/providerRuntimeCore.ts"(){__name(normalizeProviderBaseUrl,"normalizeProviderBaseUrl");__name(extractRawProviderHost,"extractRawProviderHost");__name(isValidIpv4Host,"isValidIpv4Host");__name(validateProviderBaseUrl,"validateProviderBaseUrl");__name(assertValidProviderBaseUrl,"assertValidProviderBaseUrl")}});function applyModelSlot(profile,model,slot,dependencies){if(!model)return;let prefix=`ANTHROPIC_DEFAULT_${slot.toUpperCase()}_MODEL`;process.env[prefix]=model;let name=dependencies.getModelDisplayName(model,slot),description=dependencies.getModelDescription(model,slot);name&&(process.env[`${prefix}_NAME`]=name),description&&(process.env[`${prefix}_DESCRIPTION`]=description);let capabilities=dependencies.serializeCapabilities(profile,model);capabilities&&(process.env[`${prefix}_SUPPORTED_CAPABILITIES`]=capabilities)}function applyProviderProfileToProcessEnv(profile,dependencies){for(let key of providerEnvKeys)delete process.env[key];if(dependencies.clearCaches(),!profile)return;let baseUrlValidation=dependencies.validateBaseUrl(profile.baseUrl);if(!baseUrlValidation.ok)throw new Error(baseUrlValidation.error||"Invalid provider base URL \u2014 refusing to apply route.");process.env.CLAVUE_BASE_URL=baseUrlValidation.normalized,process.env.ANTHROPIC_BASE_URL=baseUrlValidation.normalized,process.env.CLAVUE_API_DIALECT=dependencies.normalizeDialect(profile),profile.authType==="auth_token"?(process.env.CLAVUE_AUTH_TOKEN=profile.credential,process.env.ANTHROPIC_AUTH_TOKEN=profile.credential,process.env.CLAVUE_API_KEY=profile.credential,process.env.ANTHROPIC_API_KEY=profile.credential):(process.env.CLAVUE_API_KEY=profile.credential,process.env.ANTHROPIC_API_KEY=profile.credential);let routing=profile.modelRouting;if(routing.primaryModel){process.env.ANTHROPIC_MODEL=routing.primaryModel,process.env.ANTHROPIC_CUSTOM_MODEL_OPTION=routing.primaryModel;let name=dependencies.getModelDisplayName(routing.primaryModel,"primary"),description=dependencies.getModelDescription(routing.primaryModel,"primary");name&&(process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME=name),description&&(process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION=description)}routing.smallFastModel&&(process.env.ANTHROPIC_SMALL_FAST_MODEL=routing.smallFastModel),routing.subagentModel&&routing.subagentModel!=="inherit"&&(process.env.CLAUDE_CODE_SUBAGENT_MODEL=routing.subagentModel);let slots=dependencies.getSlotDefaults(routing);applyModelSlot(profile,slots.opusModel,"opus",dependencies),applyModelSlot(profile,slots.sonnetModel,"sonnet",dependencies),applyModelSlot(profile,slots.haikuModel,"haiku",dependencies)}var providerEnvKeys,init_providerProfileProcessEnv=__esm({"src/utils/providerProfileProcessEnv.ts"(){providerEnvKeys=["CLAVUE_API_KEY","CLAVUE_AUTH_TOKEN","CLAVUE_BASE_URL","ANTHROPIC_API_KEY","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_SMALL_FAST_MODEL","ANTHROPIC_CUSTOM_MODEL_OPTION","ANTHROPIC_CUSTOM_MODEL_OPTION_NAME","ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL_NAME","ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL_NAME","ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME","ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES","CLAUDE_CODE_SUBAGENT_MODEL","CLAVUE_API_DIALECT","MYCLAUDE_API_DIALECT","CLAUDE_CODE_API_DIALECT","CLAUDE_CODE_PROVIDER_DIALECT","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX","CLAUDE_CODE_USE_FOUNDRY"];__name(applyModelSlot,"applyModelSlot");__name(applyProviderProfileToProcessEnv,"applyProviderProfileToProcessEnv")}});function assessToolsReadyFromCapability(input){if(input.supportsTools===!0)return{ready:!0,reason:"capability cache marks tools supported",code:"ready",source:"capability_cache"};if(input.supportsTools===!1)return{ready:!1,reason:"capability cache marks tools unsupported \u2014 not a coding hand",code:"not_ready_no_tool_capability",source:"capability_cache"};let caps=(input.capabilities??[]).map(c3=>String(c3||"").trim()).filter(Boolean);if(caps.some(c3=>TOOL_CAP_RE.test(c3)))return{ready:!0,reason:`capabilities include tool channel (${caps.filter(c3=>TOOL_CAP_RE.test(c3)).join(",")})`,code:"ready",source:"capability_cache"};let model=String(input.model||"").trim().toLowerCase();return/^(claude|gpt-5|gpt-4o|o[1-4]|grok|codex|deepseek|glm|kimi|minimax)/i.test(model)?{ready:!0,reason:`optimistic tools-ready for known coding model family (${model||"unknown"})`,code:"ready_optimistic",source:"optimistic_profile",warn:"no capability stamp \u2014 verify gateway tool_calls on first implement turn"}:input.codingHand===!0?{ready:!1,reason:"coding hand selected but no tool_use capability evidence \u2014 refuse chat-only implement",code:"not_ready_no_tool_capability",source:"capability_cache"}:{ready:!1,reason:"no tool capability evidence",code:"not_ready_no_tool_capability",source:"unknown"}}function assessToolsReadyFromHealth(input){let schema=Math.max(0,Number(input.toolSchemaFailures??0)||0),call=Math.max(0,Number(input.toolCallFailures??0)||0),result2=Math.max(0,Number(input.toolResultFailures??0)||0),recoveries=Math.max(0,Number(input.recoveries??0)||0),events=Math.max(0,Number(input.eventCount??0)||0);return schema>=2&&schema>recoveries?{ready:!1,reason:`tool schema translation failed ${schema}\xD7 in window \u2014 gateway not tools-ready`,code:"not_ready_tool_schema_failures",source:"health_ledger"}:call>=3&&call>recoveries?{ready:!1,reason:`tool_call malformed ${call}\xD7 in window \u2014 model/gateway cannot emit tools`,code:"not_ready_tool_call_failures",source:"health_ledger"}:result2>=3&&result2>recoveries?{ready:!1,reason:`tool_result pairing failed ${result2}\xD7 \u2014 protocol broken for tools`,code:"not_ready_tool_call_failures",source:"health_ledger"}:events===0?{ready:!0,reason:"no health failures observed",code:"ready",source:"health_ledger"}:{ready:!0,reason:"health window within tools-ready tolerance",code:"ready",source:"health_ledger"}}function assessToolsReadyFromTranscript(input){if(input.freestyleCompleteWithoutTools===!0)return{ready:!1,reason:"claimed complete without tool_use \u2014 chat-only persona, not coding hand",code:"not_ready_chat_only_persona",source:"transcript"};let n2=Math.max(0,Number(input.implementTurnsWithoutTools??0)||0);return n2>=2?{ready:!1,reason:`${n2} implement turns without tool_use \u2014 gateway/model not tools-ready`,code:"not_ready_chat_only_persona",source:"transcript"}:{ready:!0,reason:"transcript does not show chat-only implement",code:"ready",source:"transcript"}}function assessToolsReady(input){let parts=[];if(input.capability&&parts.push(assessToolsReadyFromCapability(input.capability)),input.health&&parts.push(assessToolsReadyFromHealth(input.health)),input.transcript&&parts.push(assessToolsReadyFromTranscript(input.transcript)),parts.length===0)return{ready:!1,reason:"no tools-ready evidence provided",code:"unknown",source:"unknown"};let hardFail=parts.find(p=>!p.ready&&p.code!=="unknown");if(hardFail)return hardFail;let ready=parts.find(p=>p.ready);if(ready){let warn=parts.map(p=>p.warn).filter(Boolean).join(" \xB7 ")||void 0;return warn?{...ready,warn}:ready}return parts[parts.length-1]}var TOOL_CAP_RE,init_toolsReadyProbe=__esm({"src/runtime/toolsReadyProbe.ts"(){TOOL_CAP_RE=/^(tool_use|tools|function_call(?:ing)?|native_tools|tool_calls)$/i;__name(assessToolsReadyFromCapability,"assessToolsReadyFromCapability");__name(assessToolsReadyFromHealth,"assessToolsReadyFromHealth");__name(assessToolsReadyFromTranscript,"assessToolsReadyFromTranscript");__name(assessToolsReady,"assessToolsReady")}});function trimEnv(value){return String(value??"").trim()}function getClavueApiKey(env5=process.env){let primary=trimEnv(env5[CLAVUE_API_KEY_ENV]);return primary||trimEnv(env5.ANTHROPIC_API_KEY)||void 0}function getClavueAuthToken(env5=process.env){let primary=trimEnv(env5[CLAVUE_AUTH_TOKEN_ENV]);return primary||trimEnv(env5.ANTHROPIC_AUTH_TOKEN)||void 0}function hasClavueAuthToken(env5=process.env){return!!getClavueAuthToken(env5)}function normalizeClavueBrandEnv(env5=process.env){let clavueKey=trimEnv(env5[CLAVUE_API_KEY_ENV]),clavueAuth=trimEnv(env5[CLAVUE_AUTH_TOKEN_ENV]),clavueBase=trimEnv(env5[CLAVUE_BASE_URL_ENV]),anthKey=trimEnv(env5.ANTHROPIC_API_KEY),anthAuth=trimEnv(env5.ANTHROPIC_AUTH_TOKEN),anthBase=trimEnv(env5.ANTHROPIC_BASE_URL);clavueKey?(env5[CLAVUE_API_KEY_ENV]=clavueKey,(!anthKey||anthKey!==clavueKey)&&(env5.ANTHROPIC_API_KEY=clavueKey)):anthKey&&(env5[CLAVUE_API_KEY_ENV]=anthKey),clavueAuth?(env5[CLAVUE_AUTH_TOKEN_ENV]=clavueAuth,(!anthAuth||anthAuth!==clavueAuth)&&(env5.ANTHROPIC_AUTH_TOKEN=clavueAuth),!clavueKey&&!anthKey&&(env5[CLAVUE_API_KEY_ENV]=clavueAuth,env5.ANTHROPIC_API_KEY=clavueAuth)):anthAuth&&(env5[CLAVUE_AUTH_TOKEN_ENV]=anthAuth,!clavueKey&&!anthKey&&(env5[CLAVUE_API_KEY_ENV]=anthAuth,env5.ANTHROPIC_API_KEY=anthAuth)),clavueBase?(env5[CLAVUE_BASE_URL_ENV]=clavueBase,(!anthBase||anthBase!==clavueBase)&&(env5.ANTHROPIC_BASE_URL=clavueBase)):anthBase&&(env5[CLAVUE_BASE_URL_ENV]=anthBase)}function clavueAuthRequiredMessage(){return"CLAVUE_API_KEY or CLAVUE_AUTH_TOKEN is required (Cloud login: clavue account / www.clavue.com \u2192 api.clavue.com)"}var CLAVUE_API_KEY_ENV,CLAVUE_AUTH_TOKEN_ENV,CLAVUE_BASE_URL_ENV,CLAVUE_OFFICIAL_API_ORIGIN,CLAVUE_OFFICIAL_WEB_ORIGIN,init_clavueEnv=__esm({"src/utils/clavueEnv.ts"(){CLAVUE_API_KEY_ENV="CLAVUE_API_KEY",CLAVUE_AUTH_TOKEN_ENV="CLAVUE_AUTH_TOKEN",CLAVUE_BASE_URL_ENV="CLAVUE_BASE_URL",CLAVUE_OFFICIAL_API_ORIGIN="https://api.clavue.com",CLAVUE_OFFICIAL_WEB_ORIGIN="https://www.clavue.com";__name(trimEnv,"trimEnv");__name(getClavueApiKey,"getClavueApiKey");__name(getClavueAuthToken,"getClavueAuthToken");__name(hasClavueAuthToken,"hasClavueAuthToken");__name(normalizeClavueBrandEnv,"normalizeClavueBrandEnv");__name(clavueAuthRequiredMessage,"clavueAuthRequiredMessage")}});var config_exports={};__export(config_exports,{MEMBERSHIP_CLIENT_ID:()=>MEMBERSHIP_CLIENT_ID,MEMBERSHIP_CLOUD_PROFILE_ID:()=>MEMBERSHIP_CLOUD_PROFILE_ID,MEMBERSHIP_CLOUD_PROFILE_NAME:()=>MEMBERSHIP_CLOUD_PROFILE_NAME,MEMBERSHIP_DEFAULT_API_BASE:()=>MEMBERSHIP_DEFAULT_API_BASE,MEMBERSHIP_DEFAULT_FAST_MODEL:()=>MEMBERSHIP_DEFAULT_FAST_MODEL,MEMBERSHIP_DEFAULT_PLAN_MODEL:()=>MEMBERSHIP_DEFAULT_PLAN_MODEL,MEMBERSHIP_DEFAULT_PREMIUM_MODEL:()=>MEMBERSHIP_DEFAULT_PREMIUM_MODEL,MEMBERSHIP_DEFAULT_PRIMARY_MODEL:()=>MEMBERSHIP_DEFAULT_PRIMARY_MODEL,MEMBERSHIP_DEFAULT_REVIEW_MODEL:()=>MEMBERSHIP_DEFAULT_REVIEW_MODEL,MEMBERSHIP_MUSIC_PRODUCT_MODEL:()=>MEMBERSHIP_MUSIC_PRODUCT_MODEL,MEMBERSHIP_MUSIC_UPSTREAM_MODEL:()=>MEMBERSHIP_MUSIC_UPSTREAM_MODEL,MEMBERSHIP_OCR_PRODUCT_MODEL:()=>MEMBERSHIP_OCR_PRODUCT_MODEL,MEMBERSHIP_OCR_UPSTREAM_MODEL:()=>MEMBERSHIP_OCR_UPSTREAM_MODEL,MEMBERSHIP_OPENAI_BASE_URL:()=>MEMBERSHIP_OPENAI_BASE_URL,MEMBERSHIP_PRODUCT_MODELS:()=>MEMBERSHIP_PRODUCT_MODELS,MEMBERSHIP_WEB_ORIGIN:()=>MEMBERSHIP_WEB_ORIGIN,getMembershipBillingSource:()=>getMembershipBillingSource,isClavueCloudMembershipBaseUrl:()=>isClavueCloudMembershipBaseUrl,isClavueCloudProfileRouteId:()=>isClavueCloudProfileRouteId,isMembershipProductModel:()=>isMembershipProductModel,membershipAccountWebUrl:()=>membershipAccountWebUrl,membershipAuthUrl:()=>membershipAuthUrl,membershipPricingWebUrl:()=>membershipPricingWebUrl});function membershipAuthUrl(path10){let base=MEMBERSHIP_DEFAULT_API_BASE.replace(/\/+$/,""),p=path10.startsWith("/")?path10:`/${path10}`;return`${base}${p}`}function membershipAccountWebUrl(locale="zh"){let origin2=MEMBERSHIP_WEB_ORIGIN.replace(/\/+$/,"");return locale==="zh"?`${origin2}/zh/account`:`${origin2}/account`}function membershipPricingWebUrl(locale="zh"){let origin2=MEMBERSHIP_WEB_ORIGIN.replace(/\/+$/,"");return locale==="zh"?`${origin2}/zh/pricing`:`${origin2}/pricing`}function isMembershipProductModel(model){let m2=String(model??"").trim().toLowerCase();return m2?MEMBERSHIP_PRODUCT_MODELS.includes(m2):!1}function getMembershipBillingSource(baseUrl){return isClavueCloudMembershipBaseUrl(baseUrl)?"official":"third_party"}function isClavueCloudMembershipBaseUrl(baseUrl){let raw=String(baseUrl??"").trim();if(!raw)return!1;let hostnameOf2=__name(value=>{try{let withScheme=/:\/\//.test(value)?value:`https://${value}`;return new URL(withScheme).hostname.toLowerCase()}catch{return null}},"hostnameOf"),host=hostnameOf2(raw);if(!host)return!1;let configuredOfficialHost=hostnameOf2(MEMBERSHIP_DEFAULT_API_BASE);return!!(host==="api.clavue.com"||host==="www.clavue.com"||configuredOfficialHost&&host===configuredOfficialHost)}function isClavueCloudProfileRouteId(routeId){let id=String(routeId??"").trim().toLowerCase();return id?id===MEMBERSHIP_CLOUD_PROFILE_ID||id.startsWith(`${MEMBERSHIP_CLOUD_PROFILE_ID}:`):!1}var MEMBERSHIP_DEFAULT_API_BASE,MEMBERSHIP_WEB_ORIGIN,MEMBERSHIP_CLOUD_PROFILE_ID,MEMBERSHIP_CLOUD_PROFILE_NAME,MEMBERSHIP_OPENAI_BASE_URL,MEMBERSHIP_PRODUCT_MODELS,MEMBERSHIP_OCR_PRODUCT_MODEL,MEMBERSHIP_MUSIC_PRODUCT_MODEL,MEMBERSHIP_OCR_UPSTREAM_MODEL,MEMBERSHIP_MUSIC_UPSTREAM_MODEL,MEMBERSHIP_DEFAULT_PRIMARY_MODEL,MEMBERSHIP_DEFAULT_FAST_MODEL,MEMBERSHIP_DEFAULT_PREMIUM_MODEL,MEMBERSHIP_DEFAULT_PLAN_MODEL,MEMBERSHIP_DEFAULT_REVIEW_MODEL,MEMBERSHIP_CLIENT_ID,init_config=__esm({"src/services/membership/config.ts"(){init_clavueEnv();MEMBERSHIP_DEFAULT_API_BASE=process.env.CLAVUE_MEMBERSHIP_API_BASE?.trim()||process.env.CLAVUE_BASE_URL?.trim()||CLAVUE_OFFICIAL_API_ORIGIN,MEMBERSHIP_WEB_ORIGIN=process.env.CLAVUE_MEMBERSHIP_WEB_ORIGIN?.trim()||CLAVUE_OFFICIAL_WEB_ORIGIN,MEMBERSHIP_CLOUD_PROFILE_ID="clavue-cloud",MEMBERSHIP_CLOUD_PROFILE_NAME="Clavue Cloud",MEMBERSHIP_OPENAI_BASE_URL=MEMBERSHIP_DEFAULT_API_BASE,MEMBERSHIP_PRODUCT_MODELS=["auto","clavue","clavue-2.1","clavue-2.1-fast","clavue-2.1-pro","clavue-2.1-rev","clavue-2.1-search","clavue-img","clavue-ocr","clavue-music"],MEMBERSHIP_OCR_PRODUCT_MODEL="clavue-ocr",MEMBERSHIP_MUSIC_PRODUCT_MODEL="clavue-music",MEMBERSHIP_OCR_UPSTREAM_MODEL="PaddleOCR-VL-1.6-0.9B",MEMBERSHIP_MUSIC_UPSTREAM_MODEL="minimax-music3",MEMBERSHIP_DEFAULT_PRIMARY_MODEL="auto",MEMBERSHIP_DEFAULT_FAST_MODEL="clavue-2.1-fast",MEMBERSHIP_DEFAULT_PREMIUM_MODEL="clavue-2.1",MEMBERSHIP_DEFAULT_PLAN_MODEL=process.env.CLAVUE_OFFICIAL_PLAN_MODEL?.trim()||"clavue-2.1-pro",MEMBERSHIP_DEFAULT_REVIEW_MODEL=process.env.CLAVUE_OFFICIAL_REVIEW_MODEL?.trim()||"clavue-2.1-rev",MEMBERSHIP_CLIENT_ID="clavue-cli";__name(membershipAuthUrl,"membershipAuthUrl");__name(membershipAccountWebUrl,"membershipAccountWebUrl");__name(membershipPricingWebUrl,"membershipPricingWebUrl");__name(isMembershipProductModel,"isMembershipProductModel");__name(getMembershipBillingSource,"getMembershipBillingSource");__name(isClavueCloudMembershipBaseUrl,"isClavueCloudMembershipBaseUrl");__name(isClavueCloudProfileRouteId,"isClavueCloudProfileRouteId")}});var productModelCapabilities_exports={};__export(productModelCapabilities_exports,{ABSENT_UPSTREAM_IDS:()=>ABSENT_UPSTREAM_IDS,MEMBERSHIP_PRODUCT_CAPABILITIES:()=>MEMBERSHIP_PRODUCT_CAPABILITIES,OFFICIAL_OVERFLOW_AT_TOKENS:()=>OFFICIAL_OVERFLOW_AT_TOKENS,OFFICIAL_OVERFLOW_UPSTREAM:()=>OFFICIAL_OVERFLOW_UPSTREAM,TOOL_INCAPABLE_UPSTREAM_IDS:()=>TOOL_INCAPABLE_UPSTREAM_IDS,UNCONFIRMED_UPSTREAM_WINDOWS:()=>UNCONFIRMED_UPSTREAM_WINDOWS,getMembershipModelContextWindow:()=>getMembershipModelContextWindow,getMembershipModelDefaultOutputTokens:()=>getMembershipModelDefaultOutputTokens,getMembershipModelPromptBudget:()=>getMembershipModelPromptBudget,getMembershipProductCapability:()=>getMembershipProductCapability,getUpstreamContextWindow:()=>getUpstreamContextWindow,isOfficialCloudRouteActive:()=>isOfficialCloudRouteActive,isOfficialOverflowUpstream:()=>isOfficialOverflowUpstream,resolveOfficialContextOverflow:()=>resolveOfficialContextOverflow,resolveOfficialMembershipWireModel:()=>resolveOfficialMembershipWireModel,shouldPinOfficialLaunchModel:()=>shouldPinOfficialLaunchModel});function stripDecorators(model){return String(model||"").trim().replace(/\[1m\]/gi,"").replace(/^models\//,"").trim()}function shouldPinOfficialLaunchModel(launchRequested,requestModel){let launch=String(launchRequested||"").trim().toLowerCase(),current=String(requestModel||"").trim().toLowerCase();if(!launch||current===launch||!/^(?:auto|clavue(?:-[a-z0-9.-]+)?)$/i.test(launch)||isOfficialOverflowUpstream(current))return!1;if(isMembershipProductModel(current)){let launchWin=getMembershipModelContextWindow(launch)??0;if((getMembershipModelContextWindow(current)??0)>launchWin)return!1}return!0}function isOfficialOverflowUpstream(model){return stripDecorators(String(model||""))===OFFICIAL_OVERFLOW_UPSTREAM}function resolveOfficialContextOverflow(productId,requiredTokens){let cap=getMembershipProductCapability(productId);if(!cap?.overflowUpstreamModel||!cap.overflowAtTokens)return null;let need=Number(requiredTokens);if(!Number.isFinite(need)||need<=cap.overflowAtTokens)return null;let window2=cap.overflowContextWindow??getUpstreamContextWindow(cap.overflowUpstreamModel)??0;return window2<=cap.contextWindow?null:{model:cap.overflowUpstreamModel,window:window2,productId:cap.productId}}function resolveOfficialMembershipWireModel(model,launchProduct){let bare=stripDecorators(model);if(!isOfficialOverflowUpstream(bare))return bare;let launch=stripDecorators(launchProduct||""),launchCap=getMembershipProductCapability(launch);if(launchCap?.overflowUpstreamModel===bare)return launchCap.productId;if(!launch)try{let{getModelLaunchMeta:getModelLaunchMeta2}=(init_state(),__toCommonJS(state_exports)),fromLaunch=stripDecorators(String(getModelLaunchMeta2?.()?.requested||"")),fromCap=getMembershipProductCapability(fromLaunch);if(fromCap?.overflowUpstreamModel===bare)return fromCap.productId}catch{}return MEMBERSHIP_PRODUCT_CAPABILITIES.find(c3=>c3.overflowUpstreamModel===bare)?.productId??"auto"}function isOfficialCloudRouteActive(){try{let{getResolvedCurrentProviderProfile:getResolvedCurrentProviderProfile2}=(init_providerProfiles(),__toCommonJS(providerProfiles_exports)),{isClavueCloudMembershipBaseUrl:isClavueCloudMembershipBaseUrl2}=(init_config(),__toCommonJS(config_exports)),cur=getResolvedCurrentProviderProfile2?.();return!!isClavueCloudMembershipBaseUrl2?.(cur?.baseUrl)}catch{return!1}}function getUpstreamContextWindow(upstreamModel){let bare=String(upstreamModel||"").trim();return UPSTREAM_CONTEXT[bare]??UPSTREAM_CONTEXT[bare.toLowerCase()]}function getMembershipProductCapability(model){let bare=stripDecorators(String(model||""));return bare?byProduct.get(bare.toLowerCase())??null:null}function officialWindowOverride(productOrUpstreamId){let raw=String(process.env.CLAVUE_OFFICIAL_WINDOW??"").trim();if(!raw)return;let wanted=productOrUpstreamId.trim().toLowerCase();for(let pair of raw.split(/[,;]/)){let eq2=pair.indexOf("=");if(eq2<0||pair.slice(0,eq2).trim().toLowerCase()!==wanted)continue;let window2=Number.parseInt(pair.slice(eq2+1).trim(),10);return Number.isFinite(window2)&&window2>=1e3?window2:void 0}}function getMembershipModelContextWindow(model,options){let bare=stripDecorators(String(model||""));if(!bare)return;let product=byProduct.get(bare.toLowerCase());if(product)return officialWindowOverride(bare)??product.contextWindow;if(isMembershipProductModel(bare))return 8e3;if(options?.forceCloudUpstream===!0||isOfficialCloudRouteActive())return officialWindowOverride(bare)??UPSTREAM_CONTEXT[bare]??UPSTREAM_CONTEXT[bare.toLowerCase()]}function getMembershipModelDefaultOutputTokens(model){return getMembershipProductCapability(model)?.defaultOutputTokens}function getMembershipModelPromptBudget(model){let cap=getMembershipProductCapability(model);if(cap)return Math.max(1e3,cap.contextWindow-cap.defaultOutputTokens)}var OFFICIAL_OVERFLOW_UPSTREAM,OFFICIAL_OVERFLOW_AT_TOKENS,MEMBERSHIP_PRODUCT_CAPABILITIES,UNCONFIRMED_UPSTREAM_WINDOWS,ABSENT_UPSTREAM_IDS,TOOL_INCAPABLE_UPSTREAM_IDS,UPSTREAM_CONTEXT,byProduct,init_productModelCapabilities=__esm({"src/services/membership/productModelCapabilities.ts"(){init_config();OFFICIAL_OVERFLOW_UPSTREAM="grok-4.20-0309-non-reasoning-console",OFFICIAL_OVERFLOW_AT_TOKENS=32e3,MEMBERSHIP_PRODUCT_CAPABILITIES=[{productId:"auto",upstreamModel:"qwen3.6:35b-a3b",overflowUpstreamModel:OFFICIAL_OVERFLOW_UPSTREAM,overflowAtTokens:OFFICIAL_OVERFLOW_AT_TOKENS,overflowContextWindow:256e3,pool:"balanced",contextWindow:32e3,defaultOutputTokens:4e3,maxOutputTokens:8e3,roles:["primary","general","team"]},{productId:"clavue-2.1-fast",upstreamModel:"qwen3.6:35b-a3b",overflowUpstreamModel:OFFICIAL_OVERFLOW_UPSTREAM,overflowAtTokens:OFFICIAL_OVERFLOW_AT_TOKENS,overflowContextWindow:256e3,pool:"fast",contextWindow:32e3,defaultOutputTokens:3e3,maxOutputTokens:6e3,roles:["light","scout","explore","subagent","guide","smallFast"]},{productId:"clavue",upstreamModel:"qwen3.6:27b",fallbackUpstreamModels:["deepseek-v4-flash"],overflowUpstreamModel:OFFICIAL_OVERFLOW_UPSTREAM,overflowAtTokens:OFFICIAL_OVERFLOW_AT_TOKENS,overflowContextWindow:256e3,pool:"premium",contextWindow:32e3,defaultOutputTokens:2e3,maxOutputTokens:4e3,roles:["general"]},{productId:"clavue-2.1",upstreamModel:"qwen3.6:27b",fallbackUpstreamModels:["deepseek-v4-flash"],overflowUpstreamModel:OFFICIAL_OVERFLOW_UPSTREAM,overflowAtTokens:OFFICIAL_OVERFLOW_AT_TOKENS,overflowContextWindow:256e3,pool:"premium",contextWindow:32e3,defaultOutputTokens:2e3,maxOutputTokens:4e3,roles:["general"]},{productId:"clavue-2.1-pro",upstreamModel:"deepseek-v4-flash",pool:"premium",primaryContextWindow:1e6,contextWindow:128e3,defaultOutputTokens:2e3,maxOutputTokens:4e3,roles:["plan"]},{productId:"clavue-2.1-rev",upstreamModel:"deepseek-v4-pro",pool:"premium",primaryContextWindow:1e6,contextWindow:128e3,defaultOutputTokens:2e3,maxOutputTokens:4e3,roles:["review"]},{productId:"clavue-ocr",upstreamModel:"PaddleOCR-VL-1.6-0.9B",pool:"fast",contextWindow:16e3,defaultOutputTokens:1024,maxOutputTokens:4096,roles:["ocr"]},{productId:"clavue-music",upstreamModel:"minimax-music3",pool:"premium",contextWindow:5e3,defaultOutputTokens:1,maxOutputTokens:1,roles:["music"]}],UNCONFIRMED_UPSTREAM_WINDOWS=[],ABSENT_UPSTREAM_IDS=["qwen3-coder-next","grok-imagine-image-lit"],TOOL_INCAPABLE_UPSTREAM_IDS=["qwen3.5:4b","qwen3-coder-next"],UPSTREAM_CONTEXT={"qwen3.5:4b":32e3,"qwen3.6:35b-a3b":32e3,"qwen3.5:2b":16e3,"qwen3.6:27b":32e3,"gemma4:12b":8192,"gemma4:26b-a4b":8192,"gemma4:e4b":8e3,"laguna-s-2.1":4e3,"grok-4.5":5e5,"gpt-5.6-luna":2e5,"deepseek-v4-flash":1e6,"deepseek-v4-pro":1e6,"grok-4.20-0309-non-reasoning-console":256e3,"z-image-turbo":8192,"grok-imagine-image-lite":32768,"PaddleOCR-VL-1.6-0.9B":16e3,"minimax-music3":5e3},byProduct=new Map(MEMBERSHIP_PRODUCT_CAPABILITIES.map(c3=>[c3.productId.toLowerCase(),c3]));__name(stripDecorators,"stripDecorators");__name(shouldPinOfficialLaunchModel,"shouldPinOfficialLaunchModel");__name(isOfficialOverflowUpstream,"isOfficialOverflowUpstream");__name(resolveOfficialContextOverflow,"resolveOfficialContextOverflow");__name(resolveOfficialMembershipWireModel,"resolveOfficialMembershipWireModel");__name(isOfficialCloudRouteActive,"isOfficialCloudRouteActive");__name(getUpstreamContextWindow,"getUpstreamContextWindow");__name(getMembershipProductCapability,"getMembershipProductCapability");__name(officialWindowOverride,"officialWindowOverride");__name(getMembershipModelContextWindow,"getMembershipModelContextWindow");__name(getMembershipModelDefaultOutputTokens,"getMembershipModelDefaultOutputTokens");__name(getMembershipModelPromptBudget,"getMembershipModelPromptBudget")}});var cloudToolPool_exports={};__export(cloudToolPool_exports,{CLAVUE_CLOUD_CORE_TOOL_NAMES:()=>CLAVUE_CLOUD_CORE_TOOL_NAMES,filterToolsForClavueCloud:()=>filterToolsForClavueCloud,isClavueCloudProfileId:()=>isClavueCloudProfileId,isClavueCloudRouteActive:()=>isClavueCloudRouteActive});function isClavueCloudProfileId(id){return String(id??"").trim()===MEMBERSHIP_CLOUD_PROFILE_ID}function isClavueCloudRouteActive(){let v=String(process.env.CLAVUE_CLOUD_TOOLS||"").trim().toLowerCase();if(v==="off"||v==="0"||v==="none")return!1;try{let{getResolvedCurrentProviderProfile:getResolvedCurrentProviderProfile2}=(init_providerProfiles(),__toCommonJS(providerProfiles_exports));return isClavueCloudProfileId(getResolvedCurrentProviderProfile2()?.id)}catch{return!1}}function filterToolsForClavueCloud(tools){return tools.length?isClavueCloudRouteActive()?filterToolsForCodingSurface(tools,{preferCoreDefault:!0}):[...tools]:[]}var CLAVUE_CLOUD_CORE_TOOL_NAMES,init_cloudToolPool=__esm({"src/services/membership/cloudToolPool.ts"(){init_config();init_codingToolSurface();CLAVUE_CLOUD_CORE_TOOL_NAMES=CODING_CORE_TOOL_NAMES;__name(isClavueCloudProfileId,"isClavueCloudProfileId");__name(isClavueCloudRouteActive,"isClavueCloudRouteActive");__name(filterToolsForClavueCloud,"filterToolsForClavueCloud")}});var dualTrackPolicy_exports={};__export(dualTrackPolicy_exports,{TRACK_POSITIONING:()=>TRACK_POSITIONING,assessTrackToolsReady:()=>assessTrackToolsReady,isOfficialCloudTrack:()=>isOfficialCloudTrack,isThirdPartyTrack:()=>isThirdPartyTrack,productTrackLabel:()=>productTrackLabel,productTrackPositioning:()=>productTrackPositioning,resolveProductTrack:()=>resolveProductTrack,shouldAllowCompactPromptCacheShare:()=>shouldAllowCompactPromptCacheShare,shouldClearMutationScopeForRunOrRecon:()=>shouldClearMutationScopeForRunOrRecon,shouldDemoteOrchestrationForRunOrRecon:()=>shouldDemoteOrchestrationForRunOrRecon,shouldEmitDSparkFeedback:()=>shouldEmitDSparkFeedback,shouldInjectRunOrReconDiscipline:()=>shouldInjectRunOrReconDiscipline,shouldNarrowToolsForRunOrRecon:()=>shouldNarrowToolsForRunOrRecon,shouldUseDSparkMultiStation:()=>shouldUseDSparkMultiStation,shouldUseDeepSpecOrchestration:()=>shouldUseDeepSpecOrchestration,shouldUseOfficialShortContextScheme:()=>shouldUseOfficialShortContextScheme});function resolveProductTrack(){let force=String(process.env.CLAVUE_TEST_FORCE_TRACK||"").trim().toLowerCase();if(force==="official_cloud"||force==="official")return"official_cloud";if(force==="third_party"||force==="byok"||force==="third")return"third_party";try{let{isOfficialCloudRouteActive:isOfficialCloudRouteActive2}=(init_productModelCapabilities(),__toCommonJS(productModelCapabilities_exports));if(isOfficialCloudRouteActive2?.())return"official_cloud"}catch{}try{let{isClavueCloudRouteActive:isClavueCloudRouteActive2}=(init_cloudToolPool(),__toCommonJS(cloudToolPool_exports));if(isClavueCloudRouteActive2?.())return"official_cloud"}catch{}return"third_party"}function isOfficialCloudTrack(){return resolveProductTrack()==="official_cloud"}function isThirdPartyTrack(){return resolveProductTrack()==="third_party"}function shouldDemoteOrchestrationForRunOrRecon(userText){return isRunOrReconOnlyTask(userText)}function shouldNarrowToolsForRunOrRecon(userText){return isOfficialCloudTrack()?isRunOrReconOnlyTask(userText):!1}function shouldInjectRunOrReconDiscipline(userText){return shouldNarrowToolsForRunOrRecon(userText)}function shouldClearMutationScopeForRunOrRecon(userText){return isRunOrReconOnlyTask(userText)}function shouldUseOfficialShortContextScheme(){return isOfficialCloudTrack()}function shouldAllowCompactPromptCacheShare(){return isThirdPartyTrack()}function shouldUseDSparkMultiStation(env5=process.env){let raw=String(env5.CLAVUE_DSPARK??env5.CLAVUE_DEEPSPEC??"").trim().toLowerCase();return raw==="0"||raw==="off"||raw==="false"||raw==="no"?!1:raw==="1"||raw==="on"||raw==="true"||raw==="yes"?!0:isOfficialCloudTrack()}function shouldUseDeepSpecOrchestration(env5=process.env){return shouldUseDSparkMultiStation(env5)}function shouldEmitDSparkFeedback(env5=process.env){return shouldUseDSparkMultiStation(env5)}function productTrackLabel(track=resolveProductTrack()){return track==="official_cloud"?"official":"third_party"}function productTrackPositioning(track=resolveProductTrack(),locale="zh"){let row=TRACK_POSITIONING[track];return locale==="en"?row.en:row.zh}function assessTrackToolsReady(input){if(!isThirdPartyTrack())return{ready:!0,reason:"official_cloud track \u2014 tools-ready probe N/A (product models)",code:"ready",source:"optimistic_profile"};let model=String(input.model||"").trim();return!model&&input.supportsTools==null&&!(input.capabilities&&input.capabilities.length)&&!input.health&&input.freestyleCompleteWithoutTools!==!0&&!(Number(input.implementTurnsWithoutTools)>0)?{ready:!0,reason:"no model/capability evidence \u2014 fail-open (pass model for hard check)",code:"ready",source:"unknown",warn:"pass primary model into assessTrackToolsReady for hard tools-ready"}:assessToolsReady({capability:{model:model||null,capabilities:input.capabilities,supportsTools:input.supportsTools,codingHand:!!model},health:input.health??void 0,transcript:{freestyleCompleteWithoutTools:input.freestyleCompleteWithoutTools,implementTurnsWithoutTools:input.implementTurnsWithoutTools}})}var TRACK_POSITIONING,init_dualTrackPolicy=__esm({"src/runtime/dualTrackPolicy.ts"(){init_pathTier();init_toolsReadyProbe();TRACK_POSITIONING={official_cloud:{zh:"\u5B98\u65B9 \xB7 \u4F4E\u4EF7\u9AD8\u6548\u7387 \xB7 \u5BF9\u6807 DeepSeek / GLM \u6863\u6027\u4EF7\u6BD4",en:"Official \xB7 low-cost high-efficiency \xB7 DeepSeek/GLM peer value",peers:"DeepSeek / GLM",bet:"value_efficiency"},third_party:{zh:"\u4E09\u65B9\u7EC4\u5408 \xB7 \u66F4\u9AD8\u8D28\u91CF\xD7\u66F4\u9AD8\u6548\u7387\u5F00\u53D1 \xB7 \u5BF9\u6807 Claude Code / Codex / Grok Build",en:"BYOK combo \xB7 higher quality \xD7 efficiency \xB7 Claude Code / Codex / Grok Build peer",peers:"Claude Code / Codex / Grok Build",bet:"quality_efficiency"}};__name(resolveProductTrack,"resolveProductTrack");__name(isOfficialCloudTrack,"isOfficialCloudTrack");__name(isThirdPartyTrack,"isThirdPartyTrack");__name(shouldDemoteOrchestrationForRunOrRecon,"shouldDemoteOrchestrationForRunOrRecon");__name(shouldNarrowToolsForRunOrRecon,"shouldNarrowToolsForRunOrRecon");__name(shouldInjectRunOrReconDiscipline,"shouldInjectRunOrReconDiscipline");__name(shouldClearMutationScopeForRunOrRecon,"shouldClearMutationScopeForRunOrRecon");__name(shouldUseOfficialShortContextScheme,"shouldUseOfficialShortContextScheme");__name(shouldAllowCompactPromptCacheShare,"shouldAllowCompactPromptCacheShare");__name(shouldUseDSparkMultiStation,"shouldUseDSparkMultiStation");__name(shouldUseDeepSpecOrchestration,"shouldUseDeepSpecOrchestration");__name(shouldEmitDSparkFeedback,"shouldEmitDSparkFeedback");__name(productTrackLabel,"productTrackLabel");__name(productTrackPositioning,"productTrackPositioning");__name(assessTrackToolsReady,"assessTrackToolsReady")}});function normalizeDialectMode(value){let normalized=String(value??"").trim().toLowerCase();return normalized==="openai"||normalized==="responses"||normalized==="openai_responses"?"openai_responses":"anthropic"}function getConfiguredApiDialectMode(){return normalizeDialectMode(process.env.CLAVUE_API_DIALECT??process.env.MYCLAUDE_API_DIALECT??process.env.CLAUDE_CODE_API_DIALECT??process.env.CLAUDE_CODE_PROVIDER_DIALECT)}function getModelTransportPreference(model){let normalizedModel=String(model??"").trim().toLowerCase();if(!normalizedModel)return"unknown";for(let rule of MODEL_TRANSPORT_PREFERENCE_RULES)if(rule.patterns.some(pattern=>pattern.test(normalizedModel)))return rule.preference;return"unknown"}function supportsOpenAIResponsesAdapterModel(model){return getModelTransportPreference(model)==="openai_responses"}var MODEL_TRANSPORT_PREFERENCE_RULES,init_openaiResponsesConfig=__esm({"src/utils/model/openaiResponsesConfig.ts"(){MODEL_TRANSPORT_PREFERENCE_RULES=[{preference:"anthropic_messages",patterns:[/^lingsi-/,/^swe-/]},{preference:"openai_chat_completions",patterns:[/^gpt-image-/]},{preference:"openai_responses",patterns:[/^gpt-\d+(?:[.-]\d+)*(?:$|[-_.])/,/^codex-/,/codex/]},{preference:"openai_chat_completions",patterns:[/^deepseek-/,/deepseek/,/^gemini-/,/^grok-/,/grok/,/^minimax/i,/minimax/i,/^glm[-_.]?\d/i,/^glm-/i,/^kimi/i,/^qwen/i,/qwen/,/^auto$/,/^clavue(?:-|$)/]}];__name(normalizeDialectMode,"normalizeDialectMode");__name(getConfiguredApiDialectMode,"getConfiguredApiDialectMode");__name(getModelTransportPreference,"getModelTransportPreference");__name(supportsOpenAIResponsesAdapterModel,"supportsOpenAIResponsesAdapterModel")}});function isClaudeFamilyModel(model){return String(model??"").toLowerCase().includes("claude")}function defaultsToAnthropicMessagesModel(model){return getModelTransportPreference(model??void 0)==="anthropic_messages"}function isGatewayGpt5PreferMessagesModel(model){let normalized=String(model??"").trim().toLowerCase();return!normalized.startsWith("gpt-5")||normalized.includes("5.5")||normalized.includes("5.6")||normalized.includes("5.7")?!1:!normalized.includes("codex")}function getModelFamily(model){if(!model)return"other";let m2=model.toLowerCase().trim();return m2.includes("claude")?"claude":m2.includes("gemini")?"gemini":m2.includes("grok")?"grok":m2.includes("deepseek")?"deepseek":m2.includes("minimax")?"minimax":m2.includes("glm")?"glm":m2.includes("kimi")?"kimi":m2.includes("qwen")?"qwen":m2.startsWith("gpt-image-")?"other":m2.includes("gpt")||m2.includes("codex")||m2.includes("o1")||m2.includes("o3")||m2.includes("o4")?"openai":"other"}function isOpenAICompatibleChatFamily(model){let normalized=String(model??"").trim().toLowerCase();if(!normalized)return!1;if(normalized.startsWith("gpt-image-")||normalized==="auto"||normalized.startsWith("clavue")||getModelTransportPreference(normalized)==="openai_chat_completions")return!0;let family=getModelFamily(model);return family==="deepseek"||family==="gemini"||family==="grok"||family==="minimax"||family==="glm"||family==="kimi"||family==="qwen"||modelFamilyIsDeepSeek(String(model??""))}function getFamilyShaping(model,runtimeProviderKind){let family=getModelFamily(model);return family==="claude"?"claude":family==="openai"?"gpt_codex":runtimeProviderKind!=="first_party"?"provider_native":"generic"}function getReasoningDiscipline(qualityTier,familyShaping,model){return qualityTier==="blocked"||qualityTier==="chat_only"||qualityTier==="degraded"?{planDiscipline:"required",verificationDiscipline:"required",recoveryMode:"strict"}:familyShaping==="gpt_codex"||modelFamilyIsDeepSeek(model)?{planDiscipline:"optional",verificationDiscipline:"required",recoveryMode:"normal"}:{planDiscipline:"optional",verificationDiscipline:"recommended",recoveryMode:"normal"}}function resolveCodingRoutePolicyCore(input){let normalizedModel=String(input.model??"").trim(),snapshot=input.snapshot??null,dialectMode=input.apiDialectMode==="openai_responses"||input.apiDialectMode==="anthropic"?input.apiDialectMode:"anthropic",runtimeProviderKind=input.runtimeProviderKind??"gateway",coreNativeWorkflowToolNames=input.coreNativeWorkflowToolNames??DEFAULT_CORE_NATIVE_WORKFLOW_TOOL_NAMES,familyShaping=getFamilyShaping(normalizedModel,runtimeProviderKind),routeId=input.routeId??[runtimeProviderKind,normalizedModel||"provider-default"].join(":"),warnings=[],repairHints=[],qualityReason=[],supportsResponses=input.supportsResponsesAdapter===!0,hasAnthropicToolUse=snapshot?.anthropicToolUse===!0,hasFullResponses=supportsResponses&&snapshot?.responsesArrayInputReachable===!0&&snapshot?.responsesToolChoiceAuto===!0&&snapshot?.responsesToolChoiceRequired===!0&&snapshot?.responsesToolChoiceNamed===!0,responsesToolChoiceBits={auto:snapshot?.responsesToolChoiceAuto===!0,required:snapshot?.responsesToolChoiceRequired===!0,named:snapshot?.responsesToolChoiceNamed===!0},hasPartialResponsesToolChoice=supportsResponses&&snapshot?.responsesArrayInputReachable===!0&&!hasFullResponses&&(responsesToolChoiceBits.auto||responsesToolChoiceBits.required||responsesToolChoiceBits.named||snapshot!=null),hasReachableChat=snapshot?.anthropicMessagesReachable===!0||snapshot?.responsesArrayInputReachable===!0,isFirstPartyClaudeAssumedNative=runtimeProviderKind==="first_party"&&familyShaping==="claude"&&!snapshot,isAnthropicDialectClaudeAssumed=dialectMode==="anthropic"&&familyShaping==="claude"&&!snapshot,isAnthropicMessagesRouteAssumed=dialectMode==="anthropic"&&runtimeProviderKind!=="first_party"&&!snapshot,defaultsToMessages=runtimeProviderKind!=="first_party"&&defaultsToAnthropicMessagesModel(normalizedModel),family=getModelFamily(normalizedModel),gatewayGpt5PrefersMessages=dialectMode==="openai_responses"&&runtimeProviderKind==="gateway"&&family==="openai"&&isGatewayGpt5PreferMessagesModel(normalizedModel),usesNativeOpenAICompatibleChat=runtimeProviderKind!=="first_party"&&dialectMode==="openai_responses"&&isOpenAICompatibleChatFamily(normalizedModel),transport="anthropic_messages",transportReason="Anthropic messages is the default API dialect unless openai_responses is explicitly selected.";defaultsToMessages?(transport="anthropic_messages",transportReason="This provider-native model family defaults to /v1/messages instead of the OpenAI Responses adapter.",dialectMode==="openai_responses"&&warnings.push("The active model family is configured to stay on /v1/messages by default; use a GPT/Codex or Gemini/Grok route for the OpenAI-compatible adapter.")):dialectMode==="anthropic"?(transport="anthropic_messages",transportReason="Explicit anthropic dialect override keeps the runtime on /v1/messages.",hasFullResponses&&!hasAnthropicToolUse&&warnings.push("Responses compatibility is verified, but the active dialect override is forcing /v1/messages.")):usesNativeOpenAICompatibleChat?(transport="openai_chat_completions",transportReason=family==="deepseek"||modelFamilyIsDeepSeek(normalizedModel)?"Explicit OpenAI-compatible dialect routes DeepSeek through native /v1/chat/completions with provider prefix-cache usage telemetry and without OpenAI Responses stateful cache.":`Explicit OpenAI-compatible dialect routes ${family} through native /v1/chat/completions without OpenAI Responses stateful cache.`):gatewayGpt5PrefersMessages&&snapshot?.responsesArrayInputReachable===!1&&snapshot?.anthropicMessagesReachable===!0?(transport="anthropic_messages",transportReason="Gateway GPT-5.x falls back to /v1/messages because validation showed /v1/responses is unavailable."):dialectMode==="openai_responses"&&(transport="openai_responses",transportReason="Explicit OpenAI-compatible dialect routes this GPT/Codex family through native /v1/responses.",supportsResponses||warnings.push("The active model family is not known to behave well on the Responses adapter."));let qualityTier="compatible";hasAnthropicToolUse?runtimeProviderKind==="first_party"&&familyShaping==="claude"?(qualityTier="native",qualityReason.push("Anthropic-native tool_use is available on a first-party Claude route.")):(qualityTier="compatible",qualityReason.push("Anthropic-native tool_use is available on the active provider route.")):isFirstPartyClaudeAssumedNative?(qualityTier="native",qualityReason.push("First-party Anthropic Claude routes are trusted as native on first launch.")):hasFullResponses?(qualityTier="compatible",qualityReason.push("Responses function calling is available on the active provider route.")):isAnthropicDialectClaudeAssumed?(qualityTier="compatible",qualityReason.push("Anthropic / Claude-compatible routes are trusted for full Clavue coding workflows.")):isAnthropicMessagesRouteAssumed||defaultsToMessages&&transport==="anthropic_messages"?(qualityTier="compatible",qualityReason.push("Provider-native messages routes are trusted for full Clavue coding workflows.")):transport==="openai_chat_completions"&&usesNativeOpenAICompatibleChat?(qualityTier="compatible",qualityReason.push(modelFamilyIsDeepSeek(normalizedModel)?"DeepSeek is routed through the active OpenAI-compatible chat/completions profile with full Clavue tool support.":"This provider family is routed through native OpenAI-compatible chat/completions with full Clavue tool support.")):gatewayGpt5PrefersMessages&&transport==="openai_responses"?(qualityTier="compatible",qualityReason.push("OpenAI GPT-5.x routes use native /v1/responses for the OpenAI-compatible dialect.")):gatewayGpt5PrefersMessages&&transport==="anthropic_messages"?(qualityTier="compatible",qualityReason.push("Gateway GPT-5.x fell back to /v1/messages because /v1/responses was unavailable.")):hasReachableChat?(qualityTier="compatible",qualityReason.push("The active provider route is reachable and trusted for full Clavue coding workflows.")):(qualityTier="compatible",qualityReason.push("Configured provider routes are trusted for full Clavue coding workflows. Permission mode controls execution approval, not provider validation snapshots."));let baseWorkflowMode=qualityTier==="native"?"full_native":"compat_native",operatorTrust=runtimeProviderKind==="first_party"?"explicitly_trusted":"configured",baseCapabilityStatus=hasAnthropicToolUse||hasFullResponses?"verified":hasPartialResponsesToolChoice?"assumed":hasReachableChat?"verified":isFirstPartyClaudeAssumedNative||isAnthropicDialectClaudeAssumed||isAnthropicMessagesRouteAssumed||transport==="openai_chat_completions"&&usesNativeOpenAICompatibleChat||gatewayGpt5PrefersMessages&&transport==="openai_responses"?"assumed":"unknown";if(hasPartialResponsesToolChoice){let supported=["auto","required","named"].filter(k=>responsesToolChoiceBits[k]),missing=["auto","required","named"].filter(k=>!responsesToolChoiceBits[k]);warnings.push(`Partial Responses tool_choice \xB7 supported=${supported.join(",")||"none"} \xB7 missing=${missing.join(",")||"none"} \xB7 coding tools stay full (open-tools); not first-party native verified.`),qualityReason.push("Responses path is reachable with partial tool_choice evidence \u2014 full coding surface preserved; capability marked assumed until auto/required/named all verify."),baseCapabilityStatus==="verified"&&!hasFullResponses&&!hasAnthropicToolUse&&(baseCapabilityStatus="assumed")}let baseWorkflowToolPolicy=baseCapabilityStatus==="verified"||baseWorkflowMode==="full_native"?"full":"cautious",providerHealth=input.providerHealth??null,healthTier=providerHealth?.healthTier??"healthy",capabilityStatus=providerHealth?.capabilityStatus??(healthTier==="broken"?"failed":healthTier==="degraded"?"stale":baseCapabilityStatus),workflowToolPolicy=providerHealth?.workflowToolPolicy??(healthTier==="broken"?"blocked":healthTier==="degraded"?"direct_only":healthTier==="warning"&&baseWorkflowToolPolicy==="full"?"cautious":baseWorkflowToolPolicy),workflowMode=workflowToolPolicy==="blocked"?"chat_only":workflowToolPolicy==="direct_only"?"strict_compat":baseWorkflowMode,forcedToolNames=workflowMode==="compat_native"&&(workflowToolPolicy==="full"||workflowToolPolicy==="cautious")?[...coreNativeWorkflowToolNames]:[],blockedToolNames=workflowToolPolicy==="direct_only"||workflowToolPolicy==="blocked"?[...coreNativeWorkflowToolNames]:[],certificationRef=providerHealth?.certificationRef;for(let warning of providerHealth?.warnings??[])warnings.push(warning);for(let repairHint of providerHealth?.repairHints??[])repairHints.push(repairHint);if(input.editReliability&&input.editReliability.model===normalizedModel&&!isEditReliabilityRoutingDisabled()){let assessment=assessEditReliabilityForRouting(input.editReliability);assessment.demote&&(warnings.push(`Edit reliability: ${assessment.reason}. Ordering only \u2014 disable with CLAVUE_EDIT_RELIABILITY_ROUTING=0.`),repairHints.push("Review per-model edit failures with /editstats; consider a stronger model for mutation-heavy tasks."))}let disciplineQualityTier=healthTier==="broken"?"blocked":healthTier==="degraded"?"degraded":qualityTier;return disciplineQualityTier!==qualityTier&&qualityReason.push(`Provider health ${healthTier} downgrades qualityTier from ${qualityTier} to ${disciplineQualityTier}.`),{routeId,model:normalizedModel,transport,transportReason,qualityTier:disciplineQualityTier,qualityReason,workflowMode,forcedToolNames,blockedToolNames,operatorTrust,capabilityStatus,workflowToolPolicy,healthTier,certificationRef,familyShaping,warnings,repairHints,...getReasoningDiscipline(disciplineQualityTier,familyShaping,normalizedModel)}}function modelFamilyIsDeepSeek(model){let normalized=model.trim().toLowerCase();return normalized.startsWith("deepseek-")||normalized.includes("deepseek")}function isEditReliabilityRoutingDisabled(env5=process.env){let flag=String(env5.CLAVUE_EDIT_RELIABILITY_ROUTING??"1").trim().toLowerCase();return flag==="0"||flag==="false"||flag==="off"||flag==="no"}function wilsonLowerBound(failures,attempts){if(attempts<=0)return 0;let z=1.645,z2=z*z,p=Math.min(1,Math.max(0,failures/attempts)),denominator=1+z2/attempts,center=p+z2/(2*attempts),spread4=z*Math.sqrt(p*(1-p)/attempts+z2/(4*attempts*attempts));return Math.max(0,(center-spread4)/denominator)}function resolveReliabilityOptions(options){let env5=options?.env??process.env,envMin=Number.parseInt(String(env5.CLAVUE_EDIT_RELIABILITY_MIN_SAMPLES??"").trim(),10),envThreshold=Number.parseFloat(String(env5.CLAVUE_EDIT_RELIABILITY_FAILURE_THRESHOLD??"").trim()),minAttempts=options?.minAttempts??(Number.isFinite(envMin)&&envMin>0?envMin:EDIT_RELIABILITY_MIN_ATTEMPTS_DEFAULT),failureThreshold=options?.failureThreshold??(Number.isFinite(envThreshold)&&envThreshold>0&&envThreshold<1?envThreshold:EDIT_RELIABILITY_FAILURE_LOWER_BOUND_TARGET_DEFAULT);return{minAttempts,failureThreshold,env:env5}}function assessEditReliabilityForRouting(reading,options){let{minAttempts,failureThreshold}=resolveReliabilityOptions(options),attempts=Math.max(0,Math.trunc(reading.attempts)),finalFailures=Math.max(0,Math.trunc(reading.finalFailures)),finalFailureRate=attempts>0?finalFailures/attempts:0,failureLowerBound=wilsonLowerBound(finalFailures,attempts),eligible2=attempts>=minAttempts,demote=eligible2&&failureLowerBound>=failureThreshold,pct=__name(value=>`${Math.round(value*100)}%`,"pct"),reason=eligible2?demote?`edit reliability: ${reading.model} final-failure rate ${pct(finalFailureRate)} over ${attempts} edit episodes (95% lower bound ${pct(failureLowerBound)} \u2265 ${pct(failureThreshold)}) \u2014 deprioritized for mutation tasks`:`edit reliability: ${reading.model} final-failure rate ${pct(finalFailureRate)} over ${attempts} edit episodes \u2014 within tolerance`:`edit reliability: ${reading.model} has ${attempts}/${minAttempts} edit episodes \u2014 below sample threshold, no routing influence`;return{model:reading.model,eligible:eligible2,demote,attempts,finalFailureRate,failureLowerBound,minAttempts,failureThreshold,reason}}var DEFAULT_CORE_NATIVE_WORKFLOW_TOOL_NAMES,EDIT_RELIABILITY_MIN_ATTEMPTS_DEFAULT,EDIT_RELIABILITY_FAILURE_LOWER_BOUND_TARGET_DEFAULT,init_codingRoutePolicyCore=__esm({"src/utils/model/codingRoutePolicyCore.ts"(){init_openaiResponsesConfig();DEFAULT_CORE_NATIVE_WORKFLOW_TOOL_NAMES=["EnterPlanMode","SendMessage","TaskCreate","TaskGet","TaskList","TaskOutput","TaskUpdate","TeamCreate","TeamDelete","TodoWrite"];__name(isClaudeFamilyModel,"isClaudeFamilyModel");__name(defaultsToAnthropicMessagesModel,"defaultsToAnthropicMessagesModel");__name(isGatewayGpt5PreferMessagesModel,"isGatewayGpt5PreferMessagesModel");__name(getModelFamily,"getModelFamily");__name(isOpenAICompatibleChatFamily,"isOpenAICompatibleChatFamily");__name(getFamilyShaping,"getFamilyShaping");__name(getReasoningDiscipline,"getReasoningDiscipline");__name(resolveCodingRoutePolicyCore,"resolveCodingRoutePolicyCore");__name(modelFamilyIsDeepSeek,"modelFamilyIsDeepSeek");EDIT_RELIABILITY_MIN_ATTEMPTS_DEFAULT=20,EDIT_RELIABILITY_FAILURE_LOWER_BOUND_TARGET_DEFAULT=.25;__name(isEditReliabilityRoutingDisabled,"isEditReliabilityRoutingDisabled");__name(wilsonLowerBound,"wilsonLowerBound");__name(resolveReliabilityOptions,"resolveReliabilityOptions");__name(assessEditReliabilityForRouting,"assessEditReliabilityForRouting")}});var init_turnCapabilityContract=__esm({"src/runtime/turnCapabilityContract.ts"(){init_parallelDevelopment()}});var DEFAULT_DIRECT_CODING_TOOL_NAMES,DEFAULT_ROUTE_PRESERVED_TOOL_NAMES,GPT5_RESPONSES_TRIVIAL_TOOL_NAMES,init_routePolicyRuntimeCore=__esm({"src/utils/model/routePolicyRuntimeCore.ts"(){init_codingRoutePolicyCore();init_gpt5EffortIntent();init_turnCapabilityContract();DEFAULT_DIRECT_CODING_TOOL_NAMES=["Read","ReadFiles","Edit","Write","NotebookEdit","Bash","PowerShell","Glob","Grep"],DEFAULT_ROUTE_PRESERVED_TOOL_NAMES=[...DEFAULT_DIRECT_CODING_TOOL_NAMES,"Skill"],GPT5_RESPONSES_TRIVIAL_TOOL_NAMES=new Set([...DEFAULT_DIRECT_CODING_TOOL_NAMES,"Skill"])}});function envTrim(key){return String(process.env[key]??"").trim().toLowerCase()}function isPrintCliArg(){return process.argv.includes("-p")||process.argv.includes("--print")||process.argv.includes("--init-only")}function resolveToolSurfaceMode(options){let raw=envTrim("CLAVUE_TOOL_SURFACE");if(raw==="core"||raw==="minimal"||raw==="lean")return"core";if(raw==="extended"||raw==="plus")return"extended";if(raw==="full"||raw==="all"||raw==="off"||raw==="0")return"full";let cloud=envTrim("CLAVUE_CLOUD_TOOLS");return cloud==="full"||cloud==="all"?"full":cloud==="extended"?"extended":cloud==="off"||cloud==="0"||cloud==="none"?"full":(cloud==="1"||cloud==="core"||cloud==="on"||(options?.forceNonInteractive,options?.preferCoreDefault),"core")}function extraCoreNamesForActiveRoute(){let extra=new Set;if(isOfficialCloudTrack())return extra;try{let{resolveLiveModelNativeCapability:resolveLiveModelNativeCapability2}=(init_modelNativeCapabilityLive(),__toCommonJS(modelNativeCapabilityLive_exports)),profiles=(init_providerProfiles(),__toCommonJS(providerProfiles_exports)),model=String(profiles.getResolvedCurrentProviderProfile?.()?.model||process.env.CLAVUE_MODEL||"");resolveLiveModelNativeCapability2(model).supportsVendorSearch&&extra.add("websearch")}catch{}return extra}function isAllowedName(name,mode){let lower3=String(name||"").trim().toLowerCase();return lower3?mode==="full"||lower3.startsWith("mcp__clavue__")?!0:mode==="core"?CORE_SET.has(lower3)||extraCoreNamesForActiveRoute().has(lower3):EXTENDED_SET.has(lower3)||CORE_SET.has(lower3):!1}function filterToolsForCodingSurface(tools,options){if(!tools.length)return[];let mode=options?.mode??resolveToolSurfaceMode({forceNonInteractive:options?.forceNonInteractive,preferCoreDefault:options?.preferCoreDefault});if(mode==="full")return[...tools];let filtered=tools.filter(t2=>isAllowedName(t2.name,mode)),printLike=options?.forceNonInteractive===!0||isPrintCliArg();mode==="core"&&shouldOmitAgentOnPrintCore()&&printLike&&(filtered=filtered.filter(t2=>{let n2=String(t2.name||"").toLowerCase();return n2!=="agent"&&n2!=="taskoutput"&&n2!=="taskstop"&&!n2.startsWith("task")}));for(let essential of CODING_CORE_ESSENTIAL_NAMES){let key=essential.toLowerCase();if(filtered.some(t2=>String(t2.name||"").toLowerCase()===key))continue;let original=tools.find(t2=>String(t2.name||"").toLowerCase()===key);original&&filtered.push(original)}return filtered.length===0?[...tools]:filtered}function minWindowForCoreSurface(){return Math.ceil(CORE_SURFACE_LEAN_TOKENS/MAX_TOOL_PREFILL_WINDOW_SHARE)}function isContextWindowBoundarySensitive(window2){let win=Number(window2??0);return!Number.isFinite(win)||win<=0?!1:win<=minWindowForCoreSurface()+WINDOW_BOUNDARY_SENSITIVITY_DELTA}function shouldRefreshStaleWindowSnapshot(input){return input.stale===!0&&isContextWindowBoundarySensitive(input.window)}function shouldOmitAgentOnPrintCore(env5=process.env){let raw=String(env5.CLAVUE_PRINT_AGENT??"").trim().toLowerCase();return!(raw==="1"||raw==="true"||raw==="on"||raw==="yes")}var CODING_CORE_ESSENTIAL_NAMES,CODING_CORE_TOOL_NAMES,CODING_EXTENDED_TOOL_NAMES,CORE_SET,EXTENDED_SET,MAX_TOOL_PREFILL_WINDOW_SHARE,CORE_SURFACE_LEAN_TOKENS,WINDOW_BOUNDARY_SENSITIVITY_DELTA,WINDOW_SHEDDABLE_TOOL_NAMES,SHEDDABLE_SET,init_codingToolSurface=__esm({"src/services/tools/codingToolSurface.ts"(){init_state();init_dualTrackPolicy();init_envUtils();init_routePolicyRuntimeCore();CODING_CORE_ESSENTIAL_NAMES=["Bash","Read","Edit","Write","Glob","Grep"],CODING_CORE_TOOL_NAMES=[...CODING_CORE_ESSENTIAL_NAMES,"ReadFiles","NotebookEdit","TodoWrite","Agent","TaskOutput","TaskStop","mcp__clavue__web_search","image_gen","image_edit","ocr","music_gen"],CODING_EXTENDED_TOOL_NAMES=[...CODING_CORE_TOOL_NAMES,"Skill","SendMessage","TaskCreate","TaskGet","TaskList","TaskUpdate","EnterPlanMode","ExitPlanMode","VerifyPlan","WebFetch","WebSearch","CreateGoal","GetGoal","UpdateGoal","ToolSearch"],CORE_SET=new Set(CODING_CORE_TOOL_NAMES.map(n2=>n2.toLowerCase())),EXTENDED_SET=new Set(CODING_EXTENDED_TOOL_NAMES.map(n2=>n2.toLowerCase()));__name(envTrim,"envTrim");__name(isPrintCliArg,"isPrintCliArg");__name(resolveToolSurfaceMode,"resolveToolSurfaceMode");__name(extraCoreNamesForActiveRoute,"extraCoreNamesForActiveRoute");__name(isAllowedName,"isAllowedName");__name(filterToolsForCodingSurface,"filterToolsForCodingSurface");MAX_TOOL_PREFILL_WINDOW_SHARE=.15,CORE_SURFACE_LEAN_TOKENS=8100;__name(minWindowForCoreSurface,"minWindowForCoreSurface");WINDOW_BOUNDARY_SENSITIVITY_DELTA=16e3;__name(isContextWindowBoundarySensitive,"isContextWindowBoundarySensitive");__name(shouldRefreshStaleWindowSnapshot,"shouldRefreshStaleWindowSnapshot");WINDOW_SHEDDABLE_TOOL_NAMES=["Agent","TaskOutput","TaskStop","TodoWrite","image_gen","image_edit","ocr","music_gen"].filter(name=>!DEFAULT_ROUTE_PRESERVED_TOOL_NAMES.some(p=>p===name)),SHEDDABLE_SET=new Set(WINDOW_SHEDDABLE_TOOL_NAMES.map(n2=>n2.toLowerCase()));__name(shouldOmitAgentOnPrintCore,"shouldOmitAgentOnPrintCore")}});function slotFields(slot){switch(slot){case"primary":return["primaryModel"];case"haiku":return["smallFastModel"];case"sonnet":return["subagentModel","generalModel","exploreModel","teamModel"];case"opus":return["planModel","guideModel"]}}function modeSlotCurrentModel(routing,slot){for(let field of slotFields(slot)){let value=String(routing[field]??"").trim();if(value)return value}return""}function appendEmptyHybridModeSlotIssues(issues,routing){for(let slot of["primary","haiku","sonnet","opus"])!issues.some(issue2=>issue2.slot===slot)&&!modeSlotCurrentModel(routing,slot)&&issues.push({level:"error",slot,message:`\u6DF7\u5408\u7EC4\u5408\u7684 ${slot} \u69FD\u4F4D\u4E3A\u7A7A\u3002`})}function fillEmptySlotFromPrimary(routing,slot,fallbackModel){let model=fallbackModel.trim();if(!model)return routing;let next={...routing};for(let field of slotFields(slot))String(next[field]??"").trim()||(next[field]=model);return next}function repairProviderRoutingSlots(routing,issues,defaultPrimary){let next={...routing},repaired=!1,messages=[],primary=routing.primaryModel.trim();for(let issue2 of issues){if(!issue2.slot){messages.push(issue2.message);continue}let current=modeSlotCurrentModel(routing,issue2.slot);if(current){messages.push(`[WARN] ${issue2.message}\uFF08\u4FDD\u7559\u5F53\u524D ${issue2.slot} = ${current}\uFF0C\u672A\u5F3A\u5236\u5207\u6362\u7EC4\u5408\uFF09`);continue}if(issue2.slot==="primary"){if(!defaultPrimary){messages.push(`[ERROR] ${issue2.message}\uFF1B\u4E3B\u6A21\u578B\u4E3A\u7A7A\u4E14\u65E0\u53EF\u7528\u9ED8\u8BA4\u503C\uFF0C\u8BF7\u7528\u6237\u81EA\u884C\u8BBE\u7F6E\u3002`);continue}next={...next,primaryModel:defaultPrimary},repaired=!0,messages.push(`[REPAIRED] primary \u5DF2\u586B\u5165 ${defaultPrimary}\uFF08\u4EC5\u8865\u4E3B\u6A21\u578B\uFF0C\u672A\u5207\u6362\u6574\u5957\u7EC4\u5408\uFF09`);continue}let fallback=primary||next.primaryModel.trim();if(!fallback){messages.push(`[ERROR] ${issue2.message}\uFF1B\u4E3B\u6A21\u578B\u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u5BF9 ${issue2.slot} \u505A\u7EC4\u5408\u5185\u515C\u5E95\uFF0C\u8BF7\u7528\u6237\u81EA\u884C\u5904\u7406\u3002`);continue}let before2=modeSlotCurrentModel(next,issue2.slot);next=fillEmptySlotFromPrimary(next,issue2.slot,fallback),modeSlotCurrentModel(next,issue2.slot)!==before2&&(repaired=!0,messages.push(`[REPAIRED] ${issue2.slot} \u7A7A\u69FD\u4F4D\u5DF2\u515C\u5E95\u5230\u4E3B\u6A21\u578B ${fallback}\uFF08\u7EC4\u5408\u914D\u7F6E\u672A\u6574\u4F53\u5207\u6362\uFF09`))}return{routing:next,repaired,messages}}var init_providerRoutingRepair=__esm({"src/utils/providerRoutingRepair.ts"(){__name(slotFields,"slotFields");__name(modeSlotCurrentModel,"modeSlotCurrentModel");__name(appendEmptyHybridModeSlotIssues,"appendEmptyHybridModeSlotIssues");__name(fillEmptySlotFromPrimary,"fillEmptySlotFromPrimary");__name(repairProviderRoutingSlots,"repairProviderRoutingSlots")}});function getRequestUrl(input){try{return input instanceof Request?new URL(input.url):new URL(String(input))}catch{return null}}function isOpenAIChatCompletionsModel(model){let m2=String(model??"").trim().toLowerCase();return m2?!!(m2.startsWith("gpt-image-")||m2.startsWith("gemini-")||m2.includes("gemini")||m2.startsWith("grok-")||m2.includes("grok")||m2.startsWith("deepseek-")||m2.includes("deepseek")||m2.startsWith("minimax")||m2.includes("minimax")||m2.startsWith("kimi")||m2.includes("kimi")||m2.startsWith("qwen")||m2.includes("qwen")||/^glm(?:[-_.]|$)/i.test(m2)||/(?:^|[^a-z])glm(?:[-_.\d]|$)/i.test(m2)||m2==="auto"||m2.startsWith("clavue")):!1}function getUpstreamApiPathForTransport(_model,transport){switch(transport){case"openai_chat_completions":return OPENAI_CHAT_COMPLETIONS_PATH;case"openai_responses":return OPENAI_RESPONSES_PATH;default:return ANTHROPIC_MESSAGES_PATH}}function normalizePathname(path10){let trimmed=String(path10??"").trim();if(!trimmed)return trimmed;if(trimmed.startsWith("http://")||trimmed.startsWith("https://"))try{return new URL(trimmed).pathname||trimmed}catch{return trimmed}return trimmed.startsWith("/")?trimmed:`/${trimmed}`}function isGptResponsesPrimaryModel(model){let m2=String(model??"").trim().toLowerCase();return!m2||m2.startsWith("gpt-image-")?!1:!!(m2.includes("gpt-5")||/^gpt-5(?:[.-]|$)/.test(m2)||m2.startsWith("codex-")||/(^|[^a-z])codex(?:[-_.]|$)/.test(m2))}function isOpenAIResponsesPath(path10){let p=String(path10??"");return p===OPENAI_RESPONSES_PATH||p.endsWith("/responses")||/\/v1\/responses\/?$/i.test(p)}function toChatCompletionsUrl(upstreamUrl){let u2=new URL(upstreamUrl),path10=u2.pathname||"";return/\/responses\/?$/i.test(path10)?u2.pathname=path10.replace(/\/responses\/?$/i,"/chat/completions"):path10.endsWith(OPENAI_RESPONSES_PATH)?u2.pathname=path10.slice(0,-OPENAI_RESPONSES_PATH.length)+OPENAI_CHAT_COMPLETIONS_PATH:u2.pathname=OPENAI_CHAT_COMPLETIONS_PATH,u2.toString()}function canRescueResponsesToChatCompletions(model){return isGptResponsesPrimaryModel(model)||isOpenAIChatCompletionsModel(model)?!0:isClavueCloudProductModel(model)}function isClavueCloudProductModel(model){let normalized=String(model??"").trim().toLowerCase();return normalized==="auto"||normalized.startsWith("clavue")}function shouldFallbackGptResponsesToChatCompletions(input){if(!isOpenAIResponsesPath(input.upstreamPath)||!canRescueResponsesToChatCompletions(input.model))return!1;let status=Number(input.status)||0;if(status===404||status===405||status===501||status===502||status===503||status===504||status>=500)return!0;if(status===400||status===422||status===403){let t2=String(input.errorBody??"").toLowerCase();return t2?t2.includes("/v1/responses")||t2.includes("responses")||t2.includes("not found")||t2.includes("not supported")||t2.includes("unsupported")||t2.includes("unknown path")||t2.includes("no route")||t2.includes("invalid url")||t2.includes("endpoint")||t2.includes("does not exist")||t2.includes("method not allowed"):!1}return!1}function inferTransportFromUpstreamPath(path10){let pathname=normalizePathname(String(path10??""));return pathname?pathname===OPENAI_CHAT_COMPLETIONS_PATH||pathname.endsWith("/chat/completions")?"openai_chat_completions":pathname===OPENAI_RESPONSES_PATH||pathname.endsWith("/responses")?"openai_responses":pathname===ANTHROPIC_MESSAGES_PATH||pathname.endsWith("/messages")?"anthropic_messages":null:null}function resolveUpstreamRequestRoute(input){let override=String(input.upstreamPathOverride??"").trim();if(override){let path11=normalizePathname(override),transport=inferTransportFromUpstreamPath(path11)??input.transport;return{transport,path:path11,requestShape:transport,reason:`Fusion/endpoint path override \u2192 ${path11} (${transport})`}}let path10=getUpstreamApiPathForTransport(input.model,input.transport);return{transport:input.transport,path:path10,requestShape:input.transport,reason:input.transportReason?.trim()||`transport=${input.transport} \u2192 ${path10}`}}var OPENAI_RESPONSES_PATH,OPENAI_CHAT_COMPLETIONS_PATH,ANTHROPIC_MESSAGES_PATH,init_paths=__esm({"src/services/api/responsesAdapter/paths.ts"(){OPENAI_RESPONSES_PATH="/v1/responses",OPENAI_CHAT_COMPLETIONS_PATH="/v1/chat/completions",ANTHROPIC_MESSAGES_PATH="/v1/messages";__name(getRequestUrl,"getRequestUrl");__name(isOpenAIChatCompletionsModel,"isOpenAIChatCompletionsModel");__name(getUpstreamApiPathForTransport,"getUpstreamApiPathForTransport");__name(normalizePathname,"normalizePathname");__name(isGptResponsesPrimaryModel,"isGptResponsesPrimaryModel");__name(isOpenAIResponsesPath,"isOpenAIResponsesPath");__name(toChatCompletionsUrl,"toChatCompletionsUrl");__name(canRescueResponsesToChatCompletions,"canRescueResponsesToChatCompletions");__name(isClavueCloudProductModel,"isClavueCloudProductModel");__name(shouldFallbackGptResponsesToChatCompletions,"shouldFallbackGptResponsesToChatCompletions");__name(inferTransportFromUpstreamPath,"inferTransportFromUpstreamPath");__name(resolveUpstreamRequestRoute,"resolveUpstreamRequestRoute")}});var ENTER_PLAN_MODE_TOOL_NAME,init_constants6=__esm({"src/tools/EnterPlanModeTool/constants.ts"(){ENTER_PLAN_MODE_TOOL_NAME="EnterPlanMode"}});var SEND_MESSAGE_TOOL_NAME,init_constants7=__esm({"src/tools/SendMessageTool/constants.ts"(){SEND_MESSAGE_TOOL_NAME="SendMessage"}});var TASK_CREATE_TOOL_NAME,init_constants8=__esm({"src/tools/TaskCreateTool/constants.ts"(){TASK_CREATE_TOOL_NAME="TaskCreate"}});var TASK_GET_TOOL_NAME,init_constants9=__esm({"src/tools/TaskGetTool/constants.ts"(){TASK_GET_TOOL_NAME="TaskGet"}});var TASK_LIST_TOOL_NAME,init_constants10=__esm({"src/tools/TaskListTool/constants.ts"(){TASK_LIST_TOOL_NAME="TaskList"}});var TASK_UPDATE_TOOL_NAME,init_constants11=__esm({"src/tools/TaskUpdateTool/constants.ts"(){TASK_UPDATE_TOOL_NAME="TaskUpdate"}});var TEAM_CREATE_TOOL_NAME,init_constants12=__esm({"src/tools/TeamCreateTool/constants.ts"(){TEAM_CREATE_TOOL_NAME="TeamCreate"}});var TEAM_DELETE_TOOL_NAME,init_constants13=__esm({"src/tools/TeamDeleteTool/constants.ts"(){TEAM_DELETE_TOOL_NAME="TeamDelete"}});var TODO_WRITE_TOOL_NAME,init_constants14=__esm({"src/tools/TodoWriteTool/constants.ts"(){TODO_WRITE_TOOL_NAME="TodoWrite"}});function isEditFailureReasonCode(value){return typeof value=="string"&&EDIT_FAILURE_REASON_CODES.includes(value)}var EDIT_FAILURE_REASON_CODES,init_editRepairProfiles=__esm({"src/tools/FileEditTool/editRepairProfiles.ts"(){init_modelRolesCore();EDIT_FAILURE_REASON_CODES=["not_found","multiple_matches","whitespace_drift","truncated_anchor","escape_mismatch","file_changed","file_not_read","file_missing"];__name(isEditFailureReasonCode,"isEditFailureReasonCode")}});import fs2 from"node:fs";function createEditOutcomeTracker(){let pending=new Set,keyOf=__name((model,filePath)=>`${model}\0${filePath}`,"keyOf");return{note(model,filePath,ok){let key=keyOf(model,filePath);return ok?pending.has(key)?(pending.delete(key),"retry_success"):"first_try_success":(pending.add(key),"failure")},reset(){pending.clear()}}}function parseEditReliabilityLine(line){let trimmed=line.trim();if(!trimmed.startsWith("{"))return null;try{let parsed=JSON.parse(trimmed);return parsed.schema!==EDIT_RELIABILITY_SCHEMA||typeof parsed.model!="string"||typeof parsed.filePath!="string"||typeof parsed.ok!="boolean"?null:(parsed.reasonCode!==void 0&&!isEditFailureReasonCode(parsed.reasonCode)&&delete parsed.reasonCode,parsed)}catch{return null}}function readEditReliabilityEvents(ledgerPath,options){let maxBytes=Math.max(1024,Math.min(8388608,options?.maxBytes??DEFAULT_TAIL_BYTES)),source="";try{let stat4=fs2.statSync(ledgerPath),start=Math.max(0,stat4.size-maxBytes),fd=fs2.openSync(ledgerPath,"r");try{let buffer=Buffer.allocUnsafe(stat4.size-start);fs2.readSync(fd,buffer,0,buffer.length,start),source=buffer.toString("utf8")}finally{fs2.closeSync(fd)}}catch{return[]}let events=[],lines=source.split(/\r?\n/);for(let line of lines){let record2=parseEditReliabilityLine(line);record2&&events.push(record2)}return events}function aggregateEditReliabilityEvents(events){let byModel=new Map,openChains=new Map,statsFor=__name((model,family)=>{let stats=byModel.get(model);return stats||(stats={model,family:family||modelFamilyKey(model),firstTrySuccesses:0,retriedSuccesses:0,finalFailures:0,failureEvents:0,repairedSuccesses:0,reasonCounts:{}},byModel.set(model,stats)),stats},"statsFor");for(let event of events){let stats=statsFor(event.model,event.family),chainKey=`${event.model}\0${event.filePath}`;if(!event.ok){stats.failureEvents+=1,event.reasonCode&&(stats.reasonCounts[event.reasonCode]=(stats.reasonCounts[event.reasonCode]??0)+1),openChains.set(chainKey,{model:event.model});continue}openChains.has(chainKey)?(openChains.delete(chainKey),stats.retriedSuccesses+=1):stats.firstTrySuccesses+=1,event.repairRung&&(stats.repairedSuccesses+=1)}for(let{model}of openChains.values()){let stats=byModel.get(model);stats&&(stats.finalFailures+=1)}return[...byModel.values()].map(stats=>{let episodes=stats.firstTrySuccesses+stats.retriedSuccesses+stats.finalFailures;return{...stats,episodes,firstTryRate:episodes>0?stats.firstTrySuccesses/episodes:null,finalFailureRate:episodes>0?stats.finalFailures/episodes:null}}).sort((a2,b)=>b.episodes-a2.episodes||a2.model.localeCompare(b.model))}function readEditReliabilityStats(ledgerPath,options){return aggregateEditReliabilityEvents(readEditReliabilityEvents(ledgerPath,options))}function toEditReliabilityReading(stats){return{model:stats.model,attempts:stats.episodes,firstTrySuccesses:stats.firstTrySuccesses,retriedSuccesses:stats.retriedSuccesses,finalFailures:stats.finalFailures}}var EDIT_RELIABILITY_SCHEMA,DEFAULT_TAIL_BYTES,init_editReliabilityCore=__esm({"src/services/editReliability/editReliabilityCore.ts"(){init_editRepairProfiles();init_modelRolesCore();EDIT_RELIABILITY_SCHEMA="clavue_edit_reliability_v1";__name(createEditOutcomeTracker,"createEditOutcomeTracker");__name(parseEditReliabilityLine,"parseEditReliabilityLine");DEFAULT_TAIL_BYTES=512*1024;__name(readEditReliabilityEvents,"readEditReliabilityEvents");__name(aggregateEditReliabilityEvents,"aggregateEditReliabilityEvents");__name(readEditReliabilityStats,"readEditReliabilityStats");__name(toEditReliabilityReading,"toEditReliabilityReading")}});import path9 from"node:path";function isEditReliabilityLedgerDisabled(){return isEnvTruthy(process.env.CLAVUE_DISABLE_EDIT_RELIABILITY)||isEnvDefinedFalsy(process.env.CLAVUE_EDIT_RELIABILITY)}function resolveEditReliabilityLedgerPath(){let override=process.env.CLAVUE_EDIT_RELIABILITY_LEDGER_PATH?.trim();return override?path9.resolve(override):path9.join(getCwd(),".clavue","edit-reliability.jsonl")}function getEditReliabilityStatsCached(options){if(isEditReliabilityLedgerDisabled())return[];let ledgerPath=resolveEditReliabilityLedgerPath(),now2=options?.now??Date.now();if(statsCache&&statsCache.key===ledgerPath&&now2-statsCache.readAt<STATS_CACHE_TTL_MS)return statsCache.stats;let stats=[];try{stats=readEditReliabilityStats(ledgerPath)}catch(error40){logForDebugging("[EditReliability] failed to read: "+(error40 instanceof Error?error40.message:String(error40)),{level:"debug"})}return statsCache={key:ledgerPath,readAt:now2,stats},stats}function getEditReliabilityReadingForModel(model){let normalized=String(model??"").trim();if(!normalized)return null;let stats=getEditReliabilityStatsCached().find(row=>row.model===normalized);return stats?toEditReliabilityReading(stats):null}var STATS_CACHE_TTL_MS,outcomeTracker,statsCache,init_editReliabilityLedger=__esm({"src/services/editReliability/editReliabilityLedger.ts"(){init_cwd2();init_debug();init_envUtils();init_editReliabilityCore();STATS_CACHE_TTL_MS=5e3,outcomeTracker=createEditOutcomeTracker();__name(isEditReliabilityLedgerDisabled,"isEditReliabilityLedgerDisabled");__name(resolveEditReliabilityLedgerPath,"resolveEditReliabilityLedgerPath");__name(getEditReliabilityStatsCached,"getEditReliabilityStatsCached");__name(getEditReliabilityReadingForModel,"getEditReliabilityReadingForModel")}});function normalize3(raw,allowed){let value=String(raw??"").trim().toLowerCase();if(value)return allowed.has(value)?value:void 0}function getWorkflowDisciplinePreferencesFromEnv(env5=process.env){return{planDiscipline:normalize3(env5.CLAVUE_PLAN_DISCIPLINE??env5.MYCLAUDE_PLAN_DISCIPLINE,PLAN_DISCIPLINE_VALUES),verificationDiscipline:normalize3(env5.CLAVUE_VERIFICATION_DISCIPLINE??env5.MYCLAUDE_VERIFICATION_DISCIPLINE,VERIFICATION_DISCIPLINE_VALUES),recoveryMode:normalize3(env5.CLAVUE_RECOVERY_MODE??env5.MYCLAUDE_RECOVERY_MODE,RECOVERY_MODE_VALUES)}}function applyWorkflowDisciplinePreferences(routeDerived,preferences){return{planDiscipline:preferences.planDiscipline??routeDerived.planDiscipline,verificationDiscipline:preferences.verificationDiscipline??routeDerived.verificationDiscipline,recoveryMode:preferences.recoveryMode??routeDerived.recoveryMode}}var PLAN_DISCIPLINE_VALUES,VERIFICATION_DISCIPLINE_VALUES,RECOVERY_MODE_VALUES,init_workflowDisciplinePreferences=__esm({"src/utils/model/workflowDisciplinePreferences.ts"(){PLAN_DISCIPLINE_VALUES=new Set(["required","recommended","optional"]),VERIFICATION_DISCIPLINE_VALUES=new Set(["required","recommended","optional"]),RECOVERY_MODE_VALUES=new Set(["strict","normal","off"]);__name(normalize3,"normalize");__name(getWorkflowDisciplinePreferencesFromEnv,"getWorkflowDisciplinePreferencesFromEnv");__name(applyWorkflowDisciplinePreferences,"applyWorkflowDisciplinePreferences")}});var init_classify=__esm({"src/services/providerHealth/classify.ts"(){}});function createProviderHealthLedger(events=[]){return{events:[...events].sort((a2,b)=>a2.atMs-b.atMs)}}function getProviderHealthSnapshot(ledger,options){let nowMs=options.nowMs??Date.now(),windowMs=options.windowMs??DEFAULT_PROVIDER_HEALTH_WINDOW_MS,windowStartMs=nowMs-windowMs,routeEvents=ledger.events.filter(event=>event.routeId===options.routeId&&event.atMs>=windowStartMs).sort((a2,b)=>a2.atMs-b.atMs);if(routeEvents.length===0)return null;let lastRecoveryIndex=findLastIndex2(routeEvents,event=>event.type==="provider_recovered"),activeEvents=lastRecoveryIndex>=0?routeEvents.slice(lastRecoveryIndex+1):routeEvents;if(activeEvents.length===0)return{healthTier:"healthy",capabilityStatus:"verified",workflowToolPolicy:"full",warnings:[],repairHints:["Provider route recovered in the current health window."],certificationRef:routeEvents[lastRecoveryIndex]?.certificationRef};if(activeEvents.find(event=>event.failureClass==="auth"))return buildSnapshot({healthTier:"broken",capabilityStatus:"failed",workflowToolPolicy:"blocked",warning:"Provider authentication failed for this route.",repairHint:"Repair the provider credential or selected profile, then rerun provider doctor.",certificationRef:latestCertificationRef(activeEvents)});let classCounts=countFailureClasses(activeEvents),strongestToolFailure=strongestCount(classCounts.filter(item=>TOOL_FAILURE_CLASSES.has(item.failureClass)));if(strongestToolFailure&&strongestToolFailure.count>=3)return buildSnapshot({healthTier:"degraded",capabilityStatus:"stale",workflowToolPolicy:"direct_only",warning:failureWarning(strongestToolFailure,"repeated"),repairHint:"Workflow orchestration tools are downgraded for this route; preserve direct repo tools and rerun provider certification before restoring workflow mode.",certificationRef:latestCertificationRef(activeEvents)});if(strongestToolFailure&&strongestToolFailure.count>=2)return buildSnapshot({healthTier:"warning",capabilityStatus:"stale",workflowToolPolicy:"cautious",warning:failureWarning(strongestToolFailure,"second"),repairHint:"Keep workflow tools visible but treat provider tool-calling as unproven until certification passes.",certificationRef:latestCertificationRef(activeEvents)});let streamFailures=classCounts.find(item=>item.failureClass==="stream");if(streamFailures&&streamFailures.count>=2)return buildSnapshot({healthTier:"warning",capabilityStatus:"stale",workflowToolPolicy:"cautious",warning:"Repeated provider stream parsing failures were observed.",repairHint:"Prefer cautious workflow use and rerun provider doctor to confirm the streaming contract.",certificationRef:latestCertificationRef(activeEvents)});let cacheFailures=classCounts.find(item=>item.failureClass==="cache");return cacheFailures&&cacheFailures.count>=2?buildSnapshot({healthTier:"warning",capabilityStatus:"stale",workflowToolPolicy:"cautious",warning:"Repeated provider cache or previous_response_id anchor failures were observed.",repairHint:"Disable stateful cache assumptions for this route until certification confirms support.",certificationRef:latestCertificationRef(activeEvents)}):classCounts.find(item=>item.failureClass==="overflow")?buildSnapshot({healthTier:"warning",capabilityStatus:"assumed",workflowToolPolicy:"cautious",warning:"Provider context overflow was observed on this route.",repairHint:"Use strict recovery for the turn, compact context, then retry with a smaller request.",certificationRef:latestCertificationRef(activeEvents)}):classCounts.find(item=>item.failureClass==="rate_limit")?buildSnapshot({healthTier:"warning",capabilityStatus:"assumed",workflowToolPolicy:"cautious",warning:"Provider rate limiting was observed on this route.",repairHint:"Back off or switch provider route; do not infer a permanent capability failure from rate limiting alone.",certificationRef:latestCertificationRef(activeEvents)}):buildSnapshot({healthTier:"warning",capabilityStatus:"assumed",workflowToolPolicy:"cautious",warning:"Provider route emitted a recoverable health warning.",repairHint:"Continue on direct repo tools when possible and record another provider health event if the route fails again.",certificationRef:latestCertificationRef(activeEvents)})}function buildSnapshot({healthTier,capabilityStatus,workflowToolPolicy,warning,repairHint,certificationRef}){return{healthTier,capabilityStatus,workflowToolPolicy,warnings:[warning],repairHints:[repairHint],...certificationRef?{certificationRef}:{}}}function countFailureClasses(events){let counts=new Map;for(let event of events)event.failureClass!=="recovered"&&counts.set(event.failureClass,(counts.get(event.failureClass)??0)+1);return[...counts.entries()].map(([failureClass,count3])=>({failureClass,count:count3}))}function strongestCount(items){let strongest=null;for(let item of items)(!strongest||item.count>strongest.count)&&(strongest=item);return strongest}function failureWarning(item,label){let readableClass=item.failureClass.replaceAll("_"," ");return label==="second"?`Provider route emitted a second ${readableClass} failure in the health window.`:`Provider route emitted repeated ${readableClass} failures in the health window.`}function latestCertificationRef(events){return[...events].reverse().find(event=>event.certificationRef)?.certificationRef}function findLastIndex2(values2,predicate){for(let index=values2.length-1;index>=0;index-=1)if(predicate(values2[index]))return index;return-1}var DEFAULT_PROVIDER_HEALTH_WINDOW_MS,TOOL_FAILURE_CLASSES,init_ledger=__esm({"src/services/providerHealth/ledger.ts"(){init_classify();DEFAULT_PROVIDER_HEALTH_WINDOW_MS=900*1e3,TOOL_FAILURE_CLASSES=new Set(["tool_schema","tool_call","tool_result"]);__name(createProviderHealthLedger,"createProviderHealthLedger");__name(getProviderHealthSnapshot,"getProviderHealthSnapshot");__name(buildSnapshot,"buildSnapshot");__name(countFailureClasses,"countFailureClasses");__name(strongestCount,"strongestCount");__name(failureWarning,"failureWarning");__name(latestCertificationRef,"latestCertificationRef");__name(findLastIndex2,"findLastIndex")}});function isProviderHealthLedgerEnabled(){return process.env.CLAVUE_ROUTE_HEALTH_LEDGER!=="0"}function getProviderRouteHealthSnapshot(routeId){if(!isProviderHealthLedgerEnabled())return null;let normalizedRouteId=String(routeId??"").trim();return normalizedRouteId?getProviderHealthSnapshot(runtimeLedger,{routeId:normalizedRouteId}):null}var runtimeLedger,init_runtime=__esm({"src/services/providerHealth/runtime.ts"(){init_ledger();runtimeLedger=createProviderHealthLedger();__name(isProviderHealthLedgerEnabled,"isProviderHealthLedgerEnabled");__name(getProviderRouteHealthSnapshot,"getProviderRouteHealthSnapshot")}});function validateBoundedIntEnvVar(name,value,defaultValue,upperLimit){if(!value)return{effective:defaultValue,status:"valid"};let parsed=parseInt(value,10);if(isNaN(parsed)||parsed<=0){let result2={effective:defaultValue,status:"invalid",message:`Invalid value "${value}" (using default: ${defaultValue})`};return logForDebugging(`${name} ${result2.message}`),result2}if(parsed>upperLimit){let result2={effective:upperLimit,status:"capped",message:`Capped from ${parsed} to ${upperLimit}`};return logForDebugging(`${name} ${result2.message}`),result2}return{effective:parsed,status:"valid"}}var init_envValidation=__esm({"src/utils/envValidation.ts"(){init_debug();__name(validateBoundedIntEnvVar,"validateBoundedIntEnvVar")}});function isTruthyEnv(value){let normalized=String(value??"").trim().toLowerCase();return normalized==="1"||normalized==="true"||normalized==="yes"}function hostnameOf(raw){let trimmed=raw.trim();if(!trimmed)return null;try{let withScheme=/:\/\//.test(trimmed)?trimmed:`http://${trimmed}`;return new URL(withScheme).hostname.toLowerCase()}catch{return null}}function isIpv4Octet(n2){return Number.isInteger(n2)&&n2>=0&&n2<=255}function isLoopbackHostname(host){let h3=String(host??"").trim().toLowerCase().replace(/^\[|\]$/g,"");if(!h3)return!1;if(h3==="localhost"||h3==="::1"||h3==="0.0.0.0"||h3==="host.docker.internal"||h3.endsWith(".localhost"))return!0;let m2=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(h3);if(!m2)return!1;let a2=Number(m2[1]),b=Number(m2[2]),c3=Number(m2[3]),d=Number(m2[4]);return[a2,b,c3,d].every(isIpv4Octet)?a2===127:!1}function isPrivateLanHostname(host){let h3=String(host??"").trim().toLowerCase().replace(/^\[|\]$/g,"");if(!h3)return!1;let m2=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(h3);if(m2){let a2=Number(m2[1]),b=Number(m2[2]),c3=Number(m2[3]),d=Number(m2[4]);return[a2,b,c3,d].every(isIpv4Octet)?a2===10||a2===192&&b===168||a2===172&&b>=16&&b<=31||a2===169&&b===254:!1}return h3.startsWith("fe80:")?!0:h3.startsWith("fc")||h3.startsWith("fd")?h3.includes(":"):!!h3.endsWith(".local")}function isLocalModelHostname(host){let h3=String(host??"").trim().toLowerCase().replace(/^\[|\]$/g,"");return!h3||OFFICIAL_OR_FIRST_PARTY_HOSTS.has(h3)?!1:isLoopbackHostname(h3)||isPrivateLanHostname(h3)}function resolveActiveModelBaseUrl(env5=process.env){return String(env5.CLAVUE_BASE_URL??env5.ANTHROPIC_BASE_URL??"").trim()}function resolveHopModelBaseUrl(model,env5=process.env){if(model){try{let fusion=getActiveFusionEndpointForModel(model),fusionUrl=String(fusion?.baseUrl??"").trim();if(fusionUrl)return fusionUrl}catch{}try{let{getActiveReviewModelConfig:getActiveReviewModelConfig2}=(init_reviewModelConfig(),__toCommonJS(reviewModelConfig_exports)),review=getActiveReviewModelConfig2(model),reviewUrl=String(review?.apiurl??"").trim();if(reviewUrl)return reviewUrl}catch{}}return resolveActiveModelBaseUrl(env5)}function peekRuntimeLocalModelUrls(model,env5=process.env){let hop=resolveHopModelBaseUrl(model,env5);return hop?[hop]:[]}function isLocalModelBaseUrl(baseUrl){let host=hostnameOf(String(baseUrl??""));return isLocalModelHostname(host)}function isLocalModelRequestPolicyDisabled(env5=process.env){return isTruthyEnv(env5.CLAVUE_DISABLE_LOCAL_MODEL_POLICY)}function shouldDisableStreamingForLocalCandidates(urls,env5=process.env,options={}){return isLocalModelRequestPolicyDisabled(env5)||isTruthyEnv(env5.CLAVUE_LOCAL_MODEL_STREAM)||!urls.some(url3=>isLocalModelBaseUrl(url3))?!1:options.hasTools!==!1}function capLocalModelMaxOutputTokensForUrls(requested,env5=process.env,urls=[resolveActiveModelBaseUrl()],options={}){let n2=Number(requested),fallback=options.hasTools===!1?LOCAL_MODEL_CHAT_MAX_OUTPUT_TOKENS:LOCAL_MODEL_TOOL_MAX_OUTPUT_TOKENS,raw=Number.isFinite(n2)&&n2>0?Math.floor(n2):fallback;if(isLocalModelRequestPolicyDisabled(env5)||!urls.some(url3=>isLocalModelBaseUrl(url3)))return raw;let defaultCap=options.hasTools===!1?LOCAL_MODEL_CHAT_MAX_OUTPUT_TOKENS:LOCAL_MODEL_TOOL_MAX_OUTPUT_TOKENS,cap=validateBoundedIntEnvVar("CLAVUE_LOCAL_MAX_OUTPUT_TOKENS",env5.CLAVUE_LOCAL_MAX_OUTPUT_TOKENS,defaultCap,LOCAL_MODEL_MAX_OUTPUT_TOKENS_UPPER).effective;return Math.min(raw,cap)}function capLocalModelTemperature(requested,urls,env5=process.env,options={}){if(isLocalModelRequestPolicyDisabled(env5)||!urls.some(url3=>isLocalModelBaseUrl(url3))||options.hasTools===!1)return requested;let n2=typeof requested=="number"&&Number.isFinite(requested)?requested:LOCAL_MODEL_TOOL_TEMPERATURE;return Math.min(n2,LOCAL_MODEL_TOOL_TEMPERATURE)}function localQwenThinkingExtra(model,urls,env5=process.env,options={}){if(!(isLocalModelRequestPolicyDisabled(env5)||options.hasTools===!1||!urls.some(url3=>isLocalModelBaseUrl(url3)))&&/qwen/i.test(String(model??"")))return{chat_template_kwargs:{enable_thinking:!1}}}function shouldAbortIncompleteLocalToolJson(input){let text=String(input.argumentsText??"");if(text.trim())try{return JSON.parse(text),!1}catch{}return text.length>=LOCAL_TOOL_JSON_STALL_BYTES?!0:input.elapsedMs>=LOCAL_TOOL_JSON_STALL_MS}function shapeLocalModelRequest(body,urls,env5=process.env,options={}){let hasTools=options.hasTools??(Array.isArray(body.tools)&&body.tools.length>0),shape={...options,hasTools,model:options.model??(typeof body.model=="string"?body.model:void 0)},next={...body};shouldDisableStreamingForLocalCandidates(urls,env5,shape)&&(next.stream=!1,delete next.stream_options);for(let key of["max_tokens","max_output_tokens","max_completion_tokens"])typeof next[key]=="number"&&(next[key]=capLocalModelMaxOutputTokensForUrls(next[key],env5,urls,shape));let temperature=capLocalModelTemperature(typeof next.temperature=="number"?next.temperature:void 0,urls,env5,shape);typeof temperature=="number"&&(next.temperature=temperature);let extra=localQwenThinkingExtra(shape.model,urls,env5,shape);return extra&&Object.assign(next,extra),next}var LOCAL_MODEL_TOOL_MAX_OUTPUT_TOKENS,LOCAL_MODEL_CHAT_MAX_OUTPUT_TOKENS,LOCAL_MODEL_MAX_OUTPUT_TOKENS_UPPER,LOCAL_MODEL_TOOL_TEMPERATURE,LOCAL_TOOL_JSON_STALL_MS,LOCAL_TOOL_JSON_STALL_BYTES,LOCAL_OPENAI_CHAT_PATH,LOCAL_OPENAI_DIALECT_LABEL,OFFICIAL_OR_FIRST_PARTY_HOSTS,LocalToolJsonStallError,init_localModelRequestPolicy=__esm({"src/services/api/localModelRequestPolicy.ts"(){init_envValidation();init_providerProfiles();LOCAL_MODEL_TOOL_MAX_OUTPUT_TOKENS=2048,LOCAL_MODEL_CHAT_MAX_OUTPUT_TOKENS=4096,LOCAL_MODEL_MAX_OUTPUT_TOKENS_UPPER=4096,LOCAL_MODEL_TOOL_TEMPERATURE=.2,LOCAL_TOOL_JSON_STALL_MS=12e3,LOCAL_TOOL_JSON_STALL_BYTES=4096,LOCAL_OPENAI_CHAT_PATH="/v1/chat/completions",LOCAL_OPENAI_DIALECT_LABEL="openai",OFFICIAL_OR_FIRST_PARTY_HOSTS=new Set(["api.clavue.com","www.clavue.com","clavue.com","api.anthropic.com","api-staging.anthropic.com"]);__name(isTruthyEnv,"isTruthyEnv");__name(hostnameOf,"hostnameOf");__name(isIpv4Octet,"isIpv4Octet");__name(isLoopbackHostname,"isLoopbackHostname");__name(isPrivateLanHostname,"isPrivateLanHostname");__name(isLocalModelHostname,"isLocalModelHostname");__name(resolveActiveModelBaseUrl,"resolveActiveModelBaseUrl");__name(resolveHopModelBaseUrl,"resolveHopModelBaseUrl");__name(peekRuntimeLocalModelUrls,"peekRuntimeLocalModelUrls");__name(isLocalModelBaseUrl,"isLocalModelBaseUrl");__name(isLocalModelRequestPolicyDisabled,"isLocalModelRequestPolicyDisabled");__name(shouldDisableStreamingForLocalCandidates,"shouldDisableStreamingForLocalCandidates");__name(capLocalModelMaxOutputTokensForUrls,"capLocalModelMaxOutputTokensForUrls");__name(capLocalModelTemperature,"capLocalModelTemperature");__name(localQwenThinkingExtra,"localQwenThinkingExtra");__name(shouldAbortIncompleteLocalToolJson,"shouldAbortIncompleteLocalToolJson");LocalToolJsonStallError=class extends Error{static{__name(this,"LocalToolJsonStallError")}constructor(detail){super(`Local model tool JSON stalled (${detail}). Socket closed before dispatch; retry stream=false.`),this.name="LocalToolJsonStallError"}};__name(shapeLocalModelRequest,"shapeLocalModelRequest")}});function isOfficialAnthropicBaseUrl(baseUrl){let normalizedBaseUrl=String(baseUrl??"").trim();if(!normalizedBaseUrl)return isFirstPartyAnthropicBaseUrl();try{let host=new URL(normalizedBaseUrl).host,allowedHosts=["api.anthropic.com"];return process.env.USER_TYPE==="ant"&&allowedHosts.push("api-staging.anthropic.com"),allowedHosts.includes(host)}catch{return!1}}function inferRuntimeProviderKind(input){if(input.runtimeProviderKind)return input.runtimeProviderKind;if(typeof input.baseUrl=="string"&&input.baseUrl.trim())return isOfficialAnthropicBaseUrl(input.baseUrl)?"first_party":"gateway";switch(getAPIProvider()){case"bedrock":return"bedrock";case"vertex":return"vertex";case"foundry":return"foundry";default:return isFirstPartyAnthropicBaseUrl()?"first_party":"gateway"}}function resolveCodingRoutePolicy(input){let normalizedModel=String(input.model??"").trim(),snapshot=input.snapshot??null,dialectMode=input.fusionEndpointDialect??input.apiDialectMode??getConfiguredApiDialectMode(),runtimeProviderKind=inferRuntimeProviderKind(input),routeId=input.routeId??[runtimeProviderKind,normalizedModel||"provider-default"].join(":"),providerHealth=input.providerHealth===void 0?getProviderRouteHealthSnapshot(routeId):input.providerHealth,decision=resolveCodingRoutePolicyCore({model:normalizedModel,snapshot,routeId,apiDialectMode:dialectMode,runtimeProviderKind,supportsResponsesAdapter:supportsOpenAIResponsesAdapterModel(normalizedModel),coreNativeWorkflowToolNames:[...CORE_NATIVE_WORKFLOW_TOOL_NAMES],providerHealth,editReliability:safeEditReliabilityReading(normalizedModel)}),preferences=getWorkflowDisciplinePreferencesFromEnv(),overridden=applyWorkflowDisciplinePreferences(decision,preferences),withDiscipline={...decision,planDiscipline:overridden.planDiscipline,verificationDiscipline:overridden.verificationDiscipline,recoveryMode:overridden.recoveryMode};return(isClavueCloudMembershipBaseUrl(input.baseUrl)||isClavueCloudProfileRouteId(routeId)||isClavueCloudProfileRouteId(input.routeId))&&withDiscipline.transport!=="openai_chat_completions"?{...withDiscipline,transport:"openai_chat_completions",transportReason:"Clavue Cloud membership proxy only implements /v1/chat/completions (never /v1/responses)."}:isLocalModelBaseUrl(input.baseUrl)&&!isClaudeFamilyModel(normalizedModel)&&withDiscipline.transport==="anthropic_messages"?{...withDiscipline,transport:"openai_chat_completions",transportReason:"Local compat hop uses OpenAI /v1/chat/completions, not Anthropic /v1/messages."}:withDiscipline}function safeEditReliabilityReading(model){if(!model||isEditReliabilityRoutingDisabled())return null;try{return getEditReliabilityReadingForModel(model)}catch{return null}}var CORE_NATIVE_WORKFLOW_TOOL_NAMES,init_codingRoutePolicy=__esm({"src/utils/model/codingRoutePolicy.ts"(){init_constants6();init_constants7();init_constants8();init_constants9();init_constants10();init_constants4();init_constants11();init_constants12();init_constants13();init_constants14();init_config();init_codingRoutePolicyCore();init_editReliabilityLedger();init_providers();init_openaiResponsesConfig();init_workflowDisciplinePreferences();init_runtime();init_localModelRequestPolicy();CORE_NATIVE_WORKFLOW_TOOL_NAMES=new Set([ENTER_PLAN_MODE_TOOL_NAME,SEND_MESSAGE_TOOL_NAME,TASK_CREATE_TOOL_NAME,TASK_GET_TOOL_NAME,TASK_LIST_TOOL_NAME,TASK_OUTPUT_TOOL_NAME,TASK_UPDATE_TOOL_NAME,TEAM_CREATE_TOOL_NAME,TEAM_DELETE_TOOL_NAME,TODO_WRITE_TOOL_NAME]);__name(isOfficialAnthropicBaseUrl,"isOfficialAnthropicBaseUrl");__name(inferRuntimeProviderKind,"inferRuntimeProviderKind");__name(resolveCodingRoutePolicy,"resolveCodingRoutePolicy");__name(safeEditReliabilityReading,"safeEditReliabilityReading")}});function createFallbackStorage(primary,secondary){return{name:`${primary.name}-with-${secondary.name}-fallback`,read(){let result2=primary.read();return result2??(secondary.read()||{})},async readAsync(){let result2=await primary.readAsync();return result2??(await secondary.readAsync()||{})},update(data){let primaryDataBefore=primary.read(),result2=primary.update(data);if(result2.success)return primaryDataBefore===null&&secondary.delete(),result2;let fallbackResult=secondary.update(data);return fallbackResult.success?(primaryDataBefore!==null&&primary.delete(),{success:!0,warning:fallbackResult.warning}):{success:!1}},delete(){let primarySuccess=primary.delete(),secondarySuccess=secondary.delete();return primarySuccess||secondarySuccess}}}var init_fallbackStorage=__esm({"src/utils/secureStorage/fallbackStorage.ts"(){__name(createFallbackStorage,"createFallbackStorage")}});async function doReadAsync(){try{let storageServiceName=getMacOsKeychainStorageServiceName(CREDENTIALS_SERVICE_SUFFIX),username=getUsername(),{stdout,code}=await execFileNoThrow("security",["find-generic-password","-a",username,"-w","-s",storageServiceName],{useCwd:!1,preserveOutputOnError:!1});if(code===0&&stdout)return jsonParse(stdout.trim())}catch{}return null}var SECURITY_STDIN_LINE_LIMIT,macOsKeychainStorage,init_macOsKeychainStorage=__esm({"src/utils/secureStorage/macOsKeychainStorage.ts"(){init_execa();init_debug();init_envUtils();init_execFileNoThrow();init_execFileNoThrowPortable();init_slowOperations();init_macOsKeychainHelpers();SECURITY_STDIN_LINE_LIMIT=4032,macOsKeychainStorage={name:"keychain",read(){let prev=keychainCacheState.cache;if(Date.now()-prev.cachedAt<KEYCHAIN_CACHE_TTL_MS)return prev.data;try{let storageServiceName=getMacOsKeychainStorageServiceName(CREDENTIALS_SERVICE_SUFFIX),username=getUsername(),result2=execSyncWithDefaults(`security find-generic-password -a "${username}" -w -s "${storageServiceName}"`);if(result2){let data=jsonParse(result2);return keychainCacheState.cache={data,cachedAt:Date.now()},data}}catch{}return prev.data!==null?(logForDebugging("[keychain] read failed; serving stale cache",{level:"warn"}),keychainCacheState.cache={data:prev.data,cachedAt:Date.now()},prev.data):(keychainCacheState.cache={data:null,cachedAt:Date.now()},null)},async readAsync(){let prev=keychainCacheState.cache;if(Date.now()-prev.cachedAt<KEYCHAIN_CACHE_TTL_MS)return prev.data;if(keychainCacheState.readInFlight)return keychainCacheState.readInFlight;let gen=keychainCacheState.generation,promise2=doReadAsync().then(data=>{if(gen===keychainCacheState.generation){data===null&&prev.data!==null&&logForDebugging("[keychain] readAsync failed; serving stale cache",{level:"warn"});let next=data??prev.data;return keychainCacheState.cache={data:next,cachedAt:Date.now()},keychainCacheState.readInFlight=null,next}return data});return keychainCacheState.readInFlight=promise2,promise2},update(data){clearKeychainCache();try{let storageServiceName=getMacOsKeychainStorageServiceName(CREDENTIALS_SERVICE_SUFFIX),username=getUsername(),jsonString=jsonStringify(data),hexValue=Buffer.from(jsonString,"utf-8").toString("hex"),command=`add-generic-password -U -a "${username}" -s "${storageServiceName}" -X "${hexValue}"
192
192
  `,result2;return command.length<=SECURITY_STDIN_LINE_LIMIT?result2=execaSync("security",["-i"],{input:command,stdio:["pipe","pipe","pipe"],reject:!1}):(logForDebugging(`Keychain payload (${jsonString.length}B JSON) exceeds security -i stdin limit; using argv`,{level:"warn"}),result2=execaSync("security",["add-generic-password","-U","-a",username,"-s",storageServiceName,"-X",hexValue],{stdio:["ignore","pipe","pipe"],reject:!1})),result2.exitCode!==0?{success:!1}:(keychainCacheState.cache={data,cachedAt:Date.now()},{success:!0})}catch{return{success:!1}}},delete(){clearKeychainCache();try{let storageServiceName=getMacOsKeychainStorageServiceName(CREDENTIALS_SERVICE_SUFFIX),username=getUsername();return execSyncWithDefaults(`security delete-generic-password -a "${username}" -s "${storageServiceName}"`),!0}catch{return!1}}};__name(doReadAsync,"doReadAsync")}});import{chmodSync as chmodSync3}from"fs";import{join as join17}from"path";function getStoragePath(){let storageDir=getClaudeConfigHomeDir();return{storageDir,storagePath:join17(storageDir,".credentials.json")}}function ensurePrivateStorageDir(storageDir){try{getFsImplementation().mkdirSync(storageDir,{mode:448})}catch(e2){if(getErrnoCode(e2)!=="EEXIST")throw e2}if(process.platform!=="win32")try{chmodSync3(storageDir,448)}catch{}}var plainTextStorage,init_plainTextStorage=__esm({"src/utils/secureStorage/plainTextStorage.ts"(){init_envUtils();init_errors2();init_fsOperations();init_slowOperations();__name(getStoragePath,"getStoragePath");__name(ensurePrivateStorageDir,"ensurePrivateStorageDir");plainTextStorage={name:"plaintext",read(){let{storagePath}=getStoragePath();try{let data=getFsImplementation().readFileSync(storagePath,{encoding:"utf8"});return jsonParse(data)}catch{return null}},async readAsync(){let{storagePath}=getStoragePath();try{let data=await getFsImplementation().readFile(storagePath,{encoding:"utf8"});return jsonParse(data)}catch{return null}},update(data){try{let{storageDir,storagePath}=getStoragePath();return ensurePrivateStorageDir(storageDir),writeFileSync(storagePath,jsonStringify(data),{encoding:"utf8",flush:!1}),chmodSync3(storagePath,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch{return{success:!1}}},delete(){let{storagePath}=getStoragePath();try{return getFsImplementation().unlinkSync(storagePath),!0}catch(e2){return getErrnoCode(e2)==="ENOENT"}}}}});function getSecureStorage(){return process.platform==="darwin"&&shouldUseMacOSKeychain()?createFallbackStorage(macOsKeychainStorage,plainTextStorage):plainTextStorage}var init_secureStorage=__esm({"src/utils/secureStorage/index.ts"(){init_fallbackStorage();init_envUtils();init_macOsKeychainStorage();init_plainTextStorage();__name(getSecureStorage,"getSecureStorage")}});function asRecord(value){return value&&typeof value=="object"&&!Array.isArray(value)?value:null}function positiveTokenLimit(value){let parsed=typeof value=="number"?value:typeof value=="string"?Number(value):NaN;return Number.isFinite(parsed)&&parsed>=1e3?Math.floor(parsed):null}function catalogRows(payload){if(Array.isArray(payload))return payload;let root2=asRecord(payload);if(!root2)return null;if(Array.isArray(root2.data))return root2.data;if(Array.isArray(root2.models))return root2.models;let nestedData=asRecord(root2.data);if(Array.isArray(nestedData?.models))return nestedData.models;let modelsObject=asRecord(root2.models);return modelsObject?Object.entries(modelsObject).map(([id,value])=>asRecord(value)?{id,...asRecord(value)}:{id,context_window:value}):String(root2.id??"").trim()?[root2]:null}function exactEntryLimits(entry){let capabilities=asRecord(entry.capabilities),limits=asRecord(entry.limits);return[entry.max_input_tokens,entry.maxInputTokens,capabilities?.max_input_tokens,capabilities?.maxInputTokens,limits?.max_input_tokens,limits?.maxInputTokens,entry.input_token_limit,entry.inputTokenLimit,entry.max_context_tokens,entry.maxContextTokens,capabilities?.max_context_tokens,limits?.max_context_tokens,entry.max_model_len,entry.maxModelLen,entry.max_sequence_length,entry.context_window,entry.contextWindow,entry.context_length,entry.contextLength,capabilities?.context_window,capabilities?.context_length,capabilities?.contextLength,limits?.context_window,limits?.context_length,entry.max_prompt_tokens,entry.maxPromptTokens]}function firstTokenLimit(candidates){for(let candidate of candidates){let limit=positiveTokenLimit(candidate);if(limit!=null)return limit}return null}function extractMaxInputTokensFromModelsPayload(payload,modelId){let wanted=String(modelId||"").trim().toLowerCase();if(!wanted)return null;let wantedBare=wanted.includes("/")?wanted.slice(wanted.lastIndexOf("/")+1):wanted,rows=catalogRows(payload);if(!rows)return null;for(let raw of rows){let entry=asRecord(raw);if(!entry)continue;let id=String(entry.id??"").trim().toLowerCase();if(!id)continue;let idBare=id.includes("/")?id.slice(id.lastIndexOf("/")+1):id;if(id!==wanted&&idBare!==wantedBare&&!id.endsWith(`/${wantedBare}`))continue;let limit=firstTokenLimit(exactEntryLimits(entry));if(limit!=null)return limit}for(let raw of rows){let entry=asRecord(raw);if(!entry||!Array.isArray(entry.aliases))continue;let aliases=entry.aliases.map(alias=>String(alias||"").trim().toLowerCase()).filter(Boolean);if(!(aliases.includes(wanted)||aliases.includes(wantedBare)||aliases.some(alias=>alias.endsWith(`/${wantedBare}`))))continue;let limit=firstTokenLimit(exactEntryLimits(entry));if(limit!=null)return limit}return null}function extractAllModelContextWindows(payload){let rows=catalogRows(payload),out={};if(!rows)return out;for(let raw of rows){let entry=asRecord(raw);if(!entry)continue;let id=String(entry.id??"").trim();if(!id)continue;let limit=firstTokenLimit(exactEntryLimits(entry));limit!=null&&(out[id]=limit)}return out}function resolveClavuePublicContextCatalogUrl(explicitUrl){let raw=String(explicitUrl??process.env.CLAVUE_MODEL_CONTEXT_CATALOG_URL??process.env.CLAVUE_PUBLIC_CONTEXT_CATALOG_URL??CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL).trim();if(!raw||/^(0|false|off|none|disable|disabled)$/i.test(raw))return null;try{return new URL(raw).toString()}catch{return null}}function getProviderContextWindowModels(profile){if(!profile||profile.id==="clavue-cloud")return[];let routing=profile.modelRouting;return[routing.primaryModel,routing.subagentModel,routing.smallFastModel,routing.planModel,routing.exploreModel,routing.generalModel,routing.teamModel,routing.guideModel,routing.reviewModel].map(model=>String(model??"").trim()).filter((model,index,models)=>model&&models.indexOf(model)===index)}var CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL,init_providerContextCatalog=__esm({"src/utils/providerContextCatalog.ts"(){CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL="https://api.clavue.com/api/membership/v1/model-context-catalog";__name(asRecord,"asRecord");__name(positiveTokenLimit,"positiveTokenLimit");__name(catalogRows,"catalogRows");__name(exactEntryLimits,"exactEntryLimits");__name(firstTokenLimit,"firstTokenLimit");__name(extractMaxInputTokensFromModelsPayload,"extractMaxInputTokensFromModelsPayload");__name(extractAllModelContextWindows,"extractAllModelContextWindows");__name(resolveClavuePublicContextCatalogUrl,"resolveClavuePublicContextCatalogUrl");__name(getProviderContextWindowModels,"getProviderContextWindowModels")}});var officialCapabilityFloor_exports={};__export(officialCapabilityFloor_exports,{assessOfficialCapabilityFloor:()=>assessOfficialCapabilityFloor,formatOfficialCapabilityFloorLines:()=>formatOfficialCapabilityFloorLines,officialAcquireReadsAreFree:()=>officialAcquireReadsAreFree,officialShouldForceVerifyEvidence:()=>officialShouldForceVerifyEvidence,officialToolBatchIsAcquireOnly:()=>officialToolBatchIsAcquireOnly,sanitizeOfficialModelRouting:()=>sanitizeOfficialModelRouting});function norm2(m2){return String(m2??"").trim()}function sanitizeOfficialModelRouting(routing,opts){let reviewFallback=norm2(opts?.reviewFallback)||MEMBERSHIP_DEFAULT_REVIEW_MODEL,next={...routing},reasons=[],repaired=!1,primary=norm2(next.primaryModel),review=norm2(next.reviewModel);if(review||(next.reviewModel=reviewFallback,review=reviewFallback,repaired=!0,reasons.push("filled_empty_review")),primary&&review&&primary.toLowerCase()===review.toLowerCase()){let alt=primary.toLowerCase()===reviewFallback.toLowerCase()?"clavue-2.1-pro":reviewFallback;next.reviewModel=alt,repaired=!0,reasons.push(`review_was_eq_primary\u2192${alt}`)}return!norm2(next.smallFastModel)&&primary&&(next.smallFastModel="clavue-2.1-fast",repaired=!0,reasons.push("filled_empty_light")),Object.assign(next,{repaired,repairReasons:reasons})}function assessOfficialCapabilityFloor(routing){let primary=norm2(routing?.primaryModel),light=norm2(routing?.smallFastModel),plan=norm2(routing?.planModel),review=norm2(routing?.reviewModel),suggestedReviewModel=MEMBERSHIP_DEFAULT_REVIEW_MODEL,baseSlots={primary,light,plan,review},oBase={o4_singleFileVerifyShape:!0,o5_multiFileCompletenessLaw:!0,o7_honestCompletionLaw:!0,o8_costThriftLaw:!0};if(!primary)return{accuracyFloorReady:!1,efficiencyFloorReady:!1,fullyArmed:!1,independentReviewReady:!1,code:"missing_primary",line:"official floor: missing primary",banner:"OFFICIAL CAPABILITY: incomplete \u2014 set primary (auto recommended). No competitor claim.",bannerZh:"\u5B98\u65B9\u80FD\u529B\u672A\u5C31\u7EEA\uFF1A\u7F3A\u5C11\u4E3B\u6A21\u578B\uFF08\u5EFA\u8BAE auto\uFF09\u3002\u4E0D\u5BF9\u6807\u7ADE\u54C1\uFF0C\u53EA\u8C08\u81EA\u8EAB\u95ED\u73AF\u3002",suggestedReviewModel,slots:baseSlots,oGates:{...oBase,independentReviewSlot:!1}};if(!review)return{accuracyFloorReady:!1,efficiencyFloorReady:!!light,fullyArmed:!1,independentReviewReady:!1,code:"missing_review",line:"official floor: missing review slot",banner:"OFFICIAL ACCURACY GAP: review slot empty \u2014 multi-file depth has no independent eye. Repair with clavue-2.1-rev.",bannerZh:"\u5B98\u65B9\u51C6\u786E\u7387\u7F3A\u53E3\uFF1A\u5BA1\u67E5\u69FD\u4E3A\u7A7A \u2014 \u591A\u6587\u4EF6\u6DF1\u5EA6\u65E0\u72EC\u7ACB\u773C\u3002\u8BF7\u7528 clavue-2.1-rev \u4FEE\u590D\u3002",suggestedReviewModel,slots:baseSlots,oGates:{...oBase,independentReviewSlot:!1}};if(primary.toLowerCase()===review.toLowerCase())return{accuracyFloorReady:!1,efficiencyFloorReady:!!light,fullyArmed:!1,independentReviewReady:!1,code:"review_equals_primary",line:`official floor: review\u2261primary (${primary})`,banner:"OFFICIAL ACCURACY GAP: review equals primary \u2014 self-review only. Force distinct review (clavue-2.1-rev).",bannerZh:"\u5B98\u65B9\u51C6\u786E\u7387\u7F3A\u53E3\uFF1A\u5BA1\u67E5=\u4E3B\u6A21\u578B \u2014 \u4EC5\u81EA\u5BA1\u3002\u8BF7\u5F3A\u5236\u72EC\u7ACB\u5BA1\u67E5\uFF08clavue-2.1-rev\uFF09\u3002",suggestedReviewModel,slots:baseSlots,oGates:{...oBase,independentReviewSlot:!1}};for(let[name,id]of[["primary",primary],["light",light],["plan",plan],["review",review]])if(id&&!isMembershipProductModel(id)&&id!=="auto")return{accuracyFloorReady:!1,efficiencyFloorReady:!1,fullyArmed:!1,independentReviewReady:primary.toLowerCase()!==review.toLowerCase(),code:"non_product_slot",line:`official floor: non-product ${name}=${id}`,banner:`OFFICIAL ROUTING: ${name} is not a Cloud product id (${id}). Keep auto / clavue-2.1*.`,bannerZh:`\u5B98\u65B9\u8DEF\u7531\uFF1A${name} \u975E Cloud \u4EA7\u54C1 id\uFF08${id}\uFF09\u3002\u8BF7\u4FDD\u6301 auto / clavue-2.1*\u3002`,suggestedReviewModel,slots:baseSlots,oGates:{...oBase,independentReviewSlot:primary.toLowerCase()!==review.toLowerCase()}};let independentReviewReady=!0,efficiencyFloorReady=!!light||primary==="auto",accuracyFloorReady=independentReviewReady;return!light&&primary!=="auto"?{accuracyFloorReady,efficiencyFloorReady:!1,fullyArmed:!1,independentReviewReady,code:"incomplete_light",line:"official floor: light empty (efficiency soft gap)",banner:"OFFICIAL EFFICIENCY SOFT GAP: light/fast slot empty \u2014 scout/agent thrift weaker. Prefer clavue-2.1-fast.",bannerZh:"\u5B98\u65B9\u6548\u7387\u8F6F\u7F3A\u53E3\uFF1A\u8F7B\u91CF\u69FD\u4E3A\u7A7A \u2014 \u8F85\u52A9 thrift \u53D8\u5F31\u3002\u5EFA\u8BAE clavue-2.1-fast\u3002",suggestedReviewModel,slots:baseSlots,oGates:{...oBase,independentReviewSlot:!0}}:{accuracyFloorReady:!0,efficiencyFloorReady:!0,fullyArmed:!0,independentReviewReady:!0,code:"ok",line:`official floor: armed \xB7 hand=${primary} \xB7 light=${light||"\u2014"} \xB7 plan=${plan||"\u2014"} \xB7 eye=${review}`,banner:"OFFICIAL CAPABILITY ARMED: independent review + thrift light slot. Track self O-gates (accuracy + efficiency).",bannerZh:"\u5B98\u65B9\u80FD\u529B\u5DF2\u6B66\u88C5\uFF1A\u72EC\u7ACB\u5BA1\u67E5 + \u8F7B\u91CF thrift \u69FD\u3002\u53EA\u8DDF\u8E2A\u81EA\u8EAB O \u95E8\u7981\uFF08\u51C6\u786E\u7387 + \u6548\u7387\uFF09\u3002",suggestedReviewModel,slots:baseSlots,oGates:{...oBase,independentReviewSlot:!0}}}function formatOfficialCapabilityFloorLines(floor2,opts){let zh=!!opts?.zh,lines=[`Official: ${zh?floor2.bannerZh:floor2.banner}`];return floor2.fullyArmed?lines.push(zh?" \u2192 O4/O5/O7/O8 \u7ED3\u6784\u6CD5\u5728 \xB7 \u5BA1\u69FD\u72EC\u7ACB \xB7 \u8F7B\u91CF thrift \u53EF\u7528":" \u2192 O4/O5/O7/O8 structural laws \xB7 independent eye \xB7 light thrift ready"):lines.push(zh?" \u2192 \u76EE\u6807\uFF1A\u5B98\u65B9\u81EA\u8EAB\u51C6\u786E\u7387 + \u6548\u7387\u6301\u7EED\u53D8\u597D\uFF08\u81EA\u6211\u5BF9\u7167\uFF09":" \u2192 Goal: official accuracy + efficiency improve over time (self-baseline)"),lines}function officialShouldForceVerifyEvidence(input){let t2=String(input.userText??"");return input.multiFileCoding===!0||(t2.match(/\b[\w./-]+\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs)\b/gi)||[]).length>=2||/\b(multi[-\s]?file|across files|多文件|两个文件|三个文件)\b/i.test(t2)?!!(/\b(npm test|npm run test|pytest|cargo test|go test|node --test|vitest|jest|ALL_OK|跑测试|测通|确保通过)\b/i.test(t2)||/\b(implement|fix|feature|refactor|实现|修复|功能)\b/i.test(t2)):!1}function officialAcquireReadsAreFree(env5=process.env){let force=String(env5.CLAVUE_TEST_FORCE_TRACK||"").trim().toLowerCase();return force==="third_party"||force==="byok"||force==="third"?!1:force==="official_cloud"||force==="official"?!0:env5!==process.env?!1:isOfficialCloudTrack()}function officialToolBatchIsAcquireOnly(toolNames){return toolNames.length===0?!1:toolNames.every(n2=>OFFICIAL_ACQUIRE_TOOLS.has(String(n2||"").trim()))}var OFFICIAL_ACQUIRE_TOOLS,init_officialCapabilityFloor=__esm({"src/runtime/officialCapabilityFloor.ts"(){init_config();init_dualTrackPolicy();__name(norm2,"norm");__name(sanitizeOfficialModelRouting,"sanitizeOfficialModelRouting");__name(assessOfficialCapabilityFloor,"assessOfficialCapabilityFloor");__name(formatOfficialCapabilityFloorLines,"formatOfficialCapabilityFloorLines");__name(officialShouldForceVerifyEvidence,"officialShouldForceVerifyEvidence");OFFICIAL_ACQUIRE_TOOLS=new Set(["Read","ReadFiles"]);__name(officialAcquireReadsAreFree,"officialAcquireReadsAreFree");__name(officialToolBatchIsAcquireOnly,"officialToolBatchIsAcquireOnly")}});var officialAutoCombo_exports={};__export(officialAutoCombo_exports,{CLAVUE_CLOUD_AUTO_PRESET_ID:()=>CLAVUE_CLOUD_AUTO_PRESET_ID,OFFICIAL_AUTO_COMBO:()=>OFFICIAL_AUTO_COMBO,OFFICIAL_AUTO_ROLE_MAP:()=>OFFICIAL_AUTO_ROLE_MAP,buildOfficialAutoModelRouting:()=>buildOfficialAutoModelRouting,ensureOfficialAutoOnCloudProfile:()=>ensureOfficialAutoOnCloudProfile,formatOfficialAutoModelsLine:()=>formatOfficialAutoModelsLine,isOfficialAutoRouting:()=>isOfficialAutoRouting,isOfficialCloudAutoProfile:()=>isOfficialCloudAutoProfile,listOfficialProductModels:()=>listOfficialProductModels,officialAutoOnboardingBullets:()=>officialAutoOnboardingBullets});function buildOfficialAutoModelRouting(){let s2=OFFICIAL_AUTO_COMBO.slots,raw={presetId:"custom",primaryModel:s2.primary,generalModel:s2.general,subagentModel:s2.subagent,smallFastModel:s2.smallFast,exploreModel:s2.explore,planModel:s2.plan,guideModel:s2.guide,teamModel:s2.team,reviewModel:s2.review};try{let{sanitizeOfficialModelRouting:sanitizeOfficialModelRouting2}=(init_officialCapabilityFloor(),__toCommonJS(officialCapabilityFloor_exports));return sanitizeOfficialModelRouting2(raw)}catch{return raw}}function isOfficialAutoRouting(routing){if(!routing)return!1;let primary=String(routing.primaryModel||"").trim().toLowerCase();if(primary!=="auto"&&primary!==MEMBERSHIP_DEFAULT_PRIMARY_MODEL)return!1;let slots=[routing.primaryModel,routing.smallFastModel,routing.planModel,routing.subagentModel,routing.exploreModel,routing.generalModel,routing.teamModel,routing.guideModel,routing.reviewModel];for(let m2 of slots)if(!(!m2||!String(m2).trim())&&!isMembershipProductModel(String(m2)))return!1;return!0}function isOfficialCloudAutoProfile(profile){return!profile||profile.id!==MEMBERSHIP_CLOUD_PROFILE_ID?!1:isOfficialAutoRouting(profile.modelRouting)}function formatOfficialAutoModelsLine(routing,locale="zh-CN"){if(!isOfficialAutoRouting(routing))return null;let zh=locale==="zh-CN",light=String(routing?.smallFastModel||"").trim(),plan=String(routing?.planModel||"").trim(),agent=String(routing?.subagentModel||"").trim(),parts=[zh?"Auto\uFF08\u5B98\u65B9\u7EC4\u5408\uFF09":"Auto (official combo)"];light&&light.toLowerCase()!=="auto"&&parts.push(zh?`\u8F7B\u91CF:${light}`:`light:${light}`),agent&&agent.toLowerCase()!=="auto"&&agent!==light&&parts.push(zh?`\u5B50\u4EE3\u7406:${agent}`:`agent:${agent}`),plan&&plan.toLowerCase()!=="auto"&&plan!==light&&parts.push(zh?`\u89C4\u5212:${plan}`:`plan:${plan}`);let review=String(routing?.reviewModel||"").trim();return review&&review.toLowerCase()!=="auto"&&parts.push(zh?`\u5BA1\u67E5:${review}`:`review:${review}`),parts.join(" \xB7 ")}function officialAutoOnboardingBullets(locale){let zh=locale==="zh-CN",planId=MEMBERSHIP_DEFAULT_PLAN_MODEL,reviewId=MEMBERSHIP_DEFAULT_REVIEW_MODEL,fastId=MEMBERSHIP_DEFAULT_FAST_MODEL;return zh?[`\u9009 Auto\uFF08Archive B \u56DB\u69FD\uFF09\uFF1A\u4E3B auto \xB7 \u8F7B/\u5DE5 ${fastId} \xB7 \u601D ${planId}\uFF08DeepSeek \u601D\u8003\uFF09\xB7 \u5BA1 ${reviewId}`,"\u8C03\u5EA6\u5F8B\u4E0E\u4E09\u65B9\u76F8\u540C\uFF1A\u56DB\u69FD \xB7 Path Tier \xB7 \u8BC1\u636E owns keep \xB7 \u5BA1\u67E5 \u2260 \u52A8\u624B\uFF08hand+eye\uFF09","\u9AD8\u9891\u8D70\u5FEB\u6C60\uFF08brain-hand \u5DF2\u901A tools\uFF09\uFF1B\u7701\u94B1/\u8D28\u91CF\u65B9\u6848\u89C1 /model recipe list","\u8D28\u91CF\u65B9\u6848 cloud_quality = \u4E3B pro 128k\uFF08T2 \u4E0D\u62A2\u624B\uFF09\uFF1B\u989D\u5EA6\u7D27\u518D /account switch \u4E09\u65B9"]:[`Pick Auto (Archive B \xB7 4-slot): main=auto \xB7 light/agent=${fastId} \xB7 plan=${planId} (DeepSeek think) \xB7 review=${reviewId}`,"Same laws as BYOK: 4-slot \xB7 Path Tier \xB7 evidence owns keep \xB7 review \u2260 hand","High-volume uses fast pool (brain-hand tools OK); see /model recipe for economy/quality","cloud_quality = main pro 128k (T2 hand not stolen); /account switch for BYOK thrift"]}function listOfficialProductModels(){return MEMBERSHIP_PRODUCT_MODELS}function ensureOfficialAutoOnCloudProfile(options){try{let{getProviderProfiles:getProviderProfiles2,saveProviderProfile:saveProviderProfile2,activateProviderProfile:activateProviderProfile2}=(init_providerProfiles(),__toCommonJS(providerProfiles_exports)),cloud=getProviderProfiles2().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID);if(!cloud)return null;let next=saveProviderProfile2({...cloud,model:MEMBERSHIP_DEFAULT_PRIMARY_MODEL,modelRouting:buildOfficialAutoModelRouting()});return options?.activate&&activateProviderProfile2(MEMBERSHIP_CLOUD_PROFILE_ID)||next}catch{return null}}var CLAVUE_CLOUD_AUTO_PRESET_ID,OFFICIAL_AUTO_ROLE_MAP,OFFICIAL_AUTO_COMBO,init_officialAutoCombo=__esm({"src/services/membership/officialAutoCombo.ts"(){init_config();CLAVUE_CLOUD_AUTO_PRESET_ID="clavue_cloud_auto",OFFICIAL_AUTO_ROLE_MAP=[{role:"primary",slots:["primary","general","team"],product:MEMBERSHIP_DEFAULT_PRIMARY_MODEL,pool:"balanced",goal:{zh:"\u4E3B\u5FAA\u73AF \xB7 auto \u2192 qwen3.6:35b-a3b",en:"Main loop \xB7 auto \u2192 qwen3.6:35b-a3b"}},{role:"light",slots:["smallFast","explore","subagent","guide"],product:MEMBERSHIP_DEFAULT_FAST_MODEL,pool:"fast",goal:{zh:"\u8F7B\u91CF/\u5DE5 \xB7 clavue-2.1-fast \u2192 qwen3.6:35b-a3b",en:"Light / agent \xB7 clavue-2.1-fast \u2192 qwen3.6:35b-a3b"}},{role:"plan",slots:["plan"],product:MEMBERSHIP_DEFAULT_PLAN_MODEL,pool:"premium",goal:{zh:"\u89C4\u5212 \xB7 clavue-2.1-pro \u2192 deepseek-v4-flash",en:"Plan \xB7 clavue-2.1-pro \u2192 deepseek-v4-flash"}},{role:"review",slots:["review"],product:MEMBERSHIP_DEFAULT_REVIEW_MODEL,pool:"premium",goal:{zh:"\u5BA1\u67E5 \xB7 clavue-2.1-rev \u2192 deepseek-v4-pro\uFF08\u2260 \u4E3B\uFF09",en:"Review \xB7 clavue-2.1-rev \u2192 deepseek-v4-pro (\u2260 primary)"}}],OFFICIAL_AUTO_COMBO={presetId:CLAVUE_CLOUD_AUTO_PRESET_ID,label:{en:"Auto (recommended)",zh:"Auto\uFF08\u63A8\u8350\uFF09"},pitch:{en:"One setting \xB7 4-slot \xB7 Path Tier \xB7 main=auto \xB7 light=fast \xB7 plan=pro (DeepSeek think) \xB7 review=rev",zh:"\u4E00\u6B21\u8BBE\u5B9A \xB7 \u56DB\u69FD \xB7 Path Tier \xB7 \u4E3B auto \xB7 \u8F7B fast \xB7 \u601D pro\uFF08DeepSeek \u601D\u8003\uFF09\xB7 \u5BA1 rev"},slots:{primary:MEMBERSHIP_DEFAULT_PRIMARY_MODEL,general:MEMBERSHIP_DEFAULT_PRIMARY_MODEL,team:MEMBERSHIP_DEFAULT_PRIMARY_MODEL,smallFast:MEMBERSHIP_DEFAULT_FAST_MODEL,explore:MEMBERSHIP_DEFAULT_FAST_MODEL,subagent:MEMBERSHIP_DEFAULT_FAST_MODEL,guide:MEMBERSHIP_DEFAULT_FAST_MODEL,plan:MEMBERSHIP_DEFAULT_PLAN_MODEL,review:MEMBERSHIP_DEFAULT_REVIEW_MODEL},modelsLineExample:"auto \xB7 light:clavue-2.1-fast \xB7 plan:clavue-2.1-pro \xB7 review:clavue-2.1-rev"};__name(buildOfficialAutoModelRouting,"buildOfficialAutoModelRouting");__name(isOfficialAutoRouting,"isOfficialAutoRouting");__name(isOfficialCloudAutoProfile,"isOfficialCloudAutoProfile");__name(formatOfficialAutoModelsLine,"formatOfficialAutoModelsLine");__name(officialAutoOnboardingBullets,"officialAutoOnboardingBullets");__name(listOfficialProductModels,"listOfficialProductModels");__name(ensureOfficialAutoOnCloudProfile,"ensureOfficialAutoOnCloudProfile")}});var thirdPartyComboCompat_exports={};__export(thirdPartyComboCompat_exports,{isOfficialClavueProductModel:()=>isOfficialClavueProductModel,isThirdPartyProviderBaseUrl:()=>isThirdPartyProviderBaseUrl,materializeThirdPartyComboRouting:()=>materializeThirdPartyComboRouting,shouldMaterializeThirdPartyCombo:()=>shouldMaterializeThirdPartyCombo});function trim3(value){return String(value??"").trim()}function isBlankOrInherit(value){let v=trim3(value);if(!v)return!0;let lower3=v.toLowerCase();return lower3==="inherit"||lower3==="model"||lower3==="your-model"||lower3.startsWith("example-")||lower3.includes("placeholder")||lower3.includes("changeme")}function isOfficialClavueProductModel(model){let m2=trim3(model).toLowerCase();return m2==="auto"||m2==="clavue"||m2.startsWith("clavue-2.1")}function isThirdPartyProviderBaseUrl(baseUrl){let u2=trim3(baseUrl).toLowerCase();if(!u2)return!1;try{let host=new URL(u2.includes("://")?u2:`https://${u2}`).hostname;return!(host==="api.clavue.com"||host.endsWith(".clavue.com")||host==="localhost"||host==="127.0.0.1")}catch{return!/clavue\.com/i.test(u2)}}function materializeThirdPartyComboRouting(routing,options={}){let primary=trim3(routing.primaryModel);if(!primary&&!options.force)return routing;let pick3=__name((value,fallback)=>isBlankOrInherit(value)?fallback:trim3(value),"pick"),smallFast=isBlankOrInherit(routing.smallFastModel)?"":trim3(routing.smallFastModel),subagent=pick3(routing.subagentModel,smallFast||primary),general=pick3(routing.generalModel,primary),plan=pick3(routing.planModel,primary),explore=pick3(routing.exploreModel,smallFast||subagent||primary),team=pick3(routing.teamModel,subagent||general||primary),guide=pick3(routing.guideModel,plan||primary),review=isBlankOrInherit(routing.reviewModel)?"":trim3(routing.reviewModel);return{...routing,primaryModel:primary||trim3(routing.primaryModel),subagentModel:subagent,smallFastModel:smallFast,generalModel:general,planModel:plan,exploreModel:explore,teamModel:team,guideModel:guide,reviewModel:review}}function shouldMaterializeThirdPartyCombo(profile){let mode=String(profile.modelMode??"").trim();if(mode==="hybrid_compatible")return!0;let primary=trim3(profile.modelRouting?.primaryModel);return primary&&!isOfficialClavueProductModel(primary)?isThirdPartyProviderBaseUrl(profile.baseUrl)||mode!=="openai_native":isThirdPartyProviderBaseUrl(profile.baseUrl)}var init_thirdPartyComboCompat=__esm({"src/utils/model/thirdPartyComboCompat.ts"(){__name(trim3,"trim");__name(isBlankOrInherit,"isBlankOrInherit");__name(isOfficialClavueProductModel,"isOfficialClavueProductModel");__name(isThirdPartyProviderBaseUrl,"isThirdPartyProviderBaseUrl");__name(materializeThirdPartyComboRouting,"materializeThirdPartyComboRouting");__name(shouldMaterializeThirdPartyCombo,"shouldMaterializeThirdPartyCombo")}});import{randomUUID as randomUUID2}from"crypto";function classifyEndpoint(ep){if(isLocalModelBaseUrl(ep.baseUrl))return"local";let keys2=(ep.routeKeys??[]).map(k=>k.toLowerCase());return keys2.some(k=>k.includes("review")||k.includes("plan")||k.includes("opus"))?"remote":keys2.some(k=>k.includes("primary")||k.includes("haiku")||k.includes("mainloop"))||isLocalModelBaseUrl(ep.baseUrl)?"local":"remote"}function viewHybridRecipe(profile=getSavedActiveProviderProfile()){if(!profile?.fusionConfigId)return null;let fusion=getFusionConfigById(profile.fusionConfigId);if(!fusion)return null;let local=null,remote=null;for(let ep of fusion.endpoints){let isLocal=classifyEndpoint(ep)==="local",view={id:ep.id,name:ep.name,baseUrl:ep.baseUrl,local:isLocal,modelHint:ep.modelPrefixes[0]||"",dialect:isLocal?LOCAL_OPENAI_DIALECT_LABEL:ep.apiDialectMode||"openai_responses",path:isLocal?LOCAL_OPENAI_CHAT_PATH:ep.upstreamPathOverride||""};view.local?local=view:remote=view}return{profileId:profile.id,name:profile.name,fusionId:fusion.id,local,remote}}function emptyRouting(localModel,planModel,reviewModel){return{presetId:"custom",primaryModel:localModel,subagentModel:localModel,smallFastModel:localModel,planModel,exploreModel:localModel,generalModel:localModel,teamModel:localModel,guideModel:planModel,reviewModel}}function createHybridRecipe(input){let localUrl=assertValidProviderBaseUrl(input.localUrl),remoteUrl=assertValidProviderBaseUrl(input.remoteUrl);if(!isLocalModelBaseUrl(localUrl))throw new Error(`Local URL must be loopback/LAN (got ${localUrl}). Example: http://127.0.0.1:10808`);if(isLocalModelBaseUrl(remoteUrl))throw new Error(`Remote URL must not be a local gateway (got ${remoteUrl}). Use a third-party API host.`);let localKey=input.localKey.trim(),remoteKey=input.remoteKey.trim();if(!localKey||!remoteKey)throw new Error("Both --local-key and --remote-key are required.");let localModel=(input.localModel||DEFAULT_LOCAL_MODEL).trim(),planModel=(input.planModel||DEFAULT_PLAN_MODEL).trim(),reviewModel=(input.reviewModel||DEFAULT_REVIEW_MODEL).trim(),now2=Date.now(),profileId=`hybrid-${randomUUID2().slice(0,8)}`,fusionId=`hybf-${randomUUID2().slice(0,8)}`,localEp={id:`loc-${randomUUID2().slice(0,6)}`,name:"local-hand",baseUrl:localUrl,authType:"api_key",credential:localKey,modelPrefixes:[localModel],routeKeys:[...HYBRID_LOCAL_ROUTE_KEYS],apiDialectMode:"openai_responses",upstreamPathOverride:"/v1/chat/completions"},remoteEp={id:`rem-${randomUUID2().slice(0,6)}`,name:"remote-eye",baseUrl:remoteUrl,authType:"api_key",credential:remoteKey,modelPrefixes:[planModel,reviewModel].filter((m2,i3,a2)=>a2.indexOf(m2)===i3),routeKeys:[...HYBRID_REMOTE_ROUTE_KEYS],apiDialectMode:"openai_responses",upstreamPathOverride:""},fusion={id:fusionId,name:`hybrid:${input.name.trim()}`,endpoints:[localEp,remoteEp],createdAt:now2,updatedAt:now2};saveFusionConfig(fusion,{activate:input.activate!==!1});let profile={id:profileId,name:input.name.trim(),providerId:"custom",modelMode:"hybrid_compatible",baseUrl:localUrl,authType:"api_key",credential:localKey,modelRouting:emptyRouting(localModel,planModel,reviewModel),provenance:{kind:"manual"},createdAt:now2,updatedAt:now2,fusionConfigId:fusionId,comboFallbackToPrimary:!0,apiDialectMode:"openai_responses"};return saveProviderProfile(profile,{activate:input.activate!==!1}),input.activate!==!1&&(activateProviderProfile(profileId),activateFusionConfig(fusionId)),viewHybridRecipe(profile)}function updateHybridLocal(url3,key,model,profile=getSavedActiveProviderProfile()){if(!profile?.fusionConfigId)throw new Error("Active profile is not a hybrid combo. Run /provider hybrid new first.");let fusion=getFusionConfigById(profile.fusionConfigId);if(!fusion)throw new Error("Hybrid fusion config is missing.");let localUrl=assertValidProviderBaseUrl(url3);if(!isLocalModelBaseUrl(localUrl))throw new Error(`Local URL must be loopback/LAN (got ${localUrl}).`);let localModel=(model||profile.modelRouting.primaryModel||DEFAULT_LOCAL_MODEL).trim(),nextEndpoints=fusion.endpoints.map(ep=>classifyEndpoint(ep)==="local"?{...ep,baseUrl:localUrl,credential:key.trim()||ep.credential,modelPrefixes:[localModel]}:ep);saveFusionConfig({...fusion,endpoints:nextEndpoints,updatedAt:Date.now()},{activate:!0});let routing={...profile.modelRouting,primaryModel:localModel,subagentModel:localModel,smallFastModel:localModel,exploreModel:localModel,generalModel:localModel,teamModel:localModel,presetId:"custom"};return saveProviderProfile({...profile,baseUrl:localUrl,credential:key.trim()||profile.credential,modelRouting:routing},{activate:!0}),viewHybridRecipe(getProviderProfiles().find(p=>p.id===profile.id)??profile)}function updateHybridRemote(url3,key,planModel,reviewModel,profile=getSavedActiveProviderProfile()){if(!profile?.fusionConfigId)throw new Error("Active profile is not a hybrid combo. Run /provider hybrid new first.");let fusion=getFusionConfigById(profile.fusionConfigId);if(!fusion)throw new Error("Hybrid fusion config is missing.");let remoteUrl=assertValidProviderBaseUrl(url3);if(isLocalModelBaseUrl(remoteUrl))throw new Error(`Remote URL must not be local (got ${remoteUrl}).`);let plan=(planModel||profile.modelRouting.planModel||DEFAULT_PLAN_MODEL).trim(),review=(reviewModel||profile.modelRouting.reviewModel||plan).trim(),nextEndpoints=fusion.endpoints.map(ep=>classifyEndpoint(ep)==="remote"?{...ep,baseUrl:remoteUrl,credential:key.trim()||ep.credential,modelPrefixes:[plan,review].filter((m2,i3,a2)=>a2.indexOf(m2)===i3)}:ep);return saveFusionConfig({...fusion,endpoints:nextEndpoints,updatedAt:Date.now()},{activate:!0}),saveProviderProfile({...profile,modelRouting:{...profile.modelRouting,presetId:"custom",planModel:plan,guideModel:plan,reviewModel:review}},{activate:!0}),viewHybridRecipe(getProviderProfiles().find(p=>p.id===profile.id)??profile)}function findHybridProfileByName(name){let needle=name.trim();return needle?getProviderProfiles().find(profile=>profile.fusionConfigId&&profile.name===needle)??null:null}function getHybridRecipeSecrets(profile=getSavedActiveProviderProfile()){if(!profile?.fusionConfigId)return{localKey:"",remoteKey:""};let fusion=getFusionConfigById(profile.fusionConfigId);if(!fusion)return{localKey:"",remoteKey:""};let localKey="",remoteKey="";for(let ep of fusion.endpoints)classifyEndpoint(ep)==="local"?localKey=ep.credential:remoteKey=ep.credential;return{localKey,remoteKey}}function toPortableHybridRecipe(view,secrets={},includeSecrets=!1){return{schema:HYBRID_RECIPE_SCHEMA,name:view.name,local:{baseUrl:view.local?.baseUrl??"",model:view.local?.modelHint||DEFAULT_LOCAL_MODEL,dialect:LOCAL_OPENAI_DIALECT_LABEL,path:LOCAL_OPENAI_CHAT_PATH,agent:{...DEFAULT_LOCAL_AGENT_PROFILE},...includeSecrets&&secrets.localKey?{credential:secrets.localKey}:{}},remote:{baseUrl:view.remote?.baseUrl??"",planModel:view.remote?.modelHint||DEFAULT_PLAN_MODEL,reviewModel:view.remote?.modelHint||DEFAULT_REVIEW_MODEL,...includeSecrets&&secrets.remoteKey?{credential:secrets.remoteKey}:{}},exportedAt:Date.now()}}function exportActiveHybridRecipe(includeSecrets=!1){let profile=getSavedActiveProviderProfile(),view=viewHybridRecipe(profile);if(!view)throw new Error("No hybrid combo on the active profile.");return toPortableHybridRecipe(view,getHybridRecipeSecrets(profile),includeSecrets)}function parsePortableHybridRecipe(raw){if(!raw||typeof raw!="object")throw new Error("Hybrid recipe must be a JSON object.");let rec=raw;if(rec.schema!==HYBRID_RECIPE_SCHEMA)throw new Error(`Unsupported recipe schema (want ${HYBRID_RECIPE_SCHEMA}).`);let name=typeof rec.name=="string"?rec.name.trim():"";if(!name)throw new Error("Recipe name is required.");let local=asEndpointRecord(rec.local,"local"),remote=asEndpointRecord(rec.remote,"remote"),localUrl=assertValidProviderBaseUrl(String(local.baseUrl??"")),remoteUrl=assertValidProviderBaseUrl(String(remote.baseUrl??""));if(!isLocalModelBaseUrl(localUrl))throw new Error(`Local URL must be loopback/LAN (got ${localUrl}).`);if(isLocalModelBaseUrl(remoteUrl))throw new Error(`Remote URL must not be a local gateway (got ${remoteUrl}).`);return{schema:HYBRID_RECIPE_SCHEMA,name,local:{baseUrl:localUrl,model:String(local.model||DEFAULT_LOCAL_MODEL).trim(),dialect:LOCAL_OPENAI_DIALECT_LABEL,path:LOCAL_OPENAI_CHAT_PATH,agent:{...DEFAULT_LOCAL_AGENT_PROFILE},credential:typeof local.credential=="string"?local.credential:void 0},remote:{baseUrl:remoteUrl,planModel:String(localField(remote,["planModel","model"])||DEFAULT_PLAN_MODEL).trim(),reviewModel:String(localField(remote,["reviewModel","model"])||DEFAULT_REVIEW_MODEL).trim(),credential:typeof remote.credential=="string"?remote.credential:void 0},exportedAt:typeof rec.exportedAt=="number"&&Number.isFinite(rec.exportedAt)?rec.exportedAt:Date.now()}}function applyPortableHybridRecipe(recipe,options={}){let parsed=parsePortableHybridRecipe(recipe),existing=findHybridProfileByName(parsed.name),existingSecrets=existing?getHybridRecipeSecrets(existing):{localKey:"",remoteKey:""},localKey=(parsed.local.credential||existingSecrets.localKey).trim(),remoteKey=(parsed.remote.credential||existingSecrets.remoteKey).trim();if(!localKey||!remoteKey)throw new Error("Recipe is missing keys. Re-export with secrets, or pass --local-key / --remote-key.");let activate=options.activate!==!1;if(existing){updateHybridLocal(parsed.local.baseUrl,localKey,parsed.local.model,existing);let afterLocal=getProviderProfiles().find(p=>p.id===existing.id)??existing;return updateHybridRemote(parsed.remote.baseUrl,remoteKey,parsed.remote.planModel,parsed.remote.reviewModel,afterLocal)}return createHybridRecipe({name:parsed.name,localUrl:parsed.local.baseUrl,localKey,remoteUrl:parsed.remote.baseUrl,remoteKey,localModel:parsed.local.model,planModel:parsed.remote.planModel,reviewModel:parsed.remote.reviewModel,activate})}function asEndpointRecord(value,label){if(!value||typeof value!="object")throw new Error(`Recipe ${label} endpoint is required.`);return value}function localField(rec,keys2){for(let key of keys2){let value=rec[key];if(typeof value=="string"&&value.trim())return value.trim()}return""}var HYBRID_LOCAL_ROUTE_KEYS,HYBRID_REMOTE_ROUTE_KEYS,DEFAULT_LOCAL_MODEL,DEFAULT_PLAN_MODEL,DEFAULT_REVIEW_MODEL,DEFAULT_LOCAL_AGENT_PROFILE,HYBRID_RECIPE_SCHEMA,init_providerHybridRecipe=__esm({"src/utils/providerHybridRecipe.ts"(){init_localModelRequestPolicy();init_providerProfiles();init_providerRuntimeCore();HYBRID_LOCAL_ROUTE_KEYS=["slot:primary","slot:haiku","slot:smallfast","role:mainloop"],HYBRID_REMOTE_ROUTE_KEYS=["slot:opus","slot:plan","slot:review","role:planner"],DEFAULT_LOCAL_MODEL="qwen3",DEFAULT_PLAN_MODEL="deepseek-v4-pro",DEFAULT_REVIEW_MODEL="deepseek-v4-pro",DEFAULT_LOCAL_AGENT_PROFILE={dialect:LOCAL_OPENAI_DIALECT_LABEL,path:LOCAL_OPENAI_CHAT_PATH,streamTools:!1,maxTokens:LOCAL_MODEL_TOOL_MAX_OUTPUT_TOKENS,temperature:LOCAL_MODEL_TOOL_TEMPERATURE},HYBRID_RECIPE_SCHEMA="clavue_hybrid_recipe_v1";__name(classifyEndpoint,"classifyEndpoint");__name(viewHybridRecipe,"viewHybridRecipe");__name(emptyRouting,"emptyRouting");__name(createHybridRecipe,"createHybridRecipe");__name(updateHybridLocal,"updateHybridLocal");__name(updateHybridRemote,"updateHybridRemote");__name(findHybridProfileByName,"findHybridProfileByName");__name(getHybridRecipeSecrets,"getHybridRecipeSecrets");__name(toPortableHybridRecipe,"toPortableHybridRecipe");__name(exportActiveHybridRecipe,"exportActiveHybridRecipe");__name(parsePortableHybridRecipe,"parsePortableHybridRecipe");__name(applyPortableHybridRecipe,"applyPortableHybridRecipe");__name(asEndpointRecord,"asEndpointRecord");__name(localField,"localField")}});import{createHash as createHash2}from"crypto";function parseOperatorConfigPack(raw){if(!raw||typeof raw!="object")throw new Error("Operator config must be a JSON object.");let rec=raw;if(rec.schema&&rec.schema!==OPERATOR_CONFIG_SCHEMA)throw new Error(`Unsupported config schema (want ${OPERATOR_CONFIG_SCHEMA}).`);let name=typeof rec.name=="string"&&rec.name.trim()?rec.name.trim():"default",hybrid=null;rec.hybrid&&(hybrid=parsePortableHybridRecipe(rec.hybrid));let review=asReview(rec.review),settings=asSettings(rec.settings),mcpServers=rec.mcpServers&&typeof rec.mcpServers=="object"&&!Array.isArray(rec.mcpServers)?{...rec.mcpServers}:{};return{schema:OPERATOR_CONFIG_SCHEMA,name,updatedAt:typeof rec.updatedAt=="number"&&Number.isFinite(rec.updatedAt)?rec.updatedAt:Date.now(),hybrid,review,settings,mcpServers,profiles:parseProfiles(rec.profiles),activeByokId:typeof rec.activeByokId=="string"&&rec.activeByokId.trim()?rec.activeByokId.trim():void 0,defaultByokId:typeof rec.defaultByokId=="string"&&rec.defaultByokId.trim()?rec.defaultByokId.trim():void 0,official:asOfficial(rec.official),terminals:parseTerminals(rec.terminals),terminal:asTerminal(rec.terminal),instruction:asInstruction(rec.instruction)}}function asInstruction(value){if(!value||typeof value!="object")return;let rec=value,revision=Number(rec.revision);if(!Number.isFinite(revision)||revision<1)return;let action=rec.action==="switch"?"switch":"apply";return{revision,at:Number(rec.at)||Date.now(),action,summary:typeof rec.summary=="string"?rec.summary:void 0,targetProfileId:typeof rec.targetProfileId=="string"&&rec.targetProfileId.trim()?rec.targetProfileId.trim():void 0}}function asOfficialSlots(value){if(!value||typeof value!="object")return;let rec=value,out={},any2=!1;for(let key of OFFICIAL_SLOT_KEYS){let raw=rec[key];typeof raw=="string"&&raw.trim()&&(out[key]=raw.trim(),any2=!0)}return any2?out:void 0}function asOfficial(value){if(!value||typeof value!="object")return;let rec=value,slots=asOfficialSlots(rec.slots),active=rec.active===!0;if(!(!slots&&!active))return{...active?{active:!0}:{},...slots?{slots}:{}}}function asTerminal(value){if(!value||typeof value!="object")return;let rec=value,id=typeof rec.id=="string"?rec.id.trim():"";if(id)return{id,label:typeof rec.label=="string"?rec.label.trim():id,hostname:typeof rec.hostname=="string"?rec.hostname.trim():"",createdAt:Number(rec.createdAt)||0,lastSeenAt:Number(rec.lastSeenAt)||0,activeByokId:typeof rec.activeByokId=="string"&&rec.activeByokId.trim()?rec.activeByokId.trim():void 0,officialSlots:asOfficialSlots(rec.officialSlots),instruction:asInstruction(rec.instruction)}}function parseTerminals(value){if(!Array.isArray(value))return;let out=value.map(item=>asTerminal(item)).filter(item=>!!item);return out.length?out:void 0}function resolveDefaultByokId(profiles,stored){let ids=profiles.map(p=>p.id).filter(id=>id&&id!==MEMBERSHIP_CLOUD_PROFILE_ID);return stored&&ids.includes(stored)?stored:ids[0]}function summarizeOperatorPack(pack){if(pack.instruction?.summary?.trim())return pack.instruction.summary.trim();if(pack.official?.active)return"\u5B98\u65B9\u6A21\u5F0F";let active=pack.profiles.find(p=>p.id===pack.activeByokId)||pack.profiles.find(p=>p.id===pack.defaultByokId)||pack.profiles[0];return active?.name?active.name:pack.profiles.length?`${pack.profiles.length} \u5957\u4E09\u65B9\u914D\u7F6E`:pack.name||"\u4E91\u7AEF\u914D\u7F6E"}function snapshotOperatorConfigPack(name="default"){let hybrid=null;try{hybrid=exportActiveHybridRecipe(!0)}catch{hybrid=null}let stored=getGlobalConfig().reviewModelConfig,review=stored?{...stored.model?{model:String(stored.model)}:{},...stored.apiurl?{apiurl:String(stored.apiurl)}:{},...stored.apikey?{apikey:String(stored.apikey)}:{}}:null,user=getSettingsForSource("userSettings")??{},settings={};for(let key of SETTINGS_KEYS){let value=user[key];value!==void 0&&(settings[key]=value)}let mode=user.permissions?.defaultMode;typeof mode=="string"&&mode.trim()&&(settings.permissionDefaultMode=mode.trim());let mcpServers={...getGlobalConfig().mcpServers??{}},profiles=snapshotByokProfiles(),activeId=getActiveProviderProfileId(),officialActive=activeId===MEMBERSHIP_CLOUD_PROFILE_ID,activeByokId=activeId&&activeId!==MEMBERSHIP_CLOUD_PROFILE_ID?activeId:void 0,defaultByokId=resolveDefaultByokId(profiles,activeByokId),official=snapshotOfficialSlice(officialActive),updatedAt=Math.max(0,...profiles.map(p=>p.updatedAt),hybrid?.exportedAt??0);return{schema:OPERATOR_CONFIG_SCHEMA,name,updatedAt,hybrid,review:review&&(review.model||review.apiurl||review.apikey)?review:null,settings,mcpServers,profiles,activeByokId,defaultByokId,official}}function applyOperatorConfigPack(pack,options={}){let sync=tryCloudSync();sync?.beginProviderCloudApply();try{return applyOperatorConfigPackInner(pack,options.activate??"if-byok")}finally{sync?.endProviderCloudApply()}}function applyOperatorConfigPackInner(pack,activate){let parsed=parseOperatorConfigPack(pack),applied=[],skipped=[],errors=[];if(parsed.profiles.length>0)try{applyByokProfiles(parsed,activate),applied.push("profiles")}catch(error40){errors.push(`profiles: ${error40 instanceof Error?error40.message:String(error40)}`)}else skipped.push("profiles");if(parsed.official?.slots&&Object.keys(parsed.official.slots).length>0)try{applyOfficialSlots(parsed.official.slots,{activateOfficial:activate==="force"&&parsed.official.active===!0}),applied.push("official")}catch(error40){errors.push(`official: ${error40 instanceof Error?error40.message:String(error40)}`)}else if(activate==="force"&&parsed.official?.active===!0)try{applyOfficialActive(),applied.push("official")}catch(error40){errors.push(`official: ${error40 instanceof Error?error40.message:String(error40)}`)}else skipped.push("official");if(parsed.hybrid)try{applyPortableHybridRecipe(parsed.hybrid,{activate:parsed.profiles.length===0}),applied.push("hybrid")}catch(error40){errors.push(`hybrid: ${error40 instanceof Error?error40.message:String(error40)}`)}else skipped.push("hybrid");if(parsed.review&&(parsed.review.model||parsed.review.apiurl||parsed.review.apikey))try{saveGlobalConfig(current=>({...current,reviewModelConfig:{...current.reviewModelConfig??{},...parsed.review}})),applied.push("review")}catch(error40){errors.push(`review: ${error40 instanceof Error?error40.message:String(error40)}`)}else skipped.push("review");let activeSlice=parsed.profiles.find(p=>p.id===parsed.activeByokId);if(activeSlice?.effortLevel&&!parsed.settings.effortLevel&&(parsed.settings.effortLevel=activeSlice.effortLevel),Object.keys(parsed.settings).length>0){let next={};parsed.settings.effortLevel&&(next.effortLevel=parsed.settings.effortLevel),parsed.settings.language&&(next.language=parsed.settings.language),parsed.settings.uiLocale&&(next.uiLocale=parsed.settings.uiLocale),typeof parsed.settings.alwaysThinkingEnabled=="boolean"&&(next.alwaysThinkingEnabled=parsed.settings.alwaysThinkingEnabled),typeof parsed.settings.fastMode=="boolean"&&(next.fastMode=parsed.settings.fastMode),parsed.settings.permissionDefaultMode&&(next.permissions={defaultMode:parsed.settings.permissionDefaultMode});let result2=updateSettingsForSource("userSettings",next);result2.error?errors.push(`settings: ${result2.error.message}`):applied.push("settings")}else skipped.push("settings");if(Object.keys(parsed.mcpServers).length>0)try{saveGlobalConfig(current=>({...current,mcpServers:{...current.mcpServers??{},...parsed.mcpServers}})),applied.push("mcp")}catch(error40){errors.push(`mcp: ${error40 instanceof Error?error40.message:String(error40)}`)}else skipped.push("mcp");return{ok:errors.length===0&&applied.length>0,applied,skipped,errors}}function tryCloudSync(){try{return init_providerCloudSync(),__toCommonJS(providerCloudSync_exports)}catch{return null}}function asReview(value){if(!value||typeof value!="object")return null;let rec=value,out={};return typeof rec.model=="string"&&rec.model.trim()&&(out.model=rec.model.trim()),typeof rec.apiurl=="string"&&rec.apiurl.trim()&&(out.apiurl=rec.apiurl.trim()),typeof rec.apikey=="string"&&rec.apikey.trim()&&(out.apikey=rec.apikey.trim()),out.model||out.apiurl||out.apikey?out:null}function asSettings(value){if(!value||typeof value!="object")return{};let rec=value,out={};return typeof rec.effortLevel=="string"&&(out.effortLevel=rec.effortLevel),typeof rec.language=="string"&&(out.language=rec.language),typeof rec.uiLocale=="string"&&(out.uiLocale=rec.uiLocale),typeof rec.alwaysThinkingEnabled=="boolean"&&(out.alwaysThinkingEnabled=rec.alwaysThinkingEnabled),typeof rec.fastMode=="boolean"&&(out.fastMode=rec.fastMode),typeof rec.permissionDefaultMode=="string"&&(out.permissionDefaultMode=rec.permissionDefaultMode),out}function operatorPackHasContent(pack){return!!(pack.hybrid||pack.review||pack.profiles.length>0||Object.keys(pack.settings).length>0||Object.keys(pack.mcpServers).length>0)}function hashOperatorPack(pack){let canonical={name:pack.name,hybrid:pack.hybrid?{name:pack.hybrid.name,local:pack.hybrid.local,remote:pack.hybrid.remote}:null,review:pack.review,settings:pack.settings,mcpServers:pack.mcpServers,profiles:pack.profiles.map(p=>({id:p.id,name:p.name,baseUrl:p.baseUrl,authType:p.authType,credential:p.credential,modelRouting:p.modelRouting,apiDialectMode:p.apiDialectMode??"",effortLevel:p.effortLevel??"",alwaysThinkingEnabled:p.alwaysThinkingEnabled===!0,fastMode:p.fastMode===!0,fusionConfigId:p.fusionConfigId??"",fusion:p.fusion?{id:p.fusion.id,endpoints:p.fusion.endpoints.map(ep=>({id:ep.id,baseUrl:ep.baseUrl,credential:ep.credential,modelPrefixes:ep.modelPrefixes,routeKeys:ep.routeKeys??[]}))}:null})),activeByokId:pack.activeByokId??"",defaultByokId:pack.defaultByokId??"",official:pack.official?{active:pack.official.active===!0,slots:pack.official.slots??{}}:null};return createHash2("sha256").update(JSON.stringify(canonical)).digest("hex")}function snapshotByokProfiles(){return getProviderProfiles().filter(p=>p.id!==MEMBERSHIP_CLOUD_PROFILE_ID).map(p=>({id:p.id,name:p.name,providerId:String(p.providerId),modelMode:String(p.modelMode),baseUrl:p.baseUrl,authType:p.authType,credential:p.credential,modelRouting:p.modelRouting,apiDialectMode:p.apiDialectMode,fusionConfigId:p.fusionConfigId,fusion:p.fusionConfigId?getFusionConfigById(p.fusionConfigId):null,updatedAt:p.updatedAt}))}function parseProfiles(value){if(!Array.isArray(value))return[];let out=[];for(let item of value){if(!item||typeof item!="object")continue;let rec=item,id=typeof rec.id=="string"?rec.id.trim():"",name=typeof rec.name=="string"?rec.name.trim():"",baseUrl=typeof rec.baseUrl=="string"?rec.baseUrl.trim():"",credential=typeof rec.credential=="string"?rec.credential:"";!id||!name||!baseUrl||id===MEMBERSHIP_CLOUD_PROFILE_ID||out.push({id,name,providerId:typeof rec.providerId=="string"?rec.providerId:"custom",modelMode:typeof rec.modelMode=="string"?rec.modelMode:"hybrid_compatible",baseUrl,authType:typeof rec.authType=="string"?rec.authType:"api_key",credential,modelRouting:rec.modelRouting||{},apiDialectMode:typeof rec.apiDialectMode=="string"?rec.apiDialectMode:void 0,effortLevel:typeof rec.effortLevel=="string"&&rec.effortLevel.trim()?rec.effortLevel.trim():void 0,alwaysThinkingEnabled:typeof rec.alwaysThinkingEnabled=="boolean"?rec.alwaysThinkingEnabled:void 0,fastMode:typeof rec.fastMode=="boolean"?rec.fastMode:void 0,fusionConfigId:typeof rec.fusionConfigId=="string"?rec.fusionConfigId:void 0,fusion:rec.fusion??null,updatedAt:typeof rec.updatedAt=="number"&&Number.isFinite(rec.updatedAt)?rec.updatedAt:0})}return out}function applyByokProfiles(pack,activate){let slices=pack.profiles;for(let slice2 of slices){slice2.fusion&&slice2.fusionConfigId&&saveFusionConfig(slice2.fusion,{activate:!1});let existing=getProviderProfiles().find(p=>p.id===slice2.id);saveProviderProfile({id:slice2.id,name:slice2.name,providerId:slice2.providerId,modelMode:slice2.modelMode,baseUrl:slice2.baseUrl,authType:slice2.authType,credential:slice2.credential||existing?.credential||"",modelRouting:slice2.modelRouting||existing?.modelRouting,apiDialectMode:slice2.apiDialectMode??existing?.apiDialectMode,fusionConfigId:slice2.fusionConfigId||existing?.fusionConfigId,provenance:existing?.provenance??{kind:"manual"},createdAt:existing?.createdAt??Date.now(),updatedAt:Date.now()},{activate:!1})}if(activate===!1||pack.official?.active===!0)return;let current=getActiveProviderProfileId(),officialNow=current===MEMBERSHIP_CLOUD_PROFILE_ID,target=(pack.activeByokId&&slices.some(s2=>s2.id===pack.activeByokId)?pack.activeByokId:void 0)||resolveDefaultByokId(slices,pack.defaultByokId);target&&(activate!=="force"&&officialNow||activate!=="force"&&current&&current===target||(activate==="force"||!officialNow)&&activateProviderProfile(target))}function snapshotOfficialSlice(officialActive){let routing=getProviderProfiles().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID)?.modelRouting,slots=asOfficialSlots(routing??{});if(!(!officialActive&&!slots))return{...officialActive?{active:!0}:{},...slots?{slots}:{}}}function applyOfficialSlots(slots,options){options.activateOfficial&&activateProviderProfile(MEMBERSHIP_CLOUD_PROFILE_ID);let cloud=getProviderProfiles().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID);cloud&&saveProviderProfile({...cloud,modelRouting:{...cloud.modelRouting??{presetId:"custom"},...slots}},{activate:!1})}function applyOfficialActive(){activateProviderProfile(MEMBERSHIP_CLOUD_PROFILE_ID)}function ensureDefaultByokIfUnset(){let profiles=getProviderProfiles().filter(p=>p.id!==MEMBERSHIP_CLOUD_PROFILE_ID);if(profiles.length===0)return{applied:!1};let current=getActiveProviderProfileId();if(current===MEMBERSHIP_CLOUD_PROFILE_ID)return{applied:!1};if(current&&profiles.some(p=>p.id===current))return{applied:!1,id:current};let id=resolveDefaultByokId(profiles);return id?(activateProviderProfile(id),{applied:!0,id}):{applied:!1}}var OPERATOR_CONFIG_SCHEMA,SETTINGS_KEYS,OFFICIAL_SLOT_KEYS,init_operatorConfigPack=__esm({"src/utils/operatorConfigPack.ts"(){init_config3();init_providerHybridRecipe();init_config();init_providerProfiles();init_settings2();OPERATOR_CONFIG_SCHEMA="clavue_operator_config_v1",SETTINGS_KEYS=["effortLevel","language","uiLocale","alwaysThinkingEnabled","fastMode"];__name(parseOperatorConfigPack,"parseOperatorConfigPack");__name(asInstruction,"asInstruction");OFFICIAL_SLOT_KEYS=["primaryModel","smallFastModel","subagentModel","planModel","exploreModel","generalModel","guideModel","reviewModel","teamModel"];__name(asOfficialSlots,"asOfficialSlots");__name(asOfficial,"asOfficial");__name(asTerminal,"asTerminal");__name(parseTerminals,"parseTerminals");__name(resolveDefaultByokId,"resolveDefaultByokId");__name(summarizeOperatorPack,"summarizeOperatorPack");__name(snapshotOperatorConfigPack,"snapshotOperatorConfigPack");__name(applyOperatorConfigPack,"applyOperatorConfigPack");__name(applyOperatorConfigPackInner,"applyOperatorConfigPackInner");__name(tryCloudSync,"tryCloudSync");__name(asReview,"asReview");__name(asSettings,"asSettings");__name(operatorPackHasContent,"operatorPackHasContent");__name(hashOperatorPack,"hashOperatorPack");__name(snapshotByokProfiles,"snapshotByokProfiles");__name(parseProfiles,"parseProfiles");__name(applyByokProfiles,"applyByokProfiles");__name(snapshotOfficialSlice,"snapshotOfficialSlice");__name(applyOfficialSlots,"applyOfficialSlots");__name(applyOfficialActive,"applyOfficialActive");__name(ensureDefaultByokIfUnset,"ensureDefaultByokIfUnset")}});import{randomBytes}from"crypto";import{mkdirSync as mkdirSync5,readFileSync as readFileSync8,writeFileSync as writeFileSync6}from"fs";import{hostname as hostname2}from"os";import{join as join18}from"path";function terminalPath(){return join18(getClavueConfigHomeDir(),"terminal.json")}function sanitizeLabel(value){return value.replace(/[\r\n\t]+/g," ").trim().slice(0,80)}function getLocalTerminal(){let host=sanitizeLabel(hostname2())||"terminal";try{let raw=JSON.parse(readFileSync8(terminalPath(),"utf8")),id=typeof raw.id=="string"?raw.id.trim():"";if(id&&/^term_[a-f0-9]{16,32}$/.test(id)){let createdAt=typeof raw.createdAt=="number"&&Number.isFinite(raw.createdAt)?raw.createdAt:Date.now(),rec2={id,hostname:host,label:sanitizeLabel(typeof raw.label=="string"?raw.label:"")||host,createdAt};return(rec2.hostname!==raw.hostname||rec2.label!==raw.label)&&writeTerminal(rec2),rec2}}catch{}let rec={id:`term_${randomBytes(10).toString("hex")}`,hostname:host,label:host,createdAt:Date.now()};return writeTerminal(rec),rec}function writeTerminal(rec){mkdirSync5(getClavueConfigHomeDir(),{recursive:!0}),writeFileSync6(terminalPath(),`${JSON.stringify(rec,null,2)}
193
- `,{encoding:"utf8",mode:384})}var init_providerTerminal=__esm({"src/utils/providerTerminal.ts"(){init_envUtils();__name(terminalPath,"terminalPath");__name(sanitizeLabel,"sanitizeLabel");__name(getLocalTerminal,"getLocalTerminal");__name(writeTerminal,"writeTerminal")}});function asRecord2(value){return value&&typeof value=="object"?value:null}function extractErrorMessage(body,fallback){let rec=asRecord2(body);return rec?typeof rec.error=="string"&&rec.error.trim()?rec.error.trim():typeof rec.message=="string"&&rec.message.trim()?rec.message.trim():fallback:fallback}async function parseJson(response){let text=await response.text();if(!text.trim())return null;try{return JSON.parse(text)}catch{return{raw:text.slice(0,500)}}}function createMembershipClient(options={}){let apiBase=(options.apiBaseUrl||MEMBERSHIP_DEFAULT_API_BASE).replace(/\/+$/,""),fetchImpl=options.fetchImpl??globalThis.fetch.bind(globalThis),userAgent=options.userAgent||`clavue-cli/${process.env.npm_package_version||"dev"} membership`;async function request(method2,path10,init){let url3=path10.startsWith("http")?path10:`${apiBase}${path10.startsWith("/")?path10:`/${path10}`}`,headers={Accept:"application/json","User-Agent":userAgent,...init?.headers??{}};init?.body!==void 0&&(headers["Content-Type"]="application/json"),init?.sessionToken?.trim()&&(headers.Authorization=`Bearer ${init.sessionToken.trim()}`);let response=await fetchImpl(url3,{method:method2,headers,body:init?.body===void 0?void 0:JSON.stringify(init.body)}),body=await parseJson(response);if(!response.ok){let rec2=asRecord2(body);throw new MembershipHttpError({status:response.status,message:extractErrorMessage(body,`Membership request failed (${response.status})`),code:typeof rec2?.code=="string"?rec2.code:void 0,body})}let rec=asRecord2(body);if(rec&&rec.ok===!0){let{ok:_ok,...rest2}=rec;return rest2}return body}return __name(request,"request"),{apiBaseUrl:apiBase,async login(input){let payload=await request("POST","/api/membership/auth/login",{body:{identifier:input.identifier.trim(),password:input.password,client:input.client||MEMBERSHIP_CLIENT_ID}}),rec=asRecord2(payload),sessionToken=typeof rec?.sessionToken=="string"?rec.sessionToken.trim():"",user=asRecord2(rec?.user);if(!sessionToken||!user?.id)throw new MembershipHttpError({status:500,message:"Membership login response missing sessionToken/user",body:payload});return{user,sessionToken,account:rec?.account??null}},async me(sessionToken){let payload=await request("GET","/api/membership/auth/me",{sessionToken}),rec=asRecord2(payload);return{user:rec?.user??null,usage:rec?.usage??null,plan:rec?.plan??null,models:Array.isArray(rec?.models)?rec.models:[],purchases:Array.isArray(rec?.purchases)?rec.purchases:[],recentEvents:Array.isArray(rec?.recentEvents)?rec.recentEvents:[],cloudSettings:rec?.cloudSettings??null}},async logout(sessionToken){try{await request("POST","/api/membership/auth/logout",{sessionToken,body:{}})}catch(error40){if(error40 instanceof MembershipHttpError&&error40.status===401)return;throw error40}},async plans(){let payload=await request("GET","/api/membership/plans"),rec=asRecord2(payload);return{plans:Array.isArray(rec?.plans)?rec.plans:[],packs:Array.isArray(rec?.packs)?rec.packs:[],models:Array.isArray(rec?.models)?rec.models:[]}},async listModels(sessionToken){return request("GET","/api/membership/v1/models",{sessionToken:sessionToken??void 0})},async getRouterPack(sessionToken){let payload=await request("GET","/api/membership/router/pack",{sessionToken}),rec=asRecord2(payload);return{pack:rec?.pack??payload,openUrl:typeof rec?.openUrl=="string"?rec.openUrl:void 0}},async otpSend(input){let payload=await request("POST","/api/membership/auth/otp/send",{body:{channel:input.channel,destination:input.destination.trim(),purpose:input.purpose??"login",displayName:input.displayName,client:input.client||MEMBERSHIP_CLIENT_ID}}),rec=asRecord2(payload),challengeId=typeof rec?.challengeId=="string"?rec.challengeId.trim():"";if(!challengeId)throw new MembershipHttpError({status:500,message:"OTP send missing challengeId",body:payload});return{challengeId,expiresAt:typeof rec?.expiresAt=="string"?rec.expiresAt:void 0,destinationMasked:typeof rec?.destinationMasked=="string"?rec.destinationMasked:void 0,resendAfterSec:typeof rec?.resendAfterSec=="number"?rec.resendAfterSec:void 0,debugCode:typeof rec?.debugCode=="string"?rec.debugCode:void 0}},async otpVerify(input){let payload=await request("POST","/api/membership/auth/otp/verify",{body:{challengeId:input.challengeId.trim(),code:input.code.trim(),displayName:input.displayName,client:input.client||MEMBERSHIP_CLIENT_ID}}),rec=asRecord2(payload),sessionToken=typeof rec?.sessionToken=="string"?rec.sessionToken.trim():"",user=asRecord2(rec?.user);if(!sessionToken||!user?.id)throw new MembershipHttpError({status:500,message:"OTP verify missing sessionToken/user",body:payload});return{user,sessionToken,account:rec?.account??null,created:rec?.created===!0}}}}var MembershipHttpError,init_client3=__esm({"src/services/membership/client.ts"(){init_config();__name(asRecord2,"asRecord");__name(extractErrorMessage,"extractErrorMessage");MembershipHttpError=class extends Error{static{__name(this,"MembershipHttpError")}status;code;body;constructor(input){super(input.message),this.name="MembershipHttpError",this.status=input.status,this.code=input.code,this.body=input.body}};__name(parseJson,"parseJson");__name(createMembershipClient,"createMembershipClient")}});var officialSchemesApi_exports={};__export(officialSchemesApi_exports,{clearOfficialSchemesCache:()=>clearOfficialSchemesCache,fetchOfficialSchemesFromApi:()=>fetchOfficialSchemesFromApi,parseOfficialSchemesResponse:()=>parseOfficialSchemesResponse,peekOfficialSchemesCache:()=>peekOfficialSchemesCache,warmOfficialSchemesCache:()=>warmOfficialSchemesCache});function asRecord3(v){return v&&typeof v=="object"&&!Array.isArray(v)?v:null}function normalizeRoleMap(raw){let r2=asRecord3(raw);if(!r2)return null;let primary=String(r2.primary||"").trim(),scout=String(r2.scout||r2.light||"").trim(),plan=String(r2.plan||"").trim(),review=String(r2.review||"").trim(),subagent=String(r2.subagent||r2.agent||scout||"").trim();if(!primary||!scout||!plan||!review||!subagent)return null;for(let id of[primary,scout,plan,review,subagent]){let s2=id.toLowerCase();if(s2==="auto"||s2==="clavue"||s2.startsWith("clavue-")){if(s2.startsWith("clavue-hand"))return null;continue}return null}return{primary,scout,plan,review,subagent}}function normalizeLabel(raw,id){let r2=asRecord3(raw);return{zh:String(r2?.zh||id).slice(0,40),en:String(r2?.en||id).slice(0,40),ja:String(r2?.ja||id).slice(0,40)}}function normalizeHint(raw){let r2=asRecord3(raw);return{zh:String(r2?.zh||"").slice(0,120),en:String(r2?.en||"").slice(0,120),ja:String(r2?.ja||"").slice(0,120)}}function parseOfficialSchemesResponse(payload){let root2=asRecord3(payload);if(!root2)return null;let list=Array.isArray(root2.data)?root2.data:Array.isArray(root2.schemes)?root2.schemes:null;if(!list||list.length===0)return null;let schemes=[],seen=new Set;for(let item of list){let rec=asRecord3(item);if(!rec)continue;let id=String(rec.id||"").trim().toLowerCase();if(!id||seen.has(id))continue;let roles=normalizeRoleMap(rec.roles);if(!roles)continue;seen.add(id);let archiveRaw=String(rec.archive||"").trim(),lightHand=rec.lightHandEnabled===!0||rec.light_hand===!0||rec.lightHand===!0||String(rec.lightHandEnabled||"").toLowerCase()==="true";schemes.push({id,label:normalizeLabel(rec.label,id),hint:normalizeHint(rec.hint),roles,archive:archiveRaw||void 0,lightHandEnabled:lightHand||void 0,track:"official_cloud"})}if(schemes.length===0)return null;let defaultSchemeId=String(root2.defaultSchemeId||"cloud_auto").trim().toLowerCase();return schemes.some(s2=>s2.id===defaultSchemeId)||(defaultSchemeId=schemes[0].id),{defaultSchemeId,schemes,updatedAt:typeof root2.updatedAt=="string"?root2.updatedAt:null,source:"remote",fetchedAt:Date.now()}}async function fetchOfficialSchemesFromApi(options){let now2=Date.now();if(!options?.force&&memoryCache&&now2-memoryCache.fetchedAt<CACHE_TTL_MS)return{...memoryCache,source:"cache"};if(inflight&&!options?.force)return inflight;let run=(async()=>{let url3=membershipAuthUrl("/api/membership/v1/schemes"),headers={Accept:"application/json"};try{let token=getMembershipSessionToken();token&&(headers.Authorization=`Bearer ${token}`)}catch{}let timeoutMs=options?.timeoutMs??8e3,fetchImpl=options?.fetchImpl??globalThis.fetch.bind(globalThis),controller=new AbortController,timer2=setTimeout(()=>controller.abort(),timeoutMs);try{let res=await fetchImpl(url3,{method:"GET",headers,signal:controller.signal}),text=await res.text().catch(()=>""),json2=null;try{json2=text?JSON.parse(text):null}catch{json2=null}if(!res.ok)return null;let parsed=parseOfficialSchemesResponse(json2);return parsed?(memoryCache=parsed,parsed):null}catch{return null}finally{clearTimeout(timer2)}})(),wrapped=run.then(r2=>(inflight===wrapped&&(inflight=null),r2));inflight=wrapped;let result2=await run;return inflight===wrapped&&(inflight=null),result2}function peekOfficialSchemesCache(){return memoryCache}function clearOfficialSchemesCache(){memoryCache=null}function warmOfficialSchemesCache(){fetchOfficialSchemesFromApi().catch(()=>{})}var CACHE_TTL_MS,memoryCache,inflight,init_officialSchemesApi=__esm({"src/services/membership/officialSchemesApi.ts"(){init_config();init_sessionStore();CACHE_TTL_MS=6e4,memoryCache=null,inflight=null;__name(asRecord3,"asRecord");__name(normalizeRoleMap,"normalizeRoleMap");__name(normalizeLabel,"normalizeLabel");__name(normalizeHint,"normalizeHint");__name(parseOfficialSchemesResponse,"parseOfficialSchemesResponse");__name(fetchOfficialSchemesFromApi,"fetchOfficialSchemesFromApi");__name(peekOfficialSchemesCache,"peekOfficialSchemesCache");__name(clearOfficialSchemesCache,"clearOfficialSchemesCache");__name(warmOfficialSchemesCache,"warmOfficialSchemesCache")}});var sessionStore_exports={};__export(sessionStore_exports,{clearMembershipSession:()=>clearMembershipSession,getMembershipLocalSession:()=>getMembershipLocalSession,getMembershipSessionToken:()=>getMembershipSessionToken,isMembershipCloudProfileActive:()=>isMembershipCloudProfileActive,patchMembershipLocalMeta:()=>patchMembershipLocalMeta,refreshMembershipLocalMetaFromServer:()=>refreshMembershipLocalMetaFromServer,saveMembershipSession:()=>saveMembershipSession,shouldAutoActivateCloudOnLogin:()=>shouldAutoActivateCloudOnLogin});function shouldAutoActivateCloudOnLogin(){try{let current=getResolvedCurrentProviderProfile();if(!current||isClavueCloudMembershipBaseUrl(current.baseUrl))return!0;let cred=current.credential?.trim();return!!(!cred||isPlaceholderProviderCredential(cred)||cred==="logged-out"||!current.baseUrl?.trim())}catch{return!0}}function readMeta(){let raw=getGlobalConfig().clavueMembership;return raw&&typeof raw=="object"?{...raw}:{}}function writeMeta(meta){saveGlobalConfig(current=>{if(!meta||!meta.userId){let{clavueMembership:_drop,...rest2}=current;return rest2}return{...current,clavueMembership:meta}})}function getMembershipSessionToken(){let token=getProviderProfiles().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID)?.credential?.trim();return!token||token==="logged-out"?null:token}function getMembershipLocalSession(){let token=getMembershipSessionToken();if(!token)return null;let meta=readMeta();return{sessionToken:token,userId:meta.userId||"unknown",email:meta.email??null,name:meta.name??null,planId:meta.planId,loggedInAt:meta.loggedInAt||new Date().toISOString(),apiBaseUrl:meta.apiBaseUrl||MEMBERSHIP_DEFAULT_API_BASE,client:meta.client||MEMBERSHIP_CLIENT_ID}}function saveMembershipSession(input){let token=input.sessionToken.trim();if(!token)throw new Error("Membership session token is required");let now2=Date.now(),apiBaseUrl=MEMBERSHIP_OPENAI_BASE_URL.replace(/\/+$/,""),existing=getProviderProfiles().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID),profile={id:MEMBERSHIP_CLOUD_PROFILE_ID,name:MEMBERSHIP_CLOUD_PROFILE_NAME,providerId:"custom",modelMode:"openai_native",baseUrl:apiBaseUrl,authType:"auth_token",credential:token,apiDialectMode:"openai_responses",modelRouting:buildOfficialAutoModelRouting(),provenance:{kind:"manual"},createdAt:existing?.createdAt??now2,updatedAt:now2},activate=input.activateCloudProfile!==void 0?input.activateCloudProfile:shouldAutoActivateCloudOnLogin(),saved=saveProviderProfile(profile,{activate});activate&&activateProviderProfile(saved.id),writeMeta({userId:input.user.id,email:input.user.email??null,name:input.user.name??null,planId:input.user.planId,loggedInAt:new Date().toISOString(),apiBaseUrl,client:input.client||MEMBERSHIP_CLIENT_ID});try{let{warmOfficialSchemesCache:warmOfficialSchemesCache2}=(init_officialSchemesApi(),__toCommonJS(officialSchemesApi_exports));warmOfficialSchemesCache2?.()}catch{}try{let{scheduleProviderCloudSync:scheduleProviderCloudSync2}=(init_providerCloudSync(),__toCommonJS(providerCloudSync_exports));scheduleProviderCloudSync2?.("account-login")}catch{}return saved}function clearMembershipSession(options){writeMeta(null);let profiles=getProviderProfiles();if(!profiles.find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID))return;if(getResolvedCurrentProviderProfile()?.id===MEMBERSHIP_CLOUD_PROFILE_ID){let other=profiles.find(p=>p.id!==MEMBERSHIP_CLOUD_PROFILE_ID);if(other)try{activateProviderProfile(other.id)}catch{}}if(options?.removeCloudProfile!==!1)try{deleteProviderProfile(MEMBERSHIP_CLOUD_PROFILE_ID)}catch{}}function isMembershipCloudProfileActive(){let current=getResolvedCurrentProviderProfile();return isClavueCloudMembershipBaseUrl(current?.baseUrl)}function patchMembershipLocalMeta(patch){let cur=readMeta();!cur.userId&&!patch.userId||writeMeta({...cur,...patch,userId:String(patch.userId||cur.userId||"").trim()||cur.userId})}async function refreshMembershipLocalMetaFromServer(){let token=getMembershipSessionToken();if(!token)return null;let before2=readMeta();try{let me=await createMembershipClient().me(token),user=me.user,plan=me.plan,planId=String(user?.planId||plan?.id||before2.planId||"free").trim(),email3=typeof user?.email=="string"&&user.email||before2.email||null,name=typeof user?.displayName=="string"&&user.displayName||typeof user?.name=="string"&&user.name||before2.name||null,userId=String(user?.id||before2.userId||"").trim(),changed=planId!==String(before2.planId||"")||email3!==(before2.email??null)||name!==(before2.name??null);return userId&&patchMembershipLocalMeta({userId,email:email3,name,planId,loggedInAt:before2.loggedInAt||new Date().toISOString(),apiBaseUrl:before2.apiBaseUrl,client:before2.client}),{planId,email:String(email3||""),changed}}catch{return null}}var init_sessionStore=__esm({"src/services/membership/sessionStore.ts"(){init_config3();init_providerCredentials();init_providerProfiles();init_config();init_client3();init_officialAutoCombo();__name(shouldAutoActivateCloudOnLogin,"shouldAutoActivateCloudOnLogin");__name(readMeta,"readMeta");__name(writeMeta,"writeMeta");__name(getMembershipSessionToken,"getMembershipSessionToken");__name(getMembershipLocalSession,"getMembershipLocalSession");__name(saveMembershipSession,"saveMembershipSession");__name(clearMembershipSession,"clearMembershipSession");__name(isMembershipCloudProfileActive,"isMembershipCloudProfileActive");__name(patchMembershipLocalMeta,"patchMembershipLocalMeta");__name(refreshMembershipLocalMetaFromServer,"refreshMembershipLocalMetaFromServer")}});import{mkdirSync as mkdirSync6,readFileSync as readFileSync9,writeFileSync as writeFileSync7}from"fs";import{join as join19}from"path";function getRouterOrigin(env5=process.env){return(env5.CLAVUE_ROUTER_ORIGIN?.trim()||readRouterSession()?.origin||DEFAULT_ROUTER_ORIGIN).replace(/\/+$/,"")}function routerSessionPath(){return join19(getClavueConfigHomeDir(),"router.json")}function readRouterSession(){try{let raw=JSON.parse(readFileSync9(routerSessionPath(),"utf8")),origin2=typeof raw.origin=="string"?raw.origin.trim():"",token=typeof raw.token=="string"?raw.token.trim():"";return!origin2||!token?null:{origin:origin2.replace(/\/+$/,""),token,savedAt:typeof raw.savedAt=="number"?raw.savedAt:0}}catch{return null}}function peekRouterAuth(env5=process.env){try{let membership=getMembershipSessionToken()?.trim()||"";if(membership)return{token:membership,source:"membership"}}catch{}let envToken=env5.CLAVUE_ROUTER_TOKEN?.trim()||"";return envToken?{token:envToken,source:"env"}:{token:"",source:"none"}}function resolveRouterToken(env5=process.env){return peekRouterAuth(env5).token}async function pushOperatorPackToRouter(pack,options={}){let token=options.token??resolveRouterToken();return token?routerRequest("PUT","/v1/pack",{token,origin:options.origin,body:pack,fetchImpl:options.fetchImpl,writeOrigin:"client"}):{ok:!1,code:"not_logged_in",message:"Not signed in. Run /account login \u2014 same account as api.clavue.com / router.clavue.com."}}async function pullOperatorPackFromRouter(options={}){let token=options.token??resolveRouterToken();return token?routerRequest("GET","/v1/pack",{token,origin:options.origin,fetchImpl:options.fetchImpl}):{ok:!1,code:"not_logged_in",message:"Not signed in. Run /account login \u2014 same account as api.clavue.com / router.clavue.com."}}function terminalQuery(path10){let term=getLocalTerminal(),join24=path10.includes("?")?"&":"?";return`${path10}${join24}terminal=${encodeURIComponent(term.id)}`}function terminalHeaders(writeOrigin){let term=getLocalTerminal();return{"x-clavue-terminal":term.id,"x-clavue-terminal-label":term.label,"x-clavue-terminal-host":term.hostname,...writeOrigin?{"x-clavue-origin":writeOrigin}:{}}}async function routerRequest(method2,path10,options){let origin2=(options.origin||getRouterOrigin()).replace(/\/+$/,""),fetchImpl=options.fetchImpl??globalThis.fetch.bind(globalThis),url3=`${origin2}${terminalQuery(path10)}`;try{let response=await fetchImpl(url3,{method:method2,headers:{accept:"application/json","content-type":"application/json",authorization:`Bearer ${options.token}`,...terminalHeaders(options.writeOrigin)},body:options.body===void 0?void 0:JSON.stringify(options.body)}),text=await response.text(),parsed=null;try{parsed=text?JSON.parse(text):null}catch{parsed={raw:text.slice(0,200)}}if(!response.ok){let rec2=parsed&&typeof parsed=="object"?parsed:{};return{ok:!1,code:"http_error",message:typeof rec2.message=="string"?rec2.message:`Router ${method2} ${path10} failed (${response.status})`}}let rec=parsed&&typeof parsed=="object"?parsed:{},pack=rec.pack?parseOperatorConfigPack(rec.pack):rec.schema?parseOperatorConfigPack(rec):void 0;return{ok:!0,code:"ok",message:typeof rec.message=="string"?rec.message:"ok",pack,terminals:pack?.terminals,instruction:pack?.instruction}}catch(error40){return{ok:!1,code:"http_error",message:error40 instanceof Error?error40.message:String(error40)}}}var DEFAULT_ROUTER_ORIGIN,init_clavueRouter=__esm({"src/utils/clavueRouter.ts"(){init_envUtils();init_operatorConfigPack();init_providerTerminal();init_sessionStore();DEFAULT_ROUTER_ORIGIN="https://router.clavue.com";__name(getRouterOrigin,"getRouterOrigin");__name(routerSessionPath,"routerSessionPath");__name(readRouterSession,"readRouterSession");__name(peekRouterAuth,"peekRouterAuth");__name(resolveRouterToken,"resolveRouterToken");__name(pushOperatorPackToRouter,"pushOperatorPackToRouter");__name(pullOperatorPackFromRouter,"pullOperatorPackFromRouter");__name(terminalQuery,"terminalQuery");__name(terminalHeaders,"terminalHeaders");__name(routerRequest,"routerRequest")}});var providerCloudSync_exports={};__export(providerCloudSync_exports,{beginProviderCloudApply:()=>beginProviderCloudApply,confirmProviderCloudPending:()=>confirmProviderCloudPending,endProviderCloudApply:()=>endProviderCloudApply,formatProviderCloudPendingNotice:()=>formatProviderCloudPendingNotice,getProviderCloudPending:()=>getProviderCloudPending,getProviderCloudPendingNotice:()=>getProviderCloudPendingNotice,isProviderCloudApplying:()=>isProviderCloudApplying,maybeSyncProviderCloudOnBoot:()=>maybeSyncProviderCloudOnBoot,reconcileProviderCloud:()=>reconcileProviderCloud,scheduleProviderCloudSync:()=>scheduleProviderCloudSync,skipProviderCloudPending:()=>skipProviderCloudPending,subscribeProviderCloudNotice:()=>subscribeProviderCloudNotice});import{mkdirSync as mkdirSync7,readFileSync as readFileSync10,writeFileSync as writeFileSync8}from"fs";import{join as join20}from"path";function beginProviderCloudApply(){applying+=1}function endProviderCloudApply(){applying=Math.max(0,applying-1)}function isProviderCloudApplying(){return applying>0}function subscribeProviderCloudNotice(fn){return listeners.add(fn),()=>{listeners.delete(fn)}}function emitNotice(notice){for(let fn of listeners)try{fn(notice)}catch{}}function statePath(){return join20(getClavueConfigHomeDir(),"provider-cloud-sync.json")}function readState(){try{let raw=JSON.parse(readFileSync10(statePath(),"utf8"));return{contentHash:String(raw.contentHash||""),updatedAt:Number(raw.updatedAt)||0,appliedRevision:Number(raw.appliedRevision)||0,pending:raw.pending&&typeof raw.pending=="object"?raw.pending:void 0}}catch{return{contentHash:"",updatedAt:0,appliedRevision:0}}}function writeState(state){mkdirSync7(getClavueConfigHomeDir(),{recursive:!0}),writeFileSync8(statePath(),`${JSON.stringify(state,null,2)}
194
- `,{encoding:"utf8",mode:384})}function stamp(pack){return{...pack,updatedAt:pack.updatedAt>0?pack.updatedAt:Date.now()}}function pendingFromCloud(cloud,hash2){let term=getLocalTerminal(),instruction=cloud.instruction;return{revision:instruction?.revision||Math.max(1,cloud.updatedAt),hash:hash2,summary:summarizeOperatorPack(cloud),action:instruction?.action==="switch"?"switch":"apply",targetProfileId:instruction?.targetProfileId||cloud.activeByokId,terminalId:cloud.terminal?.id||term.id,at:instruction?.at||cloud.updatedAt||Date.now()}}function formatProviderCloudPendingNotice(pending=readState().pending){return pending?`\u4E91\u7AEF\u66F4\u65B0\u4E86\u672C\u7EC8\u7AEF\u914D\u7F6E\uFF0C\u5C06${pending.action==="switch"?"\u5207\u6362\u5230":"\u8F7D\u5165"}\u300C${pending.summary}\u300D\u3002\u8F93\u5165 /provider apply \u786E\u8BA4\u8F7D\u5165\u5E76\u5207\u6362\uFF0C\u6216 /provider apply skip \u5FFD\u7565\u3002`:null}function getProviderCloudPending(){return readState().pending}function getProviderCloudPendingNotice(){return formatProviderCloudPendingNotice()}function recordPending(cloud,hash2,state){let pending=pendingFromCloud(cloud,hash2);if(state.pending&&state.pending.revision===pending.revision&&state.pending.hash===pending.hash)return{ok:!0,action:"pending",message:formatProviderCloudPendingNotice(pending)||"pending",pending};writeState({...state,pending});let message=formatProviderCloudPendingNotice(pending)||"pending";return emitNotice(message),{ok:!0,action:"pending",message,pending}}async function confirmProviderCloudPending(options={}){let token=resolveRouterToken();if(!token)return{ok:!0,action:"skipped_no_login",message:"Not signed in \u2014 /account login to sync provider config."};let pulled=await pullOperatorPackFromRouter({token,fetchImpl:options.fetchImpl});if(!pulled.ok||!pulled.pack)return{ok:!1,action:"error",message:pulled.message||"Cloud pack missing."};let cloud=pulled.pack;beginProviderCloudApply();try{let applied=applyOperatorConfigPack(cloud,{activate:"force"});return writeState({contentHash:hashOperatorPack(cloud),updatedAt:cloud.updatedAt,appliedRevision:cloud.instruction?.revision||0}),emitNotice(null),{ok:applied.ok||applied.errors.length===0,action:"pulled",message:[`\u5DF2\u8F7D\u5165\u5E76\u5207\u6362\uFF08${applied.applied.join(", ")||"ok"}\uFF09`,summarizeOperatorPack(cloud)].join(" \xB7 ")}}finally{endProviderCloudApply()}}function skipProviderCloudPending(){let state=readState();return state.pending?(writeState({...state,appliedRevision:Math.max(state.appliedRevision,state.pending.revision),contentHash:state.pending.hash||state.contentHash,pending:void 0}),emitNotice(null),{ok:!0,action:"in_sync",message:"\u5DF2\u5FFD\u7565\u672C\u6B21\u4E91\u7AEF\u66F4\u65B0\u3002"}):{ok:!0,action:"in_sync",message:"\u6CA1\u6709\u5F85\u786E\u8BA4\u7684\u4E91\u7AEF\u66F4\u65B0\u3002"}}async function reconcileProviderCloud(options={}){if(applying>0)return{ok:!0,action:"in_sync",message:"apply in flight"};let token=resolveRouterToken();if(!token)return{ok:!0,action:"skipped_no_login",message:"Not signed in \u2014 /account login to sync provider config."};ensureDefaultByokIfUnset();let local=stamp(snapshotOperatorConfigPack()),localHash=hashOperatorPack(local),localHas=operatorPackHasContent(local),pulled=await pullOperatorPackFromRouter({token,fetchImpl:options.fetchImpl});if(!pulled.ok&&pulled.code==="not_logged_in")return{ok:!0,action:"skipped_no_login",message:pulled.message};let cloud=pulled.pack,cloudHash=cloud?hashOperatorPack(cloud):"",cloudHas=!!(cloud&&operatorPackHasContent(cloud)),state=readState(),cloudRevision=cloud?.instruction?.revision||0,unseenInstruction=!!cloud&&cloudRevision>0&&cloudRevision>state.appliedRevision&&cloudHash!==localHash,emptyLocalOffer=!!cloud&&cloudHas&&!localHas&&state.appliedRevision===0&&!state.contentHash;if(cloud&&localHash===cloudHash)return writeState({contentHash:localHash,updatedAt:local.updatedAt,appliedRevision:Math.max(state.appliedRevision,cloudRevision)}),state.pending&&emitNotice(null),{ok:!0,action:"in_sync",message:"Local and cloud match."};if(!cloudHas&&!localHas)return{ok:!0,action:"skipped_empty",message:"Nothing to sync."};let localDirty=localHash!==state.contentHash,cloudDirty=cloudHash!==state.contentHash;return cloud&&cloudHas&&(unseenInstruction||emptyLocalOffer)||cloud&&cloudHas&&!localDirty&&cloudDirty||cloud&&localDirty&&cloudDirty&&(cloud.updatedAt??0)>local.updatedAt?recordPending(cloud,cloudHash,state):!cloudHas&&localHas||localDirty&&!cloudDirty&&localHas||localDirty&&cloudDirty&&local.updatedAt>=(cloud?.updatedAt??0)&&localHas?pushLocal(local,token,options.fetchImpl):state.pending?{ok:!0,action:"pending",message:formatProviderCloudPendingNotice(state.pending)||"pending",pending:state.pending}:{ok:!0,action:"in_sync",message:"No sync needed."}}async function pushLocal(local,token,fetchImpl){let toSend=stamp({...local,updatedAt:Date.now()}),pushed=await pushOperatorPackToRouter(toSend,{token,fetchImpl});if(!pushed.ok)return{ok:!1,action:"error",message:pushed.message};let state=readState();return writeState({contentHash:hashOperatorPack(toSend),updatedAt:toSend.updatedAt,appliedRevision:Math.max(state.appliedRevision,toSend.instruction?.revision||0),pending:void 0}),{ok:!0,action:"pushed",message:"Local \u2192 cloud."}}function scheduleProviderCloudSync(reason="save"){applying>0||resolveRouterToken()&&(timer&&clearTimeout(timer),timer=setTimeout(()=>{timer=null,reconcileProviderCloud({reason}).catch(()=>{})},400))}function maybeSyncProviderCloudOnBoot(){if(!booted){booted=!0;try{ensureDefaultByokIfUnset()}catch{}resolveRouterToken()&&(setTimeout(()=>{reconcileProviderCloud({reason:"boot"}).catch(()=>{})},1500),pollTimer||(pollTimer=setInterval(()=>{reconcileProviderCloud({reason:"poll"}).catch(()=>{})},6e4),pollTimer.unref?.()))}}var applying,timer,pollTimer,booted,listeners,init_providerCloudSync=__esm({"src/utils/providerCloudSync.ts"(){init_envUtils();init_operatorConfigPack();init_clavueRouter();init_providerTerminal();applying=0,timer=null,pollTimer=null,booted=!1,listeners=new Set;__name(beginProviderCloudApply,"beginProviderCloudApply");__name(endProviderCloudApply,"endProviderCloudApply");__name(isProviderCloudApplying,"isProviderCloudApplying");__name(subscribeProviderCloudNotice,"subscribeProviderCloudNotice");__name(emitNotice,"emitNotice");__name(statePath,"statePath");__name(readState,"readState");__name(writeState,"writeState");__name(stamp,"stamp");__name(pendingFromCloud,"pendingFromCloud");__name(formatProviderCloudPendingNotice,"formatProviderCloudPendingNotice");__name(getProviderCloudPending,"getProviderCloudPending");__name(getProviderCloudPendingNotice,"getProviderCloudPendingNotice");__name(recordPending,"recordPending");__name(confirmProviderCloudPending,"confirmProviderCloudPending");__name(skipProviderCloudPending,"skipProviderCloudPending");__name(reconcileProviderCloud,"reconcileProviderCloud");__name(pushLocal,"pushLocal");__name(scheduleProviderCloudSync,"scheduleProviderCloudSync");__name(maybeSyncProviderCloudOnBoot,"maybeSyncProviderCloudOnBoot")}});var providerProfiles_exports={};__export(providerProfiles_exports,{CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL:()=>CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL,COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED:()=>COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED,COMPATIBLE_EXTERNAL_PROVIDER_SOURCE_IDS:()=>COMPATIBLE_EXTERNAL_PROVIDER_SOURCE_IDS,CURRENT_PROVIDER_PROFILE_ID:()=>CURRENT_PROVIDER_PROFILE_ID,DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS:()=>DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS,PROVIDER_MODEL_CATALOG:()=>PROVIDER_MODEL_CATALOG,PROVIDER_MODEL_ROUTING_PRESETS:()=>PROVIDER_MODEL_ROUTING_PRESETS,PROVIDER_PRESETS:()=>PROVIDER_PRESETS,__resetOrphanActiveProviderHealForTests:()=>__resetOrphanActiveProviderHealForTests,activateCurrentProviderProfile:()=>activateCurrentProviderProfile,activateFusionConfig:()=>activateFusionConfig,activateProviderProfile:()=>activateProviderProfile,allocateUniqueProviderProfileName:()=>allocateUniqueProviderProfileName,applyProviderProfileToProcess:()=>applyProviderProfileToProcess,assertProviderProfileActivatable:()=>assertProviderProfileActivatable,attemptAutoRepairProviderProfile:()=>attemptAutoRepairProviderProfile,clearActiveProviderConfiguration:()=>clearActiveProviderConfiguration,cloneProviderProfile:()=>cloneProviderProfile,createCustomProviderModelRouting:()=>createCustomProviderModelRouting,createProviderDraftFromPreset:()=>createProviderDraftFromPreset,createProviderModelRoutingFromPreset:()=>createProviderModelRoutingFromPreset,deleteFusionConfig:()=>deleteFusionConfig,deleteProviderProfile:()=>deleteProviderProfile,describeProviderPrimaryUpstreamPath:()=>describeProviderPrimaryUpstreamPath,ensureProviderContextWindowRefreshSchedule:()=>ensureProviderContextWindowRefreshSchedule,extractAllModelContextWindows:()=>extractAllModelContextWindows,extractMaxInputTokensFromModelsPayload:()=>extractMaxInputTokensFromModelsPayload,findProviderProfiles:()=>findProviderProfiles,getActiveFusionConfig:()=>getActiveFusionConfig,getActiveFusionConfigId:()=>getActiveFusionConfigId,getActiveFusionEndpointForModel:()=>getActiveFusionEndpointForModel,getActiveProviderProfileId:()=>getActiveProviderProfileId,getCachedProviderCapabilitySnapshot:()=>getCachedProviderCapabilitySnapshot,getCredentialLabel:()=>getCredentialLabel,getCurrentProviderProfile:()=>getCurrentProviderProfile,getFusionConfigById:()=>getFusionConfigById,getFusionConfigs:()=>getFusionConfigs,getProviderCapabilitySnapshot:()=>getProviderCapabilitySnapshot,getProviderCapabilitySnapshotFreshness:()=>getProviderCapabilitySnapshotFreshness,getProviderContextWindowModels:()=>getProviderContextWindowModels,getProviderModelCatalogEntry:()=>getProviderModelCatalogEntry,getProviderModelMaxInputTokens:()=>getProviderModelMaxInputTokens,getProviderModelMaxInputTokensAsync:()=>getProviderModelMaxInputTokensAsync,getProviderModelMaxInputTokensSnapshotAge:()=>getProviderModelMaxInputTokensSnapshotAge,getProviderModelRoutingPreset:()=>getProviderModelRoutingPreset,getProviderModelSlotDefaults:()=>getProviderModelSlotDefaults,getProviderPreset:()=>getProviderPreset,getProviderProfileById:()=>getProviderProfileById,getProviderProfiles:()=>getProviderProfiles,getProviderSlotModelsFromRouting:()=>getProviderSlotModelsFromRouting,getResolvedCurrentProviderProfile:()=>getResolvedCurrentProviderProfile,getSavedActiveProviderProfile:()=>getSavedActiveProviderProfile,hasProviderCredentialConfigured:()=>hasProviderCredentialConfigured,healUserSettingsEnvToProfile:()=>healUserSettingsEnvToProfile,importCompatibleExternalProviderProfiles:()=>importCompatibleExternalProviderProfiles,inferProviderApiDialectMode:()=>inferProviderApiDialectMode,inferProviderPresetId:()=>inferProviderPresetId,inspectProviderModelRoute:()=>inspectProviderModelRoute,inspectProviderModelRoutes:()=>inspectProviderModelRoutes,isFusionModeActive:()=>isFusionModeActive,markProviderOnboardingComplete:()=>markProviderOnboardingComplete,maskCredential:()=>maskCredential,normalizeProviderCapabilitySnapshot:()=>normalizeProviderCapabilitySnapshot,normalizeProviderModelRouting:()=>normalizeProviderModelRouting,providerProfileToAgentEnv:()=>providerProfileToAgentEnv,refreshProviderModelContextWindow:()=>refreshProviderModelContextWindow,refreshProviderModelContextWindows:()=>refreshProviderModelContextWindows,repairProviderProfileRoutingForMode:()=>repairProviderProfileRoutingForMode,resolveCanonicalActiveProviderProfileId:()=>resolveCanonicalActiveProviderProfileId,resolveFusionEndpointForModel:()=>resolveFusionEndpointForModel,resolveHealedActiveProviderProfileId:()=>resolveHealedActiveProviderProfileId,saveFusionConfig:()=>saveFusionConfig,saveProviderProfile:()=>saveProviderProfile,validateProviderProfile:()=>validateProviderProfile});import{createHash as createHash3,randomUUID as randomUUID3}from"crypto";import{existsSync as existsSync4,readFileSync as readFileSync11,renameSync as renameSync4,unlinkSync as unlinkSync4,writeFileSync as writeFileSync9}from"fs";import{homedir as homedir5}from"os";import{join as join21,resolve as resolve7}from"path";function writeFileSyncAtomic(filePath,content){let tmpPath=filePath+"."+process.pid+"."+Date.now().toString(36)+"."+randomUUID3().slice(0,8)+".tmp";try{writeFileSync9(tmpPath,content,"utf8"),renameSync4(tmpPath,filePath)}catch(error40){try{unlinkSync4(tmpPath)}catch{}throw error40}}function normalizeProviderPanelSelection(value){if(!value||typeof value!="object")return;let raw=value,preset=raw.preset,strategy=raw.strategy,judgeMemberId=typeof raw.judgeMemberId=="string"?raw.judgeMemberId.trim():"";if(!(preset!=="budget"&&preset!=="balanced"&&preset!=="frontier"||strategy!=="first_to_finish"&&strategy!=="majority_vote"&&strategy!=="union"&&strategy!=="longest"&&strategy!=="best_score"&&strategy!=="judge_synthesis"||!judgeMemberId))return{preset,strategy,judgeMemberId}}function routeKeysForProviderValidationRoles(roles){let keys2=roles.flatMap(role=>{switch(role){case"primary":return["slot:primary","role:mainloop"];case"subagent":return["slot:subagent","slot:sonnet","role:fallback"];case"fast":return["slot:smallfast","slot:haiku","role:background"];case"plan":return["slot:plan","slot:opus","role:planner"]}});return[...new Set(keys2)]}function shouldAutoImportCompatibleExternalProviderProfiles(){return!1}function normalizeAnthropicBaseUrl(value){let trimmedValue=String(value??"").trim();return trimmedValue?trimmedValue.replace(/\/v1(?:\/messages)?\/?$/i,"").replace(/\/+$/,""):""}function stripTomlComment(line){let result2="",quote=null,escaped=!1;for(let char of line){if(quote){if(result2+=char,quote==='"'&&char==="\\"&&!escaped){escaped=!0;continue}char===quote&&!escaped&&(quote=null),escaped=!1;continue}if(char==='"'||char==="'"){quote=char,result2+=char;continue}if(char==="#")break;result2+=char}return result2.trim()}function parseTomlPathSegments(value){let segments=[],current="",quote=null;for(let char of value){if(quote){char===quote?quote=null:current+=char;continue}if(char==='"'||char==="'"){quote=char;continue}if(char==="."){let segment=current.trim();segment&&segments.push(segment),current="";continue}current+=char}let tail2=current.trim();return tail2&&segments.push(tail2),segments}function parseTomlStringValue(value){let trimmed=stripTomlComment(value);if(!trimmed)return"";if(trimmed.startsWith('"')&&trimmed.endsWith('"'))try{return JSON.parse(trimmed)}catch{return trimmed.slice(1,-1)}return trimmed.startsWith("'")&&trimmed.endsWith("'")?trimmed.slice(1,-1):trimmed}function getVerifiedCapabilitiesForModel(model){let normalizedModel=model.trim().toLowerCase();if(!normalizedModel)return[];let capabilities=VERIFIED_MODEL_CAPABILITIES.get(normalizedModel);return capabilities?[...capabilities]:[]}function getCapabilitiesFromProviderSnapshot(model,snapshot){if(!model.trim().toLowerCase())return[];let capabilities=new Set,verifiedCapabilities=getVerifiedCapabilitiesForModel(model);if(snapshot.responsesReasoningMedium){capabilities.add("effort"),capabilities.add("thinking");for(let capability of verifiedCapabilities)capability==="adaptive_thinking"&&capabilities.add(capability)}return snapshot.responsesReasoningXHigh&&capabilities.add("max_effort"),[...capabilities]}function serializeCapabilitiesForModel(profile,model){if(profile){let snapshot=getProviderCapabilitySnapshot(profile,model,{allowStale:!0});if(snapshot){let cachedCapabilities=getCapabilitiesFromProviderSnapshot(model,snapshot);return cachedCapabilities.length>0?cachedCapabilities.join(","):void 0}}let transportPreference=getModelTransportPreference(model);if(transportPreference==="openai_responses"||transportPreference==="openai_chat_completions")return;let capabilities=getVerifiedCapabilitiesForModel(model);return capabilities.length>0?capabilities.join(","):void 0}function normalizeAuthType(value){return value==="auth_token"?"auth_token":"api_key"}function getProviderSlotModelsFromRouting(routing){let values2=getProviderModeSlotValues(routing??{});return[values2.primaryModel,values2.haikuModel,values2.sonnetModel,values2.opusModel].map(model=>String(model??"").trim()).filter(Boolean)}function inferProviderApiDialectMode(modelMode,models){return modelMode==="anthropic_native"?"anthropic":modelMode==="openai_native"||models.some(model=>{let preference=getModelTransportPreference(model);return preference==="openai_responses"||preference==="openai_chat_completions"})?"openai_responses":"anthropic"}function describeProviderPrimaryUpstreamPath(profile){let primaryModel=String(profile.modelRouting.primaryModel??"").trim();if(!primaryModel)return"/v1/messages";let apiDialectMode=profile.apiDialectMode??inferProviderApiDialectMode(profile.modelMode,getProviderSlotModelsFromRouting(profile.modelRouting)),fusionEndpoint=getActiveFusionEndpointForModel(primaryModel,["slot:primary","role:mainloop"]),fusionEndpointDialect=fusionEndpoint?.apiDialectMode??null,decision=resolveCodingRoutePolicy({model:primaryModel,apiDialectMode,fusionEndpointDialect,runtimeProviderKind:"gateway"});return fusionEndpoint?.upstreamPathOverride||getUpstreamApiPathForTransport(primaryModel,decision.transport)}function normalizeProviderApiDialectMode(value,modelMode,modelRouting){return value==="anthropic"||value==="openai_responses"?value:inferProviderApiDialectMode(modelMode,getProviderSlotModelsFromRouting(modelRouting))}function normalizeProviderId(value,baseUrl){return value==="custom"||value==="anthropic"||value==="openrouter"||value==="glm"||value==="minimax"||value==="kimi"||value==="xai"||value==="gemini"?value:inferProviderPresetId(baseUrl)??"custom"}function normalizeModelRoutingPresetId(value){return value==="provider_default"||value==="claude_code_heritage"||value==="gpt_5_5_max"||value==="gpt_5_4_codex"||value==="gpt_5_1_stable"||value==="gpt_5_3_codex"||value==="gpt55_deepseek_combo"||value==="deepseek_gpt_combo"||value==="grok_current"||value==="grok_45_composer_combo"||value==="minimax_m3"||value==="kimi_k26"||value==="deepseek_v4_pro"||value==="glm_52"||value==="qwen36_gateway"||value==="custom"?value:"provider_default"}function normalizeModelValue(value){if(typeof value!="string")return"";let m2=value.trim();return m2?(/^gork(?=[-_.]|$)/i.test(m2)&&(m2=m2.replace(/^gork/i,"grok")),m2):""}function inferModelRoutingPresetId(routing){for(let preset of PROVIDER_MODEL_ROUTING_PRESETS)if(preset.routing.primaryModel===routing.primaryModel&&preset.routing.subagentModel===routing.subagentModel&&preset.routing.smallFastModel===routing.smallFastModel&&preset.routing.planModel===routing.planModel&&preset.routing.exploreModel===routing.exploreModel&&preset.routing.generalModel===routing.generalModel&&preset.routing.teamModel===routing.teamModel&&preset.routing.guideModel===routing.guideModel&&preset.routing.reviewModel===routing.reviewModel)return preset.id;return"custom"}function normalizeProviderModelRouting(value){if(!value||typeof value!="object")return createProviderModelRoutingFromPreset("provider_default");let raw=value,presetId=normalizeModelRoutingPresetId(raw.presetId),base=getProviderModelRoutingPreset(presetId).routing,normalized=completeProviderRoutingSlotsFromPrimary({presetId,primaryModel:normalizeModelValue(raw.primaryModel),subagentModel:normalizeModelValue(raw.subagentModel),smallFastModel:normalizeModelValue(raw.smallFastModel),planModel:normalizeModelValue(raw.planModel),exploreModel:normalizeModelValue(raw.exploreModel),generalModel:normalizeModelValue(raw.generalModel),teamModel:normalizeModelValue(raw.teamModel),guideModel:normalizeModelValue(raw.guideModel),reviewModel:normalizeModelValue(raw.reviewModel)},base);return{presetId:presetId==="provider_default"?inferModelRoutingPresetId(normalized):presetId,...normalized}}function normalizeProviderProfileProvenance(value){if(!value||typeof value!="object")return{kind:"manual"};let raw=value;return raw.kind==="synthetic_current_env"?{kind:"synthetic_current_env"}:raw.kind==="current_env_adopted"?{kind:"current_env_adopted",adoptedAt:typeof raw.adoptedAt=="number"&&Number.isFinite(raw.adoptedAt)?raw.adoptedAt:Date.now()}:raw.kind==="imported"&&(raw.sourceId==="ccjk"||raw.sourceId==="zcf")?{kind:"imported",sourceId:raw.sourceId,importedAt:typeof raw.importedAt=="number"&&Number.isFinite(raw.importedAt)?raw.importedAt:Date.now(),externalProfileId:typeof raw.externalProfileId=="string"&&raw.externalProfileId.trim()||void 0}:{kind:"manual"}}function normalizeProviderSecretRecord(value){if(!value||typeof value!="object")return null;let raw=value,credential=typeof raw.credential=="string"?raw.credential.trim():"";return credential?{credential,authType:raw.authType==="auth_token"?"auth_token":raw.authType==="api_key"?"api_key":void 0}:null}function getStoredProviderSecretRecords(){let stored=getSecureStorage().read()?.providerProfiles;return!stored||typeof stored!="object"?{}:Object.fromEntries(Object.entries(stored).map(([profileId,value])=>{let normalizedId=profileId.trim(),normalizedValue=normalizeProviderSecretRecord(value);return normalizedId&&normalizedValue?[normalizedId,normalizedValue]:null}).filter(entry=>entry!==null))}function areProviderSecretMapsEqual(left,right){let leftKeys=Object.keys(left).sort(),rightKeys=Object.keys(right).sort();if(leftKeys.length!==rightKeys.length)return!1;for(let index=0;index<leftKeys.length;index+=1){let leftKey=leftKeys[index],rightKey=rightKeys[index];if(leftKey!==rightKey)return!1;let leftValue=left[leftKey],rightValue=right[rightKey];if(!leftValue||!rightValue||leftValue.credential!==rightValue.credential||leftValue.authType!==rightValue.authType)return!1}return!0}function persistProviderSecrets(profiles,options){let secureStorage=getSecureStorage(),existingData=secureStorage.read()??{},currentSecrets=getStoredProviderSecretRecords(),nextSecrets={...currentSecrets};for(let removedId of options?.removedProfileIds??[]){let id=String(removedId||"").trim();id&&delete nextSecrets[id]}for(let profile of profiles){let id=profile.id.trim(),credential=profile.credential.trim();id&&(!credential||isPlaceholderProviderCredential(credential)||(nextSecrets[id]={credential,authType:normalizeAuthType(profile.authType)}))}if(areProviderSecretMapsEqual(currentSecrets,nextSecrets))return;if(!secureStorage.update({...existingData,providerProfiles:Object.keys(nextSecrets).length>0?nextSecrets:void 0}).success)throw new Error("Failed to persist provider credentials to secure storage")}function scrubStoredProviderProfile(profile){let{credential:_credential,...rest2}=profile;return rest2}function normalizeProviderProfile(value,providerSecrets={}){if(!value||typeof value!="object")return null;let raw=value,id=typeof raw.id=="string"?raw.id.trim():"",name=typeof raw.name=="string"?raw.name.trim():"",baseUrl=normalizeAnthropicBaseUrl(typeof raw.baseUrl=="string"?raw.baseUrl:""),secretRecord=id?providerSecrets[id]:void 0,credential=secretRecord?.credential??(typeof raw.credential=="string"?raw.credential.trim():"");if(!id||!name||!baseUrl)return null;let safeCredential=isPlaceholderProviderCredential(credential)?"":credential,createdAt=typeof raw.createdAt=="number"&&Number.isFinite(raw.createdAt)?raw.createdAt:Date.now(),updatedAt=typeof raw.updatedAt=="number"&&Number.isFinite(raw.updatedAt)?raw.updatedAt:createdAt,providerId=normalizeProviderId(raw.providerId,baseUrl),modelRouting=normalizeProviderModelRouting(raw.modelRouting),modelMode=getProviderModelModeForProfile({providerId,modelMode:typeof raw.modelMode=="string"?raw.modelMode:void 0,modelRouting}),comboFallbackRaw=raw.comboFallbackToPrimary,comboFallbackToPrimary=comboFallbackRaw===!1?!1:comboFallbackRaw===!0||modelMode==="hybrid_compatible"?!0:void 0;return{id,name,providerId,modelMode,baseUrl,authType:normalizeAuthType(secretRecord?.authType??raw.authType),credential:safeCredential,modelRouting,...comboFallbackToPrimary!==void 0?{comboFallbackToPrimary}:{},provenance:normalizeProviderProfileProvenance(raw.provenance),geminiHighAmplification:raw.geminiHighAmplification==="full"||raw.geminiHighAmplification==="light"||raw.geminiHighAmplification==="off"?raw.geminiHighAmplification:void 0,apiDialectMode:normalizeProviderApiDialectMode(raw.apiDialectMode,modelMode,modelRouting),providerPanel:normalizeProviderPanelSelection(raw.providerPanel),fusionConfigId:typeof raw.fusionConfigId=="string"&&raw.fusionConfigId.trim()?raw.fusionConfigId.trim():void 0,createdAt,updatedAt}}function buildCompatibleExternalProviderRouting(profile){let primaryModel=normalizeModelValue(profile.primaryModel),haikuModel=normalizeModelValue(profile.defaultHaikuModel),sonnetModel=normalizeModelValue(profile.defaultSonnetModel),opusModel=normalizeModelValue(profile.defaultOpusModel),executionModel=sonnetModel||primaryModel;return normalizeProviderModelRouting({presetId:"custom",primaryModel,subagentModel:executionModel&&executionModel!==primaryModel?executionModel:"",smallFastModel:haikuModel,planModel:opusModel||primaryModel,exploreModel:executionModel,generalModel:executionModel,teamModel:executionModel,guideModel:opusModel||primaryModel,reviewModel:""})}function repairProviderProfileRoutingForMode(profile){let providerId=normalizeProviderId(profile.providerId,profile.baseUrl),routing=normalizeProviderModelRouting(profile.modelRouting),modelMode=getProviderModelModeForProfile({providerId,modelMode:profile.modelMode,modelRouting:routing}),issues=validateProviderModeRouting(modelMode,profile.modelRouting,{language:"zh",requireExplicitHybridSelections:modelMode==="hybrid_compatible"}).filter(issue2=>issue2.level==="error");if(modelMode==="hybrid_compatible"&&appendEmptyHybridModeSlotIssues(issues,profile.modelRouting),issues.length===0)return{profile:{...profile,providerId,modelMode,modelRouting:routing},repaired:!1,messages:[]};let seedPrimary=createDefaultProviderModeSlotValues(modelMode).primaryModel,repair=repairProviderRoutingSlots(routing,issues,seedPrimary);if(!repair.repaired)return{profile:{...profile,providerId,modelMode,modelRouting:routing},repaired:!1,messages:[...issues.map(issue2=>issue2.message),...repair.messages,"\u7EC4\u5408\u6A21\u578B\u914D\u7F6E\u672A\u6574\u4F53\u5207\u6362\uFF1B\u8BF7\u68C0\u67E5\u5BF9\u5E94\u69FD\u4F4D\u6216\u4E3B\u6A21\u578B\u540E\u91CD\u8BD5\u3002"]};let repairedRouting={...repair.routing,presetId:inferModelRoutingPresetId({primaryModel:repair.routing.primaryModel,subagentModel:repair.routing.subagentModel,smallFastModel:repair.routing.smallFastModel,planModel:repair.routing.planModel,exploreModel:repair.routing.exploreModel,generalModel:repair.routing.generalModel,teamModel:repair.routing.teamModel,guideModel:repair.routing.guideModel,reviewModel:repair.routing.reviewModel})};return{profile:{...profile,providerId,modelMode,modelRouting:repairedRouting},repaired:!0,messages:repair.messages}}function createProviderProfileFromCompatibleExternalProfile(profileId,profile,sourceId){let id=profileId.trim(),name=String(profile.name||profileId).trim(),baseUrl=normalizeAnthropicBaseUrl(profile.baseUrl),credential=String(profile.apiKey||"").trim(),authType=profile.authType==="auth_token"?"auth_token":"api_key";if(!id||!name||!baseUrl||!credential||isPlaceholderProviderCredential(credential))return null;let now2=Date.now(),rawProfile={id,name,providerId:normalizeProviderId(void 0,baseUrl),modelMode:getProviderModelModeForProfile({providerId:normalizeProviderId(void 0,baseUrl),modelRouting:buildCompatibleExternalProviderRouting(profile)}),baseUrl,authType,credential,modelRouting:buildCompatibleExternalProviderRouting(profile),provenance:{kind:"imported",sourceId,importedAt:now2,externalProfileId:id},createdAt:now2,updatedAt:now2};return repairProviderProfileRoutingForMode(rawProfile).profile}function loadCompatibleExternalProviderConfig(configPath,sourceId){if(!existsSync4(configPath))return null;let content="";try{content=readFileSync11(configPath,"utf8")}catch{return null}let rawProfiles=new Map,activeProfileId="",currentPath=[];for(let rawLine of content.split(/\r?\n/u)){let line=stripTomlComment(rawLine);if(!line)continue;if(line.startsWith("[")&&line.endsWith("]")){currentPath=parseTomlPathSegments(line.slice(1,-1).trim());continue}let separatorIndex=line.indexOf("=");if(separatorIndex===-1)continue;let key=line.slice(0,separatorIndex).trim().replace(/^['"]|['"]$/g,""),value=parseTomlStringValue(rawLine.slice(separatorIndex+1));if(currentPath.length===1&&currentPath[0]==="claudeCode"){key==="currentProfile"&&(activeProfileId=value.trim());continue}if(currentPath.length<3||currentPath[0]!=="claudeCode"||currentPath[1]!=="profiles")continue;let profileKey=currentPath.slice(2).join(".").trim();if(!profileKey)continue;let currentProfile=rawProfiles.get(profileKey)??{};(key==="name"||key==="authType"||key==="apiKey"||key==="baseUrl"||key==="primaryModel"||key==="defaultHaikuModel"||key==="defaultSonnetModel"||key==="defaultOpusModel")&&(currentProfile[key]=value,rawProfiles.set(profileKey,currentProfile))}let profiles=[...rawProfiles.entries()].map(([profileId,profile])=>createProviderProfileFromCompatibleExternalProfile(profileId,profile,sourceId)).filter(profile=>profile!==null);return profiles.length===0&&!activeProfileId?null:{activeProfileId:activeProfileId||void 0,profiles}}function loadCompatibleExternalProviderProfiles(options){if(!COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED)return{activeProfileId:void 0,profiles:[]};let profiles=[],seenIds=new Set,activeProfileId;for(let source of COMPATIBLE_EXTERNAL_PROVIDER_CONFIG_PATHS){if(options?.sourceId&&source.sourceId!==options.sourceId)continue;let loaded=loadCompatibleExternalProviderConfig(source.path,source.sourceId);if(loaded){!activeProfileId&&loaded.activeProfileId&&(activeProfileId=loaded.activeProfileId);for(let profile of loaded.profiles){let normalizedId=profile.id.trim().toLowerCase();!normalizedId||seenIds.has(normalizedId)||(seenIds.add(normalizedId),profiles.push(profile))}}}return{activeProfileId,profiles}}function applyCompatibleExternalProviderImport(externalConfig){let discoveredProfiles=externalConfig.profiles;if(discoveredProfiles.length===0&&!externalConfig.activeProfileId)return{discoveredProfiles,importedProfiles:[],skippedProfiles:[],activeProfileId:externalConfig.activeProfileId,syncedActiveProfile:null};let currentConfig=getProviderConfig(),storedProfiles=getStoredProviderProfiles(),storedProfileIds=new Set(storedProfiles.map(profile=>profile.id.trim().toLowerCase())),storedProfileNames=new Set(storedProfiles.map(profile=>profile.name.trim().toLowerCase())),externalProfileIds=new Set(discoveredProfiles.map(profile=>profile.id.trim())),importedProfiles=discoveredProfiles.filter(profile=>{let normalizedId=profile.id.trim().toLowerCase(),normalizedName=profile.name.trim().toLowerCase();return normalizedId&&!storedProfileIds.has(normalizedId)&&!storedProfileNames.has(normalizedName)}),skippedProfiles=discoveredProfiles.filter(profile=>!importedProfiles.some(imported=>imported.id===profile.id)),currentStoredActiveProfileId=getStoredActiveProviderProfileId(currentConfig),importedActiveProfileId=String(externalConfig.activeProfileId||"").trim(),shouldSyncExternalActiveProfile=!!importedActiveProfileId&&externalProfileIds.has(importedActiveProfileId)&&(!currentStoredActiveProfileId||externalProfileIds.has(currentStoredActiveProfileId))&&currentStoredActiveProfileId!==importedActiveProfileId;if(importedProfiles.length===0&&!shouldSyncExternalActiveProfile)return{discoveredProfiles,importedProfiles,skippedProfiles,activeProfileId:importedActiveProfileId||void 0,syncedActiveProfile:null};let nextProfiles=[...storedProfiles,...importedProfiles];updateProviderConfig(nextProfiles,shouldSyncExternalActiveProfile?importedActiveProfileId:getStoredActiveProviderProfileId(currentConfig)||void 0);let syncedActiveProfile=null;return shouldSyncExternalActiveProfile&&(!getCurrentProviderProfile()||externalProfileIds.has(currentStoredActiveProfileId))&&(syncedActiveProfile=nextProfiles.find(profile=>profile.id===importedActiveProfileId)??null,syncedActiveProfile&&(writeUserSettingsUpdate(syncedActiveProfile),applyProviderProfileToProcess(syncedActiveProfile))),{discoveredProfiles,importedProfiles,skippedProfiles,activeProfileId:importedActiveProfileId||void 0,syncedActiveProfile}}function escapeTomlBasicString(value){return value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function updateCompatibleExternalProviderCurrentProfile(profileId){if(!COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED)return;let nextProfileId=String(profileId||"").trim();for(let source of COMPATIBLE_EXTERNAL_PROVIDER_CONFIG_PATHS){if(!existsSync4(source.path)||nextProfileId&&!loadCompatibleExternalProviderConfig(source.path,source.sourceId)?.profiles.some(profile=>profile.id===nextProfileId))continue;let content="";try{content=readFileSync11(source.path,"utf8")}catch{continue}let lines=content.split(/\r?\n/u),output=[],currentPath=[],hasClaudeCodeSection=!1,replaced=!1;for(let line of lines){let normalizedLine=stripTomlComment(line),isSection=normalizedLine.startsWith("[")&&normalizedLine.endsWith("]");if(hasClaudeCodeSection&&currentPath.length===1&&currentPath[0]==="claudeCode"&&isSection&&!replaced&&(output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0),isSection){currentPath=parseTomlPathSegments(normalizedLine.slice(1,-1).trim()),currentPath.length===1&&currentPath[0]==="claudeCode"&&(hasClaudeCodeSection=!0),output.push(line);continue}if(currentPath.length===1&&currentPath[0]==="claudeCode"){let separatorIndex=normalizedLine.indexOf("=");if(separatorIndex!==-1&&normalizedLine.slice(0,separatorIndex).trim().replace(/^['"]|['"]$/g,"")==="currentProfile"){output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0;continue}}output.push(line)}if(hasClaudeCodeSection&&currentPath.length===1&&currentPath[0]==="claudeCode"&&!replaced&&(output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0),!hasClaudeCodeSection)continue;let nextContent=output.join(`
193
+ `,{encoding:"utf8",mode:384})}var init_providerTerminal=__esm({"src/utils/providerTerminal.ts"(){init_envUtils();__name(terminalPath,"terminalPath");__name(sanitizeLabel,"sanitizeLabel");__name(getLocalTerminal,"getLocalTerminal");__name(writeTerminal,"writeTerminal")}});function asRecord2(value){return value&&typeof value=="object"?value:null}function extractErrorMessage(body,fallback){let rec=asRecord2(body);return rec?typeof rec.error=="string"&&rec.error.trim()?rec.error.trim():typeof rec.message=="string"&&rec.message.trim()?rec.message.trim():fallback:fallback}async function parseJson(response){let text=await response.text();if(!text.trim())return null;try{return JSON.parse(text)}catch{return{raw:text.slice(0,500)}}}function createMembershipClient(options={}){let apiBase=(options.apiBaseUrl||MEMBERSHIP_DEFAULT_API_BASE).replace(/\/+$/,""),fetchImpl=options.fetchImpl??globalThis.fetch.bind(globalThis),userAgent=options.userAgent||`clavue-cli/${process.env.npm_package_version||"dev"} membership`;async function request(method2,path10,init){let url3=path10.startsWith("http")?path10:`${apiBase}${path10.startsWith("/")?path10:`/${path10}`}`,headers={Accept:"application/json","User-Agent":userAgent,...init?.headers??{}};init?.body!==void 0&&(headers["Content-Type"]="application/json"),init?.sessionToken?.trim()&&(headers.Authorization=`Bearer ${init.sessionToken.trim()}`);let response=await fetchImpl(url3,{method:method2,headers,body:init?.body===void 0?void 0:JSON.stringify(init.body)}),body=await parseJson(response);if(!response.ok){let rec2=asRecord2(body);throw new MembershipHttpError({status:response.status,message:extractErrorMessage(body,`Membership request failed (${response.status})`),code:typeof rec2?.code=="string"?rec2.code:void 0,body})}let rec=asRecord2(body);if(rec&&rec.ok===!0){let{ok:_ok,...rest2}=rec;return rest2}return body}return __name(request,"request"),{apiBaseUrl:apiBase,async login(input){let payload=await request("POST","/api/membership/auth/login",{body:{identifier:input.identifier.trim(),password:input.password,client:input.client||MEMBERSHIP_CLIENT_ID}}),rec=asRecord2(payload),sessionToken=typeof rec?.sessionToken=="string"?rec.sessionToken.trim():"",user=asRecord2(rec?.user);if(!sessionToken||!user?.id)throw new MembershipHttpError({status:500,message:"Membership login response missing sessionToken/user",body:payload});return{user,sessionToken,account:rec?.account??null}},async me(sessionToken){let payload=await request("GET","/api/membership/auth/me",{sessionToken}),rec=asRecord2(payload);return{user:rec?.user??null,usage:rec?.usage??null,plan:rec?.plan??null,models:Array.isArray(rec?.models)?rec.models:[],purchases:Array.isArray(rec?.purchases)?rec.purchases:[],recentEvents:Array.isArray(rec?.recentEvents)?rec.recentEvents:[],cloudSettings:rec?.cloudSettings??null}},async logout(sessionToken){try{await request("POST","/api/membership/auth/logout",{sessionToken,body:{}})}catch(error40){if(error40 instanceof MembershipHttpError&&error40.status===401)return;throw error40}},async plans(){let payload=await request("GET","/api/membership/plans"),rec=asRecord2(payload);return{plans:Array.isArray(rec?.plans)?rec.plans:[],packs:Array.isArray(rec?.packs)?rec.packs:[],models:Array.isArray(rec?.models)?rec.models:[]}},async listModels(sessionToken){return request("GET","/api/membership/v1/models",{sessionToken:sessionToken??void 0})},async getRouterPack(sessionToken){let payload=await request("GET","/api/membership/router/pack",{sessionToken}),rec=asRecord2(payload);return{pack:rec?.pack??payload,openUrl:typeof rec?.openUrl=="string"?rec.openUrl:void 0}},async otpSend(input){let payload=await request("POST","/api/membership/auth/otp/send",{body:{channel:input.channel,destination:input.destination.trim(),purpose:input.purpose??"login",displayName:input.displayName,client:input.client||MEMBERSHIP_CLIENT_ID}}),rec=asRecord2(payload),challengeId=typeof rec?.challengeId=="string"?rec.challengeId.trim():"";if(!challengeId)throw new MembershipHttpError({status:500,message:"OTP send missing challengeId",body:payload});return{challengeId,expiresAt:typeof rec?.expiresAt=="string"?rec.expiresAt:void 0,destinationMasked:typeof rec?.destinationMasked=="string"?rec.destinationMasked:void 0,resendAfterSec:typeof rec?.resendAfterSec=="number"?rec.resendAfterSec:void 0,debugCode:typeof rec?.debugCode=="string"?rec.debugCode:void 0}},async otpVerify(input){let payload=await request("POST","/api/membership/auth/otp/verify",{body:{challengeId:input.challengeId.trim(),code:input.code.trim(),displayName:input.displayName,client:input.client||MEMBERSHIP_CLIENT_ID}}),rec=asRecord2(payload),sessionToken=typeof rec?.sessionToken=="string"?rec.sessionToken.trim():"",user=asRecord2(rec?.user);if(!sessionToken||!user?.id)throw new MembershipHttpError({status:500,message:"OTP verify missing sessionToken/user",body:payload});return{user,sessionToken,account:rec?.account??null,created:rec?.created===!0}}}}var MembershipHttpError,init_client3=__esm({"src/services/membership/client.ts"(){init_config();__name(asRecord2,"asRecord");__name(extractErrorMessage,"extractErrorMessage");MembershipHttpError=class extends Error{static{__name(this,"MembershipHttpError")}status;code;body;constructor(input){super(input.message),this.name="MembershipHttpError",this.status=input.status,this.code=input.code,this.body=input.body}};__name(parseJson,"parseJson");__name(createMembershipClient,"createMembershipClient")}});var officialSchemesApi_exports={};__export(officialSchemesApi_exports,{clearOfficialSchemesCache:()=>clearOfficialSchemesCache,fetchOfficialSchemesFromApi:()=>fetchOfficialSchemesFromApi,parseOfficialSchemesResponse:()=>parseOfficialSchemesResponse,peekOfficialSchemesCache:()=>peekOfficialSchemesCache,warmOfficialSchemesCache:()=>warmOfficialSchemesCache});function asRecord3(v){return v&&typeof v=="object"&&!Array.isArray(v)?v:null}function normalizeRoleMap(raw){let r2=asRecord3(raw);if(!r2)return null;let primary=String(r2.primary||"").trim(),scout=String(r2.scout||r2.light||"").trim(),plan=String(r2.plan||"").trim(),review=String(r2.review||"").trim(),subagent=String(r2.subagent||r2.agent||scout||"").trim();if(!primary||!scout||!plan||!review||!subagent)return null;for(let id of[primary,scout,plan,review,subagent]){let s2=id.toLowerCase();if(s2==="auto"||s2==="clavue"||s2.startsWith("clavue-")){if(s2.startsWith("clavue-hand"))return null;continue}return null}return{primary,scout,plan,review,subagent}}function normalizeLabel(raw,id){let r2=asRecord3(raw);return{zh:String(r2?.zh||id).slice(0,40),en:String(r2?.en||id).slice(0,40),ja:String(r2?.ja||id).slice(0,40)}}function normalizeHint(raw){let r2=asRecord3(raw);return{zh:String(r2?.zh||"").slice(0,120),en:String(r2?.en||"").slice(0,120),ja:String(r2?.ja||"").slice(0,120)}}function parseOfficialSchemesResponse(payload){let root2=asRecord3(payload);if(!root2)return null;let list=Array.isArray(root2.data)?root2.data:Array.isArray(root2.schemes)?root2.schemes:null;if(!list||list.length===0)return null;let schemes=[],seen=new Set;for(let item of list){let rec=asRecord3(item);if(!rec)continue;let id=String(rec.id||"").trim().toLowerCase();if(!id||seen.has(id))continue;let roles=normalizeRoleMap(rec.roles);if(!roles)continue;seen.add(id);let archiveRaw=String(rec.archive||"").trim(),lightHand=rec.lightHandEnabled===!0||rec.light_hand===!0||rec.lightHand===!0||String(rec.lightHandEnabled||"").toLowerCase()==="true";schemes.push({id,label:normalizeLabel(rec.label,id),hint:normalizeHint(rec.hint),roles,archive:archiveRaw||void 0,lightHandEnabled:lightHand||void 0,track:"official_cloud"})}if(schemes.length===0)return null;let defaultSchemeId=String(root2.defaultSchemeId||"cloud_auto").trim().toLowerCase();return schemes.some(s2=>s2.id===defaultSchemeId)||(defaultSchemeId=schemes[0].id),{defaultSchemeId,schemes,updatedAt:typeof root2.updatedAt=="string"?root2.updatedAt:null,source:"remote",fetchedAt:Date.now()}}async function fetchOfficialSchemesFromApi(options){let now2=Date.now();if(!options?.force&&memoryCache&&now2-memoryCache.fetchedAt<CACHE_TTL_MS)return{...memoryCache,source:"cache"};if(inflight&&!options?.force)return inflight;let run=(async()=>{let url3=membershipAuthUrl("/api/membership/v1/schemes"),headers={Accept:"application/json"};try{let token=getMembershipSessionToken();token&&(headers.Authorization=`Bearer ${token}`)}catch{}let timeoutMs=options?.timeoutMs??8e3,fetchImpl=options?.fetchImpl??globalThis.fetch.bind(globalThis),controller=new AbortController,timer2=setTimeout(()=>controller.abort(),timeoutMs);try{let res=await fetchImpl(url3,{method:"GET",headers,signal:controller.signal}),text=await res.text().catch(()=>""),json2=null;try{json2=text?JSON.parse(text):null}catch{json2=null}if(!res.ok)return null;let parsed=parseOfficialSchemesResponse(json2);return parsed?(memoryCache=parsed,parsed):null}catch{return null}finally{clearTimeout(timer2)}})(),wrapped=run.then(r2=>(inflight===wrapped&&(inflight=null),r2));inflight=wrapped;let result2=await run;return inflight===wrapped&&(inflight=null),result2}function peekOfficialSchemesCache(){return memoryCache}function clearOfficialSchemesCache(){memoryCache=null}function warmOfficialSchemesCache(){fetchOfficialSchemesFromApi().catch(()=>{})}var CACHE_TTL_MS,memoryCache,inflight,init_officialSchemesApi=__esm({"src/services/membership/officialSchemesApi.ts"(){init_config();init_sessionStore();CACHE_TTL_MS=6e4,memoryCache=null,inflight=null;__name(asRecord3,"asRecord");__name(normalizeRoleMap,"normalizeRoleMap");__name(normalizeLabel,"normalizeLabel");__name(normalizeHint,"normalizeHint");__name(parseOfficialSchemesResponse,"parseOfficialSchemesResponse");__name(fetchOfficialSchemesFromApi,"fetchOfficialSchemesFromApi");__name(peekOfficialSchemesCache,"peekOfficialSchemesCache");__name(clearOfficialSchemesCache,"clearOfficialSchemesCache");__name(warmOfficialSchemesCache,"warmOfficialSchemesCache")}});var sessionStore_exports={};__export(sessionStore_exports,{clearMembershipSession:()=>clearMembershipSession,getMembershipLocalSession:()=>getMembershipLocalSession,getMembershipSessionToken:()=>getMembershipSessionToken,isMembershipCloudProfileActive:()=>isMembershipCloudProfileActive,patchMembershipLocalMeta:()=>patchMembershipLocalMeta,refreshMembershipLocalMetaFromServer:()=>refreshMembershipLocalMetaFromServer,saveMembershipSession:()=>saveMembershipSession,shouldAutoActivateCloudOnLogin:()=>shouldAutoActivateCloudOnLogin});function shouldAutoActivateCloudOnLogin(){try{let current=getResolvedCurrentProviderProfile();if(!current||isClavueCloudMembershipBaseUrl(current.baseUrl))return!0;let cred=current.credential?.trim();return!!(!cred||isPlaceholderProviderCredential(cred)||cred==="logged-out"||!current.baseUrl?.trim())}catch{return!0}}function readMeta(){let raw=getGlobalConfig().clavueMembership;return raw&&typeof raw=="object"?{...raw}:{}}function writeMeta(meta){saveGlobalConfig(current=>{if(!meta||!meta.userId){let{clavueMembership:_drop,...rest2}=current;return rest2}return{...current,clavueMembership:meta}})}function getMembershipSessionToken(){let token=getProviderProfiles().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID)?.credential?.trim();return!token||token==="logged-out"?null:token}function getMembershipLocalSession(){let token=getMembershipSessionToken();if(!token)return null;let meta=readMeta();return{sessionToken:token,userId:meta.userId||"unknown",email:meta.email??null,name:meta.name??null,planId:meta.planId,loggedInAt:meta.loggedInAt||new Date().toISOString(),apiBaseUrl:meta.apiBaseUrl||MEMBERSHIP_DEFAULT_API_BASE,client:meta.client||MEMBERSHIP_CLIENT_ID}}function saveMembershipSession(input){let token=input.sessionToken.trim();if(!token)throw new Error("Membership session token is required");let now2=Date.now(),apiBaseUrl=MEMBERSHIP_OPENAI_BASE_URL.replace(/\/+$/,""),existing=getProviderProfiles().find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID),profile={id:MEMBERSHIP_CLOUD_PROFILE_ID,name:MEMBERSHIP_CLOUD_PROFILE_NAME,providerId:"custom",modelMode:"openai_native",baseUrl:apiBaseUrl,authType:"auth_token",credential:token,apiDialectMode:"openai_responses",modelRouting:buildOfficialAutoModelRouting(),provenance:{kind:"manual"},createdAt:existing?.createdAt??now2,updatedAt:now2},activate=input.activateCloudProfile!==void 0?input.activateCloudProfile:shouldAutoActivateCloudOnLogin(),saved=saveProviderProfile(profile,{activate});activate&&activateProviderProfile(saved.id),writeMeta({userId:input.user.id,email:input.user.email??null,name:input.user.name??null,planId:input.user.planId,loggedInAt:new Date().toISOString(),apiBaseUrl,client:input.client||MEMBERSHIP_CLIENT_ID});try{let{warmOfficialSchemesCache:warmOfficialSchemesCache2}=(init_officialSchemesApi(),__toCommonJS(officialSchemesApi_exports));warmOfficialSchemesCache2?.()}catch{}try{let{scheduleProviderCloudSync:scheduleProviderCloudSync2}=(init_providerCloudSync(),__toCommonJS(providerCloudSync_exports));scheduleProviderCloudSync2?.("account-login")}catch{}return saved}function clearMembershipSession(options){writeMeta(null);let profiles=getProviderProfiles();if(!profiles.find(p=>p.id===MEMBERSHIP_CLOUD_PROFILE_ID))return;if(getResolvedCurrentProviderProfile()?.id===MEMBERSHIP_CLOUD_PROFILE_ID){let other=profiles.find(p=>p.id!==MEMBERSHIP_CLOUD_PROFILE_ID);if(other)try{activateProviderProfile(other.id)}catch{}}if(options?.removeCloudProfile!==!1)try{deleteProviderProfile(MEMBERSHIP_CLOUD_PROFILE_ID)}catch{}}function isMembershipCloudProfileActive(){let current=getResolvedCurrentProviderProfile();return isClavueCloudMembershipBaseUrl(current?.baseUrl)}function patchMembershipLocalMeta(patch){let cur=readMeta();!cur.userId&&!patch.userId||writeMeta({...cur,...patch,userId:String(patch.userId||cur.userId||"").trim()||cur.userId})}async function refreshMembershipLocalMetaFromServer(){let token=getMembershipSessionToken();if(!token)return null;let before2=readMeta();try{let me=await createMembershipClient().me(token),user=me.user,plan=me.plan,planId=String(user?.planId||plan?.id||before2.planId||"free").trim(),email3=typeof user?.email=="string"&&user.email||before2.email||null,name=typeof user?.displayName=="string"&&user.displayName||typeof user?.name=="string"&&user.name||before2.name||null,userId=String(user?.id||before2.userId||"").trim(),changed=planId!==String(before2.planId||"")||email3!==(before2.email??null)||name!==(before2.name??null);return userId&&patchMembershipLocalMeta({userId,email:email3,name,planId,loggedInAt:before2.loggedInAt||new Date().toISOString(),apiBaseUrl:before2.apiBaseUrl,client:before2.client}),{planId,email:String(email3||""),changed}}catch{return null}}var init_sessionStore=__esm({"src/services/membership/sessionStore.ts"(){init_config3();init_providerCredentials();init_providerProfiles();init_config();init_client3();init_officialAutoCombo();__name(shouldAutoActivateCloudOnLogin,"shouldAutoActivateCloudOnLogin");__name(readMeta,"readMeta");__name(writeMeta,"writeMeta");__name(getMembershipSessionToken,"getMembershipSessionToken");__name(getMembershipLocalSession,"getMembershipLocalSession");__name(saveMembershipSession,"saveMembershipSession");__name(clearMembershipSession,"clearMembershipSession");__name(isMembershipCloudProfileActive,"isMembershipCloudProfileActive");__name(patchMembershipLocalMeta,"patchMembershipLocalMeta");__name(refreshMembershipLocalMetaFromServer,"refreshMembershipLocalMetaFromServer")}});import{mkdirSync as mkdirSync6,readFileSync as readFileSync9,writeFileSync as writeFileSync7}from"fs";import{join as join19}from"path";function getRouterOrigin(env5=process.env){return(env5.CLAVUE_ROUTER_ORIGIN?.trim()||readRouterSession()?.origin||DEFAULT_ROUTER_ORIGIN).replace(/\/+$/,"")}function routerSessionPath(){return join19(getClavueConfigHomeDir(),"router.json")}function readRouterSession(){try{let raw=JSON.parse(readFileSync9(routerSessionPath(),"utf8")),origin2=typeof raw.origin=="string"?raw.origin.trim():"",token=typeof raw.token=="string"?raw.token.trim():"";return!origin2||!token?null:{origin:origin2.replace(/\/+$/,""),token,savedAt:typeof raw.savedAt=="number"?raw.savedAt:0}}catch{return null}}function peekRouterAuth(env5=process.env){try{let membership=getMembershipSessionToken()?.trim()||"";if(membership)return{token:membership,source:"membership"}}catch{}let envToken=env5.CLAVUE_ROUTER_TOKEN?.trim()||"";return envToken?{token:envToken,source:"env"}:{token:"",source:"none"}}function resolveRouterToken(env5=process.env){return peekRouterAuth(env5).token}async function pushOperatorPackToRouter(pack,options={}){let token=options.token??resolveRouterToken();return token?routerRequest("PUT","/v1/pack",{token,origin:options.origin,body:pack,fetchImpl:options.fetchImpl,writeOrigin:"client"}):{ok:!1,code:"not_logged_in",message:"Not signed in. Run /account login \u2014 same account as api.clavue.com / router.clavue.com."}}async function pullOperatorPackFromRouter(options={}){let token=options.token??resolveRouterToken();return token?routerRequest("GET","/v1/pack",{token,origin:options.origin,fetchImpl:options.fetchImpl}):{ok:!1,code:"not_logged_in",message:"Not signed in. Run /account login \u2014 same account as api.clavue.com / router.clavue.com."}}async function pushTerminalLocalPresence(snapshot,options={}){let token=options.token??resolveRouterToken();return token?routerRequest("PUT","/v1/local-presence",{token,origin:options.origin,body:snapshot,fetchImpl:options.fetchImpl,writeOrigin:"client"}):{ok:!1,code:"not_logged_in",message:"Not signed in. Run /account login \u2014 same account as api.clavue.com / router.clavue.com."}}function terminalQuery(path10){let term=getLocalTerminal(),join24=path10.includes("?")?"&":"?";return`${path10}${join24}terminal=${encodeURIComponent(term.id)}`}function terminalHeaders(writeOrigin){let term=getLocalTerminal();return{"x-clavue-terminal":term.id,"x-clavue-terminal-label":term.label,"x-clavue-terminal-host":term.hostname,...writeOrigin?{"x-clavue-origin":writeOrigin}:{}}}async function routerRequest(method2,path10,options){let origin2=(options.origin||getRouterOrigin()).replace(/\/+$/,""),fetchImpl=options.fetchImpl??globalThis.fetch.bind(globalThis),url3=`${origin2}${terminalQuery(path10)}`;try{let response=await fetchImpl(url3,{method:method2,headers:{accept:"application/json","content-type":"application/json",authorization:`Bearer ${options.token}`,...terminalHeaders(options.writeOrigin)},body:options.body===void 0?void 0:JSON.stringify(options.body)}),text=await response.text(),parsed=null;try{parsed=text?JSON.parse(text):null}catch{parsed={raw:text.slice(0,200)}}if(!response.ok){let rec2=parsed&&typeof parsed=="object"?parsed:{};return{ok:!1,code:"http_error",message:typeof rec2.message=="string"?rec2.message:`Router ${method2} ${path10} failed (${response.status})`}}let rec=parsed&&typeof parsed=="object"?parsed:{},pack=rec.pack?parseOperatorConfigPack(rec.pack):rec.schema?parseOperatorConfigPack(rec):void 0;return{ok:!0,code:"ok",message:typeof rec.message=="string"?rec.message:"ok",pack,terminals:pack?.terminals,instruction:pack?.instruction,presence:rec.presence}}catch(error40){return{ok:!1,code:"http_error",message:error40 instanceof Error?error40.message:String(error40)}}}var DEFAULT_ROUTER_ORIGIN,init_clavueRouter=__esm({"src/utils/clavueRouter.ts"(){init_envUtils();init_operatorConfigPack();init_providerTerminal();init_sessionStore();DEFAULT_ROUTER_ORIGIN="https://router.clavue.com";__name(getRouterOrigin,"getRouterOrigin");__name(routerSessionPath,"routerSessionPath");__name(readRouterSession,"readRouterSession");__name(peekRouterAuth,"peekRouterAuth");__name(resolveRouterToken,"resolveRouterToken");__name(pushOperatorPackToRouter,"pushOperatorPackToRouter");__name(pullOperatorPackFromRouter,"pullOperatorPackFromRouter");__name(pushTerminalLocalPresence,"pushTerminalLocalPresence");__name(terminalQuery,"terminalQuery");__name(terminalHeaders,"terminalHeaders");__name(routerRequest,"routerRequest")}});function canonicalLocalOrigin(baseUrl){let trimmed=String(baseUrl??"").trim();if(!trimmed||!isLocalModelBaseUrl(trimmed))return null;let withScheme=/:\/\//.test(trimmed)?trimmed:`http://${trimmed}`;try{let url3=new URL(normalizeProviderBaseUrl(withScheme)||withScheme);if(url3.protocol!=="http:"&&url3.protocol!=="https:")return null;let host=url3.hostname.toLowerCase().replace(/^\[|\]$/g,"");if(!host)return null;let port=url3.port||(url3.protocol==="https:"?"443":"80");return`${url3.protocol}//${host}:${port}`}catch{return null}}function parseLocalModelInventory(raw){let trimmed=String(raw??"").trim();if(!trimmed)return[];let parsed;try{parsed=JSON.parse(trimmed)}catch{return[]}let names=new Set,add2=__name(value=>{let id=String(value??"").trim().slice(0,80);id&&names.add(id)},"add"),takeRecord=__name(item=>{if(typeof item=="string"){add2(item);return}if(!item||typeof item!="object")return;let rec=item;add2(rec.id??rec.name??rec.model)},"takeRecord");if(Array.isArray(parsed))for(let item of parsed)takeRecord(item);else if(parsed&&typeof parsed=="object"){let rec=parsed;if(Array.isArray(rec.data))for(let item of rec.data)takeRecord(item);else if(Array.isArray(rec.models))for(let item of rec.models)takeRecord(item)}return[...names].slice(0,LOCAL_PRESENCE_MAX_MODELS)}function collectLocalModelCandidates(input={}){let byOrigin=new Map,upsert=__name((baseUrl,extra)=>{let origin2=canonicalLocalOrigin(String(baseUrl??""));if(!origin2)return;let prev=byOrigin.get(origin2);if(prev&&prev.source==="hybrid"&&extra.source!=="hybrid"){!prev.configuredModel&&extra.configuredModel&&(prev.configuredModel=extra.configuredModel),!prev.credential&&extra.credential&&(prev.credential=extra.credential);return}byOrigin.set(origin2,{origin:origin2,...extra})},"upsert"),local=input.hybrid?.local;local?.baseUrl&&upsert(local.baseUrl,{source:"hybrid",configuredModel:local.model?.trim()||void 0,credential:local.credential?.trim()||void 0});for(let profile of input.profiles??[]){let id=String(profile.id??"").trim();if(!id||id===MEMBERSHIP_CLOUD_PROFILE_ID)continue;let name=profile.name?.trim()||id,primary=profile.modelRouting?.primaryModel?.trim();upsert(profile.baseUrl,{source:"profile",profileId:id,profileName:name,configuredModel:primary||void 0,credential:profile.credential?.trim()||void 0});for(let ep of profile.fusion?.endpoints??[])upsert(ep.baseUrl,{source:"profile",profileId:id,profileName:name,configuredModel:ep.modelPrefixes?.[0]?.trim()||primary||void 0,credential:ep.credential?.trim()||profile.credential?.trim()||void 0})}return[...byOrigin.values()].slice(0,LOCAL_PRESENCE_MAX_HOPS)}function collectLocalModelCandidatesFromDisk(){let hybrid=null;try{hybrid=exportActiveHybridRecipe(!0)}catch{hybrid=null}let profiles=getProviderProfiles().filter(profile=>profile.id!==MEMBERSHIP_CLOUD_PROFILE_ID).map(profile=>({id:profile.id,name:profile.name,baseUrl:profile.baseUrl,credential:profile.credential,fusionConfigId:profile.fusionConfigId,fusion:profile.fusionConfigId?getFusionConfigById(profile.fusionConfigId):null,modelRouting:profile.modelRouting}));return collectLocalModelCandidates({hybrid,profiles})}function snapshotWithoutSecrets(snapshot){return{schema:LOCAL_MODEL_PRESENCE_SCHEMA,probedAt:snapshot.probedAt,hops:snapshot.hops.map(hop=>({origin:hop.origin,ready:hop.ready,models:hop.models.slice(0,LOCAL_PRESENCE_MAX_MODELS),...hop.configuredModel?{configuredModel:hop.configuredModel}:{},source:hop.source,...hop.profileId?{profileId:hop.profileId}:{},probedAt:hop.probedAt,ms:hop.ms,detail:redactPresenceDetail(hop.detail)}))}}async function probeLocalModelPresence(options={}){let now2=options.now??Date.now(),candidates=options.candidates??collectLocalModelCandidatesFromDisk(),hops=await Promise.all(candidates.map(candidate=>probeOneLocalHop(candidate,{fetchImpl:options.fetchImpl,timeoutMs:options.timeoutMs??LOCAL_PRESENCE_PROBE_TIMEOUT_MS,now:now2}))),snapshot={schema:LOCAL_MODEL_PRESENCE_SCHEMA,probedAt:now2,hops};return lastSnapshot=snapshot,snapshot}async function reportLocalModelPresence(options={}){let now2=Date.now();if(!options.force&&lastReportAt>0&&now2-lastReportAt<LOCAL_PRESENCE_REPORT_MIN_INTERVAL_MS)return{ok:!0,pushed:!1,skipped:!0,snapshot:lastSnapshot??emptyPresenceSnapshot(now2),message:"Presence report throttled."};if(reporting&&!options.force)return{ok:!0,pushed:!1,skipped:!0,snapshot:lastSnapshot??emptyPresenceSnapshot(now2),message:"Presence report already in flight."};reporting=!0;try{let snapshot=snapshotWithoutSecrets(await probeLocalModelPresence({fetchImpl:options.probeFetchImpl,timeoutMs:options.timeoutMs,now:now2}));lastSnapshot=snapshot;let pushed=await pushTerminalLocalPresence(snapshot,{token:options.token,origin:options.origin,fetchImpl:options.fetchImpl});return pushed.ok?(lastReportAt=Date.now(),{ok:!0,pushed:!0,skipped:!1,snapshot,message:formatLocalPresenceSummary(snapshot)}):{ok:!1,pushed:!1,skipped:!1,snapshot,message:pushed.message}}finally{reporting=!1}}function formatLocalPresenceSummary(snapshot){let ready=snapshot.hops.filter(hop=>hop.ready).length,names=uniqueModelNames(snapshot.hops);return snapshot.hops.length?names.length?`\u672C\u673A ${names.slice(0,6).join(", ")} \xB7 ${ready}/${snapshot.hops.length} \u5728\u7EBF`:`\u672C\u673A ${ready}/${snapshot.hops.length} \u4E2A\u7F51\u5173\u5728\u7EBF`:"\u672C\u673A\u65E0\u672C\u5730\u7F51\u5173\uFF08\u5DF2\u4E0A\u62A5\uFF09"}function emptyPresenceSnapshot(now2){return{schema:LOCAL_MODEL_PRESENCE_SCHEMA,probedAt:now2,hops:[]}}async function probeOneLocalHop(candidate,options){let started=Date.now(),fetchImpl=options.fetchImpl??globalThis.fetch.bind(globalThis),controller=new AbortController,timer2=setTimeout(()=>controller.abort(),options.timeoutMs),paths2=["/v1/models","/api/tags","/health"],detail="unreachable",models=[],ready=!1;try{for(let path10 of paths2){let url3=`${candidate.origin}${path10}`;try{let headers={accept:"application/json"};candidate.credential&&(headers.authorization=`Bearer ${candidate.credential}`);let response=await fetchImpl(url3,{method:"GET",headers,signal:controller.signal,redirect:"manual"}),raw=await response.text().catch(()=>"");if(response.status>=300&&response.status<400){detail=redactPresenceDetail(`GET ${path10} redirect HTTP ${response.status}`);continue}let listed=parseLocalModelInventory(raw);if(listed.length){models=listed,ready=response.status>=200&&response.status<300,detail=`GET ${path10} HTTP ${response.status} \xB7 ${listed.length} models`;break}if(response.status>=200&&response.status<300){if(ready=!0,candidate.configuredModel&&models.length===0&&(models=[candidate.configuredModel]),detail=`GET ${path10} HTTP ${response.status}`,path10==="/health")break;continue}detail=redactPresenceDetail(`GET ${path10} HTTP ${response.status}${raw?` ${raw.replace(/\s+/g," ").slice(0,80)}`:""}`)}catch(error40){let message=error40 instanceof Error?error40.message:String(error40);detail=/abort/i.test(message)?`Timed out after ${options.timeoutMs}ms`:redactPresenceDetail(message)}}}finally{clearTimeout(timer2)}return{origin:candidate.origin,ready,models,...candidate.configuredModel?{configuredModel:candidate.configuredModel}:{},source:candidate.source,...candidate.profileId?{profileId:candidate.profileId}:{},probedAt:options.now,ms:Date.now()-started,detail}}function uniqueModelNames(hops){let names=[];for(let hop of hops){for(let model of hop.models)names.includes(model)||names.push(model);hop.configuredModel&&!names.includes(hop.configuredModel)&&names.push(hop.configuredModel)}return names}function redactPresenceDetail(value){return value.replace(/Bearer\s+\S+/gi,"Bearer ***").replace(/\bsk-[A-Za-z0-9_-]+/g,"sk-***").replace(/\s+/g," ").trim().slice(0,160)}var LOCAL_MODEL_PRESENCE_SCHEMA,LOCAL_PRESENCE_STALE_MS,LOCAL_PRESENCE_PROBE_TIMEOUT_MS,LOCAL_PRESENCE_MAX_HOPS,LOCAL_PRESENCE_MAX_MODELS,LOCAL_PRESENCE_REPORT_MIN_INTERVAL_MS,lastReportAt,lastSnapshot,reporting,init_localModelPresence=__esm({"src/utils/localModelPresence.ts"(){init_localModelRequestPolicy();init_config();init_clavueRouter();init_providerHybridRecipe();init_providerProfiles();init_providerRuntimeCore();LOCAL_MODEL_PRESENCE_SCHEMA="clavue_local_presence_v1",LOCAL_PRESENCE_STALE_MS=900*1e3,LOCAL_PRESENCE_PROBE_TIMEOUT_MS=2500,LOCAL_PRESENCE_MAX_HOPS=6,LOCAL_PRESENCE_MAX_MODELS=24,LOCAL_PRESENCE_REPORT_MIN_INTERVAL_MS=45e3,lastReportAt=0,lastSnapshot=null,reporting=!1;__name(canonicalLocalOrigin,"canonicalLocalOrigin");__name(parseLocalModelInventory,"parseLocalModelInventory");__name(collectLocalModelCandidates,"collectLocalModelCandidates");__name(collectLocalModelCandidatesFromDisk,"collectLocalModelCandidatesFromDisk");__name(snapshotWithoutSecrets,"snapshotWithoutSecrets");__name(probeLocalModelPresence,"probeLocalModelPresence");__name(reportLocalModelPresence,"reportLocalModelPresence");__name(formatLocalPresenceSummary,"formatLocalPresenceSummary");__name(emptyPresenceSnapshot,"emptyPresenceSnapshot");__name(probeOneLocalHop,"probeOneLocalHop");__name(uniqueModelNames,"uniqueModelNames");__name(redactPresenceDetail,"redactPresenceDetail")}});var providerCloudSync_exports={};__export(providerCloudSync_exports,{beginProviderCloudApply:()=>beginProviderCloudApply,confirmProviderCloudPending:()=>confirmProviderCloudPending,endProviderCloudApply:()=>endProviderCloudApply,formatProviderCloudPendingNotice:()=>formatProviderCloudPendingNotice,getProviderCloudPending:()=>getProviderCloudPending,getProviderCloudPendingNotice:()=>getProviderCloudPendingNotice,isProviderCloudApplying:()=>isProviderCloudApplying,maybeSyncProviderCloudOnBoot:()=>maybeSyncProviderCloudOnBoot,reconcileProviderCloud:()=>reconcileProviderCloud,scheduleProviderCloudSync:()=>scheduleProviderCloudSync,skipProviderCloudPending:()=>skipProviderCloudPending,subscribeProviderCloudNotice:()=>subscribeProviderCloudNotice});import{mkdirSync as mkdirSync7,readFileSync as readFileSync10,writeFileSync as writeFileSync8}from"fs";import{join as join20}from"path";function beginProviderCloudApply(){applying+=1}function endProviderCloudApply(){applying=Math.max(0,applying-1)}function isProviderCloudApplying(){return applying>0}function subscribeProviderCloudNotice(fn){return listeners.add(fn),()=>{listeners.delete(fn)}}function emitNotice(notice){for(let fn of listeners)try{fn(notice)}catch{}}function statePath(){return join20(getClavueConfigHomeDir(),"provider-cloud-sync.json")}function readState(){try{let raw=JSON.parse(readFileSync10(statePath(),"utf8"));return{contentHash:String(raw.contentHash||""),updatedAt:Number(raw.updatedAt)||0,appliedRevision:Number(raw.appliedRevision)||0,pending:raw.pending&&typeof raw.pending=="object"?raw.pending:void 0}}catch{return{contentHash:"",updatedAt:0,appliedRevision:0}}}function writeState(state){mkdirSync7(getClavueConfigHomeDir(),{recursive:!0}),writeFileSync8(statePath(),`${JSON.stringify(state,null,2)}
194
+ `,{encoding:"utf8",mode:384})}function stamp(pack){return{...pack,updatedAt:pack.updatedAt>0?pack.updatedAt:Date.now()}}function pendingFromCloud(cloud,hash2){let term=getLocalTerminal(),instruction=cloud.instruction;return{revision:instruction?.revision||Math.max(1,cloud.updatedAt),hash:hash2,summary:summarizeOperatorPack(cloud),action:instruction?.action==="switch"?"switch":"apply",targetProfileId:instruction?.targetProfileId||cloud.activeByokId,terminalId:cloud.terminal?.id||term.id,at:instruction?.at||cloud.updatedAt||Date.now()}}function formatProviderCloudPendingNotice(pending=readState().pending){return pending?`\u4E91\u7AEF\u66F4\u65B0\u4E86\u672C\u7EC8\u7AEF\u914D\u7F6E\uFF0C\u5C06${pending.action==="switch"?"\u5207\u6362\u5230":"\u8F7D\u5165"}\u300C${pending.summary}\u300D\u3002\u8F93\u5165 /provider apply \u786E\u8BA4\u8F7D\u5165\u5E76\u5207\u6362\uFF0C\u6216 /provider apply skip \u5FFD\u7565\u3002`:null}function getProviderCloudPending(){return readState().pending}function getProviderCloudPendingNotice(){return formatProviderCloudPendingNotice()}function recordPending(cloud,hash2,state){let pending=pendingFromCloud(cloud,hash2);if(state.pending&&state.pending.revision===pending.revision&&state.pending.hash===pending.hash)return{ok:!0,action:"pending",message:formatProviderCloudPendingNotice(pending)||"pending",pending};writeState({...state,pending});let message=formatProviderCloudPendingNotice(pending)||"pending";return emitNotice(message),{ok:!0,action:"pending",message,pending}}async function confirmProviderCloudPending(options={}){let token=resolveRouterToken();if(!token)return{ok:!0,action:"skipped_no_login",message:"Not signed in \u2014 /account login to sync provider config."};let pulled=await pullOperatorPackFromRouter({token,fetchImpl:options.fetchImpl});if(!pulled.ok||!pulled.pack)return{ok:!1,action:"error",message:pulled.message||"Cloud pack missing."};let cloud=pulled.pack;beginProviderCloudApply();try{let applied=applyOperatorConfigPack(cloud,{activate:"force"});return writeState({contentHash:hashOperatorPack(cloud),updatedAt:cloud.updatedAt,appliedRevision:cloud.instruction?.revision||0}),emitNotice(null),{ok:applied.ok||applied.errors.length===0,action:"pulled",message:[`\u5DF2\u8F7D\u5165\u5E76\u5207\u6362\uFF08${applied.applied.join(", ")||"ok"}\uFF09`,summarizeOperatorPack(cloud)].join(" \xB7 ")}}finally{endProviderCloudApply()}}function skipProviderCloudPending(){let state=readState();return state.pending?(writeState({...state,appliedRevision:Math.max(state.appliedRevision,state.pending.revision),contentHash:state.pending.hash||state.contentHash,pending:void 0}),emitNotice(null),{ok:!0,action:"in_sync",message:"\u5DF2\u5FFD\u7565\u672C\u6B21\u4E91\u7AEF\u66F4\u65B0\u3002"}):{ok:!0,action:"in_sync",message:"\u6CA1\u6709\u5F85\u786E\u8BA4\u7684\u4E91\u7AEF\u66F4\u65B0\u3002"}}async function reconcileProviderCloud(options={}){let result2=await reconcileProviderCloudOnce(options);return maybeScheduleLocalPresenceReport(result2,options),result2}function maybeScheduleLocalPresenceReport(result2,options){result2.ok&&result2.action!=="skipped_no_login"&&(options.fetchImpl||reportLocalModelPresence({force:options.reason==="manual"||options.reason==="boot"}).catch(()=>{}))}async function reconcileProviderCloudOnce(options={}){if(applying>0)return{ok:!0,action:"in_sync",message:"apply in flight"};let token=resolveRouterToken();if(!token)return{ok:!0,action:"skipped_no_login",message:"Not signed in \u2014 /account login to sync provider config."};ensureDefaultByokIfUnset();let local=stamp(snapshotOperatorConfigPack()),localHash=hashOperatorPack(local),localHas=operatorPackHasContent(local),pulled=await pullOperatorPackFromRouter({token,fetchImpl:options.fetchImpl});if(!pulled.ok&&pulled.code==="not_logged_in")return{ok:!0,action:"skipped_no_login",message:pulled.message};let cloud=pulled.pack,cloudHash=cloud?hashOperatorPack(cloud):"",cloudHas=!!(cloud&&operatorPackHasContent(cloud)),state=readState(),cloudRevision=cloud?.instruction?.revision||0,unseenInstruction=!!cloud&&cloudRevision>0&&cloudRevision>state.appliedRevision&&cloudHash!==localHash,emptyLocalOffer=!!cloud&&cloudHas&&!localHas&&state.appliedRevision===0&&!state.contentHash;if(cloud&&localHash===cloudHash)return writeState({contentHash:localHash,updatedAt:local.updatedAt,appliedRevision:Math.max(state.appliedRevision,cloudRevision)}),state.pending&&emitNotice(null),{ok:!0,action:"in_sync",message:"Local and cloud match."};if(!cloudHas&&!localHas)return{ok:!0,action:"skipped_empty",message:"Nothing to sync."};let localDirty=localHash!==state.contentHash,cloudDirty=cloudHash!==state.contentHash;return cloud&&cloudHas&&(unseenInstruction||emptyLocalOffer)||cloud&&cloudHas&&!localDirty&&cloudDirty||cloud&&localDirty&&cloudDirty&&(cloud.updatedAt??0)>local.updatedAt?recordPending(cloud,cloudHash,state):!cloudHas&&localHas||localDirty&&!cloudDirty&&localHas||localDirty&&cloudDirty&&local.updatedAt>=(cloud?.updatedAt??0)&&localHas?pushLocal(local,token,options.fetchImpl):state.pending?{ok:!0,action:"pending",message:formatProviderCloudPendingNotice(state.pending)||"pending",pending:state.pending}:{ok:!0,action:"in_sync",message:"No sync needed."}}async function pushLocal(local,token,fetchImpl){let toSend=stamp({...local,updatedAt:Date.now()}),pushed=await pushOperatorPackToRouter(toSend,{token,fetchImpl});if(!pushed.ok)return{ok:!1,action:"error",message:pushed.message};let state=readState();return writeState({contentHash:hashOperatorPack(toSend),updatedAt:toSend.updatedAt,appliedRevision:Math.max(state.appliedRevision,toSend.instruction?.revision||0),pending:void 0}),{ok:!0,action:"pushed",message:"Local \u2192 cloud."}}function scheduleProviderCloudSync(reason="save"){applying>0||resolveRouterToken()&&(timer&&clearTimeout(timer),timer=setTimeout(()=>{timer=null,reconcileProviderCloud({reason}).catch(()=>{})},400))}function maybeSyncProviderCloudOnBoot(){if(!booted){booted=!0;try{ensureDefaultByokIfUnset()}catch{}resolveRouterToken()&&(setTimeout(()=>{reconcileProviderCloud({reason:"boot"}).catch(()=>{})},1500),pollTimer||(pollTimer=setInterval(()=>{reconcileProviderCloud({reason:"poll"}).catch(()=>{})},6e4),pollTimer.unref?.()))}}var applying,timer,pollTimer,booted,listeners,init_providerCloudSync=__esm({"src/utils/providerCloudSync.ts"(){init_envUtils();init_operatorConfigPack();init_clavueRouter();init_providerTerminal();init_localModelPresence();applying=0,timer=null,pollTimer=null,booted=!1,listeners=new Set;__name(beginProviderCloudApply,"beginProviderCloudApply");__name(endProviderCloudApply,"endProviderCloudApply");__name(isProviderCloudApplying,"isProviderCloudApplying");__name(subscribeProviderCloudNotice,"subscribeProviderCloudNotice");__name(emitNotice,"emitNotice");__name(statePath,"statePath");__name(readState,"readState");__name(writeState,"writeState");__name(stamp,"stamp");__name(pendingFromCloud,"pendingFromCloud");__name(formatProviderCloudPendingNotice,"formatProviderCloudPendingNotice");__name(getProviderCloudPending,"getProviderCloudPending");__name(getProviderCloudPendingNotice,"getProviderCloudPendingNotice");__name(recordPending,"recordPending");__name(confirmProviderCloudPending,"confirmProviderCloudPending");__name(skipProviderCloudPending,"skipProviderCloudPending");__name(reconcileProviderCloud,"reconcileProviderCloud");__name(maybeScheduleLocalPresenceReport,"maybeScheduleLocalPresenceReport");__name(reconcileProviderCloudOnce,"reconcileProviderCloudOnce");__name(pushLocal,"pushLocal");__name(scheduleProviderCloudSync,"scheduleProviderCloudSync");__name(maybeSyncProviderCloudOnBoot,"maybeSyncProviderCloudOnBoot")}});var providerProfiles_exports={};__export(providerProfiles_exports,{CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL:()=>CLAVUE_PUBLIC_MODEL_CONTEXT_CATALOG_URL,COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED:()=>COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED,COMPATIBLE_EXTERNAL_PROVIDER_SOURCE_IDS:()=>COMPATIBLE_EXTERNAL_PROVIDER_SOURCE_IDS,CURRENT_PROVIDER_PROFILE_ID:()=>CURRENT_PROVIDER_PROFILE_ID,DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS:()=>DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS,PROVIDER_MODEL_CATALOG:()=>PROVIDER_MODEL_CATALOG,PROVIDER_MODEL_ROUTING_PRESETS:()=>PROVIDER_MODEL_ROUTING_PRESETS,PROVIDER_PRESETS:()=>PROVIDER_PRESETS,__resetOrphanActiveProviderHealForTests:()=>__resetOrphanActiveProviderHealForTests,activateCurrentProviderProfile:()=>activateCurrentProviderProfile,activateFusionConfig:()=>activateFusionConfig,activateProviderProfile:()=>activateProviderProfile,allocateUniqueProviderProfileName:()=>allocateUniqueProviderProfileName,applyProviderProfileToProcess:()=>applyProviderProfileToProcess,assertProviderProfileActivatable:()=>assertProviderProfileActivatable,attemptAutoRepairProviderProfile:()=>attemptAutoRepairProviderProfile,clearActiveProviderConfiguration:()=>clearActiveProviderConfiguration,cloneProviderProfile:()=>cloneProviderProfile,createCustomProviderModelRouting:()=>createCustomProviderModelRouting,createProviderDraftFromPreset:()=>createProviderDraftFromPreset,createProviderModelRoutingFromPreset:()=>createProviderModelRoutingFromPreset,deleteFusionConfig:()=>deleteFusionConfig,deleteProviderProfile:()=>deleteProviderProfile,describeProviderPrimaryUpstreamPath:()=>describeProviderPrimaryUpstreamPath,ensureProviderContextWindowRefreshSchedule:()=>ensureProviderContextWindowRefreshSchedule,extractAllModelContextWindows:()=>extractAllModelContextWindows,extractMaxInputTokensFromModelsPayload:()=>extractMaxInputTokensFromModelsPayload,findProviderProfiles:()=>findProviderProfiles,getActiveFusionConfig:()=>getActiveFusionConfig,getActiveFusionConfigId:()=>getActiveFusionConfigId,getActiveFusionEndpointForModel:()=>getActiveFusionEndpointForModel,getActiveProviderProfileId:()=>getActiveProviderProfileId,getCachedProviderCapabilitySnapshot:()=>getCachedProviderCapabilitySnapshot,getCredentialLabel:()=>getCredentialLabel,getCurrentProviderProfile:()=>getCurrentProviderProfile,getFusionConfigById:()=>getFusionConfigById,getFusionConfigs:()=>getFusionConfigs,getProviderCapabilitySnapshot:()=>getProviderCapabilitySnapshot,getProviderCapabilitySnapshotFreshness:()=>getProviderCapabilitySnapshotFreshness,getProviderContextWindowModels:()=>getProviderContextWindowModels,getProviderModelCatalogEntry:()=>getProviderModelCatalogEntry,getProviderModelMaxInputTokens:()=>getProviderModelMaxInputTokens,getProviderModelMaxInputTokensAsync:()=>getProviderModelMaxInputTokensAsync,getProviderModelMaxInputTokensSnapshotAge:()=>getProviderModelMaxInputTokensSnapshotAge,getProviderModelRoutingPreset:()=>getProviderModelRoutingPreset,getProviderModelSlotDefaults:()=>getProviderModelSlotDefaults,getProviderPreset:()=>getProviderPreset,getProviderProfileById:()=>getProviderProfileById,getProviderProfiles:()=>getProviderProfiles,getProviderSlotModelsFromRouting:()=>getProviderSlotModelsFromRouting,getResolvedCurrentProviderProfile:()=>getResolvedCurrentProviderProfile,getSavedActiveProviderProfile:()=>getSavedActiveProviderProfile,hasProviderCredentialConfigured:()=>hasProviderCredentialConfigured,healUserSettingsEnvToProfile:()=>healUserSettingsEnvToProfile,importCompatibleExternalProviderProfiles:()=>importCompatibleExternalProviderProfiles,inferProviderApiDialectMode:()=>inferProviderApiDialectMode,inferProviderPresetId:()=>inferProviderPresetId,inspectProviderModelRoute:()=>inspectProviderModelRoute,inspectProviderModelRoutes:()=>inspectProviderModelRoutes,isFusionModeActive:()=>isFusionModeActive,markProviderOnboardingComplete:()=>markProviderOnboardingComplete,maskCredential:()=>maskCredential,normalizeProviderCapabilitySnapshot:()=>normalizeProviderCapabilitySnapshot,normalizeProviderModelRouting:()=>normalizeProviderModelRouting,providerProfileToAgentEnv:()=>providerProfileToAgentEnv,refreshProviderModelContextWindow:()=>refreshProviderModelContextWindow,refreshProviderModelContextWindows:()=>refreshProviderModelContextWindows,repairProviderProfileRoutingForMode:()=>repairProviderProfileRoutingForMode,resolveCanonicalActiveProviderProfileId:()=>resolveCanonicalActiveProviderProfileId,resolveFusionEndpointForModel:()=>resolveFusionEndpointForModel,resolveHealedActiveProviderProfileId:()=>resolveHealedActiveProviderProfileId,saveFusionConfig:()=>saveFusionConfig,saveProviderProfile:()=>saveProviderProfile,validateProviderProfile:()=>validateProviderProfile});import{createHash as createHash3,randomUUID as randomUUID3}from"crypto";import{existsSync as existsSync4,readFileSync as readFileSync11,renameSync as renameSync4,unlinkSync as unlinkSync4,writeFileSync as writeFileSync9}from"fs";import{homedir as homedir5}from"os";import{join as join21,resolve as resolve7}from"path";function writeFileSyncAtomic(filePath,content){let tmpPath=filePath+"."+process.pid+"."+Date.now().toString(36)+"."+randomUUID3().slice(0,8)+".tmp";try{writeFileSync9(tmpPath,content,"utf8"),renameSync4(tmpPath,filePath)}catch(error40){try{unlinkSync4(tmpPath)}catch{}throw error40}}function normalizeProviderPanelSelection(value){if(!value||typeof value!="object")return;let raw=value,preset=raw.preset,strategy=raw.strategy,judgeMemberId=typeof raw.judgeMemberId=="string"?raw.judgeMemberId.trim():"";if(!(preset!=="budget"&&preset!=="balanced"&&preset!=="frontier"||strategy!=="first_to_finish"&&strategy!=="majority_vote"&&strategy!=="union"&&strategy!=="longest"&&strategy!=="best_score"&&strategy!=="judge_synthesis"||!judgeMemberId))return{preset,strategy,judgeMemberId}}function routeKeysForProviderValidationRoles(roles){let keys2=roles.flatMap(role=>{switch(role){case"primary":return["slot:primary","role:mainloop"];case"subagent":return["slot:subagent","slot:sonnet","role:fallback"];case"fast":return["slot:smallfast","slot:haiku","role:background"];case"plan":return["slot:plan","slot:opus","role:planner"]}});return[...new Set(keys2)]}function shouldAutoImportCompatibleExternalProviderProfiles(){return!1}function normalizeAnthropicBaseUrl(value){let trimmedValue=String(value??"").trim();return trimmedValue?trimmedValue.replace(/\/v1(?:\/messages)?\/?$/i,"").replace(/\/+$/,""):""}function stripTomlComment(line){let result2="",quote=null,escaped=!1;for(let char of line){if(quote){if(result2+=char,quote==='"'&&char==="\\"&&!escaped){escaped=!0;continue}char===quote&&!escaped&&(quote=null),escaped=!1;continue}if(char==='"'||char==="'"){quote=char,result2+=char;continue}if(char==="#")break;result2+=char}return result2.trim()}function parseTomlPathSegments(value){let segments=[],current="",quote=null;for(let char of value){if(quote){char===quote?quote=null:current+=char;continue}if(char==='"'||char==="'"){quote=char;continue}if(char==="."){let segment=current.trim();segment&&segments.push(segment),current="";continue}current+=char}let tail2=current.trim();return tail2&&segments.push(tail2),segments}function parseTomlStringValue(value){let trimmed=stripTomlComment(value);if(!trimmed)return"";if(trimmed.startsWith('"')&&trimmed.endsWith('"'))try{return JSON.parse(trimmed)}catch{return trimmed.slice(1,-1)}return trimmed.startsWith("'")&&trimmed.endsWith("'")?trimmed.slice(1,-1):trimmed}function getVerifiedCapabilitiesForModel(model){let normalizedModel=model.trim().toLowerCase();if(!normalizedModel)return[];let capabilities=VERIFIED_MODEL_CAPABILITIES.get(normalizedModel);return capabilities?[...capabilities]:[]}function getCapabilitiesFromProviderSnapshot(model,snapshot){if(!model.trim().toLowerCase())return[];let capabilities=new Set,verifiedCapabilities=getVerifiedCapabilitiesForModel(model);if(snapshot.responsesReasoningMedium){capabilities.add("effort"),capabilities.add("thinking");for(let capability of verifiedCapabilities)capability==="adaptive_thinking"&&capabilities.add(capability)}return snapshot.responsesReasoningXHigh&&capabilities.add("max_effort"),[...capabilities]}function serializeCapabilitiesForModel(profile,model){if(profile){let snapshot=getProviderCapabilitySnapshot(profile,model,{allowStale:!0});if(snapshot){let cachedCapabilities=getCapabilitiesFromProviderSnapshot(model,snapshot);return cachedCapabilities.length>0?cachedCapabilities.join(","):void 0}}let transportPreference=getModelTransportPreference(model);if(transportPreference==="openai_responses"||transportPreference==="openai_chat_completions")return;let capabilities=getVerifiedCapabilitiesForModel(model);return capabilities.length>0?capabilities.join(","):void 0}function normalizeAuthType(value){return value==="auth_token"?"auth_token":"api_key"}function getProviderSlotModelsFromRouting(routing){let values2=getProviderModeSlotValues(routing??{});return[values2.primaryModel,values2.haikuModel,values2.sonnetModel,values2.opusModel].map(model=>String(model??"").trim()).filter(Boolean)}function inferProviderApiDialectMode(modelMode,models){return modelMode==="anthropic_native"?"anthropic":modelMode==="openai_native"||models.some(model=>{let preference=getModelTransportPreference(model);return preference==="openai_responses"||preference==="openai_chat_completions"})?"openai_responses":"anthropic"}function describeProviderPrimaryUpstreamPath(profile){let primaryModel=String(profile.modelRouting.primaryModel??"").trim();if(!primaryModel)return"/v1/messages";let apiDialectMode=profile.apiDialectMode??inferProviderApiDialectMode(profile.modelMode,getProviderSlotModelsFromRouting(profile.modelRouting)),fusionEndpoint=getActiveFusionEndpointForModel(primaryModel,["slot:primary","role:mainloop"]),fusionEndpointDialect=fusionEndpoint?.apiDialectMode??null,decision=resolveCodingRoutePolicy({model:primaryModel,apiDialectMode,fusionEndpointDialect,runtimeProviderKind:"gateway"});return fusionEndpoint?.upstreamPathOverride||getUpstreamApiPathForTransport(primaryModel,decision.transport)}function normalizeProviderApiDialectMode(value,modelMode,modelRouting){return value==="anthropic"||value==="openai_responses"?value:inferProviderApiDialectMode(modelMode,getProviderSlotModelsFromRouting(modelRouting))}function normalizeProviderId(value,baseUrl){return value==="custom"||value==="anthropic"||value==="openrouter"||value==="glm"||value==="minimax"||value==="kimi"||value==="xai"||value==="gemini"?value:inferProviderPresetId(baseUrl)??"custom"}function normalizeModelRoutingPresetId(value){return value==="provider_default"||value==="claude_code_heritage"||value==="gpt_5_5_max"||value==="gpt_5_4_codex"||value==="gpt_5_1_stable"||value==="gpt_5_3_codex"||value==="gpt55_deepseek_combo"||value==="deepseek_gpt_combo"||value==="grok_current"||value==="grok_45_composer_combo"||value==="minimax_m3"||value==="kimi_k26"||value==="deepseek_v4_pro"||value==="glm_52"||value==="qwen36_gateway"||value==="custom"?value:"provider_default"}function normalizeModelValue(value){if(typeof value!="string")return"";let m2=value.trim();return m2?(/^gork(?=[-_.]|$)/i.test(m2)&&(m2=m2.replace(/^gork/i,"grok")),m2):""}function inferModelRoutingPresetId(routing){for(let preset of PROVIDER_MODEL_ROUTING_PRESETS)if(preset.routing.primaryModel===routing.primaryModel&&preset.routing.subagentModel===routing.subagentModel&&preset.routing.smallFastModel===routing.smallFastModel&&preset.routing.planModel===routing.planModel&&preset.routing.exploreModel===routing.exploreModel&&preset.routing.generalModel===routing.generalModel&&preset.routing.teamModel===routing.teamModel&&preset.routing.guideModel===routing.guideModel&&preset.routing.reviewModel===routing.reviewModel)return preset.id;return"custom"}function normalizeProviderModelRouting(value){if(!value||typeof value!="object")return createProviderModelRoutingFromPreset("provider_default");let raw=value,presetId=normalizeModelRoutingPresetId(raw.presetId),base=getProviderModelRoutingPreset(presetId).routing,normalized=completeProviderRoutingSlotsFromPrimary({presetId,primaryModel:normalizeModelValue(raw.primaryModel),subagentModel:normalizeModelValue(raw.subagentModel),smallFastModel:normalizeModelValue(raw.smallFastModel),planModel:normalizeModelValue(raw.planModel),exploreModel:normalizeModelValue(raw.exploreModel),generalModel:normalizeModelValue(raw.generalModel),teamModel:normalizeModelValue(raw.teamModel),guideModel:normalizeModelValue(raw.guideModel),reviewModel:normalizeModelValue(raw.reviewModel)},base);return{presetId:presetId==="provider_default"?inferModelRoutingPresetId(normalized):presetId,...normalized}}function normalizeProviderProfileProvenance(value){if(!value||typeof value!="object")return{kind:"manual"};let raw=value;return raw.kind==="synthetic_current_env"?{kind:"synthetic_current_env"}:raw.kind==="current_env_adopted"?{kind:"current_env_adopted",adoptedAt:typeof raw.adoptedAt=="number"&&Number.isFinite(raw.adoptedAt)?raw.adoptedAt:Date.now()}:raw.kind==="imported"&&(raw.sourceId==="ccjk"||raw.sourceId==="zcf")?{kind:"imported",sourceId:raw.sourceId,importedAt:typeof raw.importedAt=="number"&&Number.isFinite(raw.importedAt)?raw.importedAt:Date.now(),externalProfileId:typeof raw.externalProfileId=="string"&&raw.externalProfileId.trim()||void 0}:{kind:"manual"}}function normalizeProviderSecretRecord(value){if(!value||typeof value!="object")return null;let raw=value,credential=typeof raw.credential=="string"?raw.credential.trim():"";return credential?{credential,authType:raw.authType==="auth_token"?"auth_token":raw.authType==="api_key"?"api_key":void 0}:null}function getStoredProviderSecretRecords(){let stored=getSecureStorage().read()?.providerProfiles;return!stored||typeof stored!="object"?{}:Object.fromEntries(Object.entries(stored).map(([profileId,value])=>{let normalizedId=profileId.trim(),normalizedValue=normalizeProviderSecretRecord(value);return normalizedId&&normalizedValue?[normalizedId,normalizedValue]:null}).filter(entry=>entry!==null))}function areProviderSecretMapsEqual(left,right){let leftKeys=Object.keys(left).sort(),rightKeys=Object.keys(right).sort();if(leftKeys.length!==rightKeys.length)return!1;for(let index=0;index<leftKeys.length;index+=1){let leftKey=leftKeys[index],rightKey=rightKeys[index];if(leftKey!==rightKey)return!1;let leftValue=left[leftKey],rightValue=right[rightKey];if(!leftValue||!rightValue||leftValue.credential!==rightValue.credential||leftValue.authType!==rightValue.authType)return!1}return!0}function persistProviderSecrets(profiles,options){let secureStorage=getSecureStorage(),existingData=secureStorage.read()??{},currentSecrets=getStoredProviderSecretRecords(),nextSecrets={...currentSecrets};for(let removedId of options?.removedProfileIds??[]){let id=String(removedId||"").trim();id&&delete nextSecrets[id]}for(let profile of profiles){let id=profile.id.trim(),credential=profile.credential.trim();id&&(!credential||isPlaceholderProviderCredential(credential)||(nextSecrets[id]={credential,authType:normalizeAuthType(profile.authType)}))}if(areProviderSecretMapsEqual(currentSecrets,nextSecrets))return;if(!secureStorage.update({...existingData,providerProfiles:Object.keys(nextSecrets).length>0?nextSecrets:void 0}).success)throw new Error("Failed to persist provider credentials to secure storage")}function scrubStoredProviderProfile(profile){let{credential:_credential,...rest2}=profile;return rest2}function normalizeProviderProfile(value,providerSecrets={}){if(!value||typeof value!="object")return null;let raw=value,id=typeof raw.id=="string"?raw.id.trim():"",name=typeof raw.name=="string"?raw.name.trim():"",baseUrl=normalizeAnthropicBaseUrl(typeof raw.baseUrl=="string"?raw.baseUrl:""),secretRecord=id?providerSecrets[id]:void 0,credential=secretRecord?.credential??(typeof raw.credential=="string"?raw.credential.trim():"");if(!id||!name||!baseUrl)return null;let safeCredential=isPlaceholderProviderCredential(credential)?"":credential,createdAt=typeof raw.createdAt=="number"&&Number.isFinite(raw.createdAt)?raw.createdAt:Date.now(),updatedAt=typeof raw.updatedAt=="number"&&Number.isFinite(raw.updatedAt)?raw.updatedAt:createdAt,providerId=normalizeProviderId(raw.providerId,baseUrl),modelRouting=normalizeProviderModelRouting(raw.modelRouting),modelMode=getProviderModelModeForProfile({providerId,modelMode:typeof raw.modelMode=="string"?raw.modelMode:void 0,modelRouting}),comboFallbackRaw=raw.comboFallbackToPrimary,comboFallbackToPrimary=comboFallbackRaw===!1?!1:comboFallbackRaw===!0||modelMode==="hybrid_compatible"?!0:void 0;return{id,name,providerId,modelMode,baseUrl,authType:normalizeAuthType(secretRecord?.authType??raw.authType),credential:safeCredential,modelRouting,...comboFallbackToPrimary!==void 0?{comboFallbackToPrimary}:{},provenance:normalizeProviderProfileProvenance(raw.provenance),geminiHighAmplification:raw.geminiHighAmplification==="full"||raw.geminiHighAmplification==="light"||raw.geminiHighAmplification==="off"?raw.geminiHighAmplification:void 0,apiDialectMode:normalizeProviderApiDialectMode(raw.apiDialectMode,modelMode,modelRouting),providerPanel:normalizeProviderPanelSelection(raw.providerPanel),fusionConfigId:typeof raw.fusionConfigId=="string"&&raw.fusionConfigId.trim()?raw.fusionConfigId.trim():void 0,createdAt,updatedAt}}function buildCompatibleExternalProviderRouting(profile){let primaryModel=normalizeModelValue(profile.primaryModel),haikuModel=normalizeModelValue(profile.defaultHaikuModel),sonnetModel=normalizeModelValue(profile.defaultSonnetModel),opusModel=normalizeModelValue(profile.defaultOpusModel),executionModel=sonnetModel||primaryModel;return normalizeProviderModelRouting({presetId:"custom",primaryModel,subagentModel:executionModel&&executionModel!==primaryModel?executionModel:"",smallFastModel:haikuModel,planModel:opusModel||primaryModel,exploreModel:executionModel,generalModel:executionModel,teamModel:executionModel,guideModel:opusModel||primaryModel,reviewModel:""})}function repairProviderProfileRoutingForMode(profile){let providerId=normalizeProviderId(profile.providerId,profile.baseUrl),routing=normalizeProviderModelRouting(profile.modelRouting),modelMode=getProviderModelModeForProfile({providerId,modelMode:profile.modelMode,modelRouting:routing}),issues=validateProviderModeRouting(modelMode,profile.modelRouting,{language:"zh",requireExplicitHybridSelections:modelMode==="hybrid_compatible"}).filter(issue2=>issue2.level==="error");if(modelMode==="hybrid_compatible"&&appendEmptyHybridModeSlotIssues(issues,profile.modelRouting),issues.length===0)return{profile:{...profile,providerId,modelMode,modelRouting:routing},repaired:!1,messages:[]};let seedPrimary=createDefaultProviderModeSlotValues(modelMode).primaryModel,repair=repairProviderRoutingSlots(routing,issues,seedPrimary);if(!repair.repaired)return{profile:{...profile,providerId,modelMode,modelRouting:routing},repaired:!1,messages:[...issues.map(issue2=>issue2.message),...repair.messages,"\u7EC4\u5408\u6A21\u578B\u914D\u7F6E\u672A\u6574\u4F53\u5207\u6362\uFF1B\u8BF7\u68C0\u67E5\u5BF9\u5E94\u69FD\u4F4D\u6216\u4E3B\u6A21\u578B\u540E\u91CD\u8BD5\u3002"]};let repairedRouting={...repair.routing,presetId:inferModelRoutingPresetId({primaryModel:repair.routing.primaryModel,subagentModel:repair.routing.subagentModel,smallFastModel:repair.routing.smallFastModel,planModel:repair.routing.planModel,exploreModel:repair.routing.exploreModel,generalModel:repair.routing.generalModel,teamModel:repair.routing.teamModel,guideModel:repair.routing.guideModel,reviewModel:repair.routing.reviewModel})};return{profile:{...profile,providerId,modelMode,modelRouting:repairedRouting},repaired:!0,messages:repair.messages}}function createProviderProfileFromCompatibleExternalProfile(profileId,profile,sourceId){let id=profileId.trim(),name=String(profile.name||profileId).trim(),baseUrl=normalizeAnthropicBaseUrl(profile.baseUrl),credential=String(profile.apiKey||"").trim(),authType=profile.authType==="auth_token"?"auth_token":"api_key";if(!id||!name||!baseUrl||!credential||isPlaceholderProviderCredential(credential))return null;let now2=Date.now(),rawProfile={id,name,providerId:normalizeProviderId(void 0,baseUrl),modelMode:getProviderModelModeForProfile({providerId:normalizeProviderId(void 0,baseUrl),modelRouting:buildCompatibleExternalProviderRouting(profile)}),baseUrl,authType,credential,modelRouting:buildCompatibleExternalProviderRouting(profile),provenance:{kind:"imported",sourceId,importedAt:now2,externalProfileId:id},createdAt:now2,updatedAt:now2};return repairProviderProfileRoutingForMode(rawProfile).profile}function loadCompatibleExternalProviderConfig(configPath,sourceId){if(!existsSync4(configPath))return null;let content="";try{content=readFileSync11(configPath,"utf8")}catch{return null}let rawProfiles=new Map,activeProfileId="",currentPath=[];for(let rawLine of content.split(/\r?\n/u)){let line=stripTomlComment(rawLine);if(!line)continue;if(line.startsWith("[")&&line.endsWith("]")){currentPath=parseTomlPathSegments(line.slice(1,-1).trim());continue}let separatorIndex=line.indexOf("=");if(separatorIndex===-1)continue;let key=line.slice(0,separatorIndex).trim().replace(/^['"]|['"]$/g,""),value=parseTomlStringValue(rawLine.slice(separatorIndex+1));if(currentPath.length===1&&currentPath[0]==="claudeCode"){key==="currentProfile"&&(activeProfileId=value.trim());continue}if(currentPath.length<3||currentPath[0]!=="claudeCode"||currentPath[1]!=="profiles")continue;let profileKey=currentPath.slice(2).join(".").trim();if(!profileKey)continue;let currentProfile=rawProfiles.get(profileKey)??{};(key==="name"||key==="authType"||key==="apiKey"||key==="baseUrl"||key==="primaryModel"||key==="defaultHaikuModel"||key==="defaultSonnetModel"||key==="defaultOpusModel")&&(currentProfile[key]=value,rawProfiles.set(profileKey,currentProfile))}let profiles=[...rawProfiles.entries()].map(([profileId,profile])=>createProviderProfileFromCompatibleExternalProfile(profileId,profile,sourceId)).filter(profile=>profile!==null);return profiles.length===0&&!activeProfileId?null:{activeProfileId:activeProfileId||void 0,profiles}}function loadCompatibleExternalProviderProfiles(options){if(!COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED)return{activeProfileId:void 0,profiles:[]};let profiles=[],seenIds=new Set,activeProfileId;for(let source of COMPATIBLE_EXTERNAL_PROVIDER_CONFIG_PATHS){if(options?.sourceId&&source.sourceId!==options.sourceId)continue;let loaded=loadCompatibleExternalProviderConfig(source.path,source.sourceId);if(loaded){!activeProfileId&&loaded.activeProfileId&&(activeProfileId=loaded.activeProfileId);for(let profile of loaded.profiles){let normalizedId=profile.id.trim().toLowerCase();!normalizedId||seenIds.has(normalizedId)||(seenIds.add(normalizedId),profiles.push(profile))}}}return{activeProfileId,profiles}}function applyCompatibleExternalProviderImport(externalConfig){let discoveredProfiles=externalConfig.profiles;if(discoveredProfiles.length===0&&!externalConfig.activeProfileId)return{discoveredProfiles,importedProfiles:[],skippedProfiles:[],activeProfileId:externalConfig.activeProfileId,syncedActiveProfile:null};let currentConfig=getProviderConfig(),storedProfiles=getStoredProviderProfiles(),storedProfileIds=new Set(storedProfiles.map(profile=>profile.id.trim().toLowerCase())),storedProfileNames=new Set(storedProfiles.map(profile=>profile.name.trim().toLowerCase())),externalProfileIds=new Set(discoveredProfiles.map(profile=>profile.id.trim())),importedProfiles=discoveredProfiles.filter(profile=>{let normalizedId=profile.id.trim().toLowerCase(),normalizedName=profile.name.trim().toLowerCase();return normalizedId&&!storedProfileIds.has(normalizedId)&&!storedProfileNames.has(normalizedName)}),skippedProfiles=discoveredProfiles.filter(profile=>!importedProfiles.some(imported=>imported.id===profile.id)),currentStoredActiveProfileId=getStoredActiveProviderProfileId(currentConfig),importedActiveProfileId=String(externalConfig.activeProfileId||"").trim(),shouldSyncExternalActiveProfile=!!importedActiveProfileId&&externalProfileIds.has(importedActiveProfileId)&&(!currentStoredActiveProfileId||externalProfileIds.has(currentStoredActiveProfileId))&&currentStoredActiveProfileId!==importedActiveProfileId;if(importedProfiles.length===0&&!shouldSyncExternalActiveProfile)return{discoveredProfiles,importedProfiles,skippedProfiles,activeProfileId:importedActiveProfileId||void 0,syncedActiveProfile:null};let nextProfiles=[...storedProfiles,...importedProfiles];updateProviderConfig(nextProfiles,shouldSyncExternalActiveProfile?importedActiveProfileId:getStoredActiveProviderProfileId(currentConfig)||void 0);let syncedActiveProfile=null;return shouldSyncExternalActiveProfile&&(!getCurrentProviderProfile()||externalProfileIds.has(currentStoredActiveProfileId))&&(syncedActiveProfile=nextProfiles.find(profile=>profile.id===importedActiveProfileId)??null,syncedActiveProfile&&(writeUserSettingsUpdate(syncedActiveProfile),applyProviderProfileToProcess(syncedActiveProfile))),{discoveredProfiles,importedProfiles,skippedProfiles,activeProfileId:importedActiveProfileId||void 0,syncedActiveProfile}}function escapeTomlBasicString(value){return value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function updateCompatibleExternalProviderCurrentProfile(profileId){if(!COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED)return;let nextProfileId=String(profileId||"").trim();for(let source of COMPATIBLE_EXTERNAL_PROVIDER_CONFIG_PATHS){if(!existsSync4(source.path)||nextProfileId&&!loadCompatibleExternalProviderConfig(source.path,source.sourceId)?.profiles.some(profile=>profile.id===nextProfileId))continue;let content="";try{content=readFileSync11(source.path,"utf8")}catch{continue}let lines=content.split(/\r?\n/u),output=[],currentPath=[],hasClaudeCodeSection=!1,replaced=!1;for(let line of lines){let normalizedLine=stripTomlComment(line),isSection=normalizedLine.startsWith("[")&&normalizedLine.endsWith("]");if(hasClaudeCodeSection&&currentPath.length===1&&currentPath[0]==="claudeCode"&&isSection&&!replaced&&(output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0),isSection){currentPath=parseTomlPathSegments(normalizedLine.slice(1,-1).trim()),currentPath.length===1&&currentPath[0]==="claudeCode"&&(hasClaudeCodeSection=!0),output.push(line);continue}if(currentPath.length===1&&currentPath[0]==="claudeCode"){let separatorIndex=normalizedLine.indexOf("=");if(separatorIndex!==-1&&normalizedLine.slice(0,separatorIndex).trim().replace(/^['"]|['"]$/g,"")==="currentProfile"){output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0;continue}}output.push(line)}if(hasClaudeCodeSection&&currentPath.length===1&&currentPath[0]==="claudeCode"&&!replaced&&(output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0),!hasClaudeCodeSection)continue;let nextContent=output.join(`
195
195
  `);if(nextContent!==content)try{writeFileSyncAtomic(source.path,nextContent)}catch{}}}function getProviderConfig(){return ensureNormalizedProviderBaseUrlsMigrated(),getGlobalConfig()}function getStoredProviderProfileRecords(config2){return Array.isArray(config2.clavueProviderProfiles)?config2.clavueProviderProfiles:Array.isArray(config2.my\u0063laudeProviderProfiles)?config2.my\u0063laudeProviderProfiles:[]}function getStoredActiveProviderProfileId(config2){let clavue=typeof config2.clavueActiveProviderProfileId=="string"?config2.clavueActiveProviderProfileId.trim():"";if(clavue)return clavue;let my\u0063laude=typeof config2.my\u0063laudeActiveProviderProfileId=="string"?config2.my\u0063laudeActiveProviderProfileId.trim():"";return my\u0063laude||(typeof config2.activeProviderProfileId=="string"?config2.activeProviderProfileId.trim():"")}function resolveCanonicalActiveProviderProfileId(config2,profileIds){let idSet=profileIds instanceof Set?new Set([...profileIds].map(id=>String(id||"").trim()).filter(Boolean)):new Set(Array.from(profileIds).map(id=>String(id||"").trim()).filter(Boolean)),clavue=String(config2.clavueActiveProviderProfileId||"").trim(),my\u0063laude=String(config2.my\u0063laudeActiveProviderProfileId||"").trim(),bare=String(config2.activeProviderProfileId||"").trim(),clavueOk=!!(clavue&&idSet.has(clavue)),my\u0063laudeOk=!!(my\u0063laude&&idSet.has(my\u0063laude)),bareOk=!!(bare&&idSet.has(bare));if(clavueOk){let stripLegacyBare=!!bare;return{activeId:clavue,needsWrite:stripLegacyBare||!!(my\u0063laude&&my\u0063laude!==clavue),stripLegacyBare,migrateLegacyToClavue:!1}}return my\u0063laudeOk?{activeId:my\u0063laude,needsWrite:!clavue||clavue!==my\u0063laude||!!(bare&&bare!==my\u0063laude),stripLegacyBare:!!(bare&&bare!==my\u0063laude),migrateLegacyToClavue:!0}:bareOk?{activeId:bare,needsWrite:!0,stripLegacyBare:!0,migrateLegacyToClavue:!0}:{activeId:void 0,needsWrite:!!(clavue||my\u0063laude||bare),stripLegacyBare:!!bare,migrateLegacyToClavue:!1}}function resolveHealedActiveProviderProfileId(activeId,profiles,env5={}){let trimmedActive=String(activeId||"").trim();if(!trimmedActive||trimmedActive===CURRENT_PROVIDER_PROFILE_ID)return trimmedActive||void 0;if(profiles.some(profile=>profile.id===trimmedActive))return trimmedActive;let envBaseUrl=normalizeAnthropicBaseUrl(env5.baseUrl),envPrimary=String(env5.primaryModel||"").trim();if(!envBaseUrl)return;let withHost=profiles.filter(profile=>normalizeAnthropicBaseUrl(profile.baseUrl)===envBaseUrl).sort((a2,b)=>(b.updatedAt||0)-(a2.updatedAt||0));return withHost.find(profile=>{let primary=(profile.modelRouting?.primaryModel||profile.modelRouting?.generalModel||"").trim();return!envPrimary||primary===envPrimary})?.id||withHost[0]?.id}function healOrphanActiveProviderProfileId(){if(!hasHealedOrphanActiveProviderProfileId){hasHealedOrphanActiveProviderProfileId=!0;try{let config2=getProviderConfig(),profiles=getStoredProviderProfiles(),profileIds=new Set(profiles.map(profile=>profile.id)),dual=resolveCanonicalActiveProviderProfileId(config2,profileIds),activeId=dual.activeId;if(activeId&&activeId!==CURRENT_PROVIDER_PROFILE_ID&&!profileIds.has(activeId)){let settingsEnv=getSettingsEnv(),envBaseUrl=settingsEnv.ANTHROPIC_BASE_URL?.trim()||process.env.ANTHROPIC_BASE_URL?.trim(),envPrimary=settingsEnv.ANTHROPIC_MODEL?.trim()||process.env.ANTHROPIC_MODEL?.trim();activeId=resolveHealedActiveProviderProfileId(activeId,profiles,{baseUrl:envBaseUrl,primaryModel:envPrimary})}let clavueNow=String(config2.clavueActiveProviderProfileId||"").trim(),my\u0063laudeNow=String(config2.my\u0063laudeActiveProviderProfileId||"").trim(),bareNow=String(config2.activeProviderProfileId||"").trim(),orphanChanged=(activeId||"")!==(dual.activeId||"");if(!(dual.needsWrite||dual.stripLegacyBare||dual.migrateLegacyToClavue||orphanChanged||(activeId||"")!==clavueNow||!!(bareNow&&(!activeId||bareNow!==activeId))||!!(my\u0063laudeNow&&activeId&&my\u0063laudeNow!==activeId)))return;let healed=activeId?profiles.find(profile=>profile.id===activeId):void 0;saveGlobalConfig(current=>{let next={...current,clavueActiveProviderProfileId:activeId||void 0};return activeId?(my\u0063laudeNow||dual.migrateLegacyToClavue)&&(next.my\u0063laudeActiveProviderProfileId=activeId):my\u0063laudeNow&&(next.my\u0063laudeActiveProviderProfileId=void 0),delete next.activeProviderProfileId,next}),healed&&activeId!==clavueNow&&(writeUserSettingsUpdate(healed),applyProviderProfileToProcess(healed))}catch{}}}function getStoredProviderCapabilityCache(config2){return config2.clavueProviderCapabilityCache&&typeof config2.clavueProviderCapabilityCache=="object"?config2.clavueProviderCapabilityCache:config2.my\u0063laudeProviderCapabilityCache&&typeof config2.my\u0063laudeProviderCapabilityCache=="object"?config2.my\u0063laudeProviderCapabilityCache:void 0}function ensureNormalizedProviderBaseUrlsMigrated(){hasMigratedNormalizedProviderBaseUrls||(hasMigratedNormalizedProviderBaseUrls=!0,migrateNormalizedProviderBaseUrls())}function getStoredProviderProfiles(){let config2=getProviderConfig(),providerSecrets=getStoredProviderSecretRecords();return getStoredProviderProfileRecords(config2).map(profile=>normalizeProviderProfile(profile,providerSecrets)).filter(profile=>profile!==null)}function ensureCompatibleExternalProviderProfilesImported(){hasAttemptedCompatibleExternalProviderImport||(hasAttemptedCompatibleExternalProviderImport=!0,shouldAutoImportCompatibleExternalProviderProfiles()&&applyCompatibleExternalProviderImport(loadCompatibleExternalProviderProfiles()))}function buildProviderCredentialFingerprint(profile){return createHash3("sha256").update([normalizeAnthropicBaseUrl(profile.baseUrl),profile.authType,profile.credential.trim()].join("\0")).digest("hex").slice(0,24)}function buildProviderCapabilityCacheKey(profile,model){return`${buildProviderCredentialFingerprint(profile)}:${normalizeModelValue(model).toLowerCase()}`}function createEmptyProviderCapabilitySnapshot(profile,model){return{version:PROVIDER_CAPABILITY_CACHE_VERSION,key:buildProviderCapabilityCacheKey(profile,model),model:normalizeModelValue(model),baseUrl:normalizeAnthropicBaseUrl(profile.baseUrl),authType:profile.authType,credentialFingerprint:buildProviderCredentialFingerprint(profile),checkedAt:Date.now(),compatibilityChecked:!1,anthropicMessagesReachable:!1,anthropicToolUse:!1,responsesArrayInputReachable:!1,responsesToolChoiceAuto:!1,responsesToolChoiceRequired:!1,responsesToolChoiceNamed:!1,responsesReasoningMedium:!1,responsesReasoningXHigh:!1}}function normalizeProviderCapabilitySnapshot(value){if(!value||typeof value!="object")return null;let raw=value,key=typeof raw.key=="string"?raw.key.trim():"",model=typeof raw.model=="string"?raw.model.trim():"",baseUrl=normalizeAnthropicBaseUrl(typeof raw.baseUrl=="string"?raw.baseUrl:""),credentialFingerprint=typeof raw.credentialFingerprint=="string"?raw.credentialFingerprint.trim():"";if(raw.version!==PROVIDER_CAPABILITY_CACHE_VERSION||!key||!model||!baseUrl||!credentialFingerprint)return null;let optionalString=__name(input=>typeof input=="string"&&input.trim()?input.trim():void 0,"optionalString"),optionalPositiveInt=__name(input=>{let value2=typeof input=="string"?Number(input):input;return typeof value2=="number"&&Number.isFinite(value2)&&value2>=1e3?Math.floor(value2):void 0},"optionalPositiveInt");return{version:PROVIDER_CAPABILITY_CACHE_VERSION,key,model,baseUrl,authType:normalizeAuthType(raw.authType),credentialFingerprint,checkedAt:typeof raw.checkedAt=="number"&&Number.isFinite(raw.checkedAt)?raw.checkedAt:Date.now(),compatibilityChecked:raw.compatibilityChecked===!0,anthropicMessagesReachable:raw.anthropicMessagesReachable===!0,anthropicToolUse:raw.anthropicToolUse===!0,responsesArrayInputReachable:raw.responsesArrayInputReachable===!0,responsesToolChoiceAuto:raw.responsesToolChoiceAuto===!0,responsesToolChoiceRequired:raw.responsesToolChoiceRequired===!0,responsesToolChoiceNamed:raw.responsesToolChoiceNamed===!0,responsesReasoningMedium:raw.responsesReasoningMedium===!0,responsesReasoningXHigh:raw.responsesReasoningXHigh===!0,messagesError:optionalString(raw.messagesError),responsesAccessError:optionalString(raw.responsesAccessError),responsesAutoError:optionalString(raw.responsesAutoError),responsesRequiredError:optionalString(raw.responsesRequiredError),responsesNamedError:optionalString(raw.responsesNamedError),responsesReasoningMediumError:optionalString(raw.responsesReasoningMediumError),responsesReasoningXHighError:optionalString(raw.responsesReasoningXHighError),maxInputTokens:optionalPositiveInt(raw.maxInputTokens),contextWindowCheckedAt:optionalPositiveInt(raw.contextWindowCheckedAt)}}function getProviderCapabilityCache(){let rawCache=getStoredProviderCapabilityCache(getProviderConfig());return!rawCache||typeof rawCache!="object"?{}:Object.fromEntries(Object.entries(rawCache).map(([key,value])=>{let normalized=normalizeProviderCapabilitySnapshot(value);return normalized?[key,normalized]:null}).filter(entry=>entry!==null))}function saveProviderCapabilitySnapshot(snapshot){saveGlobalConfig(current=>{let existingCache=current&&typeof current=="object"&&!Array.isArray(current)&&typeof current.clavueProviderCapabilityCache=="object"&&current.clavueProviderCapabilityCache!==null?{...current.clavueProviderCapabilityCache}:{};return existingCache[snapshot.key]=snapshot,{...current,clavueProviderCapabilityCache:existingCache}})}function upsertProviderCapabilitySnapshot(profile,model,patch){let key=buildProviderCapabilityCacheKey(profile,model),nextSnapshot={...getProviderCapabilityCache()[key]??createEmptyProviderCapabilitySnapshot(profile,model),...patch,version:PROVIDER_CAPABILITY_CACHE_VERSION,key,model:normalizeModelValue(model),baseUrl:normalizeAnthropicBaseUrl(profile.baseUrl),authType:profile.authType,credentialFingerprint:buildProviderCredentialFingerprint(profile),checkedAt:Date.now()};return saveProviderCapabilitySnapshot(nextSnapshot),nextSnapshot}function getProviderCapabilitySnapshot(profile,model,{allowStale=!1}={}){let cacheKey=buildProviderCapabilityCacheKey(profile,model),snapshot=getProviderCapabilityCache()[cacheKey];return!snapshot||!allowStale&&Date.now()-snapshot.checkedAt>PROVIDER_CAPABILITY_CACHE_TTL_MS?null:snapshot}function getCachedProviderCapabilitySnapshot(profile,model,options={}){return getProviderCapabilitySnapshot(profile,model,options)}function getProviderCapabilitySnapshotFreshness(snapshot){return snapshot?Date.now()-snapshot.checkedAt>PROVIDER_CAPABILITY_CACHE_TTL_MS?"stale":"fresh":"none"}function getProviderModelMaxInputTokens(model){try{let profile=getResolvedCurrentProviderProfile();if(!profile)return;let snap=getProviderCapabilitySnapshot(profile,model,{allowStale:!0}),window2=snap?.maxInputTokens;return shouldRefreshStaleWindowSnapshot({stale:getProviderCapabilitySnapshotFreshness(snap)==="stale",window:window2})&&refreshProviderModelContextWindow(model,{profile}),window2}catch{return}}async function getProviderModelMaxInputTokensAsync(model){try{let profile=getResolvedCurrentProviderProfile();if(!profile)return;let snap=getProviderCapabilitySnapshot(profile,model,{allowStale:!0}),window2=snap?.maxInputTokens;return getIsNonInteractiveSession()&&shouldRefreshStaleWindowSnapshot({stale:getProviderCapabilitySnapshotFreshness(snap)==="stale",window:window2})?(await refreshProviderModelContextWindow(model,{profile}),getProviderCapabilitySnapshot(profile,model,{allowStale:!0})?.maxInputTokens):window2}catch{return}}function getProviderModelMaxInputTokensSnapshotAge(model){try{let profile=getResolvedCurrentProviderProfile();if(!profile)return null;let snap=getProviderCapabilitySnapshot(profile,model,{allowStale:!0});return snap?Date.now()-snap.checkedAt:null}catch{return null}}function isContextWindowSnapshotFresh(snapshot){return!!(snapshot?.contextWindowCheckedAt&&Date.now()-snapshot.contextWindowCheckedAt<=PROVIDER_CAPABILITY_CACHE_TTL_MS)}function resolveProviderGatewayModelsUrl(profile){return`${normalizeAnthropicBaseUrl(profile.baseUrl)}/v1/models`}async function fetchProviderModelCatalogAtUrl(profile,catalogUrl,options={}){let inflightKey=`${buildProviderCredentialFingerprint(profile)}:${catalogUrl}:u=${options.forceUnauthenticated?1:0}`,inflight2=contextWindowCatalogInflight.get(inflightKey);if(inflight2)return inflight2;let run=(async()=>{try{let providerOrigin=new URL(normalizeAnthropicBaseUrl(profile.baseUrl)).origin,catalogOrigin=new URL(catalogUrl).origin,dialectOpenAI=shouldValidateViaOpenAIResponses(profile)||normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting)!=="anthropic",headers=!options.forceUnauthenticated&&providerOrigin===catalogOrigin?dialectOpenAI?buildResponsesValidationHeaders(profile):buildValidationHeaders(profile):{accept:"application/json"},response=await(options.fetchImpl??fetch)(catalogUrl,{method:"GET",headers,signal:options.signal});return response.ok?await response.json():null}catch{return null}finally{contextWindowCatalogInflight.delete(inflightKey)}})();return contextWindowCatalogInflight.set(inflightKey,run),run}async function refreshProviderModelContextWindows(models,options={}){let profile=options.profile??(()=>{try{return getResolvedCurrentProviderProfile()}catch{return null}})();if(!profile?.baseUrl)return{};let officialCloud=profile.id==="clavue-cloud",modelIds=models.map(model=>String(model||"").trim()).filter((model,index,values2)=>model&&values2.indexOf(model)===index);if(modelIds.length===0)return{};let result2={},staleModels=[];for(let modelId of modelIds){let snapshot=getProviderCapabilitySnapshot(profile,modelId,{allowStale:!0});snapshot?.maxInputTokens&&snapshot.maxInputTokens>=1e3&&(result2[modelId]=snapshot.maxInputTokens),(options.force||!isContextWindowSnapshotFresh(snapshot))&&staleModels.push(modelId)}if(staleModels.length===0)return result2;let checkedAt=Date.now(),applyPayload=__name((payload,targets,mode)=>{if(payload!=null)for(let modelId of targets){if(mode==="fill"&&result2[modelId]!=null&&result2[modelId]>=1e3)continue;let maxInputTokens=extractMaxInputTokensFromModelsPayload(payload,modelId);maxInputTokens!=null&&(upsertProviderCapabilitySnapshot(profile,modelId,{maxInputTokens,contextWindowCheckedAt:checkedAt}),result2[modelId]=maxInputTokens)}},"applyPayload"),gatewayUrl=resolveProviderGatewayModelsUrl(profile),gatewayPayload=await fetchProviderModelCatalogAtUrl(profile,gatewayUrl,options);if(applyPayload(gatewayPayload,staleModels,"overwrite"),gatewayPayload!=null)for(let[id,window2]of Object.entries(extractAllModelContextWindows(gatewayPayload)))window2<1e3||(upsertProviderCapabilitySnapshot(profile,id,{maxInputTokens:window2,contextWindowCheckedAt:checkedAt}),result2[id]=window2);let missing=officialCloud?[]:staleModels.filter(id=>result2[id]==null||result2[id]<1e3);if(missing.length>0){let supplementUrl=resolveClavuePublicContextCatalogUrl(options.catalogUrl)??resolveClavuePublicContextCatalogUrl();if(supplementUrl){let sameAsGateway=!1;try{sameAsGateway=new URL(supplementUrl).href===new URL(gatewayUrl).href}catch{sameAsGateway=!1}if(!sameAsGateway){let supplementPayload=await fetchProviderModelCatalogAtUrl(profile,supplementUrl,{...options,forceUnauthenticated:!0});applyPayload(supplementPayload,missing,"fill")}}}for(let modelId of staleModels)result2[modelId]==null&&upsertProviderCapabilitySnapshot(profile,modelId,{contextWindowCheckedAt:checkedAt});return result2}async function refreshProviderModelContextWindow(model,options={}){let profile=options.profile??(()=>{try{return getResolvedCurrentProviderProfile()}catch{return null}})(),modelId=String(model||"").trim();return!profile?.baseUrl||!modelId?null:(await refreshProviderModelContextWindows([modelId],{...options,profile}))[modelId]??null}function ensureProviderContextWindowRefreshSchedule(options={}){let refresh=__name(async()=>{let profile=null;try{profile=getResolvedCurrentProviderProfile()}catch{return}let models=getProviderContextWindowModels(profile);models.length!==0&&await refreshProviderModelContextWindows(models,{profile})},"refresh");if(refresh(),providerContextWindowRefreshTimer)return;let configured=Number(process.env.CLAVUE_MODEL_CONTEXT_REFRESH_MS||options.intervalMs),intervalMs=Number.isFinite(configured)&&configured>=6e4?Math.floor(configured):PROVIDER_CAPABILITY_CACHE_TTL_MS;providerContextWindowRefreshTimer=setInterval(()=>{refresh()},intervalMs),providerContextWindowRefreshTimer.unref?.()}function getSettingsEnv(){return getSettingsForSource("userSettings")?.env??{}}function buildSettingsEnvUpdate(profile){if(!profile)return{CLAVUE_BASE_URL:void 0,CLAVUE_API_KEY:void 0,CLAVUE_AUTH_TOKEN:void 0,ANTHROPIC_BASE_URL:void 0,ANTHROPIC_API_KEY:void 0,ANTHROPIC_AUTH_TOKEN:void 0,ANTHROPIC_MODEL:void 0,ANTHROPIC_SMALL_FAST_MODEL:void 0,ANTHROPIC_CUSTOM_MODEL_OPTION:void 0,ANTHROPIC_CUSTOM_MODEL_OPTION_NAME:void 0,ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION:void 0,ANTHROPIC_DEFAULT_OPUS_MODEL:void 0,ANTHROPIC_DEFAULT_OPUS_MODEL_NAME:void 0,ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION:void 0,ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES:void 0,ANTHROPIC_DEFAULT_SONNET_MODEL:void 0,ANTHROPIC_DEFAULT_SONNET_MODEL_NAME:void 0,ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION:void 0,ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES:void 0,ANTHROPIC_DEFAULT_HAIKU_MODEL:void 0,ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME:void 0,ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION:void 0,ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES:void 0,CLAUDE_CODE_SUBAGENT_MODEL:void 0,CLAVUE_API_DIALECT:void 0,MYCLAUDE_API_DIALECT:void 0,CLAUDE_CODE_API_DIALECT:void 0,CLAUDE_CODE_PROVIDER_DIALECT:void 0,CLAUDE_CODE_USE_BEDROCK:void 0,CLAUDE_CODE_USE_VERTEX:void 0,CLAUDE_CODE_USE_FOUNDRY:void 0};let routing=profile.modelRouting,slotDefaults=getProviderModelSlotDefaults(routing),baseUrl=assertValidProviderBaseUrl(profile.baseUrl);return{CLAVUE_BASE_URL:baseUrl,ANTHROPIC_BASE_URL:baseUrl,CLAVUE_API_KEY:void 0,CLAVUE_AUTH_TOKEN:void 0,ANTHROPIC_API_KEY:void 0,ANTHROPIC_AUTH_TOKEN:void 0,ANTHROPIC_MODEL:routing.primaryModel||void 0,ANTHROPIC_SMALL_FAST_MODEL:routing.smallFastModel||void 0,ANTHROPIC_CUSTOM_MODEL_OPTION:routing.primaryModel||void 0,ANTHROPIC_CUSTOM_MODEL_OPTION_NAME:getProviderModelDisplayName(routing.primaryModel,"primary"),ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION:getProviderModelDescription(routing.primaryModel,"primary"),ANTHROPIC_DEFAULT_OPUS_MODEL:slotDefaults.opusModel||void 0,ANTHROPIC_DEFAULT_OPUS_MODEL_NAME:getProviderModelDisplayName(slotDefaults.opusModel,"opus"),ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION:getProviderModelDescription(slotDefaults.opusModel,"opus"),ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES:serializeCapabilitiesForModel(profile,slotDefaults.opusModel),ANTHROPIC_DEFAULT_SONNET_MODEL:slotDefaults.sonnetModel||void 0,ANTHROPIC_DEFAULT_SONNET_MODEL_NAME:getProviderModelDisplayName(slotDefaults.sonnetModel,"sonnet"),ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION:getProviderModelDescription(slotDefaults.sonnetModel,"sonnet"),ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES:serializeCapabilitiesForModel(profile,slotDefaults.sonnetModel),ANTHROPIC_DEFAULT_HAIKU_MODEL:slotDefaults.haikuModel||void 0,ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME:getProviderModelDisplayName(slotDefaults.haikuModel,"haiku"),ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION:getProviderModelDescription(slotDefaults.haikuModel,"haiku"),ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES:serializeCapabilitiesForModel(profile,slotDefaults.haikuModel),CLAUDE_CODE_SUBAGENT_MODEL:routing.subagentModel&&routing.subagentModel!=="inherit"?routing.subagentModel:void 0,CLAVUE_API_DIALECT:normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting),MYCLAUDE_API_DIALECT:void 0,CLAUDE_CODE_API_DIALECT:void 0,CLAUDE_CODE_PROVIDER_DIALECT:void 0,CLAUDE_CODE_USE_BEDROCK:void 0,CLAUDE_CODE_USE_VERTEX:void 0,CLAUDE_CODE_USE_FOUNDRY:void 0}}function buildSettingsModelUpdate(profile){let primaryModel=profile?.modelRouting.primaryModel.trim();return primaryModel||void 0}function writeUserSettingsUpdate(profile){profile&&assertValidProviderBaseUrl(profile.baseUrl);let envUpdate=buildSettingsEnvUpdate(profile);updateSettingsForSource("userSettings",{env:envUpdate,model:buildSettingsModelUpdate(profile)})}function healUserSettingsEnvToProfile(profile){writeUserSettingsUpdate(profile)}function updateProviderConfig(profiles,activeProviderId,options){let existingRecords=getStoredProviderProfileRecords(getProviderConfig());if(profiles.length===0&&existingRecords.length>0&&options?.allowEmptyWipe!==!0){logForDebugging("updateProviderConfig: refusing empty provider profile wipe over non-empty store",{level:"error"}),persistProviderSecrets(profiles,{removedProfileIds:options?.removedProfileIds}),activeProviderId!==void 0&&saveGlobalConfig(current=>{let next={...current,clavueActiveProviderProfileId:activeProviderId||void 0};return delete next.activeProviderProfileId,activeProviderId?next.my\u0063laudeActiveProviderProfileId=activeProviderId:delete next.my\u0063laudeActiveProviderProfileId,next});return}persistProviderSecrets(profiles,{removedProfileIds:options?.removedProfileIds}),saveGlobalConfig(current=>{let next={...current,clavueProviderProfiles:profiles.length>0?profiles.map(scrubStoredProviderProfile):void 0,clavueActiveProviderProfileId:activeProviderId||void 0};return delete next.activeProviderProfileId,activeProviderId?next.my\u0063laudeActiveProviderProfileId=activeProviderId:delete next.my\u0063laudeActiveProviderProfileId,next})}function inferProviderPresetId(baseUrl){let normalizedBaseUrl=normalizeAnthropicBaseUrl(baseUrl);return normalizedBaseUrl?PROVIDER_PRESETS.find(preset=>preset.id!=="custom"&&normalizeAnthropicBaseUrl(preset.baseUrl)===normalizedBaseUrl)?.id??"custom":null}function getProviderModelCatalogEntry(model){let normalizedModel=model.trim().toLowerCase();if(normalizedModel)return PROVIDER_MODEL_CATALOG.find(entry=>entry.id.toLowerCase()===normalizedModel)}function getProviderModelDisplayName(model,slot){let entry=getProviderModelCatalogEntry(model);if(entry)switch(slot){case"primary":return entry.name;case"opus":return`${entry.name} \xB7 Planning`;case"sonnet":return`${entry.name} \xB7 Execution`;case"haiku":return`${entry.name} \xB7 Fast`}}function getProviderModelDescription(model,slot){let entry=getProviderModelCatalogEntry(model);if(!entry)return;let capabilitySuffix=entry.capabilities.length>0?` Supports ${entry.capabilities.join(", ")}.`:"";switch(slot){case"primary":return`${entry.description}.${capabilitySuffix}`.trim();case"opus":return`Configured planning / Opus slot routed to ${entry.name}.${capabilitySuffix}`.trim();case"sonnet":return`Configured execution / Sonnet slot routed to ${entry.name}.${capabilitySuffix}`.trim();case"haiku":return`Configured fast / Haiku slot routed to ${entry.name}.${capabilitySuffix}`.trim()}}function getProviderPreset(id){return PROVIDER_PRESETS.find(preset=>preset.id===id)??PROVIDER_PRESETS[0]}function getProviderModelRoutingPreset(id){return PROVIDER_MODEL_ROUTING_PRESETS.find(preset=>preset.id===id)??PROVIDER_MODEL_ROUTING_PRESETS[0]}function getProviderProfiles(){return ensureCompatibleExternalProviderProfilesImported(),getStoredProviderProfiles()}function importCompatibleExternalProviderProfiles(options){options?.sourceId||(hasAttemptedCompatibleExternalProviderImport=!0);let sourceId=options?.sourceId;if(!COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED)return{sourceId:sourceId??"all",discoveredProfiles:[],importedProfiles:[],skippedProfiles:[],activeProfileId:void 0,syncedActiveProfile:null};let applied=applyCompatibleExternalProviderImport(loadCompatibleExternalProviderProfiles({sourceId}));return{sourceId:sourceId??"all",...applied}}function getProviderProfileById(profileId){return getProviderProfiles().find(profile=>profile.id===profileId.trim())??null}function findProviderProfiles(query){let normalizedQuery=query.trim().toLowerCase();if(!normalizedQuery)return[];let profiles=getProviderProfiles(),exactMatches=profiles.filter(profile=>{let name=profile.name.trim().toLowerCase(),id=profile.id.trim().toLowerCase();return name===normalizedQuery||id===normalizedQuery});return exactMatches.length>0?exactMatches:profiles.filter(profile=>{let name=profile.name.trim().toLowerCase(),id=profile.id.trim().toLowerCase(),baseUrl=profile.baseUrl.trim().toLowerCase();return name.includes(normalizedQuery)||id.includes(normalizedQuery)||baseUrl.includes(normalizedQuery)})}function getActiveProviderProfileId(){return ensureCompatibleExternalProviderProfilesImported(),healOrphanActiveProviderProfileId(),getStoredActiveProviderProfileId(getProviderConfig())||void 0}function getSavedActiveProviderProfile(){let activeProfileId=getActiveProviderProfileId();return activeProfileId?getProviderProfiles().find(profile=>profile.id===activeProfileId)??null:null}function __resetOrphanActiveProviderHealForTests(){hasHealedOrphanActiveProviderProfileId=!1}function getCurrentProviderProfile(){let env5={...getSettingsEnv(),...process.env},credential=env5.CLAVUE_AUTH_TOKEN?.trim()||env5.ANTHROPIC_AUTH_TOKEN?.trim()||env5.CLAVUE_API_KEY?.trim()||env5.ANTHROPIC_API_KEY?.trim()||"",authType=env5.CLAVUE_AUTH_TOKEN?.trim()||env5.ANTHROPIC_AUTH_TOKEN?.trim()?"auth_token":"api_key",baseUrl=normalizeAnthropicBaseUrl(env5.CLAVUE_BASE_URL?.trim()||env5.ANTHROPIC_BASE_URL?.trim())||"https://api.clavue.com";if(!credential||isPlaceholderProviderCredential(credential))return null;let providerId=inferProviderPresetId(baseUrl)??"custom",currentRouting={primaryModel:env5.ANTHROPIC_MODEL?.trim()??"",subagentModel:env5.CLAUDE_CODE_SUBAGENT_MODEL?.trim()??"",smallFastModel:env5.ANTHROPIC_SMALL_FAST_MODEL?.trim()??"",planModel:env5.ANTHROPIC_DEFAULT_OPUS_MODEL?.trim()??env5.ANTHROPIC_MODEL?.trim()??"",exploreModel:env5.CLAUDE_CODE_SUBAGENT_MODEL?.trim()??env5.ANTHROPIC_DEFAULT_SONNET_MODEL?.trim()??"",generalModel:env5.ANTHROPIC_DEFAULT_SONNET_MODEL?.trim()??"",teamModel:env5.CLAUDE_CODE_SUBAGENT_MODEL?.trim()??env5.ANTHROPIC_DEFAULT_SONNET_MODEL?.trim()??"",guideModel:env5.ANTHROPIC_DEFAULT_OPUS_MODEL?.trim()??env5.ANTHROPIC_MODEL?.trim()??""};return{id:CURRENT_PROVIDER_PROFILE_ID,name:"Current API config",providerId,modelMode:getProviderModelModeForProfile({providerId,modelRouting:{presetId:inferModelRoutingPresetId(currentRouting),...currentRouting}}),baseUrl,authType,credential,modelRouting:{presetId:inferModelRoutingPresetId(currentRouting),...currentRouting},provenance:{kind:"synthetic_current_env"},createdAt:Date.now(),updatedAt:Date.now()}}function getResolvedCurrentProviderProfile(sessionId){let sid=sessionId==null?void 0:String(sessionId).trim()||void 0;try{let sessionProfileId=getSessionProviderProfileId(sid);if(sessionProfileId){let fromSession=getProviderProfiles().find(p=>p.id===sessionProfileId);if(fromSession)return fromSession}}catch{}return getSavedActiveProviderProfile()??getCurrentProviderProfile()}function hasProviderCredentialConfigured(){return getResolvedCurrentProviderProfile()!==null}function providerProfileToAgentEnv(profile){let out={},baseUrlValidation=validateProviderBaseUrl(profile.baseUrl);if(!baseUrlValidation.ok)throw new Error(baseUrlValidation.error||"Invalid provider base URL \u2014 refusing session route.");out.CLAVUE_BASE_URL=baseUrlValidation.normalized,out.ANTHROPIC_BASE_URL=baseUrlValidation.normalized,out.CLAVUE_API_DIALECT=normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting),profile.authType==="auth_token"?(out.CLAVUE_AUTH_TOKEN=profile.credential,out.ANTHROPIC_AUTH_TOKEN=profile.credential,out.CLAVUE_API_KEY=profile.credential,out.ANTHROPIC_API_KEY=profile.credential):(out.CLAVUE_API_KEY=profile.credential,out.ANTHROPIC_API_KEY=profile.credential);let routing=profile.modelRouting;routing.primaryModel&&(out.ANTHROPIC_MODEL=routing.primaryModel,out.ANTHROPIC_CUSTOM_MODEL_OPTION=routing.primaryModel),routing.smallFastModel&&(out.ANTHROPIC_SMALL_FAST_MODEL=routing.smallFastModel),routing.subagentModel&&routing.subagentModel!=="inherit"&&(out.CLAUDE_CODE_SUBAGENT_MODEL=routing.subagentModel);let slots=getProviderModelSlotDefaults(routing);return slots.opusModel&&(out.ANTHROPIC_DEFAULT_OPUS_MODEL=slots.opusModel),slots.sonnetModel&&(out.ANTHROPIC_DEFAULT_SONNET_MODEL=slots.sonnetModel),slots.haikuModel&&(out.ANTHROPIC_DEFAULT_HAIKU_MODEL=slots.haikuModel),out}function getCredentialLabel(authType){return authType==="auth_token"?"Access Token":"API Key"}function maskCredential(credential){let trimmed=credential.trim();return trimmed.length<=8?"*".repeat(Math.max(trimmed.length,4)):`${trimmed.slice(0,4)}...${trimmed.slice(-4)}`}function createProviderDraftFromPreset(presetId){let preset=getProviderPreset(presetId),now2=Date.now();return{id:randomUUID3(),name:preset.name,providerId:preset.id,modelMode:getDefaultProviderModelModeForProviderPreset(preset.id),baseUrl:preset.baseUrl,authType:preset.authType,credential:"",modelRouting:createProviderModelRoutingFromPreset("provider_default"),provenance:{kind:"manual"},createdAt:now2,updatedAt:now2}}function allocateUniqueProviderProfileName(preferredName,options){let base=preferredName.trim()||"combo-copy",taken=new Set([...options?.existingNames??getProviderProfiles().map(p=>p.name)].map(name=>name.trim().toLowerCase()));if(!taken.has(base.toLowerCase()))return base;let firstCopy=`${base} copy`;if(!taken.has(firstCopy.toLowerCase()))return firstCopy;for(let i3=2;i3<1e3;i3++){let candidate=`${base} copy ${i3}`;if(!taken.has(candidate.toLowerCase()))return candidate}return`${base} copy ${randomUUID3().slice(0,8)}`}function cloneProviderProfile(sourceProfileId,options={}){let sourceId=sourceProfileId.trim(),source=getProviderProfileById(sourceId)??getProviderProfiles().find(p=>p.id===sourceId);if(!source)throw new Error(`Provider profile not found: ${sourceId}`);let credential=source.credential.trim();if(!credential)throw new Error("Source profile has no credential; cannot clone.");if(isPlaceholderProviderCredential(credential))throw new Error("Source profile credential looks like a placeholder.");let preferredName=options.name?.trim()||allocateUniqueProviderProfileName(`${source.name.trim()||"combo"} copy`),name=allocateUniqueProviderProfileName(preferredName),now2=Date.now(),draft={...source,id:randomUUID3(),name,credential,modelRouting:normalizeProviderModelRouting({...source.modelRouting}),provenance:{kind:"manual"},createdAt:now2,updatedAt:now2};return options.save===!1?draft:saveProviderProfile(draft,{activate:options.activate===!0})}function createProviderModelRoutingFromPreset(presetId){return{...getProviderModelRoutingPreset(presetId).routing}}function createCustomProviderModelRouting(values2){let primaryModel=(values2.primaryModel||"").trim(),subagentModel=(values2.sonnetModel??values2.subagentModel??"").trim(),smallFastModel=(values2.haikuModel??values2.smallFastModel??"").trim(),opusModel=(values2.opusModel??"").trim(),reviewModel=(values2.reviewModel??"").trim(),executionModel=subagentModel||primaryModel;return{presetId:"custom",primaryModel,subagentModel,smallFastModel,planModel:opusModel||primaryModel,exploreModel:executionModel,generalModel:executionModel,teamModel:executionModel,guideModel:opusModel||primaryModel,reviewModel}}function getProviderModelSlotDefaults(routing){let slotValues=getProviderModeSlotValues(routing);return{opusModel:slotValues.opusModel,sonnetModel:slotValues.sonnetModel,haikuModel:slotValues.haikuModel}}function getValidationRoleLabel(role,_language){return role==="primary"?"Primary":role==="plan"?"Opus":role==="subagent"?"Sonnet":"Haiku"}function formatValidationRoles(roles,language){return roles.map(role=>getValidationRoleLabel(role,language)).join(", ")}function getAutoRepairCandidates(profile,roles,failedModel,routing){let primaryModel=String(routing.primaryModel||"").trim();return!primaryModel||roles.includes("primary")||primaryModel===failedModel?[]:filterProviderModeAutoRepairCandidates(profile.modelMode,roles,[primaryModel])}function getRepairTargets(validation){return Array.isArray(validation.details)?validation.details.filter(detail=>detail.status==="error"||detail.kind==="compatibility"&&detail.status==="warn"&&detail.repairable===!0):[]}function applyAutoRepairRouting(routing,roles,model){let nextRouting={...routing},normalizedModel=String(model||"").trim();return roles.includes("primary")&&(nextRouting.primaryModel=normalizedModel),roles.includes("subagent")&&(nextRouting.subagentModel=normalizedModel,nextRouting.exploreModel=normalizedModel,nextRouting.generalModel=normalizedModel,nextRouting.teamModel=normalizedModel),roles.includes("fast")&&(nextRouting.smallFastModel=normalizedModel),roles.includes("plan")&&(nextRouting.planModel=normalizedModel,nextRouting.guideModel=normalizedModel),nextRouting.presetId=inferModelRoutingPresetId({primaryModel:nextRouting.primaryModel,subagentModel:nextRouting.subagentModel,smallFastModel:nextRouting.smallFastModel,planModel:nextRouting.planModel,exploreModel:nextRouting.exploreModel,generalModel:nextRouting.generalModel,teamModel:nextRouting.teamModel,guideModel:nextRouting.guideModel}),nextRouting}function cloneProfileWithRouting(profile,routing){return{...profile,modelRouting:normalizeProviderModelRouting(routing),updatedAt:Date.now()}}function buildValidationHeaders(profile){let headers={"content-type":"application/json","anthropic-version":"2023-06-01"};return profile.authType==="auth_token"?headers.authorization=`Bearer ${profile.credential}`:headers["x-api-key"]=profile.credential,headers}function extractValidationErrorMessage(raw){try{let parsed=JSON.parse(raw);if(typeof parsed?.error?.message=="string")return parsed.error.message;if(typeof parsed?.message=="string")return parsed.message}catch{}return String(raw||"").trim()}function buildResponsesValidationHeaders(profile){let headers={"content-type":"application/json",authorization:`Bearer ${profile.credential}`};return profile.authType==="api_key"&&(headers["x-api-key"]=profile.credential),headers}function shouldValidateViaOpenAIResponses(profile){let dialectMode=normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting);return dialectMode==="anthropic"?!1:dialectMode==="openai_responses"}function shouldProbeNativeToolCalling(profile,model){let normalizedBaseUrl=normalizeAnthropicBaseUrl(profile.baseUrl),normalizedModel=String(model||"").trim().toLowerCase();return normalizedBaseUrl!==normalizeAnthropicBaseUrl("https://api.anthropic.com")||!normalizedModel.includes("claude")}function hasAnthropicToolUseBlock(raw,toolName){try{let parsed=JSON.parse(raw);return Array.isArray(parsed?.content)&&parsed.content.some(block=>!!block&&typeof block=="object"&&block.type==="tool_use"&&block.name===toolName)}catch{return!1}}function hasResponsesFunctionCall(raw,toolName){try{let parsed=JSON.parse(raw);return Array.isArray(parsed?.output)&&parsed.output.some(block=>!!block&&typeof block=="object"&&block.type==="function_call"&&block.name===toolName)}catch{return!1}}function createResponsesValidationInput(text){return[{role:"user",content:[{type:"input_text",text}]}]}function createResponsesValidationTool(toolName){return{type:"function",name:toolName,description:"Compatibility probe for OpenAI Responses native function calling.",parameters:{type:"object",properties:{name:{type:"string"}},required:["name"],additionalProperties:!1},strict:!0}}async function postResponsesValidationRequest(profile,body){let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),15e3);try{let response=await fetch(`${normalizeAnthropicBaseUrl(profile.baseUrl)}/v1/responses`,{method:"POST",headers:buildResponsesValidationHeaders(profile),body:JSON.stringify(body),signal:controller.signal});return{ok:response.ok,status:response.status,raw:await response.text()}}finally{clearTimeout(timeout)}}async function runResponsesValidationAttempts(profile,body,evaluate){let lastResult={ok:!1,status:0,raw:""};for(let attemptIndex=0;attemptIndex<PROVIDER_RESPONSES_STABILITY_ATTEMPTS;attemptIndex+=1)if(lastResult=await postResponsesValidationRequest(profile,body).catch(error40=>({ok:!1,status:0,raw:error40 instanceof Error?error40.message:String(error40)})),!evaluate(lastResult))return lastResult;return lastResult}function buildAccessValidationDetail(status,model,roles,language,message){let roleLabel=formatValidationRoles(roles,language);return{status,kind:"access",repairable:!1,line:language==="zh"?`[${status.toUpperCase()}] ${roleLabel} -> ${model} \xB7 ${message}`:`[${status.toUpperCase()}] ${roleLabel} -> ${model} \xB7 ${message}`,model,roles}}function buildResponsesCompatibilityDetailFromSnapshot(snapshot,model,roles,language,apiDialectMode){let roleLabel=formatValidationRoles(roles,language),routeKeys=routeKeysForProviderValidationRoles(roles),fusionEndpointDialect=getActiveFusionEndpointForModel(model,routeKeys)?.apiDialectMode??null,decision=resolveCodingRoutePolicy({model,baseUrl:snapshot.baseUrl,snapshot,apiDialectMode,fusionEndpointDialect}),supportedModes=[snapshot.responsesToolChoiceAuto?"auto":null,snapshot.responsesToolChoiceRequired?"required":null,snapshot.responsesToolChoiceNamed?"named":null].filter(value=>value!==null),missingModes=[snapshot.responsesToolChoiceAuto?null:"auto",snapshot.responsesToolChoiceRequired?null:"required",snapshot.responsesToolChoiceNamed?null:"named"].filter(value=>value!==null),supportSummary=supportedModes.length>0?` supported=${supportedModes.join(",")}`:"",missingSummary=missingModes.length>0?` missing=${missingModes.join(",")}`:"",reasonSummary=decision.qualityReason[0]??decision.transportReason;if(decision.qualityTier==="native"||decision.qualityTier==="compatible"){let upstreamPath=getUpstreamApiPathForTransport(model,decision.transport),transportLine=decision.transport==="openai_chat_completions"?language==="zh"?`\u901A\u8FC7 OpenAI chat/completions \u539F\u751F\u8DEF\u7531\u8FD0\u884C\uFF08${upstreamPath}\uFF0Cworkflow=${decision.workflowMode}\uFF09`:`running through the OpenAI chat/completions native route (${upstreamPath}, workflow=${decision.workflowMode})`:decision.transport==="openai_responses"?language==="zh"?`\u901A\u8FC7 OpenAI Responses \u7F16\u7801\u8DEF\u7531\u8FD0\u884C\uFF08${upstreamPath}\uFF0Cworkflow=${decision.workflowMode}\uFF09`:`running through the OpenAI Responses coding route (${upstreamPath}, workflow=${decision.workflowMode})`:language==="zh"?`Anthropic \u539F\u751F tool_use \u53EF\u7528\uFF08${upstreamPath}\uFF0Cworkflow=${decision.workflowMode}\uFF09`:`Anthropic native tool_use available (${upstreamPath}, workflow=${decision.workflowMode})`;return{status:"ok",kind:"compatibility",repairable:!1,line:language==="zh"?`[OK] ${roleLabel} -> ${model} \xB7 ${transportLine} \xB7 ${reasonSummary}`:`[OK] ${roleLabel} -> ${model} \xB7 ${transportLine} \xB7 ${reasonSummary}`,model,roles}}return decision.qualityTier==="degraded"?{status:"warn",kind:"compatibility",repairable:!0,line:language==="zh"?`[WARN] ${roleLabel} -> ${model} \xB7 coding route degraded (workflow=${decision.workflowMode}).${supportSummary}${missingSummary} \xB7 ${reasonSummary}`:`[WARN] ${roleLabel} -> ${model} \xB7 coding route degraded (workflow=${decision.workflowMode}).${supportSummary}${missingSummary} \xB7 ${reasonSummary}`,model,roles}:{status:"warn",kind:"compatibility",repairable:!0,line:language==="zh"?`[WARN] ${roleLabel} -> ${model} \xB7 chat-only route (workflow=${decision.workflowMode}) \xB7 ${reasonSummary}`:`[WARN] ${roleLabel} -> ${model} \xB7 chat-only route (workflow=${decision.workflowMode}) \xB7 ${reasonSummary}`,model,roles}}function getEffortLevelsFromSnapshot(snapshot){return snapshot?snapshot.responsesReasoningXHigh?["low","medium","high","max"]:snapshot.responsesReasoningMedium?["low","medium","high"]:[]:[]}function getRouteInspectionTransport(decision){return decision.qualityTier==="native"||decision.qualityTier==="compatible"?decision.transport==="openai_chat_completions"?"chat_completions_full":decision.transport==="openai_responses"?"responses_full":"anthropic":decision.qualityTier==="degraded"?"responses_partial":decision.qualityTier==="chat_only"?"chat_only":"unreachable"}function getRouteTransportLabel(decision,upstreamPath,language){return decision.transport==="openai_chat_completions"?language==="zh"?`OpenAI chat/completions \u539F\u751F\u8DEF\u7531\uFF08${upstreamPath}\uFF09`:`OpenAI chat/completions native route (${upstreamPath})`:decision.transport==="openai_responses"?language==="zh"?`OpenAI Responses \u7F16\u7801\u8DEF\u7531\uFF08${upstreamPath}\uFF09`:`OpenAI Responses coding route (${upstreamPath})`:language==="zh"?`Anthropic \u539F\u751F tool_use\uFF08${upstreamPath}\uFF09`:`Anthropic native tool_use (${upstreamPath})`}function getRecommendedRouteModelStatus(model){return model==="gpt-5.5"||model==="gpt-5.4"?"recommended":"supported"}function buildProviderModelRouteInspection(model,baseUrl,snapshot,language,apiDialectMode,routeKeys=[]){let normalizedModel=String(model||"").trim(),effortLevels=getEffortLevelsFromSnapshot(snapshot),fusionEndpoint=getActiveFusionEndpointForModel(normalizedModel,routeKeys),fusionEndpointDialect=fusionEndpoint?.apiDialectMode??null,decision=resolveCodingRoutePolicy({model:normalizedModel,baseUrl:snapshot?.baseUrl??baseUrl,snapshot,apiDialectMode,fusionEndpointDialect:fusionEndpoint?.apiDialectMode??null}),upstreamPath=fusionEndpoint?.upstreamPathOverride||getUpstreamApiPathForTransport(normalizedModel,decision.transport),transport=getRouteInspectionTransport(decision),error40=snapshot?.responsesAccessError??snapshot?.responsesRequiredError??snapshot?.responsesNamedError??snapshot?.responsesAutoError??snapshot?.messagesError,effortSuffix=effortLevels.length>0?` \xB7 effort ${effortLevels.join("/")}`:"",workflowSuffix=` \xB7 workflow ${decision.workflowMode}`,truthSuffix=` \xB7 trust ${decision.operatorTrust} \xB7 capability ${decision.capabilityStatus} \xB7 tools ${decision.workflowToolPolicy} \xB7 health ${decision.healthTier}`,certificationSuffix=decision.certificationRef?` \xB7 cert ${decision.certificationRef}`:"",linePrefix=decision.qualityTier==="compatible"&&getRecommendedRouteModelStatus(normalizedModel)==="recommended"?"RECOMMENDED":decision.qualityTier==="native"||decision.qualityTier==="compatible"?"SUPPORTED":decision.qualityTier==="degraded"?"CONDITIONAL":"AVOID";if(decision.qualityTier==="native"||decision.qualityTier==="compatible"){let transportLabel=getRouteTransportLabel(decision,upstreamPath,language);return{model:normalizedModel,status:getRecommendedRouteModelStatus(normalizedModel),transport,policyTransport:decision.transport,upstreamPath,effortLevels,qualityTier:decision.qualityTier,workflowMode:decision.workflowMode,operatorTrust:decision.operatorTrust,capabilityStatus:decision.capabilityStatus,workflowToolPolicy:decision.workflowToolPolicy,healthTier:decision.healthTier,...decision.certificationRef?{certificationRef:decision.certificationRef}:{},transportReason:decision.transportReason,line:language==="zh"?`[${linePrefix}] ${normalizedModel} \xB7 ${transportLabel}${effortSuffix}${workflowSuffix}${truthSuffix}${certificationSuffix}`:`[${linePrefix}] ${normalizedModel} \xB7 ${transportLabel}${effortSuffix}${workflowSuffix}${truthSuffix}${certificationSuffix}`}}return{model:normalizedModel,status:decision.qualityTier==="degraded"?"conditional":"avoid",transport,policyTransport:decision.transport,upstreamPath,effortLevels,qualityTier:decision.qualityTier,workflowMode:decision.workflowMode,operatorTrust:decision.operatorTrust,capabilityStatus:decision.capabilityStatus,workflowToolPolicy:decision.workflowToolPolicy,healthTier:decision.healthTier,...decision.certificationRef?{certificationRef:decision.certificationRef}:{},transportReason:decision.transportReason,error:error40,line:language==="zh"?`[${linePrefix}] ${normalizedModel} \xB7 ${upstreamPath} \xB7 ${decision.qualityReason[0]??decision.transportReason}${effortSuffix}${workflowSuffix}${truthSuffix}${certificationSuffix}${error40?`: ${error40}`:""}`:`[${linePrefix}] ${normalizedModel} \xB7 ${upstreamPath} \xB7 ${decision.qualityReason[0]??decision.transportReason}${effortSuffix}${workflowSuffix}${truthSuffix}${certificationSuffix}${error40?`: ${error40}`:""}`}}async function probeModelAccess(profile,model,roles,language){let cachedSnapshot=getProviderCapabilitySnapshot(profile,model);if(cachedSnapshot){if(cachedSnapshot.anthropicMessagesReachable||cachedSnapshot.responsesArrayInputReachable)return buildAccessValidationDetail("ok",model,roles,language,language==="zh"?"\u6A21\u578B\u53EF\u8BBF\u95EE":"model reachable");let cachedError=cachedSnapshot.responsesAccessError??cachedSnapshot.messagesError;if(cachedError&&cachedSnapshot.compatibilityChecked)return buildAccessValidationDetail("error",model,roles,language,cachedError)}let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),15e3),roleLabel=formatValidationRoles(roles,language),useResponsesValidation=shouldValidateViaOpenAIResponses(profile),responsesAccessToolName="access_probe",url3=useResponsesValidation?`${normalizeAnthropicBaseUrl(profile.baseUrl)}/v1/responses`:`${normalizeAnthropicBaseUrl(profile.baseUrl)}/v1/messages`;try{let accessResult=useResponsesValidation?await runResponsesValidationAttempts(profile,{model,input:createResponsesValidationInput(`Call ${responsesAccessToolName} exactly once with name "alpha". Do not answer with plain text.`),tool_choice:"required",max_output_tokens:64,store:!1,tools:[createResponsesValidationTool(responsesAccessToolName)]},result2=>result2.ok):{ok:!1,status:0,raw:""},response=useResponsesValidation?null:await fetch(url3,{method:"POST",headers:buildValidationHeaders(profile),body:JSON.stringify({model,max_tokens:1,messages:[{role:"user",content:[{type:"text",text:"ping"}]}]}),signal:controller.signal}),raw=useResponsesValidation?accessResult.raw:await response.text();if(useResponsesValidation?accessResult.ok:response.ok){upsertProviderCapabilitySnapshot(profile,model,{...useResponsesValidation?{responsesArrayInputReachable:!0,responsesAccessError:void 0}:{anthropicMessagesReachable:!0,messagesError:void 0}});try{await refreshProviderModelContextWindow(model,{force:!0,profile,signal:controller.signal})}catch{}return{status:"ok",kind:"access",repairable:!1,line:language==="zh"?`[OK] ${roleLabel} -> ${model} \xB7 \u6A21\u578B\u53EF\u8BBF\u95EE`:`[OK] ${roleLabel} -> ${model} \xB7 model reachable`,model,roles}}let failureStatus=useResponsesValidation?accessResult.status:response.status,message=extractValidationErrorMessage(raw)||`HTTP ${failureStatus}`,lowered=`${failureStatus} ${message}`.toLowerCase(),isHardFailure=failureStatus===400||failureStatus===401||failureStatus===403||failureStatus===404||lowered.includes("model")||lowered.includes("not found")||lowered.includes("does not exist")||lowered.includes("unauthorized");return upsertProviderCapabilitySnapshot(profile,model,{...useResponsesValidation?{responsesArrayInputReachable:!1,responsesAccessError:message}:{anthropicMessagesReachable:!1,messagesError:message}}),{status:isHardFailure?"error":"warn",kind:"access",repairable:!1,line:`[${isHardFailure?"ERROR":"WARN"}] ${roleLabel} -> ${model} \xB7 ${message}`,model,roles}}catch(error40){let detail=error40 instanceof Error?error40.message:String(error40);return upsertProviderCapabilitySnapshot(profile,model,{...useResponsesValidation?{responsesArrayInputReachable:!1,responsesAccessError:detail}:{anthropicMessagesReachable:!1,messagesError:detail}}),{status:"warn",kind:"access",repairable:!1,line:`[WARN] ${roleLabel} -> ${model} \xB7 ${detail}`,model,roles}}finally{clearTimeout(timeout)}}async function probeNativeToolCallingCompatibility(profile,model,roles,language){if(!shouldProbeNativeToolCalling(profile,model))return null;let cachedSnapshot=getProviderCapabilitySnapshot(profile,model);if(cachedSnapshot?.compatibilityChecked)return buildResponsesCompatibilityDetailFromSnapshot(cachedSnapshot,model,roles,language,normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting));let roleLabel=formatValidationRoles(roles,language),useResponsesValidation=shouldValidateViaOpenAIResponses(profile),anthropicProbeToolName="ToolCompatibilityProbe",url3=`${normalizeAnthropicBaseUrl(profile.baseUrl)}/v1/messages`;if(!useResponsesValidation){let anthropicController=new AbortController,anthropicTimeout=setTimeout(()=>anthropicController.abort(),15e3);try{let response=await fetch(url3,{method:"POST",headers:buildValidationHeaders(profile),body:JSON.stringify({model,max_tokens:64,tool_choice:{type:"tool",name:anthropicProbeToolName},tools:[{name:anthropicProbeToolName,description:"Compatibility probe for Anthropic-style native tool calling.",input_schema:{type:"object",properties:{name:{type:"string"}},required:["name"],additionalProperties:!1}}],messages:[{role:"user",content:[{type:"text",text:`Call ${anthropicProbeToolName} exactly once with name "alpha". Do not answer with plain text.`}]}]}),signal:anthropicController.signal}),raw=await response.text();if(!response.ok){let message=extractValidationErrorMessage(raw)||`HTTP ${response.status}`;return{status:"warn",kind:"compatibility",repairable:!1,line:language==="zh"?`[WARN] ${roleLabel} -> ${model} \xB7 \u65E0\u6CD5\u786E\u8BA4 Anthropic \u539F\u751F\u5DE5\u5177\u8C03\u7528\u517C\u5BB9\u6027\uFF1A${message}`:`[WARN] ${roleLabel} -> ${model} \xB7 could not verify Anthropic native tool calling: ${message}`,model,roles}}if(hasAnthropicToolUseBlock(raw,anthropicProbeToolName))return upsertProviderCapabilitySnapshot(profile,model,{compatibilityChecked:!0,anthropicMessagesReachable:!0,anthropicToolUse:!0,messagesError:void 0}),{status:"ok",kind:"compatibility",repairable:!1,line:language==="zh"?`[OK] ${roleLabel} -> ${model} \xB7 Anthropic \u539F\u751F tool_use \u53EF\u7528`:`[OK] ${roleLabel} -> ${model} \xB7 Anthropic native tool_use available`,model,roles};let isClaudeModel=String(model||"").toLowerCase().includes("claude"),effectiveToolUse=!!isClaudeModel;if(upsertProviderCapabilitySnapshot(profile,model,{compatibilityChecked:!0,anthropicMessagesReachable:!0,anthropicToolUse:effectiveToolUse,messagesError:effectiveToolUse?void 0:extractValidationErrorMessage(raw)||void 0}),effectiveToolUse&&isClaudeModel)return{status:"ok",kind:"compatibility",repairable:!1,line:language==="zh"?`[OK] ${roleLabel} -> ${model} \xB7 Anthropic / Claude \u517C\u5BB9\u7AEF\u70B9\uFF08\u6309 claude \u6A21\u578B\u540D\u4E50\u89C2\u542F\u7528 tool_use\uFF09`:`[OK] ${roleLabel} -> ${model} \xB7 Anthropic/Claude-compatible (optimistic tool_use based on claude model name)`,model,roles}}catch(error40){let detail=error40 instanceof Error?error40.message:String(error40);return upsertProviderCapabilitySnapshot(profile,model,{compatibilityChecked:!0,anthropicToolUse:!1,messagesError:detail}),{status:"warn",kind:"compatibility",repairable:!1,line:language==="zh"?`[WARN] ${roleLabel} -> ${model} \xB7 Anthropic \u539F\u751F\u5DE5\u5177\u8C03\u7528\u63A2\u6D4B\u5931\u8D25\uFF1A${detail}`:`[WARN] ${roleLabel} -> ${model} \xB7 Anthropic native tool-calling probe failed: ${detail}`,model,roles}}finally{clearTimeout(anthropicTimeout)}}let responsesProbeToolName="tool_compatibility_probe",probePrompt=`Call ${responsesProbeToolName} exactly once with name "alpha". Do not answer with plain text.`,toolDefinition=createResponsesValidationTool(responsesProbeToolName),nextSnapshot=getProviderCapabilitySnapshot(profile,model,{allowStale:!0})??createEmptyProviderCapabilitySnapshot(profile,model),accessResponse=await runResponsesValidationAttempts(profile,{model,input:createResponsesValidationInput(probePrompt),tool_choice:"required",max_output_tokens:64,store:!1,tools:[toolDefinition]},result2=>result2.ok&&hasResponsesFunctionCall(result2.raw,responsesProbeToolName));if(nextSnapshot.responsesArrayInputReachable=accessResponse.ok,nextSnapshot.responsesAccessError=accessResponse.ok?void 0:extractValidationErrorMessage(accessResponse.raw)||accessResponse.raw,accessResponse.ok){let toolProbeEntries=[["responsesToolChoiceAuto",void 0,"responsesAutoError"],["responsesToolChoiceRequired","required","responsesRequiredError"],["responsesToolChoiceNamed",{type:"function",name:responsesProbeToolName},"responsesNamedError"]];for(let[field,toolChoice,errorField]of toolProbeEntries){let response=await runResponsesValidationAttempts(profile,{model,input:createResponsesValidationInput(probePrompt),...toolChoice!==void 0?{tool_choice:toolChoice}:{},max_output_tokens:64,store:!1,tools:[toolDefinition]},result2=>result2.ok&&hasResponsesFunctionCall(result2.raw,responsesProbeToolName)),supported=response.ok&&hasResponsesFunctionCall(response.raw,responsesProbeToolName);nextSnapshot[field]=supported,nextSnapshot[errorField]=supported?void 0:extractValidationErrorMessage(response.raw)||response.raw}let reasoningProbeEntries=[["responsesReasoningMedium","medium","responsesReasoningMediumError"],["responsesReasoningXHigh","xhigh","responsesReasoningXHighError"]];for(let[field,effort,errorField]of reasoningProbeEntries){let response=await runResponsesValidationAttempts(profile,{model,input:createResponsesValidationInput(probePrompt),tool_choice:"required",max_output_tokens:64,store:!1,reasoning:{effort},tools:[toolDefinition]},result2=>result2.ok&&hasResponsesFunctionCall(result2.raw,responsesProbeToolName)),supported=response.ok&&hasResponsesFunctionCall(response.raw,responsesProbeToolName);nextSnapshot[field]=supported,nextSnapshot[errorField]=supported?void 0:extractValidationErrorMessage(response.raw)||response.raw}}let savedSnapshot=upsertProviderCapabilitySnapshot(profile,model,{...nextSnapshot,compatibilityChecked:!0});return buildResponsesCompatibilityDetailFromSnapshot(savedSnapshot,model,roles,language,normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting))}async function probeModelAvailability(profile,model,roles,language){let access=await probeModelAccess(profile,model,roles,language);if(access.status!=="ok")return{access,compatibility:null,status:access.status};let compatibility=await probeNativeToolCallingCompatibility(profile,model,roles,language);return compatibility&&compatibility.status!=="ok"?{access,compatibility,status:compatibility.status}:{access,compatibility,status:"ok"}}async function validateProviderProfile(profile,{language="en",probe=!0}={}){if(!profile)return{status:"error",evidenceSource:probe?"live_probe":"configured_only",lines:[language==="zh"?"[ERROR] \u5F53\u524D\u6CA1\u6709\u53EF\u9A8C\u8BC1\u7684\u4F9B\u5E94\u5546\u914D\u7F6E\u3002":"[ERROR] No active provider configuration is available to validate."]};let rolesByModel=new Map,routing=normalizeProviderModelRouting(profile.modelRouting);for(let[role,model]of[["primary",routing.primaryModel],["subagent",routing.subagentModel],["fast",routing.smallFastModel],["plan",routing.planModel]]){let normalizedModel=String(model||"").trim();if(!normalizedModel)continue;let existingRoles=rolesByModel.get(normalizedModel)??[];existingRoles.push(role),rolesByModel.set(normalizedModel,existingRoles)}if(rolesByModel.size===0)return{status:"warn",evidenceSource:"configured_only",lines:[...getProviderLocalValidationWarnings(profile,{language}),language==="zh"?"[WARN] \u5F53\u524D\u914D\u7F6E\u6CA1\u6709\u663E\u5F0F\u6A21\u578B\u8DEF\u7531\uFF0C\u5C06\u7EE7\u7EED\u4F7F\u7528\u4F9B\u5E94\u5546\u9ED8\u8BA4\u6A21\u578B\u3002":"[WARN] No explicit model routing is configured. The provider default will be used."]};let localWarnings=getProviderLocalValidationWarnings(profile,{language}),results=[],cachedSnapshotCount=0,configuredOnlyCount=0;for(let[model,roles]of rolesByModel.entries()){let snapshot=probe?null:getProviderCapabilitySnapshot(profile,model,{allowStale:!0});if(snapshot){cachedSnapshotCount+=1;let reachable=snapshot.anthropicMessagesReachable||snapshot.responsesArrayInputReachable,freshness=getProviderCapabilitySnapshotFreshness(snapshot),cachedEvidence=freshness==="stale"?language==="zh"?"\u8FC7\u671F\u7F13\u5B58\u80FD\u529B\u5FEB\u7167\uFF1B\u8BF7\u8FD0\u884C provider validate \u5B9E\u65F6\u63A2\u6D4B":"stale cached capability snapshot; run provider validate for a live probe":language==="zh"?"\u7F13\u5B58\u80FD\u529B\u5FEB\u7167\uFF1B\u672A\u8FD0\u884C\u5B9E\u65F6\u63A2\u6D4B":"cached capability snapshot; live probe not run",cachedError=snapshot.responsesAccessError??snapshot.messagesError;results.push(buildAccessValidationDetail(reachable?freshness==="stale"?"warn":"ok":"error",model,roles,language,reachable?language==="zh"?`\u6A21\u578B\u53EF\u8BBF\u95EE\uFF08${cachedEvidence}\uFF09`:`model reachable (${cachedEvidence})`:`${cachedError??(language==="zh"?"\u6A21\u578B\u4E0D\u53EF\u8BBF\u95EE":"model unreachable")} (${cachedEvidence})`)),snapshot.compatibilityChecked&&results.push(buildResponsesCompatibilityDetailFromSnapshot(snapshot,model,roles,language,normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting)));continue}if(!probe){configuredOnlyCount+=1,results.push(buildAccessValidationDetail("warn",model,roles,language,language==="zh"?"\u5C1A\u672A\u9A8C\u8BC1\uFF1B\u8FD0\u884C provider validate \u8FDB\u884C\u5B9E\u65F6\u63A2\u6D4B":"not validated yet; run provider validate for a live probe"));continue}let probeResult=await probeModelAvailability(profile,model,roles,language);results.push(probeResult.access),probeResult.compatibility&&results.push(probeResult.compatibility)}return results.some(result2=>result2.status==="error")?{status:"error",evidenceSource:probe?"live_probe":cachedSnapshotCount>0&&configuredOnlyCount>0?"mixed_cached_and_configured":cachedSnapshotCount>0?"cached_snapshot":"configured_only",lines:[...localWarnings,...results.map(result2=>result2.line)],details:results}:localWarnings.length>0||results.some(result2=>result2.status==="warn")?{status:"warn",evidenceSource:probe?"live_probe":cachedSnapshotCount>0&&configuredOnlyCount>0?"mixed_cached_and_configured":cachedSnapshotCount>0?"cached_snapshot":"configured_only",lines:[...localWarnings,...results.map(result2=>result2.line)],details:results}:{status:"ok",evidenceSource:probe?"live_probe":"cached_snapshot",lines:results.map(result2=>result2.line),details:results}}async function inspectProviderModelRoute(profile,model,{language="en",probe=!0}={}){let normalizedModel=String(model||"").trim();if(!profile||!normalizedModel)return{model:normalizedModel,status:"avoid",transport:"unreachable",policyTransport:"anthropic_messages",upstreamPath:"/v1/messages",effortLevels:[],qualityTier:"blocked",workflowMode:"chat_only",operatorTrust:"untrusted",capabilityStatus:"failed",workflowToolPolicy:"blocked",healthTier:"broken",transportReason:"No provider configuration is available to inspect.",line:language==="zh"?`[AVOID] ${normalizedModel||"unknown"} \xB7 \u5F53\u524D\u6CA1\u6709\u53EF\u68C0\u67E5\u7684\u4F9B\u5E94\u5546\u914D\u7F6E`:`[AVOID] ${normalizedModel||"unknown"} \xB7 no provider configuration is available to inspect`};let snapshot=getProviderCapabilitySnapshot(profile,normalizedModel);return!snapshot&&probe&&(await probeModelAvailability(profile,normalizedModel,["primary"],language),snapshot=getProviderCapabilitySnapshot(profile,normalizedModel,{allowStale:!0})),buildProviderModelRouteInspection(normalizedModel,profile.baseUrl,snapshot,language,normalizeProviderApiDialectMode(profile.apiDialectMode,profile.modelMode,profile.modelRouting))}async function inspectProviderModelRoutes(profile,models=DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS,{language="en",probe=!0}={}){let uniqueModels=[...new Set(models.map(model=>String(model||"").trim()))].filter(Boolean),results=[];for(let model of uniqueModels)results.push(await inspectProviderModelRoute(profile,model,{language,probe}));return results}async function attemptAutoRepairProviderProfile(profile,{language="en",persist=!0}={}){let originalValidation=await validateProviderProfile(profile,{language});if(!profile||originalValidation.status!=="error"&&originalValidation.status!=="warn")return{repaired:!1,profile,validation:originalValidation,originalValidation,repairLines:[]};let nextRouting={...normalizeProviderModelRouting(profile.modelRouting)},changed=!1,repairLines=[],probeCache=new Map,failedDetails=getRepairTargets(originalValidation);for(let detail of failedDetails){let roles=Array.isArray(detail.roles)?detail.roles:[];if(roles.length===0)continue;let candidates=getAutoRepairCandidates(profile,roles,detail.model,nextRouting),replacement=null;for(let candidate of candidates){let probe=probeCache.get(candidate);if(probe||(probe=await probeModelAvailability(profile,candidate,roles,language),probeCache.set(candidate,probe)),probe.status==="ok"){replacement=candidate;break}}replacement&&(nextRouting=applyAutoRepairRouting(nextRouting,roles,replacement),changed=!0,repairLines.push(language==="zh"?`[REPAIRED] ${formatValidationRoles(roles,language)} -> ${replacement} \xB7 \u66FF\u6362 ${detail.model}`:`[REPAIRED] ${formatValidationRoles(roles,language)} -> ${replacement} \xB7 replaced ${detail.model}`))}if(!changed)return{repaired:!1,profile,validation:originalValidation,originalValidation,repairLines};let repairedProfile=cloneProfileWithRouting(profile,nextRouting),repairedValidation=await validateProviderProfile(repairedProfile,{language});return repairedValidation.status==="error"||getRepairTargets(repairedValidation).length>0?{repaired:!1,profile,validation:originalValidation,originalValidation,repairLines}:(persist&&profile.id&&profile.id!==CURRENT_PROVIDER_PROFILE_ID?saveProviderProfile(repairedProfile,{activate:!0}):persist&&applyProviderProfileToProcess(repairedProfile),{repaired:!0,profile:repairedProfile,validation:repairedValidation,originalValidation,repairLines})}function applyProviderProfileToProcess(profile){applyProviderProfileToProcessEnv(profile,{clearCaches:__name(()=>{clear3PModelCapabilityOverrideCache(),clearBetasCaches(),resetModelStringsCache()},"clearCaches"),validateBaseUrl:validateProviderBaseUrl,normalizeDialect:__name(value=>normalizeProviderApiDialectMode(value.apiDialectMode,value.modelMode,value.modelRouting),"normalizeDialect"),getSlotDefaults:getProviderModelSlotDefaults,getModelDisplayName:getProviderModelDisplayName,getModelDescription:getProviderModelDescription,serializeCapabilities:serializeCapabilitiesForModel})}function clearActiveProviderConfiguration(){writeUserSettingsUpdate(null),applyProviderProfileToProcess(null),updateProviderConfig(getProviderProfiles(),void 0),updateCompatibleExternalProviderCurrentProfile(void 0)}function activateCurrentProviderProfile(){let currentProfile=getCurrentProviderProfile();return currentProfile?(updateProviderConfig(getProviderProfiles(),void 0),applyProviderProfileToProcess(currentProfile),updateCompatibleExternalProviderCurrentProfile(void 0),currentProfile):null}function assertProviderProfileActivatable(profile){assertValidProviderBaseUrl(profile.baseUrl);let credential=String(profile.credential??"").trim();if(!credential||isPlaceholderProviderCredential(credential))throw new Error(`Cannot activate provider profile "${profile.name||profile.id}" without a stored API key/token. Set the key in /provider, or choose another line.`)}function activateProviderProfile(profileId){let profiles=getProviderProfiles(),profile=profiles.find(candidate=>candidate.id===profileId.trim());if(!profile)return null;if(profile.id==="clavue-cloud")try{let{buildOfficialAutoModelRouting:buildOfficialAutoModelRouting2}=(init_officialAutoCombo(),__toCommonJS(officialAutoCombo_exports));profile={...profile,modelRouting:buildOfficialAutoModelRouting2(),updatedAt:Date.now()}}catch{}assertProviderProfileActivatable(profile);let normalizedBaseUrl=assertValidProviderBaseUrl(profile.baseUrl),safeProfile=profile.baseUrl===normalizedBaseUrl?profile:{...profile,baseUrl:normalizedBaseUrl};try{let{materializeThirdPartyComboRouting:materializeThirdPartyComboRouting2,shouldMaterializeThirdPartyCombo:shouldMaterializeThirdPartyCombo2}=(init_thirdPartyComboCompat(),__toCommonJS(thirdPartyComboCompat_exports));if(shouldMaterializeThirdPartyCombo2(safeProfile)){let nextRouting=materializeThirdPartyComboRouting2(safeProfile.modelRouting);safeProfile={...safeProfile,modelRouting:nextRouting,updatedAt:Date.now()}}}catch{}let nextProfiles=profiles.map(p=>p.id===safeProfile.id?safeProfile:p);return updateProviderConfig(nextProfiles,safeProfile.id),writeUserSettingsUpdate(safeProfile),safeProfile.fusionConfigId&&activateFusionConfig(safeProfile.fusionConfigId),applyProviderProfileToProcess(safeProfile),updateCompatibleExternalProviderCurrentProfile(safeProfile.id),clearSessionOverlaysForUnboundProfiles(),safeProfile}function saveProviderProfile(profile,options){let credential=profile.credential.trim();if(!credential)throw new Error("Provider credential is required.");if(isPlaceholderProviderCredential(credential))throw new Error("Provider credential looks like a placeholder.");let normalizedBaseUrl=assertValidProviderBaseUrl(profile.baseUrl),normalizedProfile={...profile,name:profile.name.trim(),baseUrl:normalizedBaseUrl,credential,modelMode:getProviderModelModeForProfile({providerId:normalizeProviderId(profile.providerId,normalizedBaseUrl),modelMode:profile.modelMode,modelRouting:profile.modelRouting}),modelRouting:normalizeProviderModelRouting(profile.modelRouting),authType:normalizeAuthType(profile.authType),providerId:normalizeProviderId(profile.providerId,normalizedBaseUrl),apiDialectMode:normalizeProviderApiDialectMode(profile.apiDialectMode,getProviderModelModeForProfile({providerId:normalizeProviderId(profile.providerId,normalizedBaseUrl),modelMode:profile.modelMode,modelRouting:profile.modelRouting}),profile.modelRouting),provenance:profile.provenance?.kind==="synthetic_current_env"?{kind:"current_env_adopted",adoptedAt:Date.now()}:normalizeProviderProfileProvenance(profile.provenance),updatedAt:Date.now()},profiles=getProviderProfiles(),index=profiles.findIndex(existingProfile=>existingProfile.id===normalizedProfile.id),nextProfiles=[...profiles];index>=0?nextProfiles[index]={...normalizedProfile,createdAt:nextProfiles[index]?.createdAt??normalizedProfile.createdAt}:nextProfiles.push(normalizedProfile);let currentActiveProviderId=getActiveProviderProfileId(),shouldActivate=options?.activate===!0||currentActiveProviderId===normalizedProfile.id;return shouldActivate&&assertProviderProfileActivatable(normalizedProfile),updateProviderConfig(nextProfiles,shouldActivate?normalizedProfile.id:currentActiveProviderId),shouldActivate&&(writeUserSettingsUpdate(normalizedProfile),applyProviderProfileToProcess(normalizedProfile),updateCompatibleExternalProviderCurrentProfile(normalizedProfile.id)),normalizedProfile.id!=="clavue-cloud"&&scheduleProviderCloudSyncSafe("profile-save"),normalizedProfile}function deleteProviderProfile(profileId){let targetId=profileId.trim(),profiles=getProviderProfiles().filter(profile=>profile.id!==targetId),currentActiveProviderId=getActiveProviderProfileId(),nextActiveProviderId=currentActiveProviderId===targetId?void 0:currentActiveProviderId;updateProviderConfig(profiles,nextActiveProviderId,{removedProfileIds:targetId?[targetId]:[],allowEmptyWipe:profiles.length===0}),scheduleProviderCloudSyncSafe("profile-delete"),currentActiveProviderId===profileId&&(writeUserSettingsUpdate(null),applyProviderProfileToProcess(null),updateCompatibleExternalProviderCurrentProfile(nextActiveProviderId))}function scheduleProviderCloudSyncSafe(reason){try{let{scheduleProviderCloudSync:scheduleProviderCloudSync2}=(init_providerCloudSync(),__toCommonJS(providerCloudSync_exports));scheduleProviderCloudSync2?.(reason)}catch{}}function migrateNormalizedProviderBaseUrls(){let globalConfigChanged=!1,settingsChanged=!1,globalConfig2=getGlobalConfig()??{},secureStorage=getSecureStorage(),existingStorageData=secureStorage.read()??{},currentProviderSecrets=getStoredProviderSecretRecords(),nextProviderSecrets={...currentProviderSecrets},providerSecretsChanged=!1,nextProfiles=(Array.isArray(globalConfig2.clavueProviderProfiles)?globalConfig2.clavueProviderProfiles:[]).map(profile=>{if(!profile||typeof profile!="object")return profile;let nextProfile={...profile},nextBaseUrl=normalizeAnthropicBaseUrl(profile.baseUrl);nextBaseUrl&&nextBaseUrl!==profile.baseUrl&&(globalConfigChanged=!0,nextProfile.baseUrl=nextBaseUrl);let profileId=typeof profile.id=="string"?profile.id.trim():"",legacyCredential=typeof profile.credential=="string"?profile.credential.trim():"";if(profileId&&legacyCredential){let nextSecret={credential:legacyCredential,authType:normalizeAuthType(profile.authType)},currentSecret=currentProviderSecrets[profileId];(!currentSecret||currentSecret.credential!==nextSecret.credential||currentSecret.authType!==nextSecret.authType)&&(nextProviderSecrets[profileId]=nextSecret,providerSecretsChanged=!0),delete nextProfile.credential,globalConfigChanged=!0}return nextProfile});if(providerSecretsChanged&&!secureStorage.update({...existingStorageData,providerProfiles:Object.keys(nextProviderSecrets).length>0?nextProviderSecrets:void 0}).success)return;globalConfigChanged&&saveGlobalConfig(current=>({...current,clavueProviderProfiles:nextProfiles}));let settingsEnv=getSettingsEnv(),rawBase=settingsEnv.CLAVUE_BASE_URL||settingsEnv.ANTHROPIC_BASE_URL,normalizedEnvBaseUrl=normalizeAnthropicBaseUrl(rawBase),settingsEnvUpdate={};rawBase&&normalizedEnvBaseUrl&&normalizedEnvBaseUrl!==rawBase&&(settingsChanged=!0,settingsEnvUpdate.CLAVUE_BASE_URL=normalizedEnvBaseUrl,settingsEnvUpdate.ANTHROPIC_BASE_URL=normalizedEnvBaseUrl);for(let secretKey of["CLAVUE_API_KEY","CLAVUE_AUTH_TOKEN","ANTHROPIC_API_KEY","ANTHROPIC_AUTH_TOKEN"])settingsEnv[secretKey]&&(settingsChanged=!0,settingsEnvUpdate[secretKey]=void 0);settingsChanged&&updateSettingsForSource("userSettings",{env:settingsEnvUpdate});let liveBaseUrl=normalizeAnthropicBaseUrl(process.env.ANTHROPIC_BASE_URL);process.env.ANTHROPIC_BASE_URL&&liveBaseUrl&&liveBaseUrl!==process.env.ANTHROPIC_BASE_URL&&(process.env.ANTHROPIC_BASE_URL=liveBaseUrl)}function getStoredFusionEndpointSecrets(){let stored=getSecureStorage().read()?.fusionEndpointSecrets;return!stored||typeof stored!="object"?{}:Object.fromEntries(Object.entries(stored).map(([endpointId,value])=>{let normalizedId=endpointId.trim(),normalizedValue=normalizeProviderSecretRecord(value);return normalizedId&&normalizedValue?[normalizedId,normalizedValue]:null}).filter(entry=>entry!==null))}function persistFusionEndpointSecrets(endpoints){let secureStorage=getSecureStorage(),existingData=secureStorage.read()??{},currentSecrets=getStoredFusionEndpointSecrets(),nextSecrets=Object.fromEntries(endpoints.map(endpoint=>{let id=endpoint.id.trim(),credential=endpoint.credential.trim();return!id||!credential||isPlaceholderProviderCredential(credential)?null:[id,{credential,authType:normalizeAuthType(endpoint.authType)}]}).filter(entry=>entry!==null));if(areProviderSecretMapsEqual(currentSecrets,nextSecrets))return;if(!secureStorage.update({...existingData,fusionEndpointSecrets:Object.keys(nextSecrets).length>0?nextSecrets:void 0}).success)throw new Error("Failed to persist fusion endpoint credentials to secure storage")}function scrubStoredFusionConfig(config2){return{...config2,endpoints:config2.endpoints.map(endpoint=>{let{credential:_credential,...rest2}=endpoint;return rest2})}}function normalizeFusionEndpoint(value,secrets){if(!value||typeof value!="object")return null;let raw=value,id=typeof raw.id=="string"?raw.id.trim():"",baseUrl=normalizeAnthropicBaseUrl(typeof raw.baseUrl=="string"?raw.baseUrl:"");if(!id||!baseUrl)return null;let apiDialectMode=typeof raw.apiDialectMode=="string"&&(raw.apiDialectMode==="anthropic"||raw.apiDialectMode==="openai_responses")?raw.apiDialectMode:null,upstreamPathOverride=typeof raw.upstreamPathOverride=="string"&&["/v1/messages","/v1/responses","/v1/chat/completions",""].includes(raw.upstreamPathOverride)?raw.upstreamPathOverride:"",modelPrefixes=Array.isArray(raw.modelPrefixes)?raw.modelPrefixes.map(prefix=>typeof prefix=="string"?prefix.trim():"").filter(Boolean):[],routeKeys=Array.isArray(raw.routeKeys)?raw.routeKeys.map(key=>typeof key=="string"?key.trim().toLowerCase():"").filter(Boolean):[],secret=secrets[id],credential=secret?.credential??"";return{id,name:typeof raw.name=="string"?raw.name.trim():id,baseUrl,authType:normalizeAuthType(secret?.authType??(typeof raw.authType=="string"?raw.authType:void 0)),credential,modelPrefixes,...routeKeys.length>0&&{routeKeys},apiDialectMode,upstreamPathOverride}}function normalizeFusionConfig(value,secrets){if(!value||typeof value!="object")return null;let raw=value,id=typeof raw.id=="string"?raw.id.trim():"";if(!id)return null;let endpoints=Array.isArray(raw.endpoints)?raw.endpoints.map(endpoint=>normalizeFusionEndpoint(endpoint,secrets)).filter(entry=>entry!==null):[];return{id,name:typeof raw.name=="string"?raw.name.trim():id,endpoints,createdAt:typeof raw.createdAt=="number"&&Number.isFinite(raw.createdAt)?raw.createdAt:Date.now(),updatedAt:typeof raw.updatedAt=="number"&&Number.isFinite(raw.updatedAt)?raw.updatedAt:Date.now()}}function getStoredFusionConfigs(){let config2=getProviderConfig(),secrets=getStoredFusionEndpointSecrets();return(Array.isArray(config2.clavueFusionConfigs)?config2.clavueFusionConfigs:[]).map(raw=>normalizeFusionConfig(raw,secrets)).filter(entry=>entry!==null)}function getStoredActiveFusionConfigId(){let config2=getProviderConfig();return typeof config2.clavueActiveFusionConfigId=="string"?config2.clavueActiveFusionConfigId.trim():""}function updateFusionConfigState(configs,activeConfigId){persistFusionEndpointSecrets(configs.flatMap(config2=>config2.endpoints)),saveGlobalConfig(current=>({...current,clavueFusionConfigs:configs.length>0?configs.map(scrubStoredFusionConfig):void 0,clavueActiveFusionConfigId:activeConfigId||void 0}))}function getFusionConfigs(){return getStoredFusionConfigs()}function getFusionConfigById(configId){return getFusionConfigs().find(config2=>config2.id===configId.trim())??null}function saveFusionConfig(config2,options){let normalizedEndpoints=config2.endpoints.map(endpoint=>{let credential=endpoint.credential.trim();if(!credential)throw new Error(`Fusion endpoint "${endpoint.name||endpoint.id}" requires a credential.`);if(isPlaceholderProviderCredential(credential))throw new Error(`Fusion endpoint "${endpoint.name||endpoint.id}" credential looks like a placeholder.`);return{...endpoint,name:endpoint.name.trim(),baseUrl:normalizeAnthropicBaseUrl(endpoint.baseUrl),credential,modelPrefixes:endpoint.modelPrefixes.map(prefix=>prefix.trim()).filter(Boolean),routeKeys:endpoint.routeKeys?.map(key=>key.trim().toLowerCase()).filter(Boolean)??[],authType:normalizeAuthType(endpoint.authType),apiDialectMode:endpoint.apiDialectMode==="anthropic"||endpoint.apiDialectMode==="openai_responses"?endpoint.apiDialectMode:null,upstreamPathOverride:["/v1/messages","/v1/responses","/v1/chat/completions",""].includes(endpoint.upstreamPathOverride)?endpoint.upstreamPathOverride:""}}),normalizedConfig={id:config2.id.trim(),name:config2.name.trim(),endpoints:normalizedEndpoints,createdAt:config2.createdAt||Date.now(),updatedAt:Date.now()},configs=getFusionConfigs(),index=configs.findIndex(existing=>existing.id===normalizedConfig.id),nextConfigs=[...configs];index>=0?nextConfigs[index]={...normalizedConfig,createdAt:nextConfigs[index]?.createdAt??normalizedConfig.createdAt}:nextConfigs.push(normalizedConfig);let currentActiveId=getStoredActiveFusionConfigId(),shouldActivate=options?.activate===!0||currentActiveId===normalizedConfig.id;return updateFusionConfigState(nextConfigs,shouldActivate?normalizedConfig.id:currentActiveId),normalizedConfig}function deleteFusionConfig(configId){let configs=getFusionConfigs().filter(config2=>config2.id!==configId),currentActiveId=getStoredActiveFusionConfigId();updateFusionConfigState(configs,currentActiveId===configId?void 0:currentActiveId)}function getActiveFusionConfigId(){return getStoredActiveFusionConfigId()||void 0}function getActiveFusionConfig(){let activeId=getActiveFusionConfigId();return activeId?getFusionConfigById(activeId):null}function activateFusionConfig(configId){let config2=getFusionConfigById(configId);return config2?(updateFusionConfigState(getFusionConfigs(),config2.id),config2):null}function resolveFusionEndpointForModel(config2,model,routeKeys=[]){let normalizedModel=model.trim().toLowerCase(),normalizedRouteKeys=routeKeys.map(key=>key.trim().toLowerCase()).filter(Boolean);if(!normalizedModel&&normalizedRouteKeys.length===0)return null;if(normalizedRouteKeys.length>0)for(let routeKey of normalizedRouteKeys){let routeMatch=config2.endpoints.find(endpoint=>(endpoint.routeKeys??[]).some(key=>key.trim().toLowerCase()===routeKey))??null;if(routeMatch)return routeMatch}if(!normalizedModel)return null;let bestMatch=null,bestPrefixLen=-1;for(let endpoint of config2.endpoints){for(let prefix of endpoint.modelPrefixes){let normalizedPrefix=prefix.toLowerCase();normalizedModel.startsWith(normalizedPrefix)&&normalizedPrefix.length>bestPrefixLen&&(bestPrefixLen=normalizedPrefix.length,bestMatch=endpoint)}endpoint.modelPrefixes.length===0&&bestMatch===null&&(bestMatch=endpoint)}return bestMatch}function isFusionModeActive(){return getActiveFusionConfigId()!==void 0}function getActiveFusionEndpointForModel(model,routeKeys=[]){try{let config2=getActiveFusionConfig();return config2?resolveFusionEndpointForModel(config2,model,routeKeys):null}catch{return null}}function markProviderOnboardingComplete(){saveGlobalConfig(current=>({...current,hasCompletedOnboarding:!0,lastOnboardingVersion:APP_VERSION}))}var hasMigratedNormalizedProviderBaseUrls,hasHealedOrphanActiveProviderProfileId,DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS,PROVIDER_PRESETS,PROVIDER_MODEL_ROUTING_PRESETS,PROVIDER_MODEL_CATALOG,PROVIDER_CAPABILITY_CACHE_TTL_MS,PROVIDER_CAPABILITY_CACHE_VERSION,PROVIDER_RESPONSES_STABILITY_ATTEMPTS,COMPATIBLE_EXTERNAL_PROVIDER_SOURCE_IDS,COMPATIBLE_EXTERNAL_PROVIDER_CONFIG_PATHS,COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED,hasAttemptedCompatibleExternalProviderImport,VERIFIED_MODEL_CAPABILITIES,contextWindowCatalogInflight,providerContextWindowRefreshTimer,init_providerProfiles=__esm({"src/utils/providerProfiles.ts"(){init_branding();init_betas2();init_debug();init_config3();init_modelSupportOverrides();init_modelStrings();init_sessionComboRouting();init_providerProfileMetadata();init_providerCredentials();init_providerRuntimeCore();init_providerProfileProcessEnv();init_codingToolSurface();init_state();init_providerModes();init_providerRoutingRepair();init_paths();init_codingRoutePolicy();init_openaiResponsesConfig();init_settings2();init_secureStorage();init_providerContextCatalog();init_providerContextCatalog();__name(writeFileSyncAtomic,"writeFileSyncAtomic");__name(normalizeProviderPanelSelection,"normalizeProviderPanelSelection");__name(routeKeysForProviderValidationRoles,"routeKeysForProviderValidationRoles");hasMigratedNormalizedProviderBaseUrls=!1,hasHealedOrphanActiveProviderProfileId=!1,DEFAULT_PROVIDER_ROUTE_DIAGNOSTIC_MODELS=["gpt-5.6-max","gpt-5.6-ultra","gpt-5.5","gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark","grok-4.3","grok-4.5","grok-build-0.1","grok-composer-2.5-fast","deepseek-reasoner"],PROVIDER_PRESETS=[{id:"custom",name:"\u81EA\u5B9A\u4E49\u914D\u7F6E",description:"\u624B\u52A8\u586B\u5199\u4EFB\u610F\u517C\u5BB9 API URL \u548C\u5BC6\u94A5",baseUrl:"",authType:"api_key"},{id:"anthropic",name:"Anthropic",description:"\u5B98\u65B9 Anthropic API",baseUrl:"https://api.anthropic.com",authType:"api_key"},{id:"openai",name:"OpenAI",description:"\u5B98\u65B9 OpenAI API\uFF08Responses / Chat Completions \u517C\u5BB9\uFF09",baseUrl:"https://api.openai.com/v1",authType:"api_key"},{id:"openrouter",name:"OpenRouter (Anthropic)",description:"OpenRouter Anthropic \u517C\u5BB9\u5165\u53E3",baseUrl:"https://openrouter.ai/api/anthropic",authType:"api_key"},{id:"openrouter_openai",name:"OpenRouter (OpenAI)",description:"OpenRouter OpenAI \u517C\u5BB9\u5165\u53E3\uFF08GPT / Grok / \u591A\u6A21\u578B\uFF09",baseUrl:"https://openrouter.ai/api/v1",authType:"api_key"},{id:"deepseek",name:"DeepSeek",description:"DeepSeek OpenAI \u517C\u5BB9\u63A5\u53E3",baseUrl:"https://api.deepseek.com/v1",authType:"api_key"},{id:"glm",name:"GLM",description:"\u667A\u8C31 AI Claude \u517C\u5BB9\u63A5\u53E3",baseUrl:"https://open.bigmodel.cn/api/anthropic",authType:"auth_token"},{id:"minimax",name:"MiniMax",description:"MiniMax Claude \u517C\u5BB9\u63A5\u53E3",baseUrl:"https://api.minimaxi.com/anthropic",authType:"auth_token"},{id:"kimi",name:"Kimi",description:"Moonshot Kimi Coding \u63A5\u53E3",baseUrl:"https://api.kimi.com/coding/",authType:"auth_token"},{id:"xai",name:"xAI (Grok)",description:"xAI Grok OpenAI \u517C\u5BB9\u63A5\u53E3",baseUrl:"https://api.x.ai/v1",authType:"api_key"},{id:"gemini",name:"Google Gemini",description:"Google Gemini\uFF08\u7EDF\u4E00\u8D70 OpenAI \u517C\u5BB9\u7AEF\u70B9 + \u4E13\u7528\u540E\u5904\u7406\uFF0C\u652F\u6301 gemini-3-5-flash / gemini-3-5-flash-high \u7B49\u5168\u7CFB\u5217\uFF0C\u9AD8\u9636\u53D8\u4F53\u81EA\u52A8\u542F\u7528\u66F4\u5F3A reasoning \u63D0\u53D6\uFF09",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",authType:"api_key"}],PROVIDER_MODEL_ROUTING_PRESETS=[{id:"provider_default",name:"Provider defaults",description:"Keep the provider defaults for all slots. Override individual models only when needed.",routing:{presetId:"provider_default",primaryModel:"",subagentModel:"",smallFastModel:"",planModel:"",exploreModel:"",generalModel:"",teamModel:"",guideModel:"",reviewModel:""}},{id:"claude_code_heritage",name:"Anthropic-native heritage",description:"Anthropic-native default path with Sonnet for execution, Haiku for fast work, and Opus for planning.",routing:{presetId:"claude_code_heritage",primaryModel:"claude-sonnet-4-6",subagentModel:"claude-sonnet-4-6",smallFastModel:"claude-haiku-4-5",planModel:"claude-opus-4-6",exploreModel:"claude-sonnet-4-6",generalModel:"claude-sonnet-4-6",teamModel:"claude-sonnet-4-6",guideModel:"claude-opus-4-6",reviewModel:""}},{id:"gpt_5_5_max",name:"GPT-5.5 max capability",description:"Primary, workhorse, team, and planning slots on GPT-5.5 with GPT-5.3 Codex kept for fast helper work.",routing:{presetId:"gpt_5_5_max",primaryModel:"gpt-5.5",subagentModel:"gpt-5.5",smallFastModel:"gpt-5.3-codex",planModel:"gpt-5.5",exploreModel:"gpt-5.5",generalModel:"gpt-5.5",teamModel:"gpt-5.5",guideModel:"gpt-5.5",reviewModel:""}},{id:"gpt_5_4_codex",name:"GPT-5.4 + GPT-5.3 Codex",description:"Primary slot on GPT-5.4. Sonnet and Haiku slots on GPT-5.3 Codex.",routing:{presetId:"gpt_5_4_codex",primaryModel:"gpt-5.4",subagentModel:"gpt-5.3-codex",smallFastModel:"gpt-5.3-codex",planModel:"gpt-5.4",exploreModel:"gpt-5.3-codex",generalModel:"gpt-5.3-codex",teamModel:"gpt-5.3-codex",guideModel:"gpt-5.4",reviewModel:""}},{id:"gpt_5_1_stable",name:"GPT-5.1 stable",description:"Use GPT-5.1 across the primary, Haiku, Sonnet, and Opus slots.",routing:{presetId:"gpt_5_1_stable",primaryModel:"gpt-5.1",subagentModel:"gpt-5.1",smallFastModel:"gpt-5.1",planModel:"gpt-5.1",exploreModel:"gpt-5.1",generalModel:"gpt-5.1",teamModel:"gpt-5.1",guideModel:"gpt-5.1",reviewModel:""}},{id:"gpt_5_3_codex",name:"GPT-5.3 Codex everywhere",description:"Run the primary, Haiku, Sonnet, and Opus slots on GPT-5.3 Codex.",routing:{presetId:"gpt_5_3_codex",primaryModel:"gpt-5.3-codex",subagentModel:"gpt-5.3-codex",smallFastModel:"gpt-5.3-codex",planModel:"gpt-5.3-codex",exploreModel:"gpt-5.3-codex",generalModel:"gpt-5.3-codex",teamModel:"gpt-5.3-codex",guideModel:"gpt-5.3-codex",reviewModel:""}},{id:"grok_current",name:"Grok 4.5 native coding route",description:"xAI Grok via OpenAI-compatible /v1/chat/completions: grok-4.5 primary/plan/judge, grok-build-0.1 workhorse, grok-composer-2.5-fast scout/smallFast.",routing:{presetId:"grok_current",primaryModel:"grok-4.5",subagentModel:"grok-build-0.1",smallFastModel:"grok-composer-2.5-fast",planModel:"grok-4.5",exploreModel:"grok-build-0.1",generalModel:"grok-composer-2.5-fast",teamModel:"grok-build-0.1",guideModel:"grok-4.5",reviewModel:"grok-build-0.1"}},{id:"grok_45_composer_combo",name:"Grok 4.5 + Composer scout combo",description:"Mainline-friendly Grok combo: grok-4.5 executor, composer-2.5-fast plan/scout. Prefer deep_grok45_cross_family when 1+1>2 cross-family review is required.",routing:{presetId:"grok_45_composer_combo",primaryModel:"grok-4.5",subagentModel:"grok-build-0.1",smallFastModel:"grok-composer-2.5-fast",planModel:"grok-composer-2.5-fast",exploreModel:"grok-build-0.1",generalModel:"grok-composer-2.5-fast",teamModel:"grok-build-0.1",guideModel:"grok-4.5",reviewModel:"grok-4.5"}},{id:"deep_grok45_cross_family",name:"DeepSeek Flash plan + Grok 4.5 hand/eye",description:"Three-slot extreme: grok-4.5 primary (hand), deepseek-v4-flash plan/scout, deepseek-v4-pro or flash review (cross-family 1+1>2). Path Tier T0 still primary-only.",routing:{presetId:"deep_grok45_cross_family",primaryModel:"grok-4.5",subagentModel:"deepseek-v4-flash",smallFastModel:"deepseek-v4-flash",planModel:"deepseek-v4-flash",exploreModel:"deepseek-v4-flash",generalModel:"deepseek-v4-flash",teamModel:"grok-4.5",guideModel:"deepseek-v4-flash",reviewModel:"deepseek-v4-flash"}},{id:"minimax_m3",name:"MiniMax M3 coding route",description:"All slots on MiniMax-M3 via OpenAI chat/completions (gateway-native tool_calls).",routing:{presetId:"minimax_m3",primaryModel:"MiniMax-M3",subagentModel:"MiniMax-M3",smallFastModel:"MiniMax-M3",planModel:"MiniMax-M3",exploreModel:"MiniMax-M3",generalModel:"MiniMax-M3",teamModel:"MiniMax-M3",guideModel:"MiniMax-M3",reviewModel:"MiniMax-M3"}},{id:"kimi_k26",name:"Kimi K2.6 coding route",description:"All slots on Kimi-K2.6 via OpenAI chat/completions.",routing:{presetId:"kimi_k26",primaryModel:"Kimi-K2.6",subagentModel:"Kimi-K2.6",smallFastModel:"Kimi-K2.6",planModel:"Kimi-K2.6",exploreModel:"Kimi-K2.6",generalModel:"Kimi-K2.6",teamModel:"Kimi-K2.6",guideModel:"Kimi-K2.6",reviewModel:"Kimi-K2.6"}},{id:"deepseek_v4_pro",name:"DeepSeek V4 Pro coding route",description:"DeepSeek v4 Pro primary with v4 Flash helpers for scout/smallFast efficiency.",routing:{presetId:"deepseek_v4_pro",primaryModel:"deepseek-v4-pro",subagentModel:"deepseek-v4-pro",smallFastModel:"deepseek-v4-flash",planModel:"deepseek-v4-pro",exploreModel:"deepseek-v4-flash",generalModel:"deepseek-v4-flash",teamModel:"deepseek-v4-pro",guideModel:"deepseek-v4-pro",reviewModel:"deepseek-v4-pro"}},{id:"glm_52",name:"GLM-5.2 coding route",description:"All slots on GLM-5.2 via OpenAI chat/completions.",routing:{presetId:"glm_52",primaryModel:"GLM-5.2",subagentModel:"GLM-5.2",smallFastModel:"GLM-5.2",planModel:"GLM-5.2",exploreModel:"GLM-5.2",generalModel:"GLM-5.2",teamModel:"GLM-5.2",guideModel:"GLM-5.2",reviewModel:"GLM-5.2"}},{id:"qwen36_gateway",name:"Qwen3.6 gateway route (chat-first)",description:"Qwen3.6 35B-A3B primary + 27B helpers. Native tools require gateway tool-call-parser; otherwise use as chat/plan only or pair tools with another family.",routing:{presetId:"qwen36_gateway",primaryModel:"qwen3.6:35b-a3b",subagentModel:"qwen3.6:27b",smallFastModel:"qwen3.6:27b",planModel:"qwen3.6:35b-a3b",exploreModel:"qwen3.6:27b",generalModel:"qwen3.6:27b",teamModel:"qwen3.6:27b",guideModel:"qwen3.6:35b-a3b",reviewModel:"qwen3.6:35b-a3b"}},{id:"gpt55_deepseek_combo",name:"GPT-5.5 + DeepSeek 6-layer combo",description:"6-layer model: GPT-5.5 as primary/compute (plan+guide), DeepSeek v4 Flash lightweight (smallFast+general), DeepSeek v4 Pro medium/team (subagent+explore+team), Codex review. Quality-first combo route; grow lightweight share only when verification stays strong. This uses DeepSeek Flash for helper slots, not Codex Spark/DSpark aliases.",routing:{presetId:"gpt55_deepseek_combo",primaryModel:"gpt-5.5",subagentModel:"deepseek-v4-pro",smallFastModel:"deepseek-v4-flash",planModel:"gpt-5.5",exploreModel:"deepseek-v4-pro",generalModel:"deepseek-v4-flash",teamModel:"deepseek-v4-pro",guideModel:"gpt-5.5",reviewModel:"codex-auto-review"}},{id:"deepseek_gpt_combo",name:"DeepSeek efficient combo",description:"DeepSeek v4 Pro primary with DeepSeek v4 Flash for high-volume helper, summary, extract, verification, and team work. GPT-5.5 remains reserved for planning/guide augmentation.",routing:{presetId:"deepseek_gpt_combo",primaryModel:"deepseek-v4-pro",subagentModel:"deepseek-v4-flash",smallFastModel:"deepseek-v4-flash",planModel:"gpt-5.5",exploreModel:"deepseek-v4-flash",generalModel:"deepseek-v4-flash",teamModel:"deepseek-v4-flash",guideModel:"gpt-5.5",reviewModel:"codex-auto-review"}},{id:"custom",name:"Custom model routing",description:"Set primary, Haiku, Sonnet, and Opus slots yourself. Derived roles update automatically.",routing:{presetId:"custom",primaryModel:"",subagentModel:"",smallFastModel:"",planModel:"",exploreModel:"",generalModel:"",teamModel:"",guideModel:"",reviewModel:""}}],PROVIDER_MODEL_CATALOG=[{id:"gpt-5.6-max",name:"GPT-5.6 Max",description:"Provider-described strongest GPT-5.6 family model; usable in any configured model slot without changing Clavue orchestration policy",verified:!1,capabilities:["effort","thinking","max_effort","tool_use"]},{id:"gpt-5.6-ultra",name:"GPT-5.6 Ultra",description:"Provider-described GPT-5.6 variant with internal parallel-agent execution; treated as one model endpoint and usable in any configured slot",verified:!1,capabilities:["effort","thinking","max_effort","tool_use"]},{id:"gpt-5.5",name:"GPT-5.5",description:"Maximum-capability GPT route for validated OpenAI Responses-compatible coding gateways",verified:!1,capabilities:["effort","thinking","adaptive_thinking","max_effort"]},{id:"gpt-5.4",name:"GPT-5.4",description:"Probe-required Primary slot model on Anthropic-compatible GPT gateways",verified:!1,capabilities:["effort","thinking","adaptive_thinking"]},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",description:"Gateway-dependent execution model; only use it after this provider validates stable native tool calling",verified:!1,capabilities:["effort","thinking"]},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",description:"Experimental Codex route; only use it when this provider explicitly validates support",verified:!1,capabilities:["effort","thinking"]},{id:"gpt-5.1",name:"GPT-5.1",description:"Provider-dependent fallback when a gateway does not fully expose GPT-5.4",verified:!1,capabilities:["effort","thinking","adaptive_thinking"]},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",description:"Native Anthropic everyday coding model",verified:!0,capabilities:["thinking","adaptive_thinking"]},{id:"claude-opus-4-6",name:"Claude Opus 4.6",description:"Native Anthropic highest-capability model",verified:!0,capabilities:["thinking","adaptive_thinking"]},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",description:"Native Anthropic fast-response model for the Haiku slot",verified:!0,capabilities:[]},{id:"grok-4.3",name:"Grok 4.3",description:"xAI Grok 4.3 \u2014 long-context reasoning; chat/completions with reasoning_effort none|low|medium|high",verified:!0,capabilities:["vision","tool_use","thinking","effort"]},{id:"grok-4.5",name:"Grok 4.5",description:"xAI Grok 4.5 \u2014 flagship coding/reasoning on /v1/chat/completions; native tool_calls + reasoning_content",verified:!0,capabilities:["vision","tool_use","thinking","effort"]},{id:"grok-build-0.1",name:"Grok Build 0.1",description:"xAI Grok Build 0.1 \u2014 agentic coding workhorse for explore/subagent/team slots",verified:!0,capabilities:["tool_use","thinking"]},{id:"grok-composer-2.5-fast",name:"Grok Composer 2.5 Fast",description:"xAI Grok Composer 2.5 Fast \u2014 scout/smallFast/extract helper with native function tools",verified:!0,capabilities:["tool_use","thinking"]},{id:"grok-4",name:"Grok 4",description:"xAI Grok 4 - frontier reasoning model",verified:!1,capabilities:["vision","tool_use","thinking"]},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Google Gemini 1.5 Flash - fast, long-context",verified:!1,capabilities:["vision","tool_use","long_context"]},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",description:"Google Gemini 2.0 Flash (experimental)",verified:!1,capabilities:["vision","tool_use"]},{id:"gemini-3-5-flash",name:"Gemini 3.5 Flash",description:"Google Gemini 3.5 Flash - fast, high-capability",verified:!1,capabilities:["vision","tool_use","long_context","adaptive_thinking"]},{id:"gemini-3-5-flash-high",name:"Gemini 3.5 Flash (High)",description:"Google Gemini 3.5 Flash High - maximized reasoning mode",verified:!1,capabilities:["vision","tool_use","long_context","adaptive_thinking","thinking","effort"]},{id:"MiniMax-M3",name:"MiniMax M3",description:"MiniMax M3 on OpenAI chat/completions; native tool_calls (gateway may emit concatenated arg JSON \u2014 Clavue recovers)",verified:!0,capabilities:["tool_use"]},{id:"Kimi-K2.6",name:"Kimi K2.6",description:"Moonshot Kimi K2.6 on OpenAI chat/completions; tool ids may use functions.name:index form",verified:!0,capabilities:["tool_use"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",description:"DeepSeek V4 Pro on chat/completions with reasoning_content replay for tool loops",verified:!0,capabilities:["tool_use","thinking"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",description:"DeepSeek V4 Flash lightweight scout/smallFast helper",verified:!0,capabilities:["tool_use","thinking"]},{id:"GLM-5.2",name:"GLM 5.2",description:"Zhipu GLM-5.2 on OpenAI chat/completions (also works on /v1/messages gateways)",verified:!0,capabilities:["tool_use"]},{id:"glm-5.2",name:"glm-5.2",description:"Lowercase alias for GLM-5.2",verified:!0,capabilities:["tool_use"]},{id:"qwen3.6:35b-a3b",name:"Qwen3.6 35B-A3B",description:"Qwen3.6 MoE \u2014 chat OK; native tools require gateway --tool-call-parser (otherwise tool routes 400)",verified:!0,capabilities:["tool_use"]},{id:"qwen3.6:27b",name:"Qwen3.6 27B",description:"Qwen3.6 27B \u2014 chat OK; native tools require gateway --tool-call-parser",verified:!0,capabilities:["tool_use"]}],PROVIDER_CAPABILITY_CACHE_TTL_MS=3600*1e3,PROVIDER_CAPABILITY_CACHE_VERSION=3,PROVIDER_RESPONSES_STABILITY_ATTEMPTS=2,COMPATIBLE_EXTERNAL_PROVIDER_SOURCE_IDS=["ccjk","zcf"],COMPATIBLE_EXTERNAL_PROVIDER_CONFIG_PATHS=[{sourceId:"ccjk",path:join21(homedir5(),".ccjk","config.toml")},{sourceId:"zcf",path:join21(homedir5(),".ufomiao","zcf","config.toml")}],COMPATIBLE_EXTERNAL_PROVIDER_IMPORT_ENABLED=!1,hasAttemptedCompatibleExternalProviderImport=!1;__name(shouldAutoImportCompatibleExternalProviderProfiles,"shouldAutoImportCompatibleExternalProviderProfiles");__name(normalizeAnthropicBaseUrl,"normalizeAnthropicBaseUrl");__name(stripTomlComment,"stripTomlComment");__name(parseTomlPathSegments,"parseTomlPathSegments");__name(parseTomlStringValue,"parseTomlStringValue");VERIFIED_MODEL_CAPABILITIES=new Map([["gpt-5.5",["effort","thinking","adaptive_thinking","max_effort"]],["gpt-5.4",["effort","thinking","adaptive_thinking"]],["gpt-5.1",["effort","thinking","adaptive_thinking"]],["gpt-5.3-codex",["effort","thinking"]]]);__name(getVerifiedCapabilitiesForModel,"getVerifiedCapabilitiesForModel");__name(getCapabilitiesFromProviderSnapshot,"getCapabilitiesFromProviderSnapshot");__name(serializeCapabilitiesForModel,"serializeCapabilitiesForModel");__name(normalizeAuthType,"normalizeAuthType");__name(getProviderSlotModelsFromRouting,"getProviderSlotModelsFromRouting");__name(inferProviderApiDialectMode,"inferProviderApiDialectMode");__name(describeProviderPrimaryUpstreamPath,"describeProviderPrimaryUpstreamPath");__name(normalizeProviderApiDialectMode,"normalizeProviderApiDialectMode");__name(normalizeProviderId,"normalizeProviderId");__name(normalizeModelRoutingPresetId,"normalizeModelRoutingPresetId");__name(normalizeModelValue,"normalizeModelValue");__name(inferModelRoutingPresetId,"inferModelRoutingPresetId");__name(normalizeProviderModelRouting,"normalizeProviderModelRouting");__name(normalizeProviderProfileProvenance,"normalizeProviderProfileProvenance");__name(normalizeProviderSecretRecord,"normalizeProviderSecretRecord");__name(getStoredProviderSecretRecords,"getStoredProviderSecretRecords");__name(areProviderSecretMapsEqual,"areProviderSecretMapsEqual");__name(persistProviderSecrets,"persistProviderSecrets");__name(scrubStoredProviderProfile,"scrubStoredProviderProfile");__name(normalizeProviderProfile,"normalizeProviderProfile");__name(buildCompatibleExternalProviderRouting,"buildCompatibleExternalProviderRouting");__name(repairProviderProfileRoutingForMode,"repairProviderProfileRoutingForMode");__name(createProviderProfileFromCompatibleExternalProfile,"createProviderProfileFromCompatibleExternalProfile");__name(loadCompatibleExternalProviderConfig,"loadCompatibleExternalProviderConfig");__name(loadCompatibleExternalProviderProfiles,"loadCompatibleExternalProviderProfiles");__name(applyCompatibleExternalProviderImport,"applyCompatibleExternalProviderImport");__name(escapeTomlBasicString,"escapeTomlBasicString");__name(updateCompatibleExternalProviderCurrentProfile,"updateCompatibleExternalProviderCurrentProfile");__name(getProviderConfig,"getProviderConfig");__name(getStoredProviderProfileRecords,"getStoredProviderProfileRecords");__name(getStoredActiveProviderProfileId,"getStoredActiveProviderProfileId");__name(resolveCanonicalActiveProviderProfileId,"resolveCanonicalActiveProviderProfileId");__name(resolveHealedActiveProviderProfileId,"resolveHealedActiveProviderProfileId");__name(healOrphanActiveProviderProfileId,"healOrphanActiveProviderProfileId");__name(getStoredProviderCapabilityCache,"getStoredProviderCapabilityCache");__name(ensureNormalizedProviderBaseUrlsMigrated,"ensureNormalizedProviderBaseUrlsMigrated");__name(getStoredProviderProfiles,"getStoredProviderProfiles");__name(ensureCompatibleExternalProviderProfilesImported,"ensureCompatibleExternalProviderProfilesImported");__name(buildProviderCredentialFingerprint,"buildProviderCredentialFingerprint");__name(buildProviderCapabilityCacheKey,"buildProviderCapabilityCacheKey");__name(createEmptyProviderCapabilitySnapshot,"createEmptyProviderCapabilitySnapshot");__name(normalizeProviderCapabilitySnapshot,"normalizeProviderCapabilitySnapshot");__name(getProviderCapabilityCache,"getProviderCapabilityCache");__name(saveProviderCapabilitySnapshot,"saveProviderCapabilitySnapshot");__name(upsertProviderCapabilitySnapshot,"upsertProviderCapabilitySnapshot");__name(getProviderCapabilitySnapshot,"getProviderCapabilitySnapshot");__name(getCachedProviderCapabilitySnapshot,"getCachedProviderCapabilitySnapshot");__name(getProviderCapabilitySnapshotFreshness,"getProviderCapabilitySnapshotFreshness");__name(getProviderModelMaxInputTokens,"getProviderModelMaxInputTokens");__name(getProviderModelMaxInputTokensAsync,"getProviderModelMaxInputTokensAsync");__name(getProviderModelMaxInputTokensSnapshotAge,"getProviderModelMaxInputTokensSnapshotAge");contextWindowCatalogInflight=new Map;__name(isContextWindowSnapshotFresh,"isContextWindowSnapshotFresh");__name(resolveProviderGatewayModelsUrl,"resolveProviderGatewayModelsUrl");__name(fetchProviderModelCatalogAtUrl,"fetchProviderModelCatalogAtUrl");__name(refreshProviderModelContextWindows,"refreshProviderModelContextWindows");__name(refreshProviderModelContextWindow,"refreshProviderModelContextWindow");providerContextWindowRefreshTimer=null;__name(ensureProviderContextWindowRefreshSchedule,"ensureProviderContextWindowRefreshSchedule");__name(getSettingsEnv,"getSettingsEnv");__name(buildSettingsEnvUpdate,"buildSettingsEnvUpdate");__name(buildSettingsModelUpdate,"buildSettingsModelUpdate");__name(writeUserSettingsUpdate,"writeUserSettingsUpdate");__name(healUserSettingsEnvToProfile,"healUserSettingsEnvToProfile");__name(updateProviderConfig,"updateProviderConfig");__name(inferProviderPresetId,"inferProviderPresetId");__name(getProviderModelCatalogEntry,"getProviderModelCatalogEntry");__name(getProviderModelDisplayName,"getProviderModelDisplayName");__name(getProviderModelDescription,"getProviderModelDescription");__name(getProviderPreset,"getProviderPreset");__name(getProviderModelRoutingPreset,"getProviderModelRoutingPreset");__name(getProviderProfiles,"getProviderProfiles");__name(importCompatibleExternalProviderProfiles,"importCompatibleExternalProviderProfiles");__name(getProviderProfileById,"getProviderProfileById");__name(findProviderProfiles,"findProviderProfiles");__name(getActiveProviderProfileId,"getActiveProviderProfileId");__name(getSavedActiveProviderProfile,"getSavedActiveProviderProfile");__name(__resetOrphanActiveProviderHealForTests,"__resetOrphanActiveProviderHealForTests");__name(getCurrentProviderProfile,"getCurrentProviderProfile");__name(getResolvedCurrentProviderProfile,"getResolvedCurrentProviderProfile");setSessionProviderResolver(sessionId=>{try{return getResolvedCurrentProviderProfile(sessionId)?.id}catch{return}});__name(hasProviderCredentialConfigured,"hasProviderCredentialConfigured");__name(providerProfileToAgentEnv,"providerProfileToAgentEnv");__name(getCredentialLabel,"getCredentialLabel");__name(maskCredential,"maskCredential");__name(createProviderDraftFromPreset,"createProviderDraftFromPreset");__name(allocateUniqueProviderProfileName,"allocateUniqueProviderProfileName");__name(cloneProviderProfile,"cloneProviderProfile");__name(createProviderModelRoutingFromPreset,"createProviderModelRoutingFromPreset");__name(createCustomProviderModelRouting,"createCustomProviderModelRouting");__name(getProviderModelSlotDefaults,"getProviderModelSlotDefaults");__name(getValidationRoleLabel,"getValidationRoleLabel");__name(formatValidationRoles,"formatValidationRoles");__name(getAutoRepairCandidates,"getAutoRepairCandidates");__name(getRepairTargets,"getRepairTargets");__name(applyAutoRepairRouting,"applyAutoRepairRouting");__name(cloneProfileWithRouting,"cloneProfileWithRouting");__name(buildValidationHeaders,"buildValidationHeaders");__name(extractValidationErrorMessage,"extractValidationErrorMessage");__name(buildResponsesValidationHeaders,"buildResponsesValidationHeaders");__name(shouldValidateViaOpenAIResponses,"shouldValidateViaOpenAIResponses");__name(shouldProbeNativeToolCalling,"shouldProbeNativeToolCalling");__name(hasAnthropicToolUseBlock,"hasAnthropicToolUseBlock");__name(hasResponsesFunctionCall,"hasResponsesFunctionCall");__name(createResponsesValidationInput,"createResponsesValidationInput");__name(createResponsesValidationTool,"createResponsesValidationTool");__name(postResponsesValidationRequest,"postResponsesValidationRequest");__name(runResponsesValidationAttempts,"runResponsesValidationAttempts");__name(buildAccessValidationDetail,"buildAccessValidationDetail");__name(buildResponsesCompatibilityDetailFromSnapshot,"buildResponsesCompatibilityDetailFromSnapshot");__name(getEffortLevelsFromSnapshot,"getEffortLevelsFromSnapshot");__name(getRouteInspectionTransport,"getRouteInspectionTransport");__name(getRouteTransportLabel,"getRouteTransportLabel");__name(getRecommendedRouteModelStatus,"getRecommendedRouteModelStatus");__name(buildProviderModelRouteInspection,"buildProviderModelRouteInspection");__name(probeModelAccess,"probeModelAccess");__name(probeNativeToolCallingCompatibility,"probeNativeToolCallingCompatibility");__name(probeModelAvailability,"probeModelAvailability");__name(validateProviderProfile,"validateProviderProfile");__name(inspectProviderModelRoute,"inspectProviderModelRoute");__name(inspectProviderModelRoutes,"inspectProviderModelRoutes");__name(attemptAutoRepairProviderProfile,"attemptAutoRepairProviderProfile");__name(applyProviderProfileToProcess,"applyProviderProfileToProcess");__name(clearActiveProviderConfiguration,"clearActiveProviderConfiguration");__name(activateCurrentProviderProfile,"activateCurrentProviderProfile");__name(assertProviderProfileActivatable,"assertProviderProfileActivatable");__name(activateProviderProfile,"activateProviderProfile");__name(saveProviderProfile,"saveProviderProfile");__name(deleteProviderProfile,"deleteProviderProfile");__name(scheduleProviderCloudSyncSafe,"scheduleProviderCloudSyncSafe");__name(migrateNormalizedProviderBaseUrls,"migrateNormalizedProviderBaseUrls");__name(getStoredFusionEndpointSecrets,"getStoredFusionEndpointSecrets");__name(persistFusionEndpointSecrets,"persistFusionEndpointSecrets");__name(scrubStoredFusionConfig,"scrubStoredFusionConfig");__name(normalizeFusionEndpoint,"normalizeFusionEndpoint");__name(normalizeFusionConfig,"normalizeFusionConfig");__name(getStoredFusionConfigs,"getStoredFusionConfigs");__name(getStoredActiveFusionConfigId,"getStoredActiveFusionConfigId");__name(updateFusionConfigState,"updateFusionConfigState");__name(getFusionConfigs,"getFusionConfigs");__name(getFusionConfigById,"getFusionConfigById");__name(saveFusionConfig,"saveFusionConfig");__name(deleteFusionConfig,"deleteFusionConfig");__name(getActiveFusionConfigId,"getActiveFusionConfigId");__name(getActiveFusionConfig,"getActiveFusionConfig");__name(activateFusionConfig,"activateFusionConfig");__name(resolveFusionEndpointForModel,"resolveFusionEndpointForModel");__name(isFusionModeActive,"isFusionModeActive");__name(getActiveFusionEndpointForModel,"getActiveFusionEndpointForModel");__name(markProviderOnboardingComplete,"markProviderOnboardingComplete")}});var reviewModelConfig_exports={};__export(reviewModelConfig_exports,{activateReviewModelConfig:()=>activateReviewModelConfig,formatReviewModelConfig:()=>formatReviewModelConfig,getActiveReviewModelConfig:()=>getActiveReviewModelConfig,getDefaultReviewModelConfig:()=>getDefaultReviewModelConfig,getReviewModelDisplayValue:()=>getReviewModelDisplayValue,parseReviewArgs:()=>parseReviewArgs,persistReviewModelConfig:()=>persistReviewModelConfig,resolveReviewModel:()=>resolveReviewModel});function normalizeValue4(value){return String(value??"").trim()||void 0}function getStoredReviewConfig(){let config2=getGlobalConfig().reviewModelConfig;return{model:normalizeValue4(config2?.model),apiurl:normalizeValue4(config2?.apiurl),apikey:normalizeValue4(config2?.apikey)}}function getDefaultReviewModelConfig(){let stored=getStoredReviewConfig();return{...stored.model?{model:stored.model}:{},...stored.apiurl?{apiurl:stored.apiurl}:{},...stored.apikey?{apikey:stored.apikey}:{}}}function resolveReviewModel(config2){let configured=normalizeValue4(config2.model);if(configured)return configured;try{let routing=getResolvedCurrentProviderProfile()?.modelRouting;return normalizeValue4(routing?.reviewModel)??normalizeValue4(routing?.primaryModel)}catch{return}}function getReviewModelDisplayValue(config2){return resolveReviewModel(config2)??"(current primary/default model)"}function readOptionValue(token,tokens,index){let equals=token.indexOf("=");return equals!==-1?{value:token.slice(equals+1),consumed:1}:{value:tokens[index+1],consumed:2}}function tokenizeArgs(args){return args.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g)?.map(token=>{let trimmed=token.trim();return trimmed.startsWith('"')&&trimmed.endsWith('"')||trimmed.startsWith("'")&&trimmed.endsWith("'")?trimmed.slice(1,-1):trimmed})??[]}function parseReviewArgs(rawArgs){let tokens=tokenizeArgs(rawArgs),config2=getDefaultReviewModelConfig(),reviewTokens=[],save=!1,showConfig=!1;for(let i3=0;i3<tokens.length;i3+=1){let token=tokens[i3],normalized=token.toLowerCase();if(normalized==="config"||normalized==="--config"){showConfig=!0;continue}if(normalized==="--save"||normalized==="--persist"){save=!0;continue}let option=normalized.split("=")[0];if(option==="--model"||option==="model"){let parsed=readOptionValue(token,tokens,i3);if(parsed?.value!==void 0){config2.model=normalizeValue4(parsed.value),i3+=parsed.consumed-1;continue}}if(option==="--apiurl"||option==="--base-url"||option==="apiurl"||option==="baseurl"){let parsed=readOptionValue(token,tokens,i3);if(parsed?.value!==void 0){config2.apiurl=parsed.value,i3+=parsed.consumed-1;continue}}if(option==="--apikey"||option==="--api-key"||option==="apikey"){let parsed=readOptionValue(token,tokens,i3);if(parsed?.value!==void 0){config2.apikey=parsed.value,i3+=parsed.consumed-1;continue}}reviewTokens.push(token)}return{reviewArgs:reviewTokens.join(" "),config:config2,save,showConfig}}function activateReviewModelConfig(config2){activeReviewConfig=config2}function getActiveReviewModelConfig(model){if(!activeReviewConfig)return null;let resolvedModel=resolveReviewModel(activeReviewConfig);return model&&resolvedModel&&resolvedModel!==model?null:activeReviewConfig}function persistReviewModelConfig(config2){saveGlobalConfig(current=>({...current,reviewModelConfig:{...config2.model?{model:config2.model}:{},...config2.apiurl?{apiurl:config2.apiurl}:{},...config2.apikey?{apikey:config2.apikey}:{}}}))}function formatReviewModelConfig(config2){return[`review model: ${getReviewModelDisplayValue(config2)}`,`review apiurl: ${config2.apiurl??"(default provider)"}`,`review apikey: ${config2.apikey?"(set)":"(default provider)"}`].join(`
196
196
  `)}var activeReviewConfig,init_reviewModelConfig=__esm({"src/utils/reviewModelConfig.ts"(){init_config3();init_providerProfiles();activeReviewConfig=null;__name(normalizeValue4,"normalizeValue");__name(getStoredReviewConfig,"getStoredReviewConfig");__name(getDefaultReviewModelConfig,"getDefaultReviewModelConfig");__name(resolveReviewModel,"resolveReviewModel");__name(getReviewModelDisplayValue,"getReviewModelDisplayValue");__name(readOptionValue,"readOptionValue");__name(tokenizeArgs,"tokenizeArgs");__name(parseReviewArgs,"parseReviewArgs");__name(activateReviewModelConfig,"activateReviewModelConfig");__name(getActiveReviewModelConfig,"getActiveReviewModelConfig");__name(persistReviewModelConfig,"persistReviewModelConfig");__name(formatReviewModelConfig,"formatReviewModelConfig")}});var init_client4=__esm({"src/services/api/client.ts"(){init_sdk();init_reviewModelConfig();init_providerProfiles();init_auth();init_http2();init_model();init_providers();init_proxy();init_state();init_oauth();init_debug();init_envUtils();init_openaiResponsesAdapter()}});import{readFileSync as readFileSync12}from"fs";var ModelCapabilitySchema,CacheFileSchema,loadCache,init_modelCapabilities=__esm({"src/utils/model/modelCapabilities.ts"(){init_memoize();init_v4();init_oauth();init_client4();init_auth();init_debug();init_envUtils();init_json();init_lazySchema();init_privacyLevel();init_slowOperations();init_providers();ModelCapabilitySchema=lazySchema(()=>external_exports.object({id:external_exports.string(),max_input_tokens:external_exports.number().optional(),max_tokens:external_exports.number().optional()}).strip()),CacheFileSchema=lazySchema(()=>external_exports.object({models:external_exports.array(ModelCapabilitySchema()),timestamp:external_exports.number()})),loadCache=memoize_default(path10=>{try{let raw=readFileSync12(path10,"utf-8"),parsed=CacheFileSchema().safeParse(safeParseJSON(raw,!1));return parsed.success?parsed.data.models:null}catch{return null}},path10=>path10)}});var init_officialGatewayWindow=__esm({"src/utils/officialGatewayWindow.ts"(){init_providerProfiles()}});var init_providerCompat=__esm({"src/services/api/providerCompat.ts"(){init_openaiResponsesConfig()}});function is1mContextDisabled(){return isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_1M_CONTEXT)}function has1mContext(model){return is1mContextDisabled()?!1:/\[1m\]/i.test(model)}var init_context=__esm({"src/utils/context.ts"(){init_betas();init_config3();init_envUtils();init_model();init_claudeModelProfiles();init_providerModelProfiles();init_modelCapabilities();init_officialGatewayWindow();init_providerProfiles();init_antModels();init_productModelCapabilities();init_providerCompat();__name(is1mContextDisabled,"is1mContextDisabled");__name(has1mContext,"has1mContext")}});function modelSupportsISP(model){let supported3P=get3PModelCapabilityOverride(model,"interleaved_thinking");if(supported3P!==void 0)return supported3P;let canonical=getCanonicalName(model),provider=getAPIProvider();return provider==="foundry"?!0:provider==="firstParty"?!canonical.includes("claude-3-"):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),provider=getAPIProvider();return provider==="foundry"?!0:provider==="firstParty"?!canonical.includes("claude-3-"):canonical.includes("claude-opus-4")||canonical.includes("claude-sonnet-4")||canonical.includes("claude-haiku-4")}function modelSupportsStructuredOutputs(model){let canonical=getCanonicalName(model),provider=getAPIProvider();return provider!=="firstParty"&&provider!=="foundry"?!1: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-haiku-4-5")}function shouldIncludeFirstPartyOnlyBetas(){return(getAPIProvider()==="firstParty"||getAPIProvider()==="foundry")&&!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function clearBetasCaches(){getAllModelBetas.cache?.clear?.(),getModelBetas.cache?.clear?.(),getBedrockExtraBodyParamsBetas.cache?.clear?.()}var getAllModelBetas,getModelBetas,getBedrockExtraBodyParamsBetas,init_betas2=__esm({"src/utils/betas.ts"(){init_memoize();init_growthbook();init_state();init_betas();init_oauth();init_auth();init_context();init_envUtils();init_model();init_modelSupportOverrides();init_providers();init_settings2();__name(modelSupportsISP,"modelSupportsISP");__name(vertexModelSupportsWebSearch,"vertexModelSupportsWebSearch");__name(modelSupportsContextManagement,"modelSupportsContextManagement");__name(modelSupportsStructuredOutputs,"modelSupportsStructuredOutputs");__name(shouldIncludeFirstPartyOnlyBetas,"shouldIncludeFirstPartyOnlyBetas");getAllModelBetas=memoize_default(model=>{let betaHeaders=[],isHaiku=getCanonicalName(model).includes("haiku"),provider=getAPIProvider(),includeFirstPartyOnlyBetas=shouldIncludeFirstPartyOnlyBetas();isHaiku||(betaHeaders.push(CLAUDE_CODE_20250219_BETA_HEADER),process.env.USER_TYPE==="ant"&&process.env.CLAUDE_CODE_ENTRYPOINT==="cli"&&CLI_INTERNAL_BETA_HEADER&&betaHeaders.push(CLI_INTERNAL_BETA_HEADER)),isClaudeAISubscriber()&&betaHeaders.push(OAUTH_BETA_HEADER),has1mContext(model)&&betaHeaders.push(CONTEXT_1M_BETA_HEADER),!isEnvTruthy(process.env.DISABLE_INTERLEAVED_THINKING)&&modelSupportsISP(model)&&betaHeaders.push(INTERLEAVED_THINKING_BETA_HEADER),includeFirstPartyOnlyBetas&&modelSupportsISP(model)&&!getIsNonInteractiveSession()&&getInitialSettings().showThinkingSummaries!==!0&&betaHeaders.push(REDACT_THINKING_BETA_HEADER),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 contextManagementEnabled=modelSupportsContextManagement(model);shouldIncludeFirstPartyOnlyBetas()&&contextManagementEnabled&&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);return includeFirstPartyOnlyBetas&&modelSupportsStructuredOutputs(model)&&strictToolsEnabled&&betaHeaders.push(STRUCTURED_OUTPUTS_BETA_HEADER),process.env.USER_TYPE==="ant"&&includeFirstPartyOnlyBetas&&tokenEfficientToolsEnabled&&betaHeaders.push(TOKEN_EFFICIENT_TOOLS_BETA_HEADER),provider==="vertex"&&vertexModelSupportsWebSearch(model)&&betaHeaders.push(WEB_SEARCH_BETA_HEADER),provider==="foundry"&&betaHeaders.push(WEB_SEARCH_BETA_HEADER),includeFirstPartyOnlyBetas&&betaHeaders.push(PROMPT_CACHING_SCOPE_BETA_HEADER),process.env.ANTHROPIC_BETAS&&betaHeaders.push(...process.env.ANTHROPIC_BETAS.split(",").map(_=>_.trim()).filter(Boolean)),betaHeaders}),getModelBetas=memoize_default(model=>{let modelBetas=getAllModelBetas(model);return getAPIProvider()==="bedrock"?modelBetas.filter(b=>!BEDROCK_EXTRA_PARAMS_HEADERS.has(b)):modelBetas}),getBedrockExtraBodyParamsBetas=memoize_default(model=>getAllModelBetas(model).filter(b=>BEDROCK_EXTRA_PARAMS_HEADERS.has(b)));__name(clearBetasCaches,"clearBetasCaches")}});var require_polyfills=__commonJS({"../../node_modules/graceful-fs/polyfills.js"(exports2,module2){var constants4=__require("constants"),origCwd=process.cwd,cwd2=null,platform2=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return cwd2||(cwd2=origCwd.call(process)),cwd2};try{process.cwd()}catch{}typeof process.chdir=="function"&&(chdir=process.chdir,process.chdir=function(d){cwd2=null,chdir.call(process,d)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,chdir));var chdir;module2.exports=patch;function patch(fs4){constants4.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&patchLchmod(fs4),fs4.lutimes||patchLutimes(fs4),fs4.chown=chownFix(fs4.chown),fs4.fchown=chownFix(fs4.fchown),fs4.lchown=chownFix(fs4.lchown),fs4.chmod=chmodFix(fs4.chmod),fs4.fchmod=chmodFix(fs4.fchmod),fs4.lchmod=chmodFix(fs4.lchmod),fs4.chownSync=chownFixSync(fs4.chownSync),fs4.fchownSync=chownFixSync(fs4.fchownSync),fs4.lchownSync=chownFixSync(fs4.lchownSync),fs4.chmodSync=chmodFixSync(fs4.chmodSync),fs4.fchmodSync=chmodFixSync(fs4.fchmodSync),fs4.lchmodSync=chmodFixSync(fs4.lchmodSync),fs4.stat=statFix(fs4.stat),fs4.fstat=statFix(fs4.fstat),fs4.lstat=statFix(fs4.lstat),fs4.statSync=statFixSync(fs4.statSync),fs4.fstatSync=statFixSync(fs4.fstatSync),fs4.lstatSync=statFixSync(fs4.lstatSync),fs4.chmod&&!fs4.lchmod&&(fs4.lchmod=function(path10,mode,cb){cb&&process.nextTick(cb)},fs4.lchmodSync=function(){}),fs4.chown&&!fs4.lchown&&(fs4.lchown=function(path10,uid,gid,cb){cb&&process.nextTick(cb)},fs4.lchownSync=function(){}),platform2==="win32"&&(fs4.rename=typeof fs4.rename!="function"?fs4.rename:(function(fs$rename){function rename(from,to,cb){var start=Date.now(),backoff=0;fs$rename(from,to,__name(function CB(er){if(er&&(er.code==="EACCES"||er.code==="EPERM"||er.code==="EBUSY")&&Date.now()-start<6e4){setTimeout(function(){fs4.stat(to,function(stater,st){stater&&stater.code==="ENOENT"?fs$rename(from,to,CB):cb(er)})},backoff),backoff<100&&(backoff+=10);return}cb&&cb(er)},"CB"))}return __name(rename,"rename"),Object.setPrototypeOf&&Object.setPrototypeOf(rename,fs$rename),rename})(fs4.rename)),fs4.read=typeof fs4.read!="function"?fs4.read:(function(fs$read){function read(fd,buffer,offset,length,position,callback_){var callback;if(callback_&&typeof callback_=="function"){var eagCounter=0;callback=__name(function(er,_,__){if(er&&er.code==="EAGAIN"&&eagCounter<10)return eagCounter++,fs$read.call(fs4,fd,buffer,offset,length,position,callback);callback_.apply(this,arguments)},"callback")}return fs$read.call(fs4,fd,buffer,offset,length,position,callback)}return __name(read,"read"),Object.setPrototypeOf&&Object.setPrototypeOf(read,fs$read),read})(fs4.read),fs4.readSync=typeof fs4.readSync!="function"?fs4.readSync:(function(fs$readSync){return function(fd,buffer,offset,length,position){for(var eagCounter=0;;)try{return fs$readSync.call(fs4,fd,buffer,offset,length,position)}catch(er){if(er.code==="EAGAIN"&&eagCounter<10){eagCounter++;continue}throw er}}})(fs4.readSync);function patchLchmod(fs5){fs5.lchmod=function(path10,mode,callback){fs5.open(path10,constants4.O_WRONLY|constants4.O_SYMLINK,mode,function(err,fd){if(err){callback&&callback(err);return}fs5.fchmod(fd,mode,function(err2){fs5.close(fd,function(err22){callback&&callback(err2||err22)})})})},fs5.lchmodSync=function(path10,mode){var fd=fs5.openSync(path10,constants4.O_WRONLY|constants4.O_SYMLINK,mode),threw=!0,ret;try{ret=fs5.fchmodSync(fd,mode),threw=!1}finally{if(threw)try{fs5.closeSync(fd)}catch{}else fs5.closeSync(fd)}return ret}}__name(patchLchmod,"patchLchmod");function patchLutimes(fs5){constants4.hasOwnProperty("O_SYMLINK")&&fs5.futimes?(fs5.lutimes=function(path10,at2,mt,cb){fs5.open(path10,constants4.O_SYMLINK,function(er,fd){if(er){cb&&cb(er);return}fs5.futimes(fd,at2,mt,function(er2){fs5.close(fd,function(er22){cb&&cb(er2||er22)})})})},fs5.lutimesSync=function(path10,at2,mt){var fd=fs5.openSync(path10,constants4.O_SYMLINK),ret,threw=!0;try{ret=fs5.futimesSync(fd,at2,mt),threw=!1}finally{if(threw)try{fs5.closeSync(fd)}catch{}else fs5.closeSync(fd)}return ret}):fs5.futimes&&(fs5.lutimes=function(_a2,_b,_c,cb){cb&&process.nextTick(cb)},fs5.lutimesSync=function(){})}__name(patchLutimes,"patchLutimes");function chmodFix(orig){return orig&&function(target,mode,cb){return orig.call(fs4,target,mode,function(er){chownErOk(er)&&(er=null),cb&&cb.apply(this,arguments)})}}__name(chmodFix,"chmodFix");function chmodFixSync(orig){return orig&&function(target,mode){try{return orig.call(fs4,target,mode)}catch(er){if(!chownErOk(er))throw er}}}__name(chmodFixSync,"chmodFixSync");function chownFix(orig){return orig&&function(target,uid,gid,cb){return orig.call(fs4,target,uid,gid,function(er){chownErOk(er)&&(er=null),cb&&cb.apply(this,arguments)})}}__name(chownFix,"chownFix");function chownFixSync(orig){return orig&&function(target,uid,gid){try{return orig.call(fs4,target,uid,gid)}catch(er){if(!chownErOk(er))throw er}}}__name(chownFixSync,"chownFixSync");function statFix(orig){return orig&&function(target,options,cb){typeof options=="function"&&(cb=options,options=null);function callback(er,stats){stats&&(stats.uid<0&&(stats.uid+=4294967296),stats.gid<0&&(stats.gid+=4294967296)),cb&&cb.apply(this,arguments)}return __name(callback,"callback"),options?orig.call(fs4,target,options,callback):orig.call(fs4,target,callback)}}__name(statFix,"statFix");function statFixSync(orig){return orig&&function(target,options){var stats=options?orig.call(fs4,target,options):orig.call(fs4,target);return stats&&(stats.uid<0&&(stats.uid+=4294967296),stats.gid<0&&(stats.gid+=4294967296)),stats}}__name(statFixSync,"statFixSync");function chownErOk(er){if(!er||er.code==="ENOSYS")return!0;var nonroot=!process.getuid||process.getuid()!==0;return!!(nonroot&&(er.code==="EINVAL"||er.code==="EPERM"))}__name(chownErOk,"chownErOk")}__name(patch,"patch")}});var require_legacy_streams=__commonJS({"../../node_modules/graceful-fs/legacy-streams.js"(exports2,module2){var Stream4=__require("stream").Stream;module2.exports=legacy;function legacy(fs4){return{ReadStream,WriteStream};function ReadStream(path10,options){if(!(this instanceof ReadStream))return new ReadStream(path10,options);Stream4.call(this);var self2=this;this.path=path10,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,options=options||{};for(var keys2=Object.keys(options),index=0,length=keys2.length;index<length;index++){var key=keys2[index];this[key]=options[key]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){self2._read()});return}fs4.open(this.path,this.flags,this.mode,function(err,fd){if(err){self2.emit("error",err),self2.readable=!1;return}self2.fd=fd,self2.emit("open",fd),self2._read()})}function WriteStream(path10,options){if(!(this instanceof WriteStream))return new WriteStream(path10,options);Stream4.call(this),this.path=path10,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,options=options||{};for(var keys2=Object.keys(options),index=0,length=keys2.length;index<length;index++){var key=keys2[index];this[key]=options[key]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=fs4.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}__name(legacy,"legacy")}});var require_clone=__commonJS({"../../node_modules/graceful-fs/clone.js"(exports2,module2){"use strict";module2.exports=clone5;var getPrototypeOf2=Object.getPrototypeOf||function(obj){return obj.__proto__};function clone5(obj){if(obj===null||typeof obj!="object")return obj;if(obj instanceof Object)var copy={__proto__:getPrototypeOf2(obj)};else var copy=Object.create(null);return Object.getOwnPropertyNames(obj).forEach(function(key){Object.defineProperty(copy,key,Object.getOwnPropertyDescriptor(obj,key))}),copy}__name(clone5,"clone")}});var require_graceful_fs=__commonJS({"../../node_modules/graceful-fs/graceful-fs.js"(exports2,module2){var fs4=__require("fs"),polyfills3=require_polyfills(),legacy=require_legacy_streams(),clone5=require_clone(),util4=__require("util"),gracefulQueue,previousSymbol;typeof Symbol=="function"&&typeof Symbol.for=="function"?(gracefulQueue=Symbol.for("graceful-fs.queue"),previousSymbol=Symbol.for("graceful-fs.previous")):(gracefulQueue="___graceful-fs.queue",previousSymbol="___graceful-fs.previous");function noop8(){}__name(noop8,"noop");function publishQueue(context,queue2){Object.defineProperty(context,gracefulQueue,{get:__name(function(){return queue2},"get")})}__name(publishQueue,"publishQueue");var debug3=noop8;util4.debuglog?debug3=util4.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(debug3=__name(function(){var m2=util4.format.apply(util4,arguments);m2="GFS4: "+m2.split(/\n/).join(`
197
197
  GFS4: `),console.error(m2)},"debug"));fs4[gracefulQueue]||(queue=global[gracefulQueue]||[],publishQueue(fs4,queue),fs4.close=(function(fs$close){function close(fd,cb){return fs$close.call(fs4,fd,function(err){err||resetQueue(),typeof cb=="function"&&cb.apply(this,arguments)})}return __name(close,"close"),Object.defineProperty(close,previousSymbol,{value:fs$close}),close})(fs4.close),fs4.closeSync=(function(fs$closeSync){function closeSync3(fd){fs$closeSync.apply(fs4,arguments),resetQueue()}return __name(closeSync3,"closeSync"),Object.defineProperty(closeSync3,previousSymbol,{value:fs$closeSync}),closeSync3})(fs4.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){debug3(fs4[gracefulQueue]),__require("assert").equal(fs4[gracefulQueue].length,0)}));var queue;global[gracefulQueue]||publishQueue(global,fs4[gracefulQueue]);module2.exports=patch(clone5(fs4));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!fs4.__patched&&(module2.exports=patch(fs4),fs4.__patched=!0);function patch(fs5){polyfills3(fs5),fs5.gracefulify=patch,fs5.createReadStream=createReadStream3,fs5.createWriteStream=createWriteStream3;var fs$readFile=fs5.readFile;fs5.readFile=readFile4;function readFile4(path10,options,cb){return typeof options=="function"&&(cb=options,options=null),go$readFile(path10,options,cb);function go$readFile(path11,options2,cb2,startTime){return fs$readFile(path11,options2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$readFile,[path11,options2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}__name(go$readFile,"go$readFile")}__name(readFile4,"readFile");var fs$writeFile=fs5.writeFile;fs5.writeFile=writeFile2;function writeFile2(path10,data,options,cb){return typeof options=="function"&&(cb=options,options=null),go$writeFile(path10,data,options,cb);function go$writeFile(path11,data2,options2,cb2,startTime){return fs$writeFile(path11,data2,options2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$writeFile,[path11,data2,options2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}__name(go$writeFile,"go$writeFile")}__name(writeFile2,"writeFile");var fs$appendFile=fs5.appendFile;fs$appendFile&&(fs5.appendFile=appendFile3);function appendFile3(path10,data,options,cb){return typeof options=="function"&&(cb=options,options=null),go$appendFile(path10,data,options,cb);function go$appendFile(path11,data2,options2,cb2,startTime){return fs$appendFile(path11,data2,options2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$appendFile,[path11,data2,options2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}__name(go$appendFile,"go$appendFile")}__name(appendFile3,"appendFile");var fs$copyFile=fs5.copyFile;fs$copyFile&&(fs5.copyFile=copyFile);function copyFile(src,dest,flags,cb){return typeof flags=="function"&&(cb=flags,flags=0),go$copyFile(src,dest,flags,cb);function go$copyFile(src2,dest2,flags2,cb2,startTime){return fs$copyFile(src2,dest2,flags2,function(err){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$copyFile,[src2,dest2,flags2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}__name(go$copyFile,"go$copyFile")}__name(copyFile,"copyFile");var fs$readdir=fs5.readdir;fs5.readdir=readdir3;var noReaddirOptionVersions=/^v[0-5]\./;function readdir3(path10,options,cb){typeof options=="function"&&(cb=options,options=null);var go$readdir=noReaddirOptionVersions.test(process.version)?__name(function(path11,options2,cb2,startTime){return fs$readdir(path11,fs$readdirCallback(path11,options2,cb2,startTime))},"go$readdir"):__name(function(path11,options2,cb2,startTime){return fs$readdir(path11,options2,fs$readdirCallback(path11,options2,cb2,startTime))},"go$readdir");return go$readdir(path10,options,cb);function fs$readdirCallback(path11,options2,cb2,startTime){return function(err,files){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$readdir,[path11,options2,cb2],err,startTime||Date.now(),Date.now()]):(files&&files.sort&&files.sort(),typeof cb2=="function"&&cb2.call(this,err,files))}}}if(__name(readdir3,"readdir"),process.version.substr(0,4)==="v0.8"){var legStreams=legacy(fs5);ReadStream=legStreams.ReadStream,WriteStream=legStreams.WriteStream}var fs$ReadStream=fs5.ReadStream;fs$ReadStream&&(ReadStream.prototype=Object.create(fs$ReadStream.prototype),ReadStream.prototype.open=ReadStream$open);var fs$WriteStream=fs5.WriteStream;fs$WriteStream&&(WriteStream.prototype=Object.create(fs$WriteStream.prototype),WriteStream.prototype.open=WriteStream$open),Object.defineProperty(fs5,"ReadStream",{get:__name(function(){return ReadStream},"get"),set:__name(function(val){ReadStream=val},"set"),enumerable:!0,configurable:!0}),Object.defineProperty(fs5,"WriteStream",{get:__name(function(){return WriteStream},"get"),set:__name(function(val){WriteStream=val},"set"),enumerable:!0,configurable:!0});var FileReadStream=ReadStream;Object.defineProperty(fs5,"FileReadStream",{get:__name(function(){return FileReadStream},"get"),set:__name(function(val){FileReadStream=val},"set"),enumerable:!0,configurable:!0});var FileWriteStream=WriteStream;Object.defineProperty(fs5,"FileWriteStream",{get:__name(function(){return FileWriteStream},"get"),set:__name(function(val){FileWriteStream=val},"set"),enumerable:!0,configurable:!0});function ReadStream(path10,options){return this instanceof ReadStream?(fs$ReadStream.apply(this,arguments),this):ReadStream.apply(Object.create(ReadStream.prototype),arguments)}__name(ReadStream,"ReadStream");function ReadStream$open(){var that=this;open2(that.path,that.flags,that.mode,function(err,fd){err?(that.autoClose&&that.destroy(),that.emit("error",err)):(that.fd=fd,that.emit("open",fd),that.read())})}__name(ReadStream$open,"ReadStream$open");function WriteStream(path10,options){return this instanceof WriteStream?(fs$WriteStream.apply(this,arguments),this):WriteStream.apply(Object.create(WriteStream.prototype),arguments)}__name(WriteStream,"WriteStream");function WriteStream$open(){var that=this;open2(that.path,that.flags,that.mode,function(err,fd){err?(that.destroy(),that.emit("error",err)):(that.fd=fd,that.emit("open",fd))})}__name(WriteStream$open,"WriteStream$open");function createReadStream3(path10,options){return new fs5.ReadStream(path10,options)}__name(createReadStream3,"createReadStream");function createWriteStream3(path10,options){return new fs5.WriteStream(path10,options)}__name(createWriteStream3,"createWriteStream");var fs$open=fs5.open;fs5.open=open2;function open2(path10,flags,mode,cb){return typeof mode=="function"&&(cb=mode,mode=null),go$open(path10,flags,mode,cb);function go$open(path11,flags2,mode2,cb2,startTime){return fs$open(path11,flags2,mode2,function(err,fd){err&&(err.code==="EMFILE"||err.code==="ENFILE")?enqueue([go$open,[path11,flags2,mode2,cb2],err,startTime||Date.now(),Date.now()]):typeof cb2=="function"&&cb2.apply(this,arguments)})}__name(go$open,"go$open")}return __name(open2,"open"),fs5}__name(patch,"patch");function enqueue(elem){debug3("ENQUEUE",elem[0].name,elem[1]),fs4[gracefulQueue].push(elem),retry()}__name(enqueue,"enqueue");var retryTimer;function resetQueue(){for(var now2=Date.now(),i3=0;i3<fs4[gracefulQueue].length;++i3)fs4[gracefulQueue][i3].length>2&&(fs4[gracefulQueue][i3][3]=now2,fs4[gracefulQueue][i3][4]=now2);retry()}__name(resetQueue,"resetQueue");function retry(){if(clearTimeout(retryTimer),retryTimer=void 0,fs4[gracefulQueue].length!==0){var elem=fs4[gracefulQueue].shift(),fn=elem[0],args=elem[1],err=elem[2],startTime=elem[3],lastTime=elem[4];if(startTime===void 0)debug3("RETRY",fn.name,args),fn.apply(null,args);else if(Date.now()-startTime>=6e4){debug3("TIMEOUT",fn.name,args);var cb=args.pop();typeof cb=="function"&&cb.call(null,err)}else{var sinceAttempt=Date.now()-lastTime,sinceStart=Math.max(lastTime-startTime,1),desiredDelay=Math.min(sinceStart*1.2,100);sinceAttempt>=desiredDelay?(debug3("RETRY",fn.name,args),fn.apply(null,args.concat([startTime]))):fs4[gracefulQueue].push(elem)}retryTimer===void 0&&(retryTimer=setTimeout(retry,0))}}__name(retry,"retry")}});var require_retry_operation=__commonJS({"../../node_modules/retry/lib/retry_operation.js"(exports2,module2){function RetryOperation(timeouts,options){typeof options=="boolean"&&(options={forever:options}),this._originalTimeouts=JSON.parse(JSON.stringify(timeouts)),this._timeouts=timeouts,this._options=options||{},this._maxRetryTime=options&&options.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}__name(RetryOperation,"RetryOperation");module2.exports=RetryOperation;RetryOperation.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};RetryOperation.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};RetryOperation.prototype.retry=function(err){if(this._timeout&&clearTimeout(this._timeout),!err)return!1;var currentTime=new Date().getTime();if(err&&currentTime-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(err);var timeout=this._timeouts.shift();if(timeout===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),timeout=this._timeouts.shift();else return!1;var self2=this,timer2=setTimeout(function(){self2._attempts++,self2._operationTimeoutCb&&(self2._timeout=setTimeout(function(){self2._operationTimeoutCb(self2._attempts)},self2._operationTimeout),self2._options.unref&&self2._timeout.unref()),self2._fn(self2._attempts)},timeout);return this._options.unref&&timer2.unref(),!0};RetryOperation.prototype.attempt=function(fn,timeoutOps){this._fn=fn,timeoutOps&&(timeoutOps.timeout&&(this._operationTimeout=timeoutOps.timeout),timeoutOps.cb&&(this._operationTimeoutCb=timeoutOps.cb));var self2=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){self2._operationTimeoutCb()},self2._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};RetryOperation.prototype.try=function(fn){console.log("Using RetryOperation.try() is deprecated"),this.attempt(fn)};RetryOperation.prototype.start=function(fn){console.log("Using RetryOperation.start() is deprecated"),this.attempt(fn)};RetryOperation.prototype.start=RetryOperation.prototype.try;RetryOperation.prototype.errors=function(){return this._errors};RetryOperation.prototype.attempts=function(){return this._attempts};RetryOperation.prototype.mainError=function(){if(this._errors.length===0)return null;for(var counts={},mainError=null,mainErrorCount=0,i3=0;i3<this._errors.length;i3++){var error40=this._errors[i3],message=error40.message,count3=(counts[message]||0)+1;counts[message]=count3,count3>=mainErrorCount&&(mainError=error40,mainErrorCount=count3)}return mainError}}});var require_retry=__commonJS({"../../node_modules/retry/lib/retry.js"(exports2){var RetryOperation=require_retry_operation();exports2.operation=function(options){var timeouts=exports2.timeouts(options);return new RetryOperation(timeouts,{forever:options&&options.forever,unref:options&&options.unref,maxRetryTime:options&&options.maxRetryTime})};exports2.timeouts=function(options){if(options instanceof Array)return[].concat(options);var opts={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var key in options)opts[key]=options[key];if(opts.minTimeout>opts.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var timeouts=[],i3=0;i3<opts.retries;i3++)timeouts.push(this.createTimeout(i3,opts));return options&&options.forever&&!timeouts.length&&timeouts.push(this.createTimeout(i3,opts)),timeouts.sort(function(a2,b){return a2-b}),timeouts};exports2.createTimeout=function(attempt2,opts){var random2=opts.randomize?Math.random()+1:1,timeout=Math.round(random2*opts.minTimeout*Math.pow(opts.factor,attempt2));return timeout=Math.min(timeout,opts.maxTimeout),timeout};exports2.wrap=function(obj,options,methods){if(options instanceof Array&&(methods=options,options=null),!methods){methods=[];for(var key in obj)typeof obj[key]=="function"&&methods.push(key)}for(var i3=0;i3<methods.length;i3++){var method2=methods[i3],original=obj[method2];obj[method2]=__name(function(original2){var op=exports2.operation(options),args=Array.prototype.slice.call(arguments,1),callback=args.pop();args.push(function(err){op.retry(err)||(err&&(arguments[0]=op.mainError()),callback.apply(this,arguments))}),op.attempt(function(){original2.apply(obj,args)})},"retryWrapper").bind(obj,original),obj[method2].options=options}}}});var require_retry2=__commonJS({"../../node_modules/retry/index.js"(exports2,module2){module2.exports=require_retry()}});var require_signals=__commonJS({"../../node_modules/proper-lockfile/node_modules/signal-exit/signals.js"(exports2,module2){module2.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&module2.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&module2.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")}});var require_signal_exit=__commonJS({"../../node_modules/proper-lockfile/node_modules/signal-exit/index.js"(exports2,module2){var process13=global.process,processOk2=__name(function(process14){return process14&&typeof process14=="object"&&typeof process14.removeListener=="function"&&typeof process14.emit=="function"&&typeof process14.reallyExit=="function"&&typeof process14.listeners=="function"&&typeof process14.kill=="function"&&typeof process14.pid=="number"&&typeof process14.on=="function"},"processOk");processOk2(process13)?(assert3=__require("assert"),signals2=require_signals(),isWin=/^win/i.test(process13.platform),EE=__require("events"),typeof EE!="function"&&(EE=EE.EventEmitter),process13.__signal_exit_emitter__?emitter=process13.__signal_exit_emitter__:(emitter=process13.__signal_exit_emitter__=new EE,emitter.count=0,emitter.emitted={}),emitter.infinite||(emitter.setMaxListeners(1/0),emitter.infinite=!0),module2.exports=function(cb,opts){if(!processOk2(global.process))return function(){};assert3.equal(typeof cb,"function","a callback must be provided for exit handler"),loaded===!1&&load2();var ev="exit";opts&&opts.alwaysLast&&(ev="afterexit");var remove2=__name(function(){emitter.removeListener(ev,cb),emitter.listeners("exit").length===0&&emitter.listeners("afterexit").length===0&&unload2()},"remove");return emitter.on(ev,cb),remove2},unload2=__name(function(){!loaded||!processOk2(global.process)||(loaded=!1,signals2.forEach(function(sig){try{process13.removeListener(sig,sigListeners[sig])}catch{}}),process13.emit=originalProcessEmit,process13.reallyExit=originalProcessReallyExit,emitter.count-=1)},"unload"),module2.exports.unload=unload2,emit=__name(function(event,code,signal){emitter.emitted[event]||(emitter.emitted[event]=!0,emitter.emit(event,code,signal))},"emit"),sigListeners={},signals2.forEach(function(sig){sigListeners[sig]=__name(function(){if(processOk2(global.process)){var listeners2=process13.listeners(sig);listeners2.length===emitter.count&&(unload2(),emit("exit",null,sig),emit("afterexit",null,sig),isWin&&sig==="SIGHUP"&&(sig="SIGINT"),process13.kill(process13.pid,sig))}},"listener")}),module2.exports.signals=function(){return signals2},loaded=!1,load2=__name(function(){loaded||!processOk2(global.process)||(loaded=!0,emitter.count+=1,signals2=signals2.filter(function(sig){try{return process13.on(sig,sigListeners[sig]),!0}catch{return!1}}),process13.emit=processEmit,process13.reallyExit=processReallyExit)},"load"),module2.exports.load=load2,originalProcessReallyExit=process13.reallyExit,processReallyExit=__name(function(code){processOk2(global.process)&&(process13.exitCode=code||0,emit("exit",process13.exitCode,null),emit("afterexit",process13.exitCode,null),originalProcessReallyExit.call(process13,process13.exitCode))},"processReallyExit"),originalProcessEmit=process13.emit,processEmit=__name(function(ev,arg){if(ev==="exit"&&processOk2(global.process)){arg!==void 0&&(process13.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit("exit",process13.exitCode,null),emit("afterexit",process13.exitCode,null),ret}else return originalProcessEmit.apply(this,arguments)},"processEmit")):module2.exports=function(){return function(){}};var assert3,signals2,isWin,EE,emitter,unload2,emit,sigListeners,loaded,load2,originalProcessReallyExit,processReallyExit,originalProcessEmit,processEmit}});var require_mtime_precision=__commonJS({"../../node_modules/proper-lockfile/lib/mtime-precision.js"(exports2,module2){"use strict";var cacheSymbol=Symbol();function probe(file2,fs4,callback){let cachedPrecision=fs4[cacheSymbol];if(cachedPrecision)return fs4.stat(file2,(err,stat4)=>{if(err)return callback(err);callback(null,stat4.mtime,cachedPrecision)});let mtime=new Date(Math.ceil(Date.now()/1e3)*1e3+5);fs4.utimes(file2,mtime,mtime,err=>{if(err)return callback(err);fs4.stat(file2,(err2,stat4)=>{if(err2)return callback(err2);let precision=stat4.mtime.getTime()%1e3===0?"s":"ms";Object.defineProperty(fs4,cacheSymbol,{value:precision}),callback(null,stat4.mtime,precision)})})}__name(probe,"probe");function getMtime(precision){let now2=Date.now();return precision==="s"&&(now2=Math.ceil(now2/1e3)*1e3),new Date(now2)}__name(getMtime,"getMtime");module2.exports.probe=probe;module2.exports.getMtime=getMtime}});var require_lockfile=__commonJS({"../../node_modules/proper-lockfile/lib/lockfile.js"(exports2,module2){"use strict";var path10=__require("path"),fs4=require_graceful_fs(),retry=require_retry2(),onExit2=require_signal_exit(),mtimePrecision=require_mtime_precision(),locks={};function getLockFile(file2,options){return options.lockfilePath||`${file2}.lock`}__name(getLockFile,"getLockFile");function resolveCanonicalPath(file2,options,callback){if(!options.realpath)return callback(null,path10.resolve(file2));options.fs.realpath(file2,callback)}__name(resolveCanonicalPath,"resolveCanonicalPath");function acquireLock(file2,options,callback){let lockfilePath=getLockFile(file2,options);options.fs.mkdir(lockfilePath,err=>{if(!err)return mtimePrecision.probe(lockfilePath,options.fs,(err2,mtime,mtimePrecision2)=>{if(err2)return options.fs.rmdir(lockfilePath,()=>{}),callback(err2);callback(null,mtime,mtimePrecision2)});if(err.code!=="EEXIST")return callback(err);if(options.stale<=0)return callback(Object.assign(new Error("Lock file is already being held"),{code:"ELOCKED",file:file2}));options.fs.stat(lockfilePath,(err2,stat4)=>{if(err2)return err2.code==="ENOENT"?acquireLock(file2,{...options,stale:0},callback):callback(err2);if(!isLockStale(stat4,options))return callback(Object.assign(new Error("Lock file is already being held"),{code:"ELOCKED",file:file2}));removeLock(file2,options,err3=>{if(err3)return callback(err3);acquireLock(file2,{...options,stale:0},callback)})})})}__name(acquireLock,"acquireLock");function isLockStale(stat4,options){return stat4.mtime.getTime()<Date.now()-options.stale}__name(isLockStale,"isLockStale");function removeLock(file2,options,callback){options.fs.rmdir(getLockFile(file2,options),err=>{if(err&&err.code!=="ENOENT")return callback(err);callback()})}__name(removeLock,"removeLock");function updateLock(file2,options){let lock3=locks[file2];lock3.updateTimeout||(lock3.updateDelay=lock3.updateDelay||options.update,lock3.updateTimeout=setTimeout(()=>{lock3.updateTimeout=null,options.fs.stat(lock3.lockfilePath,(err,stat4)=>{let isOverThreshold=lock3.lastUpdate+options.stale<Date.now();if(err)return err.code==="ENOENT"||isOverThreshold?setLockAsCompromised(file2,lock3,Object.assign(err,{code:"ECOMPROMISED"})):(lock3.updateDelay=1e3,updateLock(file2,options));if(!(lock3.mtime.getTime()===stat4.mtime.getTime()))return setLockAsCompromised(file2,lock3,Object.assign(new Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let mtime=mtimePrecision.getMtime(lock3.mtimePrecision);options.fs.utimes(lock3.lockfilePath,mtime,mtime,err2=>{let isOverThreshold2=lock3.lastUpdate+options.stale<Date.now();if(!lock3.released){if(err2)return err2.code==="ENOENT"||isOverThreshold2?setLockAsCompromised(file2,lock3,Object.assign(err2,{code:"ECOMPROMISED"})):(lock3.updateDelay=1e3,updateLock(file2,options));lock3.mtime=mtime,lock3.lastUpdate=Date.now(),lock3.updateDelay=null,updateLock(file2,options)}})})},lock3.updateDelay),lock3.updateTimeout.unref&&lock3.updateTimeout.unref())}__name(updateLock,"updateLock");function setLockAsCompromised(file2,lock3,err){lock3.released=!0,lock3.updateTimeout&&clearTimeout(lock3.updateTimeout),locks[file2]===lock3&&delete locks[file2],lock3.options.onCompromised(err)}__name(setLockAsCompromised,"setLockAsCompromised");function lock2(file2,options,callback){options={stale:1e4,update:null,realpath:!0,retries:0,fs:fs4,onCompromised:__name(err=>{throw err},"onCompromised"),...options},options.retries=options.retries||0,options.retries=typeof options.retries=="number"?{retries:options.retries}:options.retries,options.stale=Math.max(options.stale||0,2e3),options.update=options.update==null?options.stale/2:options.update||0,options.update=Math.max(Math.min(options.update,options.stale/2),1e3),resolveCanonicalPath(file2,options,(err,file3)=>{if(err)return callback(err);let operation=retry.operation(options.retries);operation.attempt(()=>{acquireLock(file3,options,(err2,mtime,mtimePrecision2)=>{if(operation.retry(err2))return;if(err2)return callback(operation.mainError());let lock3=locks[file3]={lockfilePath:getLockFile(file3,options),mtime,mtimePrecision:mtimePrecision2,options,lastUpdate:Date.now()};updateLock(file3,options),callback(null,releasedCallback=>{if(lock3.released)return releasedCallback&&releasedCallback(Object.assign(new Error("Lock is already released"),{code:"ERELEASED"}));unlock(file3,{...options,realpath:!1},releasedCallback)})})})})}__name(lock2,"lock");function unlock(file2,options,callback){options={fs:fs4,realpath:!0,...options},resolveCanonicalPath(file2,options,(err,file3)=>{if(err)return callback(err);let lock3=locks[file3];if(!lock3)return callback(Object.assign(new Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));lock3.updateTimeout&&clearTimeout(lock3.updateTimeout),lock3.released=!0,delete locks[file3],removeLock(file3,options,callback)})}__name(unlock,"unlock");function check2(file2,options,callback){options={stale:1e4,realpath:!0,fs:fs4,...options},options.stale=Math.max(options.stale||0,2e3),resolveCanonicalPath(file2,options,(err,file3)=>{if(err)return callback(err);options.fs.stat(getLockFile(file3,options),(err2,stat4)=>err2?err2.code==="ENOENT"?callback(null,!1):callback(err2):callback(null,!isLockStale(stat4,options)))})}__name(check2,"check");function getLocks(){return locks}__name(getLocks,"getLocks");onExit2(()=>{for(let file2 in locks){let options=locks[file2].options;try{options.fs.rmdirSync(getLockFile(file2,options))}catch{}}});module2.exports.lock=lock2;module2.exports.unlock=unlock;module2.exports.check=check2;module2.exports.getLocks=getLocks}});var require_adapter=__commonJS({"../../node_modules/proper-lockfile/lib/adapter.js"(exports2,module2){"use strict";var fs4=require_graceful_fs();function createSyncFs(fs5){let methods=["mkdir","realpath","stat","rmdir","utimes"],newFs={...fs5};return methods.forEach(method2=>{newFs[method2]=(...args)=>{let callback=args.pop(),ret;try{ret=fs5[`${method2}Sync`](...args)}catch(err){return callback(err)}callback(null,ret)}}),newFs}__name(createSyncFs,"createSyncFs");function toPromise(method2){return(...args)=>new Promise((resolve9,reject2)=>{args.push((err,result2)=>{err?reject2(err):resolve9(result2)}),method2(...args)})}__name(toPromise,"toPromise");function toSync(method2){return(...args)=>{let err,result2;if(args.push((_err,_result)=>{err=_err,result2=_result}),method2(...args),err)throw err;return result2}}__name(toSync,"toSync");function toSyncOptions(options){if(options={...options},options.fs=createSyncFs(options.fs||fs4),typeof options.retries=="number"&&options.retries>0||options.retries&&typeof options.retries.retries=="number"&&options.retries.retries>0)throw Object.assign(new Error("Cannot use retries with the sync api"),{code:"ESYNC"});return options}__name(toSyncOptions,"toSyncOptions");module2.exports={toPromise,toSync,toSyncOptions}}});var require_proper_lockfile=__commonJS({"../../node_modules/proper-lockfile/index.js"(exports2,module2){"use strict";var lockfile=require_lockfile(),{toPromise,toSync,toSyncOptions}=require_adapter();async function lock2(file2,options){let release=await toPromise(lockfile.lock)(file2,options);return toPromise(release)}__name(lock2,"lock");function lockSync2(file2,options){let release=toSync(lockfile.lock)(file2,toSyncOptions(options));return toSync(release)}__name(lockSync2,"lockSync");function unlock(file2,options){return toPromise(lockfile.unlock)(file2,options)}__name(unlock,"unlock");function unlockSync(file2,options){return toSync(lockfile.unlock)(file2,toSyncOptions(options))}__name(unlockSync,"unlockSync");function check2(file2,options){return toPromise(lockfile.check)(file2,options)}__name(check2,"check");function checkSync(file2,options){return toSync(lockfile.check)(file2,toSyncOptions(options))}__name(checkSync,"checkSync");module2.exports=lock2;module2.exports.lock=lock2;module2.exports.unlock=unlock;module2.exports.lockSync=lockSync2;module2.exports.unlockSync=unlockSync;module2.exports.check=check2;module2.exports.checkSync=checkSync}});function getLockfile(){return _lockfile||(_lockfile=require_proper_lockfile()),_lockfile}function lockSync(file2,options){return getLockfile().lockSync(file2,options)}var _lockfile,init_lockfile=__esm({"src/utils/lockfile.ts"(){__name(getLockfile,"getLockfile");__name(lockSync,"lockSync")}});function getLegacyApiKeyPrefetchResult(){return legacyApiKeyPrefetch}var legacyApiKeyPrefetch,init_keychainPrefetch=__esm({"src/utils/secureStorage/keychainPrefetch.ts"(){init_envUtils();init_macOsKeychainHelpers();legacyApiKeyPrefetch=null;__name(getLegacyApiKeyPrefetchResult,"getLegacyApiKeyPrefetchResult")}});function sleep2(ms,signal,opts){return new Promise((resolve9,reject2)=>{if(signal?.aborted){opts?.throwOnAbort||opts?.abortError?reject2(opts.abortError?.()??new Error("aborted")):resolve9();return}let timer2=setTimeout((signal2,onAbort2,resolve10)=>{signal2?.removeEventListener("abort",onAbort2),resolve10()},ms,signal,onAbort,resolve9);function onAbort(){clearTimeout(timer2),opts?.throwOnAbort||opts?.abortError?reject2(opts.abortError?.()??new Error("aborted")):resolve9()}__name(onAbort,"onAbort"),signal?.addEventListener("abort",onAbort,{once:!0}),opts?.unref&&timer2.unref()})}var init_sleep2=__esm({"src/utils/sleep.ts"(){__name(sleep2,"sleep")}});var init_toolSchemaCache=__esm({"src/utils/toolSchemaCache.ts"(){}});var require_extend=__commonJS({"../../node_modules/extend/index.js"(exports2,module2){"use strict";var hasOwn2=Object.prototype.hasOwnProperty,toStr=Object.prototype.toString,defineProperty2=Object.defineProperty,gOPD=Object.getOwnPropertyDescriptor,isArray4=__name(function(arr){return typeof Array.isArray=="function"?Array.isArray(arr):toStr.call(arr)==="[object Array]"},"isArray"),isPlainObject5=__name(function(obj){if(!obj||toStr.call(obj)!=="[object Object]")return!1;var hasOwnConstructor=hasOwn2.call(obj,"constructor"),hasIsPrototypeOf=obj.constructor&&obj.constructor.prototype&&hasOwn2.call(obj.constructor.prototype,"isPrototypeOf");if(obj.constructor&&!hasOwnConstructor&&!hasIsPrototypeOf)return!1;var key;for(key in obj);return typeof key>"u"||hasOwn2.call(obj,key)},"isPlainObject"),setProperty2=__name(function(target,options){defineProperty2&&options.name==="__proto__"?defineProperty2(target,options.name,{enumerable:!0,configurable:!0,value:options.newValue,writable:!0}):target[options.name]=options.newValue},"setProperty"),getProperty=__name(function(obj,name){if(name==="__proto__")if(hasOwn2.call(obj,name)){if(gOPD)return gOPD(obj,name).value}else return;return obj[name]},"getProperty");module2.exports=__name(function extend3(){var options,name,src,copy,copyIsArray,clone5,target=arguments[0],i3=1,length=arguments.length,deep=!1;for(typeof target=="boolean"&&(deep=target,target=arguments[1]||{},i3=2),(target==null||typeof target!="object"&&typeof target!="function")&&(target={});i3<length;++i3)if(options=arguments[i3],options!=null)for(name in options)src=getProperty(target,name),copy=getProperty(options,name),target!==copy&&(deep&&copy&&(isPlainObject5(copy)||(copyIsArray=isArray4(copy)))?(copyIsArray?(copyIsArray=!1,clone5=src&&isArray4(src)?src:[]):clone5=src&&isPlainObject5(src)?src:{},setProperty2(target,{name,newValue:extend3(deep,clone5,copy)})):typeof copy<"u"&&setProperty2(target,{name,newValue:copy}));return target},"extend")}});var require_package=__commonJS({"../../node_modules/gaxios/package.json"(exports2,module2){module2.exports={name:"gaxios",version:"7.2.0",description:"A simple common HTTP client specifically for Google APIs and services.",main:"build/cjs/src/index.js",types:"build/cjs/src/index.d.ts",files:["build/"],exports:{".":{import:{types:"./build/esm/src/index.d.ts",default:"./build/esm/src/index.js"},require:{types:"./build/cjs/src/index.d.ts",default:"./build/cjs/src/index.js"}}},scripts:{lint:"gts check --no-inline-config",test:"c8 mocha build/esm/test","presystem-test":"npm run compile","system-test":"mocha build/esm/system-test --timeout 80000",compile:"tsc -b ./tsconfig.json ./tsconfig.cjs.json && node utils/enable-esm.mjs",fix:"gts fix",prepare:"npm run compile",pretest:"npm run compile",webpack:"webpack","prebrowser-test":"npm run compile","browser-test":"node build/browser-test/browser-test-runner.js",docs:"jsdoc -c .jsdoc.js","samples-test":"cd samples/ && npm link ../ && npm test && cd ../",prelint:"cd samples; npm link ../; npm install",clean:"gts clean"},repository:{type:"git",directory:"core/packages/gaxios",url:"https://github.com/googleapis/google-cloud-node.git"},keywords:["google"],engines:{node:">=18"},author:"Google, LLC",license:"Apache-2.0",devDependencies:{"@babel/plugin-proposal-private-methods":"^7.18.6","@types/cors":"^2.8.6","@types/express":"^5.0.0","@types/extend":"^3.0.1","@types/mocha":"^10.0.10","@types/multiparty":"4.2.1","@types/mv":"^2.1.0","@types/ncp":"^2.0.8","@types/node":"^24.0.0","@types/sinon":"^21.0.0","@types/tmp":"^0.2.6",assert:"^2.0.0",browserify:"^17.0.0",c8:"^10.1.3",cors:"^2.8.5",express:"^5.0.0",gts:"^6.0.2","is-docker":"^3.0.0",jsdoc:"^4.0.4","jsdoc-fresh":"^5.0.0","jsdoc-region-tag":"^4.0.0",karma:"^6.0.0","karma-chrome-launcher":"^3.0.0","karma-coverage":"^2.0.0","karma-firefox-launcher":"^2.0.0","karma-mocha":"^2.0.0","karma-remap-coverage":"^0.1.5","karma-sourcemap-loader":"^0.4.0","karma-webpack":"^5.0.1",mocha:"^11.1.0",multiparty:"^4.2.1",mv:"^2.1.1",ncp:"^2.0.0",nock:"14.0.5","null-loader":"^4.0.1","pack-n-play":"^4.0.0",puppeteer:"^24.0.0",sinon:"21.0.3","stream-browserify":"^3.0.0",tmp:"0.2.6","ts-loader":"^9.5.2",typescript:"5.8.3","undici-types":"^7.24.1",webpack:"^5.97.1","webpack-cli":"^6.0.1"},dependencies:{extend:"^3.0.2","https-proxy-agent":"^7.0.1","node-fetch":"^3.3.2"},homepage:"https://github.com/googleapis/google-cloud-node/tree/main/core/packages/gaxios"}}});var require_util=__commonJS({"../../node_modules/gaxios/build/cjs/src/util.cjs"(exports2,module2){"use strict";var pkg=require_package();module2.exports={pkg}}});var require_common2=__commonJS({"../../node_modules/gaxios/build/cjs/src/common.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.GaxiosError=exports2.GAXIOS_ERROR_SYMBOL=void 0;exports2.defaultErrorRedactor=defaultErrorRedactor;var extend_1=__importDefault(require_extend()),util_cjs_1=__importDefault(require_util()),pkg=util_cjs_1.default.pkg;exports2.GAXIOS_ERROR_SYMBOL=Symbol.for(`${pkg.name}-gaxios-error`);var GaxiosError=class _GaxiosError extends Error{static{__name(this,"GaxiosError")}config;response;code;status;error;[exports2.GAXIOS_ERROR_SYMBOL]=pkg.version;static[Symbol.hasInstance](instance){return instance&&typeof instance=="object"&&exports2.GAXIOS_ERROR_SYMBOL in instance&&instance[exports2.GAXIOS_ERROR_SYMBOL]===pkg.version?!0:Function.prototype[Symbol.hasInstance].call(_GaxiosError,instance)}constructor(message,config2,response,cause){if(super(message,{cause}),this.config=config2,this.response=response,this.error=cause instanceof Error?cause:void 0,this.config=(0,extend_1.default)(!0,{},config2),this.response&&(this.response.config=(0,extend_1.default)(!0,{},this.response.config)),this.response){try{this.response.data=translateData(this.config.responseType,this.response?.bodyUsed?this.response?.data:void 0)}catch{}this.status=this.response.status}cause instanceof DOMException?this.code=cause.name:cause&&typeof cause=="object"&&"code"in cause&&(typeof cause.code=="string"||typeof cause.code=="number")&&(this.code=cause.code)}static extractAPIErrorFromResponse(res,defaultErrorMessage="The request failed"){let message=defaultErrorMessage;if(typeof res.data=="string"&&(message=res.data),res.data&&typeof res.data=="object"&&"error"in res.data&&res.data.error&&!res.ok){if(typeof res.data.error=="string")return{message:res.data.error,code:res.status,status:res.statusText};if(typeof res.data.error=="object"){message="message"in res.data.error&&typeof res.data.error.message=="string"?res.data.error.message:message;let status="status"in res.data.error&&typeof res.data.error.status=="string"?res.data.error.status:res.statusText,code="code"in res.data.error&&typeof res.data.error.code=="number"?res.data.error.code:res.status;if("errors"in res.data.error&&Array.isArray(res.data.error.errors)){let errorMessages=[];for(let e2 of res.data.error.errors)typeof e2=="object"&&"message"in e2&&typeof e2.message=="string"&&errorMessages.push(e2.message);return Object.assign({message:errorMessages.join(`