iclavue 11.2.21 → 11.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/clavue.js +1 -1
- package/dist/cli.js +6644 -6567
- package/dist/mao-command.js +1 -1
- package/dist/native/clavue-pager +0 -0
- package/dist/native/clavue-pager-darwin-arm64 +0 -0
- package/dist/native/clavue-pager-darwin-x64 +0 -0
- package/dist/native/clavue-pager-linux-x64 +0 -0
- package/dist/native/manifest.json +13 -13
- package/dist/openai-responses-adapter.js +3 -3
- package/dist/provider-setup.js +1 -1
- package/docs/clavue-pager-interaction-contract.md +1 -0
- package/package.json +1 -1
|
@@ -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
|
|
3
|
+
// clavue v11.3.2 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"&¤tValue2.parentNode===record2.virtualValue.parentNode&¤tValue2.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&©Object_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&©Object_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={"&":"&","<":"<",">":">",'"':""","'":"'"},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," ")+`
|
|
@@ -184,11 +184,11 @@ ${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.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)}
|
|
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.3.2",APP_VERSION=typeof MACRO<"u"?"11.3.2":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&"ed.length<=64&&!quoted.includes(`
|
|
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}"
|
|
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_TTS_PRODUCT_MODEL:()=>MEMBERSHIP_TTS_PRODUCT_MODEL,MEMBERSHIP_TTS_UPSTREAM_MODEL:()=>MEMBERSHIP_TTS_UPSTREAM_MODEL,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_TTS_PRODUCT_MODEL,MEMBERSHIP_OCR_UPSTREAM_MODEL,MEMBERSHIP_MUSIC_UPSTREAM_MODEL,MEMBERSHIP_TTS_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","clavue-tts"],MEMBERSHIP_OCR_PRODUCT_MODEL="clavue-ocr",MEMBERSHIP_MUSIC_PRODUCT_MODEL="clavue-music",MEMBERSHIP_TTS_PRODUCT_MODEL="clavue-tts",MEMBERSHIP_OCR_UPSTREAM_MODEL="PaddleOCR-VL-1.6-0.9B",MEMBERSHIP_MUSIC_UPSTREAM_MODEL="minimax-music3",MEMBERSHIP_TTS_UPSTREAM_MODEL="qwen3-tts-custom",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"]},{productId:"clavue-tts",upstreamModel:"qwen3-tts-custom",pool:"fast",contextWindow:4e3,defaultOutputTokens:1,maxOutputTokens:1,roles:["tts"]}],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(env5=process.env){let force=String(env5.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(env5=process.env){return resolveProductTrack(env5)==="official_cloud"}function isThirdPartyTrack(env5=process.env){return resolveProductTrack(env5)==="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"&¤t&¤t===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
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
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&¤tPath[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))&¤tStoredActiveProfileId!==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&¤tPath.length===1&¤tPath[0]==="claudeCode"&&isSection&&!replaced&&(output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0),isSection){currentPath=parseTomlPathSegments(normalizedLine.slice(1,-1).trim()),currentPath.length===1&¤tPath[0]==="claudeCode"&&(hasClaudeCodeSection=!0),output.push(line);continue}if(currentPath.length===1&¤tPath[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&¤tPath.length===1&¤tPath[0]==="claudeCode"&&!replaced&&(output.push(`currentProfile = "${escapeTomlBasicString(nextProfileId)}"`),replaced=!0),!hasClaudeCodeSection)continue;let nextContent=output.join(`
|