@github/copilot-language-server 1.545.0 → 1.545.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/main.js +3 -3
  2. package/package.json +8 -8
package/dist/main.js CHANGED
@@ -1754,7 +1754,7 @@ ${r.join(`
1754
1754
  `)return n;let o=n.indexOf(`
1755
1755
  `);return n.substring(o+1)}};async function djo(t){try{let e=await zQt.create(t);QYe.set(t,e)}catch(e){console.error(`[tokenizer] failed to load ${t}, using approximate token counts: ${String(e)}`)}}a(djo,"setTokenizer");var Vyn=new Map,Wyn=!1;function KQt(t="o200k_base"){if(Wyn||(Wyn=!0,QYe.set("mock",new YQt)),t==="mock")return Promise.resolve();let e=Vyn.get(t);return e||(e=djo(t).catch(()=>{}),Vyn.set(t,e)),e}a(KQt,"_ensureLoaded");async function zyn(t){let e=t==="cl100k_base"?"cl100k_base":t==="o200k_base"||t===void 0?"o200k_base":void 0;e&&await KQt(e)}a(zyn,"ensureNativeTokenizersLoaded");p();p();var fjo=function(t,e,r,n,o){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(t,r):o?o.value=r:e.set(t,r),r},Kyn=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},JQt,qYe,Jyn,ZQt=class extends Zi{static{a(this,"AssertError")}constructor(e){let r=e.First();super(r===void 0?"Invalid Value":r.message),JQt.add(this),qYe.set(this,void 0),fjo(this,qYe,e,"f"),this.error=r}Errors(){return new lQ(Kyn(this,JQt,"m",Jyn).call(this))}};qYe=new WeakMap,JQt=new WeakSet,Jyn=a(function*(){this.error&&(yield this.error),yield*Kyn(this,qYe,"f")},"_AssertError_Iterator");function Yyn(t,e,r){if(!hs(t,e,r))throw new ZQt(DO(t,e,r))}a(Yyn,"AssertValue");function HYe(...t){return t.length===3?Yyn(t[0],t[1],t[2]):Yyn(t[0],[],t[1])}a(HYe,"Assert");p();p();p();function pjo(t){let e={};for(let r of Object.getOwnPropertyNames(t))e[r]=rc(t[r]);for(let r of Object.getOwnPropertySymbols(t))e[r]=rc(t[r]);return e}a(pjo,"FromObject");function hjo(t){return t.map(e=>rc(e))}a(hjo,"FromArray");function mjo(t){return t.slice()}a(mjo,"FromTypedArray");function gjo(t){return new Map(rc([...t.entries()]))}a(gjo,"FromMap");function Ajo(t){return new Set(rc([...t.entries()]))}a(Ajo,"FromSet");function yjo(t){return new Date(t.toISOString())}a(yjo,"FromDate");function rc(t){if(Hi(t))return hjo(t);if(nv(t))return yjo(t);if(ox(t))return mjo(t);if(DXr(t))return gjo(t);if(MXr(t))return Ajo(t);if(Bo(t))return pjo(t);if(YT(t))return t;throw new Error("ValueClone: Unable to clone value")}a(rc,"Clone");var UI=class extends Zi{static{a(this,"ValueCreateError")}constructor(e,r){super(r),this.schema=e}};function nc(t){return Z7(t)?t():rc(t)}a(nc,"FromDefault");function Ejo(t,e){return Ji(t,"default")?nc(t.default):{}}a(Ejo,"FromAny");function _jo(t,e){return{}}a(_jo,"FromArgument");function vjo(t,e){if(t.uniqueItems===!0&&!Ji(t,"default"))throw new UI(t,"Array with the uniqueItems constraint requires a default value");if("contains"in t&&!Ji(t,"default"))throw new UI(t,"Array with the contains constraint requires a default value");return"default"in t?nc(t.default):t.minItems!==void 0?Array.from({length:t.minItems}).map(r=>QI(t.items,e)):[]}a(vjo,"FromArray");function Cjo(t,e){return Ji(t,"default")?nc(t.default):(async function*(){})()}a(Cjo,"FromAsyncIterator");function bjo(t,e){return Ji(t,"default")?nc(t.default):BigInt(0)}a(bjo,"FromBigInt");function Sjo(t,e){return Ji(t,"default")?nc(t.default):!1}a(Sjo,"FromBoolean");function Tjo(t,e){if(Ji(t,"default"))return nc(t.default);{let r=QI(t.returns,e);return typeof r=="object"&&!Array.isArray(r)?class{constructor(){for(let[n,o]of Object.entries(r)){let s=this;s[n]=o}}}:class{}}}a(Tjo,"FromConstructor");function Ijo(t,e){return Ji(t,"default")?nc(t.default):t.minimumTimestamp!==void 0?new Date(t.minimumTimestamp):new Date}a(Ijo,"FromDate");function wjo(t,e){return Ji(t,"default")?nc(t.default):()=>QI(t.returns,e)}a(wjo,"FromFunction");function xjo(t,e){let r=globalThis.Object.values(t.$defs),n=t.$defs[t.$ref];return QI(n,[...e,...r])}a(xjo,"FromImport");function Rjo(t,e){return Ji(t,"default")?nc(t.default):t.minimum!==void 0?t.minimum:0}a(Rjo,"FromInteger");function Pjo(t,e){if(Ji(t,"default"))return nc(t.default);{let r=t.allOf.reduce((n,o)=>{let s=QI(o,e);return typeof s=="object"?{...n,...s}:s},{});if(!hs(t,e,r))throw new UI(t,"Intersect produced invalid value. Consider using a default value.");return r}}a(Pjo,"FromIntersect");function kjo(t,e){return Ji(t,"default")?nc(t.default):(function*(){})()}a(kjo,"FromIterator");function Djo(t,e){return Ji(t,"default")?nc(t.default):t.const}a(Djo,"FromLiteral");function Mjo(t,e){if(Ji(t,"default"))return nc(t.default);throw new UI(t,"Never types cannot be created. Consider using a default value.")}a(Mjo,"FromNever");function Njo(t,e){if(Ji(t,"default"))return nc(t.default);throw new UI(t,"Not types must have a default value")}a(Njo,"FromNot");function Ojo(t,e){return Ji(t,"default")?nc(t.default):null}a(Ojo,"FromNull");function Bjo(t,e){return Ji(t,"default")?nc(t.default):t.minimum!==void 0?t.minimum:0}a(Bjo,"FromNumber");function Ljo(t,e){if(Ji(t,"default"))return nc(t.default);{let r=new Set(t.required),n={};for(let[o,s]of Object.entries(t.properties))r.has(o)&&(n[o]=QI(s,e));return n}}a(Ljo,"FromObject");function Fjo(t,e){return Ji(t,"default")?nc(t.default):Promise.resolve(QI(t.item,e))}a(Fjo,"FromPromise");function Ujo(t,e){return Ji(t,"default")?nc(t.default):{}}a(Ujo,"FromRecord");function Qjo(t,e){return Ji(t,"default")?nc(t.default):QI(Qa(t,e),e)}a(Qjo,"FromRef");function qjo(t,e){if(Ji(t,"default"))return nc(t.default);throw new UI(t,"RegExp types cannot be created. Consider using a default value.")}a(qjo,"FromRegExp");function Hjo(t,e){if(t.pattern!==void 0){if(Ji(t,"default"))return nc(t.default);throw new UI(t,"String types with patterns must specify a default value")}else if(t.format!==void 0){if(Ji(t,"default"))return nc(t.default);throw new UI(t,"String types with formats must specify a default value")}else return Ji(t,"default")?nc(t.default):t.minLength!==void 0?Array.from({length:t.minLength}).map(()=>" ").join(""):""}a(Hjo,"FromString");function jjo(t,e){return Ji(t,"default")?nc(t.default):"value"in t?Symbol.for(t.value):Symbol()}a(jjo,"FromSymbol");function Gjo(t,e){if(Ji(t,"default"))return nc(t.default);if(!nHe(t))throw new UI(t,"Can only create template literals that produce a finite variants. Consider using a default value.");return ece(t)[0]}a(Gjo,"FromTemplateLiteral");function $jo(t,e){if(Zyn++>Xjo)throw new UI(t,"Cannot create recursive type as it appears possibly infinite. Consider using a default.");return Ji(t,"default")?nc(t.default):QI(Qa(t,e),e)}a($jo,"FromThis");function Vjo(t,e){return Ji(t,"default")?nc(t.default):t.items===void 0?[]:Array.from({length:t.minItems}).map((r,n)=>QI(t.items[n],e))}a(Vjo,"FromTuple");function Wjo(t,e){if(Ji(t,"default"))return nc(t.default)}a(Wjo,"FromUndefined");function zjo(t,e){if(Ji(t,"default"))return nc(t.default);if(t.anyOf.length===0)throw new Error("ValueCreate.Union: Cannot create Union with zero variants");return QI(t.anyOf[0],e)}a(zjo,"FromUnion");function Yjo(t,e){return Ji(t,"default")?nc(t.default):t.minByteLength!==void 0?new Uint8Array(t.minByteLength):new Uint8Array(0)}a(Yjo,"FromUint8Array");function Kjo(t,e){return Ji(t,"default")?nc(t.default):{}}a(Kjo,"FromUnknown");function Jjo(t,e){if(Ji(t,"default"))return nc(t.default)}a(Jjo,"FromVoid");function Zjo(t,e){if(Ji(t,"default"))return nc(t.default);throw new Error("User defined types must specify a default value")}a(Zjo,"FromKind");function QI(t,e){let r=x0(t,e),n=t;switch(n[St]){case"Any":return Ejo(n,r);case"Argument":return _jo(n,r);case"Array":return vjo(n,r);case"AsyncIterator":return Cjo(n,r);case"BigInt":return bjo(n,r);case"Boolean":return Sjo(n,r);case"Constructor":return Tjo(n,r);case"Date":return Ijo(n,r);case"Function":return wjo(n,r);case"Import":return xjo(n,r);case"Integer":return Rjo(n,r);case"Intersect":return Pjo(n,r);case"Iterator":return kjo(n,r);case"Literal":return Djo(n,r);case"Never":return Mjo(n,r);case"Not":return Njo(n,r);case"Null":return Ojo(n,r);case"Number":return Bjo(n,r);case"Object":return Ljo(n,r);case"Promise":return Fjo(n,r);case"Record":return Ujo(n,r);case"Ref":return Qjo(n,r);case"RegExp":return qjo(n,r);case"String":return Hjo(n,r);case"Symbol":return jjo(n,r);case"TemplateLiteral":return Gjo(n,r);case"This":return $jo(n,r);case"Tuple":return Vjo(n,r);case"Undefined":return Wjo(n,r);case"Union":return zjo(n,r);case"Uint8Array":return Yjo(n,r);case"Unknown":return Kjo(n,r);case"Void":return Jjo(n,r);default:if(!iv.Has(n[St]))throw new UI(n,"Unknown type");return Zjo(n,r)}}a(QI,"Visit");var Xjo=512,Zyn=0;function UD(...t){return Zyn=0,t.length===2?QI(t[0],t[1]):QI(t[0],[])}a(UD,"Create");var jYe=class extends Zi{static{a(this,"ValueCastError")}constructor(e,r){super(r),this.schema=e}};function Xyn(t,e,r){if(t[St]==="Object"&&typeof r=="object"&&!OF(r)){let n=t,o=Object.getOwnPropertyNames(r);return Object.entries(n.properties).reduce((c,[l,u])=>{let d=u[St]==="Literal"&&u.const===r[l]?100:0,f=hs(u,e,r[l])?10:0,h=o.includes(l)?1:0;return c+(d+f+h)},0)}else if(t[St]==="Union"){let o=t.anyOf.map(s=>Qa(s,e)).map(s=>Xyn(s,e,r));return Math.max(...o)}else return hs(t,e,r)?1:0}a(Xyn,"ScoreUnion");function eGo(t,e,r){let n=t.anyOf.map(c=>Qa(c,e)),[o,s]=[n[0],0];for(let c of n){let l=Xyn(c,e,r);l>s&&(o=c,s=l)}return o}a(eGo,"SelectUnion");function tGo(t,e,r){if("default"in t)return typeof r=="function"?t.default:rc(t.default);{let n=eGo(t,e,r);return pRe(n,e,r)}}a(tGo,"CastUnion");function rGo(t,e,r){return hs(t,e,r)?rc(r):UD(t,e)}a(rGo,"DefaultClone");function nGo(t,e,r){return hs(t,e,r)?r:UD(t,e)}a(nGo,"Default");function iGo(t,e,r){if(hs(t,e,r))return rc(r);let n=Hi(r)?rc(r):UD(t,e),o=Ai(t.minItems)&&n.length<t.minItems?[...n,...Array.from({length:t.minItems-n.length},()=>null)]:n,c=(Ai(t.maxItems)&&o.length>t.maxItems?o.slice(0,t.maxItems):o).map(u=>QD(t.items,e,u));if(t.uniqueItems!==!0)return c;let l=[...new Set(c)];if(!hs(t,e,l))throw new jYe(t,"Array cast produced invalid data due to uniqueItems constraint");return l}a(iGo,"FromArray");function oGo(t,e,r){if(hs(t,e,r))return UD(t,e);let n=new Set(t.returns.required||[]),o=a(function(){},"result");for(let[s,c]of Object.entries(t.returns.properties))!n.has(s)&&r.prototype[s]===void 0||(o.prototype[s]=QD(c,e,r.prototype[s]));return o}a(oGo,"FromConstructor");function sGo(t,e,r){let n=globalThis.Object.values(t.$defs),o=t.$defs[t.$ref];return QD(o,[...e,...n],r)}a(sGo,"FromImport");function eEn(t,e){return Bo(t)&&!Bo(e)||!Bo(t)&&Bo(e)?t:!Bo(t)||!Bo(e)?e:globalThis.Object.getOwnPropertyNames(t).reduce((r,n)=>{let o=n in e?eEn(t[n],e[n]):t[n];return{...r,[n]:o}},{})}a(eEn,"IntersectAssign");function aGo(t,e,r){if(hs(t,e,r))return r;let n=UD(t,e),o=eEn(n,r);return hs(t,e,o)?o:n}a(aGo,"FromIntersect");function cGo(t,e,r){throw new jYe(t,"Never types cannot be cast")}a(cGo,"FromNever");function lGo(t,e,r){if(hs(t,e,r))return r;if(r===null||typeof r!="object")return UD(t,e);let n=new Set(t.required||[]),o={};for(let[s,c]of Object.entries(t.properties))!n.has(s)&&r[s]===void 0||(o[s]=QD(c,e,r[s]));if(typeof t.additionalProperties=="object"){let s=Object.getOwnPropertyNames(t.properties);for(let c of Object.getOwnPropertyNames(r))s.includes(c)||(o[c]=QD(t.additionalProperties,e,r[c]))}return o}a(lGo,"FromObject");function uGo(t,e,r){if(hs(t,e,r))return rc(r);if(r===null||typeof r!="object"||Array.isArray(r)||r instanceof Date)return UD(t,e);let n=Object.getOwnPropertyNames(t.patternProperties)[0],o=t.patternProperties[n],s={};for(let[c,l]of Object.entries(r))s[c]=QD(o,e,l);return s}a(uGo,"FromRecord");function dGo(t,e,r){return QD(Qa(t,e),e,r)}a(dGo,"FromRef");function fGo(t,e,r){return QD(Qa(t,e),e,r)}a(fGo,"FromThis");function pGo(t,e,r){return hs(t,e,r)?rc(r):Hi(r)?t.items===void 0?[]:t.items.map((n,o)=>QD(n,e,r[o])):UD(t,e)}a(pGo,"FromTuple");function hGo(t,e,r){return hs(t,e,r)?rc(r):tGo(t,e,r)}a(hGo,"FromUnion");function QD(t,e,r){let n=_a(t.$id)?x0(t,e):e,o=t;switch(t[St]){case"Array":return iGo(o,n,r);case"Constructor":return oGo(o,n,r);case"Import":return sGo(o,n,r);case"Intersect":return aGo(o,n,r);case"Never":return cGo(o,n,r);case"Object":return lGo(o,n,r);case"Record":return uGo(o,n,r);case"Ref":return dGo(o,n,r);case"This":return fGo(o,n,r);case"Tuple":return pGo(o,n,r);case"Union":return hGo(o,n,r);case"Date":case"Symbol":case"Uint8Array":return rGo(t,e,r);default:return nGo(o,n,r)}}a(QD,"Visit");function pRe(...t){return t.length===3?QD(t[0],t[1],t[2]):QD(t[0],[],t[1])}a(pRe,"Cast");p();function mGo(t){return eQ(t)&&t[St]!=="Unsafe"}a(mGo,"IsCheckable");function gGo(t,e,r){return Hi(r)?r.map(n=>Tb(t.items,e,n)):r}a(gGo,"FromArray");function AGo(t,e,r){let n=globalThis.Object.values(t.$defs),o=t.$defs[t.$ref];return Tb(o,[...e,...n],r)}a(AGo,"FromImport");function yGo(t,e,r){let n=t.unevaluatedProperties,s=t.allOf.map(l=>Tb(l,e,rc(r))).reduce((l,u)=>Bo(u)?{...l,...u}:u,{});if(!Bo(r)||!Bo(s)||!eQ(n))return s;let c=ib(t);for(let l of Object.getOwnPropertyNames(r))c.includes(l)||hs(n,e,r[l])&&(s[l]=Tb(n,e,r[l]));return s}a(yGo,"FromIntersect");function EGo(t,e,r){if(!Bo(r)||Hi(r))return r;let n=t.additionalProperties;for(let o of Object.getOwnPropertyNames(r)){if(Ji(t.properties,o)){r[o]=Tb(t.properties[o],e,r[o]);continue}if(eQ(n)&&hs(n,e,r[o])){r[o]=Tb(n,e,r[o]);continue}delete r[o]}return r}a(EGo,"FromObject");function _Go(t,e,r){if(!Bo(r))return r;let n=t.additionalProperties,o=Object.getOwnPropertyNames(r),[s,c]=Object.entries(t.patternProperties)[0],l=new RegExp(s);for(let u of o){if(l.test(u)){r[u]=Tb(c,e,r[u]);continue}if(eQ(n)&&hs(n,e,r[u])){r[u]=Tb(n,e,r[u]);continue}delete r[u]}return r}a(_Go,"FromRecord");function vGo(t,e,r){return Tb(Qa(t,e),e,r)}a(vGo,"FromRef");function CGo(t,e,r){return Tb(Qa(t,e),e,r)}a(CGo,"FromThis");function bGo(t,e,r){if(!Hi(r))return r;if(od(t.items))return[];let n=Math.min(r.length,t.items.length);for(let o=0;o<n;o++)r[o]=Tb(t.items[o],e,r[o]);return r.length>n?r.slice(0,n):r}a(bGo,"FromTuple");function SGo(t,e,r){for(let n of t.anyOf)if(mGo(n)&&hs(n,e,r))return Tb(n,e,r);return r}a(SGo,"FromUnion");function Tb(t,e,r){let n=_a(t.$id)?x0(t,e):e,o=t;switch(o[St]){case"Array":return gGo(o,n,r);case"Import":return AGo(o,n,r);case"Intersect":return yGo(o,n,r);case"Object":return EGo(o,n,r);case"Record":return _Go(o,n,r);case"Ref":return vGo(o,n,r);case"This":return CGo(o,n,r);case"Tuple":return bGo(o,n,r);case"Union":return SGo(o,n,r);default:return r}}a(Tb,"Visit");function GYe(...t){return t.length===3?Tb(t[0],t[1],t[2]):Tb(t[0],[],t[1])}a(GYe,"Clean");p();function $Ye(t){return _a(t)&&!isNaN(t)&&!isNaN(parseFloat(t))}a($Ye,"IsStringNumeric");function TGo(t){return WA(t)||RO(t)||Ai(t)}a(TGo,"IsValueToString");function hRe(t){return t===!0||Ai(t)&&t===1||WA(t)&&t===BigInt("1")||_a(t)&&(t.toLowerCase()==="true"||t==="1")}a(hRe,"IsValueTrue");function mRe(t){return t===!1||Ai(t)&&(t===0||Object.is(t,-0))||WA(t)&&t===BigInt("0")||_a(t)&&(t.toLowerCase()==="false"||t==="0"||t==="-0")}a(mRe,"IsValueFalse");function IGo(t){return _a(t)&&/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(t)}a(IGo,"IsTimeStringWithTimeZone");function wGo(t){return _a(t)&&/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(t)}a(wGo,"IsTimeStringWithoutTimeZone");function xGo(t){return _a(t)&&/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(t)}a(xGo,"IsDateTimeStringWithTimeZone");function RGo(t){return _a(t)&&/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(t)}a(RGo,"IsDateTimeStringWithoutTimeZone");function PGo(t){return _a(t)&&/^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(t)}a(PGo,"IsDateString");function kGo(t,e){let r=rEn(t);return r===e?r:t}a(kGo,"TryConvertLiteralString");function DGo(t,e){let r=nEn(t);return r===e?r:t}a(DGo,"TryConvertLiteralNumber");function MGo(t,e){let r=tEn(t);return r===e?r:t}a(MGo,"TryConvertLiteralBoolean");function NGo(t,e){return _a(t.const)?kGo(e,t.const):Ai(t.const)?DGo(e,t.const):RO(t.const)?MGo(e,t.const):e}a(NGo,"TryConvertLiteral");function tEn(t){return hRe(t)?!0:mRe(t)?!1:t}a(tEn,"TryConvertBoolean");function OGo(t){let e=a(r=>r.split(".")[0],"truncateInteger");return $Ye(t)?BigInt(e(t)):Ai(t)?BigInt(Math.trunc(t)):mRe(t)?BigInt(0):hRe(t)?BigInt(1):t}a(OGo,"TryConvertBigInt");function rEn(t){return BF(t)&&t.description!==void 0?t.description.toString():TGo(t)?t.toString():t}a(rEn,"TryConvertString");function nEn(t){return $Ye(t)?parseFloat(t):hRe(t)?1:mRe(t)?0:t}a(nEn,"TryConvertNumber");function BGo(t){return $Ye(t)?parseInt(t):Ai(t)?Math.trunc(t):hRe(t)?1:mRe(t)?0:t}a(BGo,"TryConvertInteger");function LGo(t){return _a(t)&&t.toLowerCase()==="null"?null:t}a(LGo,"TryConvertNull");function FGo(t){return _a(t)&&t==="undefined"?void 0:t}a(FGo,"TryConvertUndefined");function UGo(t){return nv(t)?t:Ai(t)?new Date(t):hRe(t)?new Date(1):mRe(t)?new Date(0):$Ye(t)?new Date(parseInt(t)):wGo(t)?new Date(`1970-01-01T${t}.000Z`):IGo(t)?new Date(`1970-01-01T${t}`):RGo(t)?new Date(`${t}.000Z`):xGo(t)?new Date(t):PGo(t)?new Date(`${t}T00:00:00.000Z`):t}a(UGo,"TryConvertDate");function QGo(t,e,r){return(Hi(r)?r:[r]).map(o=>qD(t.items,e,o))}a(QGo,"FromArray");function qGo(t,e,r){return OGo(r)}a(qGo,"FromBigInt");function HGo(t,e,r){return tEn(r)}a(HGo,"FromBoolean");function jGo(t,e,r){return UGo(r)}a(jGo,"FromDate");function GGo(t,e,r){let n=globalThis.Object.values(t.$defs),o=t.$defs[t.$ref];return qD(o,[...e,...n],r)}a(GGo,"FromImport");function $Go(t,e,r){return BGo(r)}a($Go,"FromInteger");function VGo(t,e,r){return t.allOf.reduce((n,o)=>qD(o,e,n),r)}a(VGo,"FromIntersect");function WGo(t,e,r){return NGo(t,r)}a(WGo,"FromLiteral");function zGo(t,e,r){return LGo(r)}a(zGo,"FromNull");function YGo(t,e,r){return nEn(r)}a(YGo,"FromNumber");function KGo(t,e,r){if(!Bo(r)||Hi(r))return r;for(let n of Object.getOwnPropertyNames(t.properties))Ji(r,n)&&(r[n]=qD(t.properties[n],e,r[n]));return r}a(KGo,"FromObject");function JGo(t,e,r){if(!(Bo(r)&&!Hi(r)))return r;let o=Object.getOwnPropertyNames(t.patternProperties)[0],s=t.patternProperties[o];for(let[c,l]of Object.entries(r))r[c]=qD(s,e,l);return r}a(JGo,"FromRecord");function ZGo(t,e,r){return qD(Qa(t,e),e,r)}a(ZGo,"FromRef");function XGo(t,e,r){return rEn(r)}a(XGo,"FromString");function e$o(t,e,r){return _a(r)||Ai(r)?Symbol(r):r}a(e$o,"FromSymbol");function t$o(t,e,r){return qD(Qa(t,e),e,r)}a(t$o,"FromThis");function r$o(t,e,r){return Hi(r)&&!od(t.items)?r.map((o,s)=>s<t.items.length?qD(t.items[s],e,o):o):r}a(r$o,"FromTuple");function n$o(t,e,r){return FGo(r)}a(n$o,"FromUndefined");function i$o(t,e,r){for(let n of t.anyOf)if(hs(n,e,r))return r;for(let n of t.anyOf){let o=qD(n,e,rc(r));if(hs(n,e,o))return o}return r}a(i$o,"FromUnion");function qD(t,e,r){let n=x0(t,e),o=t;switch(t[St]){case"Array":return QGo(o,n,r);case"BigInt":return qGo(o,n,r);case"Boolean":return HGo(o,n,r);case"Date":return jGo(o,n,r);case"Import":return GGo(o,n,r);case"Integer":return $Go(o,n,r);case"Intersect":return VGo(o,n,r);case"Literal":return WGo(o,n,r);case"Null":return zGo(o,n,r);case"Number":return YGo(o,n,r);case"Object":return KGo(o,n,r);case"Record":return JGo(o,n,r);case"Ref":return ZGo(o,n,r);case"String":return XGo(o,n,r);case"Symbol":return e$o(o,n,r);case"This":return t$o(o,n,r);case"Tuple":return r$o(o,n,r);case"Undefined":return n$o(o,n,r);case"Union":return i$o(o,n,r);default:return r}}a(qD,"Visit");function VYe(...t){return t.length===3?qD(t[0],t[1],t[2]):qD(t[0],[],t[1])}a(VYe,"Convert");p();function iEn(...t){let[e,r,n]=t.length===3?[t[0],t[1],t[2]]:[t[0],[],t[1]];if(!hs(e,r,n))throw new pce(e,n,DO(e,r,n).First());return $F(e,r)?hce(e,r,n):n}a(iEn,"Decode");p();function z3(t,e){let r=Ji(t,"default")?t.default:void 0,n=Z7(r)?r():rc(r);return od(e)?n:Bo(e)&&Bo(n)?Object.assign(n,e):e}a(z3,"ValueOrDefault");function XQt(t){return eQ(t)&&"default"in t}a(XQt,"HasDefaultProperty");function o$o(t,e,r){if(Hi(r)){for(let o=0;o<r.length;o++)r[o]=Cv(t.items,e,r[o]);return r}let n=z3(t,r);if(!Hi(n))return n;for(let o=0;o<n.length;o++)n[o]=Cv(t.items,e,n[o]);return n}a(o$o,"FromArray");function s$o(t,e,r){return nv(r)?r:z3(t,r)}a(s$o,"FromDate");function a$o(t,e,r){let n=globalThis.Object.values(t.$defs),o=t.$defs[t.$ref];return Cv(o,[...e,...n],r)}a(a$o,"FromImport");function c$o(t,e,r){let n=z3(t,r);return t.allOf.reduce((o,s)=>{let c=Cv(s,e,n);return Bo(c)?{...o,...c}:c},{})}a(c$o,"FromIntersect");function l$o(t,e,r){let n=z3(t,r);if(!Bo(n))return n;let o=Object.getOwnPropertyNames(t.properties);for(let s of o){let c=Cv(t.properties[s],e,n[s]);od(c)||(n[s]=Cv(t.properties[s],e,n[s]))}if(!XQt(t.additionalProperties))return n;for(let s of Object.getOwnPropertyNames(n))o.includes(s)||(n[s]=Cv(t.additionalProperties,e,n[s]));return n}a(l$o,"FromObject");function u$o(t,e,r){let n=z3(t,r);if(!Bo(n))return n;let o=t.additionalProperties,[s,c]=Object.entries(t.patternProperties)[0],l=new RegExp(s);for(let u of Object.getOwnPropertyNames(n))l.test(u)&&XQt(c)&&(n[u]=Cv(c,e,n[u]));if(!XQt(o))return n;for(let u of Object.getOwnPropertyNames(n))l.test(u)||(n[u]=Cv(o,e,n[u]));return n}a(u$o,"FromRecord");function d$o(t,e,r){return Cv(Qa(t,e),e,z3(t,r))}a(d$o,"FromRef");function f$o(t,e,r){return Cv(Qa(t,e),e,r)}a(f$o,"FromThis");function p$o(t,e,r){let n=z3(t,r);if(!Hi(n)||od(t.items))return n;let[o,s]=[t.items,Math.max(t.items.length,n.length)];for(let c=0;c<s;c++)c<o.length&&(n[c]=Cv(o[c],e,n[c]));return n}a(p$o,"FromTuple");function h$o(t,e,r){let n=z3(t,r);for(let o of t.anyOf){let s=Cv(o,e,rc(n));if(hs(o,e,s))return s}return n}a(h$o,"FromUnion");function Cv(t,e,r){let n=x0(t,e),o=t;switch(o[St]){case"Array":return o$o(o,n,r);case"Date":return s$o(o,n,r);case"Import":return a$o(o,n,r);case"Intersect":return c$o(o,n,r);case"Object":return l$o(o,n,r);case"Record":return u$o(o,n,r);case"Ref":return d$o(o,n,r);case"This":return f$o(o,n,r);case"Tuple":return p$o(o,n,r);case"Union":return h$o(o,n,r);default:return z3(o,r)}}a(Cv,"Visit");function WYe(...t){return t.length===3?Cv(t[0],t[1],t[2]):Cv(t[0],[],t[1])}a(WYe,"Default");p();p();var HD={};Qi(HD,{Delete:()=>g$o,Format:()=>gRe,Get:()=>y$o,Has:()=>A$o,Set:()=>m$o,ValuePointerRootDeleteError:()=>YYe,ValuePointerRootSetError:()=>zYe});p();var zYe=class extends Zi{static{a(this,"ValuePointerRootSetError")}constructor(e,r,n){super("Cannot set root value"),this.value=e,this.path=r,this.update=n}},YYe=class extends Zi{static{a(this,"ValuePointerRootDeleteError")}constructor(e,r){super("Cannot delete root value"),this.value=e,this.path=r}};function oEn(t){return t.indexOf("~")===-1?t:t.replace(/~1/g,"/").replace(/~0/g,"~")}a(oEn,"Escape");function*gRe(t){if(t==="")return;let[e,r]=[0,0];for(let n=0;n<t.length;n++)t.charAt(n)==="/"?(n===0||(r=n,yield oEn(t.slice(e,r))),e=n+1):r=n;yield oEn(t.slice(e))}a(gRe,"Format");function m$o(t,e,r){if(e==="")throw new zYe(t,e,r);let[n,o,s]=[null,t,""];for(let c of gRe(e))o[c]===void 0&&(o[c]={}),n=o,o=o[c],s=c;n[s]=r}a(m$o,"Set");function g$o(t,e){if(e==="")throw new YYe(t,e);let[r,n,o]=[null,t,""];for(let s of gRe(e)){if(n[s]===void 0||n[s]===null)return;r=n,n=n[s],o=s}if(Array.isArray(r)){let s=parseInt(o);r.splice(s,1)}else delete r[o]}a(g$o,"Delete");function A$o(t,e){if(e==="")return!0;let[r,n,o]=[null,t,""];for(let s of gRe(e)){if(n[s]===void 0)return!1;r=n,n=n[s],o=s}return Object.getOwnPropertyNames(r).includes(o)}a(A$o,"Has");function y$o(t,e){if(e==="")return t;let r=t;for(let n of gRe(e)){if(r[n]===void 0)return;r=r[n]}return r}a(y$o,"Get");p();function E$o(t,e){if(!Bo(e))return!1;let r=[...Object.keys(t),...Object.getOwnPropertySymbols(t)],n=[...Object.keys(e),...Object.getOwnPropertySymbols(e)];return r.length!==n.length?!1:r.every(o=>qJ(t[o],e[o]))}a(E$o,"ObjectType");function _$o(t,e){return nv(e)&&t.getTime()===e.getTime()}a(_$o,"DateType");function v$o(t,e){return!Hi(e)||t.length!==e.length?!1:t.every((r,n)=>qJ(r,e[n]))}a(v$o,"ArrayType");function C$o(t,e){return!ox(e)||t.length!==e.length||Object.getPrototypeOf(t).constructor.name!==Object.getPrototypeOf(e).constructor.name?!1:t.every((r,n)=>qJ(r,e[n]))}a(C$o,"TypedArrayType");function b$o(t,e){return t===e}a(b$o,"ValueType");function qJ(t,e){if(nv(t))return _$o(t,e);if(ox(t))return C$o(t,e);if(Hi(t))return v$o(t,e);if(Bo(t))return E$o(t,e);if(YT(t))return b$o(t,e);throw new Error("ValueEquals: Unable to compare value")}a(qJ,"Equal");var S$o=Ec({type:Ca("insert"),path:ov(),value:rD()}),T$o=Ec({type:Ca("update"),path:ov(),value:rD()}),I$o=Ec({type:Ca("delete"),path:ov()}),aEn=yc([S$o,T$o,I$o]),KYe=class extends Zi{static{a(this,"ValueDiffError")}constructor(e,r){super(r),this.value=e}};function JYe(t,e){return{type:"update",path:t,value:e}}a(JYe,"CreateUpdate");function cEn(t,e){return{type:"insert",path:t,value:e}}a(cEn,"CreateInsert");function lEn(t){return{type:"delete",path:t}}a(lEn,"CreateDelete");function sEn(t){if(globalThis.Object.getOwnPropertySymbols(t).length>0)throw new KYe(t,"Cannot diff objects with symbols")}a(sEn,"AssertDiffable");function*w$o(t,e,r){if(sEn(e),sEn(r),!sBt(r))return yield JYe(t,r);let n=globalThis.Object.getOwnPropertyNames(e),o=globalThis.Object.getOwnPropertyNames(r);for(let s of o)Ji(e,s)||(yield cEn(`${t}/${s}`,r[s]));for(let s of n)Ji(r,s)&&(qJ(e,r)||(yield*ZYe(`${t}/${s}`,e[s],r[s])));for(let s of n)Ji(r,s)||(yield lEn(`${t}/${s}`))}a(w$o,"ObjectType");function*x$o(t,e,r){if(!Hi(r))return yield JYe(t,r);for(let n=0;n<Math.min(e.length,r.length);n++)yield*ZYe(`${t}/${n}`,e[n],r[n]);for(let n=0;n<r.length;n++)n<e.length||(yield cEn(`${t}/${n}`,r[n]));for(let n=e.length-1;n>=0;n--)n<r.length||(yield lEn(`${t}/${n}`))}a(x$o,"ArrayType");function*R$o(t,e,r){if(!ox(r)||e.length!==r.length||globalThis.Object.getPrototypeOf(e).constructor.name!==globalThis.Object.getPrototypeOf(r).constructor.name)return yield JYe(t,r);for(let n=0;n<Math.min(e.length,r.length);n++)yield*ZYe(`${t}/${n}`,e[n],r[n])}a(R$o,"TypedArrayType");function*P$o(t,e,r){e!==r&&(yield JYe(t,r))}a(P$o,"ValueType");function*ZYe(t,e,r){if(sBt(e))return yield*w$o(t,e,r);if(Hi(e))return yield*x$o(t,e,r);if(ox(e))return yield*R$o(t,e,r);if(YT(e))return yield*P$o(t,e,r);throw new KYe(e,"Unable to diff value")}a(ZYe,"Visit");function uEn(t,e){return[...ZYe("",t,e)]}a(uEn,"Diff");function k$o(t){return t.length>0&&t[0].path===""&&t[0].type==="update"}a(k$o,"IsRootUpdate");function D$o(t){return t.length===0}a(D$o,"IsIdentity");function dEn(t,e){if(k$o(e))return rc(e[0].value);if(D$o(e))return rc(t);let r=rc(t);for(let n of e)switch(n.type){case"insert":{HD.Set(r,n.path,n.value);break}case"update":{HD.Set(r,n.path,n.value);break}case"delete":{HD.Delete(r,n.path);break}}return r}a(dEn,"Patch");p();function fEn(...t){let[e,r,n]=t.length===3?[t[0],t[1],t[2]]:[t[0],[],t[1]],o=$F(e,r)?gce(e,r,n):n;if(!hs(e,r,o))throw new mce(e,o,DO(e,r,o).First());return o}a(fEn,"Encode");p();function XYe(t){return Bo(t)&&!Hi(t)}a(XYe,"IsStandardObject");var eKe=class extends Zi{static{a(this,"ValueMutateError")}constructor(e){super(e)}};function M$o(t,e,r,n){if(!XYe(r))HD.Set(t,e,rc(n));else{let o=Object.getOwnPropertyNames(r),s=Object.getOwnPropertyNames(n);for(let c of o)s.includes(c)||delete r[c];for(let c of s)o.includes(c)||(r[c]=null);for(let c of s)eqt(t,`${e}/${c}`,r[c],n[c])}}a(M$o,"ObjectType");function N$o(t,e,r,n){if(!Hi(r))HD.Set(t,e,rc(n));else{for(let o=0;o<n.length;o++)eqt(t,`${e}/${o}`,r[o],n[o]);r.splice(n.length)}}a(N$o,"ArrayType");function O$o(t,e,r,n){if(ox(r)&&r.length===n.length)for(let o=0;o<r.length;o++)r[o]=n[o];else HD.Set(t,e,rc(n))}a(O$o,"TypedArrayType");function B$o(t,e,r,n){r!==n&&HD.Set(t,e,n)}a(B$o,"ValueType");function eqt(t,e,r,n){if(Hi(n))return N$o(t,e,r,n);if(ox(n))return O$o(t,e,r,n);if(XYe(n))return M$o(t,e,r,n);if(YT(n))return B$o(t,e,r,n)}a(eqt,"Visit");function pEn(t){return ox(t)||YT(t)}a(pEn,"IsNonMutableValue");function L$o(t,e){return XYe(t)&&Hi(e)||Hi(t)&&XYe(e)}a(L$o,"IsMismatchedValue");function hEn(t,e){if(pEn(t)||pEn(e))throw new eKe("Only object and array types can be mutated at the root level");if(L$o(t,e))throw new eKe("Cannot assign due type mismatch of assignable values");eqt(t,"",t,e)}a(hEn,"Mutate");p();var tKe=class extends Zi{static{a(this,"ParseError")}constructor(e){super(e)}},tqt;(function(t){let e=new Map([["Assert",(s,c,l)=>(HYe(s,c,l),l)],["Cast",(s,c,l)=>pRe(s,c,l)],["Clean",(s,c,l)=>GYe(s,c,l)],["Clone",(s,c,l)=>rc(l)],["Convert",(s,c,l)=>VYe(s,c,l)],["Decode",(s,c,l)=>$F(s,c)?hce(s,c,l):l],["Default",(s,c,l)=>WYe(s,c,l)],["Encode",(s,c,l)=>$F(s,c)?gce(s,c,l):l]]);function r(s){e.delete(s)}a(r,"Delete"),t.Delete=r;function n(s,c){e.set(s,c)}a(n,"Set"),t.Set=n;function o(s){return e.get(s)}a(o,"Get"),t.Get=o})(tqt||(tqt={}));var mEn=["Clone","Clean","Default","Convert","Assert","Decode"];function F$o(t,e,r,n){return t.reduce((o,s)=>{let c=tqt.Get(s);if(od(c))throw new tKe(`Unable to find Parse operation '${s}'`);return c(e,r,o)},n)}a(F$o,"ParseValue");function gEn(...t){let[e,r,n,o]=t.length===4?[t[0],t[1],t[2],t[3]]:t.length===3?Hi(t[0])?[t[0],t[1],[],t[2]]:[mEn,t[0],t[1],t[2]]:t.length===2?[mEn,t[0],[],t[1]]:(()=>{throw new tKe("Invalid Arguments")})();return F$o(e,r,n,o)}a(gEn,"Parse");p();var wB={};Qi(wB,{Assert:()=>HYe,Cast:()=>pRe,Check:()=>hs,Clean:()=>GYe,Clone:()=>rc,Convert:()=>VYe,Create:()=>UD,Decode:()=>iEn,Default:()=>WYe,Diff:()=>uEn,Edit:()=>aEn,Encode:()=>fEn,Equal:()=>qJ,Errors:()=>DO,Hash:()=>cQ,Mutate:()=>hEn,Parse:()=>gEn,Patch:()=>dEn,ValueErrorIterator:()=>lQ});p();var U$o="gpt-41-copilot",$x=class t{constructor(e,r=!0){this._ctx=e;this.onModelsFetchedCallbacks=[];this.fetchedModelData=[];this.editorPreviewFeaturesDisabled=!1;r&&ds(this._ctx,n=>this.refreshAvailableModels(n))}static{a(this,"AvailableModelsManager")}async refreshAvailableModels(e){await this.refreshModels(e);for(let r of this.onModelsFetchedCallbacks)r()}addHandler(e){this.onModelsFetchedCallbacks.push(e)}getDefaultModelId(){if(this.fetchedModelData){let e=t.filterCompletionModels(this.fetchedModelData,this.editorPreviewFeaturesDisabled)[0];if(e)return e.id}return U$o}parseModelsResponse(e){try{return wB.Parse(Uyn,e)}catch(r){Ur.exception(this._ctx,r,"Failed to parse /models response from CAPI");return}}async refreshModels(e){let r=await this.fetchModels(e);r&&(this.fetchedModelData=r)}async fetchModels(e){return this.editorPreviewFeaturesDisabled=e.getTokenValue("editor_preview_features")=="0",await this.fetch(e)}fetch(e){return(!this.fetchInProgress||this.fetchInProgress.withToken.token!==e.token)&&(this.fetchInProgress={withToken:e,response:this.fetchImpl(e).finally(()=>{this.fetchInProgress=void 0})}),this.fetchInProgress.response}async fetchImpl(e){let r=await QJ(this._ctx,"/models",e);return r.ok?this.parseModelsResponse(await r.json())?.data??[]:(Ur.error(this._ctx,"Failed to fetch models from CAPI",{status:r.status,statusText:r.statusText}),null)}getGenericCompletionModels(){let e=t.filterCompletionModels(this.fetchedModelData,this.editorPreviewFeaturesDisabled);return t.mapCompletionModels(e)}getTokenizerForModel(e){let n=this.getGenericCompletionModels().find(o=>o.modelId===e);return n?n.tokenizer:"o200k_base"}static filterCompletionModels(e,r){return e.filter(n=>n.capabilities.type==="completion").filter(n=>!r||n.preview===!1||n.preview===void 0)}static filterModelsWithEditorPreviewFeatures(e,r){return e.filter(n=>!r||n.preview===!1||n.preview===void 0)}static mapCompletionModels(e){return e.map(r=>({modelId:r.id,label:r.name,preview:!!r.preview,tokenizer:r.capabilities.tokenizer}))}getCurrentModelRequestInfo(e=void 0){let r=this.getDefaultModelId(),n=bt(this._ctx,He.DebugOverrideEngine)||bt(this._ctx,He.DebugOverrideEngineLegacy);if(n)return new ARe(n,"override");let o=e?this._ctx.get(rr).customEngine(e):"";return o?new ARe(o,"exp"):new ARe(r,"default")}},ARe=class{constructor(e,r){this.modelId=e;this.modelChoiceSource=r}static{a(this,"ModelRequestInfo")}get headers(){return{}}};function Kq(t,e=void 0){let r=t.get($x),n=r.getCurrentModelRequestInfo(e),o=r.getTokenizerForModel(n.modelId);return{headers:n.headers,modelId:n.modelId,engineChoiceSource:n.modelChoiceSource,tokenizer:o}}a(Kq,"getEngineRequestInfo");p();p();var Zo=class{static{a(this,"FileSystem")}};var NEn=ue(MEn());function OEn(t){return t!==void 0&&t!==0}a(OEn,"isRepoInfo");function BEn(t){if(t===void 0||t===0)return"";let e=HJ(t);if(e==="github/github")return e;let r=dVo(t)?.toLowerCase();return r!==void 0?r:""}a(BEn,"getDogFood");function HJ(t){if(t!==void 0&&t!==0&&t.hostname==="github.com")return t.owner+"/"+t.repo}a(HJ,"tryGetGitHubNWO");function dVo(t){if(t===void 0||t===0)return;let e=t.hostname.toLowerCase(),r=e==="azure.com"||e.endsWith(".azure.com"),n=e==="visualstudio.com"||e.endsWith(".visualstudio.com");if(r||n)return t.owner+"/"+t.repo}a(dVo,"tryGetADONWO");function Jq(t,e){let r=Mf(e);return fVo(t,r)}a(Jq,"extractRepoInfoInBackground");var fVo=gVo(pVo,1e4);async function pVo(t,e){let r=LKr(e);if(!r)return;let n=await hVo(t,r);if(!n)return;let o=t.get(Zo),s=Fa(n,".git","config"),c;try{c=await o.readFileString(s)}catch{return}let l=mVo(c)??"",u=oqt(l),d={uri:n};return u===void 0?{baseFolder:d,url:l,hostname:"",owner:"",repo:"",pathname:""}:{baseFolder:d,url:l,...u}}a(pVo,"extractRepoInfo");function oqt(t){let e;try{if(e=(0,NEn.default)(t),e.resource==""||e.owner==""||e.name==""||e.pathname=="")return}catch{return}return{hostname:e.resource,owner:e.owner,repo:e.name,pathname:e.pathname}}a(oqt,"parseRepoUrl");async function hVo(t,e){let r=e+"_add_to_make_longer",n=t.get(Zo);for(;e!=="file:///"&&e.length<r.length;){let o=Fa(e,".git","config"),s=!1;try{await n.stat(o),s=!0}catch{s=!1}if(s)return e;r=e,e=Mf(e)}}a(hVo,"getRepoBaseUri");function mVo(t){let e=/^\s*\[\s*remote\s+"((\\\\|\\"|[^\\"])+)"/,r=/^\s*\[remote.([^"\s]+)/,n=/^\s*url\s*=\s*([^\s#;]+)/,o=/^\s*\[/,s,c,l=!1;for(let u of t.split(`
1756
1756
  `))if(l&&s!==void 0){if(s+=u,u.endsWith("\\"))s=s.substring(0,s.length-1);else if(l=!1,c==="origin")return s}else{let d=u.match(e)??u.match(r);if(d)c=d[1];else if(u.match(o))c=void 0;else{if(s&&c!=="origin")continue;{let f=u.match(n);if(f){if(s=f[1],s.endsWith("\\"))s=s.substring(0,s.length-1),l=!0;else if(c==="origin")return s}}}}return s}a(mVo,"getRepoUrlFromConfigText");var iqt=class{static{a(this,"CompletedComputation")}constructor(e){this.result=e}};function gVo(t,e){let r=new mn(e),n=new Set;return(o,...s)=>{let c=JSON.stringify(s),l=r.get(c);if(l)return l.result;if(n.has(c))return 0;let u=t(o,...s);return n.add(c),u.then(d=>{r.set(c,new iqt(d)),n.delete(c)}),0}}a(gVo,"computeInBackgroundAndMemoize");p();var yRe=500,LEn=8192-yRe,FEn=4,rKe=10,UEn=1e3*5,nKe={prefix:35,suffix:15,stableContext:35,volatileContext:15},AVo={javascriptreact:"javascript",jsx:"javascript",typescriptreact:"typescript",jade:"pug",cshtml:"razor",c:"cpp"};function ERe(t){return t=t.toLowerCase(),AVo[t]??t}a(ERe,"normalizeLanguageId");var sqt=class{constructor(e){this.ctx=e;this.cache=new mn(200)}static{a(this,"FilterSettingsToExpConfigs")}async fetchExpConfig(e,r){let n=e.stringify()+`
1757
- `+JSON.stringify(r),o=this.cache.get(n);return o||(o=new aqt(()=>this.ctx.get(wD).fetchExperiments(this.ctx,r,e.toHeaders()),1e3*60*60),this.cache.set(n,o)),o.run()}getCachedExpConfig(e){return this.cache.get(e.stringify())?.value()}},aqt=class{constructor(e,r=1/0){this.producer=e;this.expirationMs=r}static{a(this,"Task")}async run(){return this.promise===void 0&&(this.promise=this.producer(),this.storeResult(this.promise).then(()=>{this.expirationMs<1/0&&this.promise!==void 0&&setTimeout(()=>this.promise=void 0,this.expirationMs)})),this.promise}async storeResult(e){try{this.result=await e}finally{this.result===void 0&&(this.promise=void 0)}}value(){return this.result}};function EVo(t){return"uri"in t}a(EVo,"isCompletionsFiltersInfo");var rr=class t{constructor(e){this.ctx=e;this.staticFilters={};this.dynamicFilters={};this.dynamicFilterGroups=[];this.upcomingDynamicFilters={};this.assignments=new sqt(this.ctx)}static{a(this,"Features")}static{this.upcomingDynamicFilterCheckDelayMs=20}static{this.upcomingTimeBucketMinutes=5+Math.floor(Math.random()*11)}registerStaticFilters(e){Object.assign(this.staticFilters,e)}registerDynamicFilter(e,r){this.dynamicFilters[e]=r}registerDynamicFilterGroup(e){this.dynamicFilterGroups.push(e)}getDynamicFilterValues(){let e={};for(let r of this.dynamicFilterGroups)Object.assign(e,r());for(let[r,n]of Object.entries(this.dynamicFilters))e[r]=n();return e}registerUpcomingDynamicFilter(e,r){this.upcomingDynamicFilters[e]=r}async updateExPValuesAndAssignments(e,r,n=zt.createAndMarkAsIssued()){if(n instanceof sv)throw new Error("updateExPValuesAndAssignments should not be called with TelemetryWithExp");let o=r&&EVo(r)?Jq(this.ctx,r.uri):void 0,s=HJ(o)??"",c=BEn(o)??"",l=r?.languageId??"",u=Kq(this.ctx).modelId,d=lYr(e),f=e.getTokenValue("ol")??"",h=e.getTokenValue("tid")??"",m=e.getTokenValue("fcv1")==="1",g=e.getTokenValue("sn")==="1",y=this.ctx.get(Of).getProperties(),E=e.endpoints,_={"X-Copilot-Repository":s,"X-Copilot-FileType":l,"X-Copilot-UserKind":d,"X-Copilot-Dogfood":c,"X-Copilot-Engine":u,"X-Copilot-Orgs":f,"X-Copilot-CopilotTrackingId":h,"X-GitHub-Copilot-SKU":y.sku||"","X-GitHub-Copilot-IsFcv1":m?"1":"0","X-GitHub-Copilot-IsSn":g?"1":"0"},v=this.getGranularityDirectory(),S=this.makeFilterSettings(_),T=v.extendFilters(S),w=await this.getExpConfig(T.newFilterSettings,E);v.update(S,+(w.variables.copilotbycallbuckets??NaN),+(w.variables.copilottimeperiodsizeinh??NaN));let R=v.extendFilters(S),x=R.newFilterSettings,P=await this.getExpConfig(x,E),D=new Promise(M=>setTimeout(M,t.upcomingDynamicFilterCheckDelayMs));for(let M of R.otherFilterSettingsToPrefetch)D=D.then(async()=>{await new Promise(O=>setTimeout(O,t.upcomingDynamicFilterCheckDelayMs)),this.getExpConfig(M,E)});return this.prepareForUpcomingFilters(x,E),new sv(n.properties,n.measurements,n.issuedTime,{filters:x,exp:P})}async fetchTokenAndUpdateExPValuesAndAssignments(e,r){let n=await this.ctx.get(Mt).getToken();return await this.updateExPValuesAndAssignments(n,e,r)}getGranularityDirectory(){if(!this.granularityDirectory){let e=this.ctx.get(Ea).machineId;this.granularityDirectory=new bVe(e,this.ctx.get(_b))}return this.granularityDirectory}makeFilterSettings(e){return new Wk({...this.staticFilters,...this.getDynamicFilterValues(),...e})}async getExpConfig(e,r){try{return this.assignments.fetchExpConfig(e,r)}catch(n){return eb.createFallbackConfig(this.ctx,`Error fetching ExP config: ${String(n)}`)}}async prepareForUpcomingFilters(e,r){if(!(new Date().getMinutes()<60-t.upcomingTimeBucketMinutes))for(let[n,o]of Object.entries(this.upcomingDynamicFilters))await new Promise(s=>setTimeout(s,t.upcomingDynamicFilterCheckDelayMs)),this.getExpConfig(e.withChange(n,o()),r)}stringify(){let e=this.assignments.getCachedExpConfig(new Wk({}));return JSON.stringify(e?.variables??{})}async getFallbackExpAndFilters(){let e=this.makeFilterSettings({}),r=rx(this.ctx),n=await this.getExpConfig(e,r);return{filters:e,exp:n}}disableLogProb(e){return e.filtersAndExp.exp.variables.copilotdisablelogprob??!0}overrideBlockMode(e){return e.filtersAndExp.exp.variables.copilotoverrideblockmode||void 0}customEngine(e){return e.filtersAndExp.exp.variables.copilotcustomengine??""}suffixPercent(e){return e.filtersAndExp.exp.variables.CopilotSuffixPercent??nKe.suffix}suffixMatchThreshold(e){return e.filtersAndExp.exp.variables.copilotsuffixmatchthreshold??rKe}cppHeadersEnableSwitch(e){return e.filtersAndExp.exp.variables.copilotcppheadersenableswitch??!1}relatedFilesVSCodeCSharp(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscodecsharp??!1}relatedFilesVSCodeTypeScript(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscodetypescript??!1}relatedFilesVSCode(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscode??!1}contextProviders(e){let r=e.filtersAndExp.exp.variables.copilotcontextproviders??"";return r?r.split(",").map(n=>n.trim()):[]}contextProviderTimeBudget(e){return e.filtersAndExp.exp.variables.copilotcontextprovidertimebudget??150}includeNeighboringFiles(e){return e.filtersAndExp.exp.variables.copilotincludeneighboringfiles??!1}excludeRelatedFiles(e){return e.filtersAndExp.exp.variables.copilotexcluderelatedfiles??!1}maxPromptCompletionTokens(e){return e.filtersAndExp.exp.variables.maxpromptcompletionTokens??LEn+yRe}ideChatMaxRequestTokens(e){return e.filtersAndExp.exp.variables.idechatmaxrequesttokens??-1}ideChatExpModelIds(e){return e.filtersAndExp.exp.variables.idechatexpmodelids??""}ideChatEnableProjectMetadata(e){return e.filtersAndExp.exp.variables.idechatenableprojectmetadata??!1}ideDataMigrationCompleted(e){return e.filtersAndExp.exp.variables.idedatamigrationcompleted??!1}workspaceContextCoordinator(e){return e.filtersAndExp.exp.variables.copilotworkspacecontextcoordinator??!1}workspaceContextCacheTime(e){return e.filtersAndExp.exp.variables.copilotworkspacecontextcachetime??UEn}stableContextPercent(e){return e.filtersAndExp.exp.variables.copilotstablecontextpercent??nKe.stableContext}volatileContextPercent(e){return e.filtersAndExp.exp.variables.copilotvolatilecontextpercent??nKe.volatileContext}cppContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotcppContextProviderParams}csharpContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotcsharpcontextproviderparams}javaContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotjavacontextproviderparams}multiLanguageContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotmultilanguagecontextproviderparams}tsContextProviderParams(e){return e.filtersAndExp.exp.variables.copilottscontextproviderparams}completionsDebounce(e){return e.filtersAndExp.exp.variables.copilotcompletionsdebounce}enableElectronFetcher(e){return e.filtersAndExp.exp.variables.copilotelectronfetcher??!1}enableFetchFetcher(e){return e.filtersAndExp.exp.variables.copilotfetchfetcher??!1}asyncCompletionsTimeout(e){return e.filtersAndExp.exp.variables.copilotasynccompletionstimeout??200}enablePromptContextProxyField(e){return e.filtersAndExp.exp.variables.copilotenablepromptcontextproxyfield??!1}enableProgressiveReveal(e){return e.filtersAndExp.exp.variables.copilotprogressivereveal??!1}modelAlwaysTerminatesSingleline(e){return e.filtersAndExp.exp.variables.copilotmodelterminatesingleline??!0}longLookaheadSize(e){return e.filtersAndExp.exp.variables.copilotprogressivereveallonglookaheadsize??9}shortLookaheadSize(e){return e.filtersAndExp.exp.variables.copilotprogressiverevealshortlookaheadsize??3}maxMultilineTokens(e){return e.filtersAndExp.exp.variables.copilotmaxmultilinetokens??200}multilineAfterAcceptLines(e){return e.filtersAndExp.exp.variables.copilotmultilineafteracceptlines??1}enableNESXTab(e){return e.filtersAndExp.exp.variables.copilotnesxtab??!1}getNESXTabModelID(e){return e.filtersAndExp.exp.variables.copilotnesxtabmodelid??"copilot-nes-xtab"}completionsDelay(e){return e.filtersAndExp.exp.variables.copilotcompletionsdelay??200}singleLineUnlessAccepted(e){return e.filtersAndExp.exp.variables.copilotsinglelineunlessaccepted??!1}useCompletionsComparisonPanel(e){return e.filtersAndExp.exp.variables.copilotusecompletionscomparisonpanel??!1}comparisonPanelModelIds(e){return e.filtersAndExp.exp.variables.copilotcomparisonpanelmodelids??""}comparisonPanelRandomizedMode(e){return e.filtersAndExp.exp.variables.copilotcomparisonpanelrandomizedmode??!0}useChatLibCompletions(e){return e.filtersAndExp.exp.variables.copilotusechatlibcompletions??!1}cveRemediatorAgentEnabled(e){return e.filtersAndExp.exp.variables.cveremediatoragentenabled??!1}instantApplyModelMigration(e){return e.filtersAndExp.exp.variables.copilotinstantapplymodelmigration??!1}appmodContextMenuEnabled(e){return e.filtersAndExp.exp.variables.copilotappmodcontextmenuenabled??!1}appmodProblemsViewEnabled(e){return e.filtersAndExp.exp.variables.copilotappmodproblemsviewenabled??!1}searchAgentEnabled(e){return e.filtersAndExp.exp.variables.copilotsearchagentenabled??!1}copilotAsDefaultForGaEnabled(e){return e.filtersAndExp.exp.variables.copilotasdefaultforga??!1}inlineChatUseCliEnabled(e){return e.filtersAndExp.exp.variables.inlinechatusecli??!1}chatOnboardingTourEnabled(e){return e.filtersAndExp.exp.variables.copilotchatonboardingtour??!1}chatUsageTipsEnabled(e){return e.filtersAndExp.exp.variables.chatusagetipsenabled??!1}};async function iKe(t){let e=bt(t,He.SearchAgent);if(e==="true")return!0;if(e==="false")return!1;let r=t.get(rr),n=await r.fetchTokenAndUpdateExPValuesAndAssignments();return r.searchAgentEnabled(n)}a(iKe,"isSearchAgentEnabled");p();p();p();var oKe=ue(vde());var lqt={python:"python",javascript:"javascript",javascriptreact:"javascript",jsx:"javascript",typescript:"typescript",typescriptreact:"tsx",go:"go",ruby:"ruby",csharp:"c-sharp",java:"java",php:"php",c:"cpp",cpp:"cpp"};function qI(t){return t in lqt&&t!=="csharp"&&t!=="java"&&t!=="php"&&t!=="c"&&t!=="cpp"}a(qI,"isSupportedLanguageId");function sKe(t){if(!(t in lqt))throw new Error(`Unrecognized language: ${t}`);return lqt[t]}a(sKe,"languageIdToWasmLanguage");var cqt=new Map;async function _Vo(t){let e;try{e=await FYe(`tree-sitter-${t}.wasm`)}catch(r){throw r instanceof Error&&"code"in r&&typeof r.code=="string"&&r.name==="Error"?new Wq(`Could not load tree-sitter-${t}.wasm`,r):r}return oKe.default.Language.load(e)}a(_Vo,"loadWasmLanguage");function dqt(t){let e=sKe(t);if(!cqt.has(e)){let r=_Vo(e);cqt.set(e,r)}return cqt.get(e)}a(dqt,"getLanguage");var uqt=class extends Error{static{a(this,"WrappedError")}constructor(e,r){super(e,{cause:r})}};async function Zq(t,e){return(await fqt(t,e))[0]}a(Zq,"parseTreeSitter");async function fqt(t,e){await oKe.default.init({locateFile:a(s=>dRe(s),"locateFile")});let r;try{r=new oKe.default}catch(s){throw s&&typeof s=="object"&&"message"in s&&typeof s.message=="string"&&s.message.includes("table index is out of bounds")?new uqt(`Could not init Parse for language <${t}>`,s):s}let n=await dqt(t);r.setLanguage(n);let o=r.parse(e);return r.delete(),[o,n.version]}a(fqt,"parseTreeSitterIncludingVersion");function QEn(t){switch(sKe(t)){case"python":return null;case"javascript":case"typescript":case"tsx":case"go":case"c-sharp":case"java":case"php":case"cpp":return"}";case"ruby":return"end"}}a(QEn,"getBlockCloseToken");function vVo(t,e){let r=[];for(let n of t){if(!n[1]){let o=e.tree.getLanguage();n[1]=o.query(n[0])}r.push(...n[1].matches(e))}return r}a(vVo,"innerQuery");var CVo=[`[
1757
+ `+JSON.stringify(r),o=this.cache.get(n);return o||(o=new aqt(()=>this.ctx.get(wD).fetchExperiments(this.ctx,r,e.toHeaders()),1e3*60*60),this.cache.set(n,o)),o.run()}getCachedExpConfig(e){return this.cache.get(e.stringify())?.value()}},aqt=class{constructor(e,r=1/0){this.producer=e;this.expirationMs=r}static{a(this,"Task")}async run(){return this.promise===void 0&&(this.promise=this.producer(),this.storeResult(this.promise).then(()=>{this.expirationMs<1/0&&this.promise!==void 0&&setTimeout(()=>this.promise=void 0,this.expirationMs)})),this.promise}async storeResult(e){try{this.result=await e}finally{this.result===void 0&&(this.promise=void 0)}}value(){return this.result}};function EVo(t){return"uri"in t}a(EVo,"isCompletionsFiltersInfo");var rr=class t{constructor(e){this.ctx=e;this.staticFilters={};this.dynamicFilters={};this.dynamicFilterGroups=[];this.upcomingDynamicFilters={};this.assignments=new sqt(this.ctx)}static{a(this,"Features")}static{this.upcomingDynamicFilterCheckDelayMs=20}static{this.upcomingTimeBucketMinutes=5+Math.floor(Math.random()*11)}registerStaticFilters(e){Object.assign(this.staticFilters,e)}registerDynamicFilter(e,r){this.dynamicFilters[e]=r}registerDynamicFilterGroup(e){this.dynamicFilterGroups.push(e)}getDynamicFilterValues(){let e={};for(let r of this.dynamicFilterGroups)Object.assign(e,r());for(let[r,n]of Object.entries(this.dynamicFilters))e[r]=n();return e}registerUpcomingDynamicFilter(e,r){this.upcomingDynamicFilters[e]=r}async updateExPValuesAndAssignments(e,r,n=zt.createAndMarkAsIssued()){if(n instanceof sv)throw new Error("updateExPValuesAndAssignments should not be called with TelemetryWithExp");let o=r&&EVo(r)?Jq(this.ctx,r.uri):void 0,s=HJ(o)??"",c=BEn(o)??"",l=r?.languageId??"",u=Kq(this.ctx).modelId,d=lYr(e),f=e.getTokenValue("ol")??"",h=e.getTokenValue("tid")??"",m=e.getTokenValue("fcv1")==="1",g=e.getTokenValue("sn")==="1",y=this.ctx.get(Of).getProperties(),E=e.endpoints,_={"X-Copilot-Repository":s,"X-Copilot-FileType":l,"X-Copilot-UserKind":d,"X-Copilot-Dogfood":c,"X-Copilot-Engine":u,"X-Copilot-Orgs":f,"X-Copilot-CopilotTrackingId":h,"X-GitHub-Copilot-SKU":y.sku||"","X-GitHub-Copilot-IsFcv1":m?"1":"0","X-GitHub-Copilot-IsSn":g?"1":"0"},v=this.getGranularityDirectory(),S=this.makeFilterSettings(_),T=v.extendFilters(S),w=await this.getExpConfig(T.newFilterSettings,E);v.update(S,+(w.variables.copilotbycallbuckets??NaN),+(w.variables.copilottimeperiodsizeinh??NaN));let R=v.extendFilters(S),x=R.newFilterSettings,P=await this.getExpConfig(x,E),D=new Promise(M=>setTimeout(M,t.upcomingDynamicFilterCheckDelayMs));for(let M of R.otherFilterSettingsToPrefetch)D=D.then(async()=>{await new Promise(O=>setTimeout(O,t.upcomingDynamicFilterCheckDelayMs)),this.getExpConfig(M,E)});return this.prepareForUpcomingFilters(x,E),new sv(n.properties,n.measurements,n.issuedTime,{filters:x,exp:P})}async fetchTokenAndUpdateExPValuesAndAssignments(e,r){let n=await this.ctx.get(Mt).getToken();return await this.updateExPValuesAndAssignments(n,e,r)}getGranularityDirectory(){if(!this.granularityDirectory){let e=this.ctx.get(Ea).machineId;this.granularityDirectory=new bVe(e,this.ctx.get(_b))}return this.granularityDirectory}makeFilterSettings(e){return new Wk({...this.staticFilters,...this.getDynamicFilterValues(),...e})}async getExpConfig(e,r){try{return this.assignments.fetchExpConfig(e,r)}catch(n){return eb.createFallbackConfig(this.ctx,`Error fetching ExP config: ${String(n)}`)}}async prepareForUpcomingFilters(e,r){if(!(new Date().getMinutes()<60-t.upcomingTimeBucketMinutes))for(let[n,o]of Object.entries(this.upcomingDynamicFilters))await new Promise(s=>setTimeout(s,t.upcomingDynamicFilterCheckDelayMs)),this.getExpConfig(e.withChange(n,o()),r)}stringify(){let e=this.assignments.getCachedExpConfig(new Wk({}));return JSON.stringify(e?.variables??{})}async getFallbackExpAndFilters(){let e=this.makeFilterSettings({}),r=rx(this.ctx),n=await this.getExpConfig(e,r);return{filters:e,exp:n}}disableLogProb(e){return e.filtersAndExp.exp.variables.copilotdisablelogprob??!0}overrideBlockMode(e){return e.filtersAndExp.exp.variables.copilotoverrideblockmode||void 0}customEngine(e){return e.filtersAndExp.exp.variables.copilotcustomengine??""}suffixPercent(e){return e.filtersAndExp.exp.variables.CopilotSuffixPercent??nKe.suffix}suffixMatchThreshold(e){return e.filtersAndExp.exp.variables.copilotsuffixmatchthreshold??rKe}cppHeadersEnableSwitch(e){return e.filtersAndExp.exp.variables.copilotcppheadersenableswitch??!1}relatedFilesVSCodeCSharp(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscodecsharp??!1}relatedFilesVSCodeTypeScript(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscodetypescript??!1}relatedFilesVSCode(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscode??!1}contextProviders(e){let r=e.filtersAndExp.exp.variables.copilotcontextproviders??"";return r?r.split(",").map(n=>n.trim()):[]}contextProviderTimeBudget(e){return e.filtersAndExp.exp.variables.copilotcontextprovidertimebudget??150}includeNeighboringFiles(e){return e.filtersAndExp.exp.variables.copilotincludeneighboringfiles??!1}excludeRelatedFiles(e){return e.filtersAndExp.exp.variables.copilotexcluderelatedfiles??!1}maxPromptCompletionTokens(e){return e.filtersAndExp.exp.variables.maxpromptcompletionTokens??LEn+yRe}ideChatMaxRequestTokens(e){return e.filtersAndExp.exp.variables.idechatmaxrequesttokens??-1}ideChatExpModelIds(e){return e.filtersAndExp.exp.variables.idechatexpmodelids??""}ideChatEnableProjectMetadata(e){return e.filtersAndExp.exp.variables.idechatenableprojectmetadata??!1}ideDataMigrationCompleted(e){return e.filtersAndExp.exp.variables.idedatamigrationcompleted??!1}workspaceContextCoordinator(e){return e.filtersAndExp.exp.variables.copilotworkspacecontextcoordinator??!1}workspaceContextCacheTime(e){return e.filtersAndExp.exp.variables.copilotworkspacecontextcachetime??UEn}stableContextPercent(e){return e.filtersAndExp.exp.variables.copilotstablecontextpercent??nKe.stableContext}volatileContextPercent(e){return e.filtersAndExp.exp.variables.copilotvolatilecontextpercent??nKe.volatileContext}cppContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotcppContextProviderParams}csharpContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotcsharpcontextproviderparams}javaContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotjavacontextproviderparams}multiLanguageContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotmultilanguagecontextproviderparams}tsContextProviderParams(e){return e.filtersAndExp.exp.variables.copilottscontextproviderparams}completionsDebounce(e){return e.filtersAndExp.exp.variables.copilotcompletionsdebounce}enableElectronFetcher(e){return e.filtersAndExp.exp.variables.copilotelectronfetcher??!1}enableFetchFetcher(e){return e.filtersAndExp.exp.variables.copilotfetchfetcher??!1}asyncCompletionsTimeout(e){return e.filtersAndExp.exp.variables.copilotasynccompletionstimeout??200}enablePromptContextProxyField(e){return e.filtersAndExp.exp.variables.copilotenablepromptcontextproxyfield??!1}enableProgressiveReveal(e){return e.filtersAndExp.exp.variables.copilotprogressivereveal??!1}modelAlwaysTerminatesSingleline(e){return e.filtersAndExp.exp.variables.copilotmodelterminatesingleline??!0}longLookaheadSize(e){return e.filtersAndExp.exp.variables.copilotprogressivereveallonglookaheadsize??9}shortLookaheadSize(e){return e.filtersAndExp.exp.variables.copilotprogressiverevealshortlookaheadsize??3}maxMultilineTokens(e){return e.filtersAndExp.exp.variables.copilotmaxmultilinetokens??200}multilineAfterAcceptLines(e){return e.filtersAndExp.exp.variables.copilotmultilineafteracceptlines??1}enableNESXTab(e){return e.filtersAndExp.exp.variables.copilotnesxtab??!1}getNESXTabModelID(e){return e.filtersAndExp.exp.variables.copilotnesxtabmodelid??"copilot-nes-xtab"}completionsDelay(e){return e.filtersAndExp.exp.variables.copilotcompletionsdelay??200}singleLineUnlessAccepted(e){return e.filtersAndExp.exp.variables.copilotsinglelineunlessaccepted??!1}useCompletionsComparisonPanel(e){return e.filtersAndExp.exp.variables.copilotusecompletionscomparisonpanel??!1}comparisonPanelModelIds(e){return e.filtersAndExp.exp.variables.copilotcomparisonpanelmodelids??""}comparisonPanelRandomizedMode(e){return e.filtersAndExp.exp.variables.copilotcomparisonpanelrandomizedmode??!0}useChatLibCompletions(e){return e.filtersAndExp.exp.variables.copilotusechatlibcompletions??!1}cveRemediatorAgentEnabled(e){return e.filtersAndExp.exp.variables.cveremediatoragentenabled??!1}instantApplyModelMigration(e){return e.filtersAndExp.exp.variables.copilotinstantapplymodelmigration??!1}appmodContextMenuEnabled(e){return e.filtersAndExp.exp.variables.copilotappmodcontextmenuenabled??!1}appmodProblemsViewEnabled(e){return e.filtersAndExp.exp.variables.copilotappmodproblemsviewenabled??!1}searchAgentEnabled(e){return e.filtersAndExp.exp.variables.copilotsearchagentenabled??!1}copilotAsDefaultForGaEnabled(e){return e.filtersAndExp.exp.variables.copilotasdefaultforga??!1}aiAssistedPermissionEnabled(e){return e.filtersAndExp.exp.variables.aiassistedpermission??!1}inlineChatUseCliEnabled(e){return e.filtersAndExp.exp.variables.inlinechatusecli??!1}chatOnboardingTourEnabled(e){return e.filtersAndExp.exp.variables.copilotchatonboardingtour??!1}chatUsageTipsEnabled(e){return e.filtersAndExp.exp.variables.chatusagetipsenabled??!1}};async function iKe(t){let e=bt(t,He.SearchAgent);if(e==="true")return!0;if(e==="false")return!1;let r=t.get(rr),n=await r.fetchTokenAndUpdateExPValuesAndAssignments();return r.searchAgentEnabled(n)}a(iKe,"isSearchAgentEnabled");p();p();p();var oKe=ue(vde());var lqt={python:"python",javascript:"javascript",javascriptreact:"javascript",jsx:"javascript",typescript:"typescript",typescriptreact:"tsx",go:"go",ruby:"ruby",csharp:"c-sharp",java:"java",php:"php",c:"cpp",cpp:"cpp"};function qI(t){return t in lqt&&t!=="csharp"&&t!=="java"&&t!=="php"&&t!=="c"&&t!=="cpp"}a(qI,"isSupportedLanguageId");function sKe(t){if(!(t in lqt))throw new Error(`Unrecognized language: ${t}`);return lqt[t]}a(sKe,"languageIdToWasmLanguage");var cqt=new Map;async function _Vo(t){let e;try{e=await FYe(`tree-sitter-${t}.wasm`)}catch(r){throw r instanceof Error&&"code"in r&&typeof r.code=="string"&&r.name==="Error"?new Wq(`Could not load tree-sitter-${t}.wasm`,r):r}return oKe.default.Language.load(e)}a(_Vo,"loadWasmLanguage");function dqt(t){let e=sKe(t);if(!cqt.has(e)){let r=_Vo(e);cqt.set(e,r)}return cqt.get(e)}a(dqt,"getLanguage");var uqt=class extends Error{static{a(this,"WrappedError")}constructor(e,r){super(e,{cause:r})}};async function Zq(t,e){return(await fqt(t,e))[0]}a(Zq,"parseTreeSitter");async function fqt(t,e){await oKe.default.init({locateFile:a(s=>dRe(s),"locateFile")});let r;try{r=new oKe.default}catch(s){throw s&&typeof s=="object"&&"message"in s&&typeof s.message=="string"&&s.message.includes("table index is out of bounds")?new uqt(`Could not init Parse for language <${t}>`,s):s}let n=await dqt(t);r.setLanguage(n);let o=r.parse(e);return r.delete(),[o,n.version]}a(fqt,"parseTreeSitterIncludingVersion");function QEn(t){switch(sKe(t)){case"python":return null;case"javascript":case"typescript":case"tsx":case"go":case"c-sharp":case"java":case"php":case"cpp":return"}";case"ruby":return"end"}}a(QEn,"getBlockCloseToken");function vVo(t,e){let r=[];for(let n of t){if(!n[1]){let o=e.tree.getLanguage();n[1]=o.query(n[0])}r.push(...n[1].matches(e))}return r}a(vVo,"innerQuery");var CVo=[`[
1758
1758
  (class_definition (block (expression_statement (string))))
1759
1759
  (function_definition (block (expression_statement (string))))
1760
1760
  ]`];function qEn(t){return vVo([CVo],t).length==1}a(qEn,"queryPythonIsDocstring");var xB=class{constructor(e){this.node=e;this.children=[];this.collapsed=!1}static{a(this,"StatementNode")}addChild(e){e.parent=this,e.nextSibling=void 0,this.children.length>0&&(this.children[this.children.length-1].nextSibling=e),this.children.push(e)}childrenFinished(){}containsStatement(e){return this.node.startIndex<=e.node.startIndex&&this.node.endIndex>=e.node.endIndex}statementAt(e){if(this.node.startIndex>e||this.node.endIndex<e)return;let r;return this.children.find(n=>(r=n.statementAt(e),r!==void 0)),r??this}collapse(){this.children.length=0,this.collapsed=!0}get description(){return`${this.node.type} ([${this.node.startPosition.row},${this.node.startPosition.column}]..[${this.node.endPosition.row},${this.node.endPosition.column}]): ${JSON.stringify(this.node.text.length>33?this.node.text.substring(0,15)+"..."+this.node.text.slice(-15):this.node.text)}`}dump(e="",r=""){let n=[`${e}${this.description}`];return this.children.forEach(o=>{n.push(o.dump(`${r}+- `,o.nextSibling===void 0?`${r} `:`${r}| `))}),n.join(`
@@ -1914,7 +1914,7 @@ ${r}+- `:"";return e+this.description+o}}},H0=class{constructor(e,r,n,o){this.la
1914
1914
  (using_declaration)
1915
1915
  (alias_declaration)
1916
1916
  (static_assert_declaration)
1917
- ] @statement`}};var RB=class{constructor(e,r,n){this.languageId=e;this.prefix=r;this.completion=n}static{a(this,"BlockTrimmer")}static isSupported(e){return H0.isSupported(e)}static isTrimmedByDefault(e){return H0.isTrimmedByDefault(e)}async withParsedStatementTree(e){var n=[];try{let r=dOt(n,H0.create(this.languageId,this.prefix+this.completion,this.prefix.length,this.prefix.length+this.completion.length));await r.build();return await e(r)}catch(o){var s=o,c=!0}finally{fOt(n,s,c)}}trimmedCompletion(e){return e===void 0?this.completion:this.completion.substring(0,e)}getStatementAtCursor(e){return e.statementAt(Math.max(this.prefix.length-1,0))??e.statements[0]}getContainingBlockOffset(e){let r;if(e&&this.isCompoundStatement(e))r=e;else if(e){let n=e.parent;for(;n&&!this.isCompoundStatement(n);)n=n.parent;r=n}if(r){let n=this.asCompletionOffset(r.node.endIndex);if(n&&this.completion.substring(n).trim()!=="")return n}}hasNonStatementContentAfter(e){if(!e||!e.nextSibling)return!1;let r=this.asCompletionOffset(e.node.endIndex),n=this.asCompletionOffset(e.nextSibling.node.startIndex);return this.completion.substring(Math.max(0,r??0),Math.max(0,n??0)).trim()!==""}asCompletionOffset(e){return e===void 0?void 0:e-this.prefix.length}isCompoundStatement(e){return e.isCompoundStatementType||e.children.length>0}};var cKe=class extends RB{constructor(r,n,o,s=3,c=7){super(r,n,o);this.lineLimit=s;this.lookAhead=c;let l=[...this.completion.matchAll(/\n/g)],u=this.lineLimit+this.lookAhead;l.length>=this.lineLimit&&this.lineLimit>0&&(this.limitOffset=l[this.lineLimit-1].index),l.length>=u&&u>0&&(this.lookAheadOffset=l[u-1].index)}static{a(this,"TerseBlockTrimmer")}async getCompletionTrimOffset(){return await this.withParsedStatementTree(r=>{let n=r.statementAt(this.stmtStartPos()),o=this.getContainingBlockOffset(n);return o=this.trimAtFirstBlankLine(o),n&&(o=this.trimAtStatementChange(n,o)),this.limitOffset&&this.lookAheadOffset&&(o===void 0||o>this.lookAheadOffset)?this.limitOffset:o})}stmtStartPos(){let r=this.completion.match(/\S/);return r&&r.index!==void 0?this.prefix.length+r.index:Math.max(this.prefix.length-1,0)}trimAtFirstBlankLine(r){let n=[...this.trimmedCompletion(r).matchAll(/\r?\n\s*\r?\n/g)];for(;n.length>0&&(r===void 0||r>n[0].index);){let o=n.shift();if(this.completion.substring(0,o.index).trim()!=="")return o.index}return r}trimAtStatementChange(r,n){let o=this.prefix.length,s=this.prefix.length+(n??this.completion.length);if(r.node.endIndex>o&&this.isCompoundStatement(r))return r.nextSibling&&r.node.endIndex<s?this.asCompletionOffset(r.node.endIndex):n;let c=r,l=r.nextSibling;for(;l&&l.node.endIndex<=s&&!this.hasNonStatementContentAfter(c)&&!this.isCompoundStatement(l);)c=l,l=l.nextSibling;return l&&c.node.endIndex>o&&c.node.endIndex<s?this.asCompletionOffset(c.node.endIndex):n}};async function HEn(t,e){var l=[];try{let r=t.getText();let n=t.offsetAt(e);let o=dOt(l,H0.create(t.detectedLanguageId,r,0,r.length));await o.build();let s=o.statementAt(n);if(!s)return"non-block";if(!s.isCompoundStatementType&&s.children.length===0)return s.parent&&!s.nextSibling&&s.node.endPosition.row<=e.line?"block-end":s.parent?"mid-block":"non-block";if(s.children.length===0)return"empty-block";let c=s.children[s.children.length-1];if(n<c.node.startIndex)return"mid-block";return"block-end"}catch(u){var d=u,f=!0}finally{fOt(l,d,f)}}a(HEn,"getBlockPositionType");p();function bVo(t){return t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy}a(bVo,"getProxyFromEnvironment");function SVo(t){return t.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}a(SVo,"getRejectUnauthorizedFromEnvironment");var jEn=b.Object({proxy:b.Optional(b.String()),proxyStrictSSL:b.Optional(b.Boolean()),proxyAuthorization:b.Optional(b.String()),proxyKerberosServicePrincipal:b.Optional(b.String()),noProxy:b.Optional(b.Array(b.String()))});function GEn(t){let e=bVo(t),r=IRe({proxy:e,proxyStrictSSL:SVo(t)}),n=t.GH_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.GITHUB_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.AGENT_KERBEROS_SERVICE_PRINCIPAL;return n&&(r.proxyKerberosServicePrincipal=n),r}a(GEn,"getHttpSettingsFromEnvironment");function IRe(t){if(!t.proxy)return{...t,proxy:""};try{let{protocol:e,host:r,username:n,password:o,pathname:s,search:c,hash:l}=new URL(t.proxy);return{...t,proxy:`${e}//${r}${s}${c}${l}`,proxyAuthorization:t.proxyAuthorization||TVo(n,o),noProxy:t.noProxy||[]}}catch{return{...t,proxy:""}}}a(IRe,"normalizeHttpSettings");function TVo(t,e){return!t||!e?"":`${decodeURIComponent(t)}:${decodeURIComponent(e)}`}a(TVo,"getAuth");var wRe={};Qi(wRe,{anthropicClaude:()=>MVo,build:()=>PVo,buildType:()=>kVo,default:()=>UVo,dependencies:()=>BVo,description:()=>xVo,devDependencies:()=>OVo,displayName:()=>wVo,engines:()=>DVo,name:()=>IVo,overrides:()=>LVo,overridesComments:()=>FVo,scripts:()=>NVo,version:()=>RVo});var IVo="copilot",wVo="GitHub Copilot",xVo="Your AI pair programmer",RVo="1.545.0",PVo="120",kVo="prod",DVo={node:">=22.13.0",npm:">=11.6.0 <12.0.0"},MVo={cliPackageVersion:"2.1.159"},NVo={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/deviceFlow.ts --save-as-test-token",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:gdpr":"tsx script/checkGdprComments.ts","lint:overrides":"tsx script/checkOverridesDocumented.ts","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit",manage_auth_db:"tsx script/manageAuthDb.ts",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:agent-e2e-full":"npm run build","pretest:agent-e2e":"npm run build","pretest:lsp-client":"npm run build","pretest:lib-e2e":"npm run build",prewatch:"npm run build","prewatch:esbuild":"npm run build",start:"npm run watch",test:'npm-run-all "test:headless --ignore-scripts" lint',"test:headless":'npm-run-all test:lib test:agent "test:lib-e2e --ignore-scripts" test:prompt "test:lsp-client --ignore-scripts" lint',"test:agent":'mocha "agent/src/**/*.test.{ts,tsx}"',"test:agent-e2e":'mocha "agent/e2e/**/*.test.{ts,tsx}" --exclude "agent/e2e/**/*.daily.test.{ts,tsx}"',"test:agent-e2e-full":'mocha "agent/e2e/**/*.test.{ts,tsx}"',"test:lib":'mocha "lib/src/**/*.test.{ts,tsx}" "script/**/*.test.{ts,tsx}" --exclude "lib/src/**/*.int.test.ts"',"test:lib-int":'mocha "lib/src/**/*.int.test.ts"',"test:lib-e2e":'mocha "lib/e2e/src/**/*.test.{ts,tsx}" --exclude "lib/e2e/src/prompt/**/*.test.ts"',"test:lib-e2e-no-ci":'mocha "lib/e2e/no-ci/**/*.test.{ts,tsx}"',"test:lib-prompt-e2e":'mocha "lib/e2e/src/prompt/prompt.test.ts"',"test:lib-prompt-e2e-perf":"INCLUDE_PERFORMANCE=true npm run test:lib-prompt-e2e","test:lsp-client":'mocha "lsp-client/test/*.test.{ts,tsx}"',"test:pkg-runtime":"tsx script/smokeCopilotRuntimePkg.ts","test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"test:prepare-msbench":"tsx script/setupMsbench.ts","test:run-msbench":"tsx lsp-client/test/msbench/agent/index.ts",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},OVo={"@azure/identity":"^4.13.2","@azure/keyvault-secrets":"^4.11.2","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.6.1","@types/crypto-js":"^4.2.2","@types/diff":"^8.0.0","@types/git-url-parse":"^16.0.2","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/markdown-it":"^14.2.0","@types/mocha":"^10.0.10","@types/node":"~22.13.0","@types/semver":"^7.8.0","@types/sinon":"^22.0.0","@types/toposort":"^2.0.7","@types/vscode":"1.125.0","@types/which":"^3.0.0","@types/yargs":"^17.0.35","@vscode/tree-sitter-wasm":"0.0.5-php.2","@yao-pkg/pkg":"^6.22.0",boxen:"^8.0.1",chalk:"^5.6.2","dependency-cruiser":"^18.2.0",esbuild:"^0.28.2","esbuild-plugin-copy":"^2.1.1",eslint:"^9.39.5","eslint-formatter-visualstudio":"^9.0.1","eslint-plugin-mocha":"^10.5.0",globals:"^17.12.0","js-yaml":"^4.2.0",mocha:"^11.8.0","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",openai:"^7.10.0",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.2.0","simple-git":"^3.36.0",sinon:"^22.1.0","tree-sitter-bash":"^0.23.0","tree-sitter-powershell":"0.25.9","ts-dedent":"^2.3.0",tsx:"^4.23.12",typescript:"^5.9.3","typescript-eslint":"^8.39.1","vscode-dts":"^0.3.3"},BVo={"@adobe/helix-fetch":"github:devm33/helix-fetch#2a08fa939591a0e14f34f611adcc3ed767579e9a","@agentclientprotocol/sdk":"^0.22.1","@anthropic-ai/claude-agent-sdk":"0.3.159","@anthropic-ai/sdk":"^0.98.0","@github/copilot":"1.0.83","@github/copilot-sdk":"1.0.13","@github/keytar":"7.10.6","@github/memoize":"1.1.5","@microsoft/1ds-core-js":"^4.3.10","@microsoft/1ds-post-js":"^4.3.10","@microsoft/applicationinsights-web-basic":"^3.3.11","@modelcontextprotocol/sdk":"^1.30.0","@octokit/graphql":"^9.0.5","@octokit/rest":"^22.0.1","@parcel/watcher":"^2.6.0","@sinclair/typebox":"^0.34.52","@vscode/chat-lib":"0.60.0","@vscode/codicons":"^0.0.45","@vscode/deviceid":"github:ghc-jetbrains/vscode-deviceid#f0e5738cd362ef20a09aeb30c3a8be99a9a710f5","@vscode/policy-watcher":"^1.4.0","@vscode/prompt-tsx":"^0.4.0-alpha.9","@vscode/webview-ui-toolkit":"^1.3.1","crypto-js":"^4.2.0",diff:"^9.0.0",dldr:"^0.0.10",events:"^3.3.0","git-url-parse":"^16.1.0",glob:"^11.1.0","jsonc-parser":"^3.3.1",kerberos:"^2.2.0","mac-ca":"^3.1.3","markdown-it":"^15.0.1",minimatch:"^10.2.6",open:"^11.0.2",semver:"^7.8.5",shiki:"~1.15.0","source-map-support":"^0.5.21",toposort:"^2.0.2",undici:"^7.29.0",uuid:"^14.0.0","vscode-languageclient":"^9.0.0","vscode-languageserver":"^9.0.0","vscode-languageserver-protocol":"^3.17","vscode-languageserver-textdocument":"~1.0.14","vscode-uri":"^3.2.0","web-tree-sitter":"^0.23.0",which:"^7.0.0","windows-ca-certs":"^0.2.2",ws:"^8.21.3",yargs:"^18.1.0"},LVo={fsevents:"<0","@github/copilot-linuxmusl-arm64":"<0","@github/copilot-linuxmusl-x64":"<0",bindings:"npm:bundled-bindings@^1.5.0",jws:"^3.2.3",tar:"7.5.21","serialize-javascript":"^7.0.5",uuid:"^14.0.0","ip-address":"^10.1.1","fast-uri":"^3.1.7"},FVo={"//":"Rationale for each entry in `overrides`. Required by `npm run lint:overrides` (script/checkOverridesDocumented.ts). Each value should cover: why (CVE/GHSA or build-hack reason), which direct dep pulls in the vulnerable transitive, and the remove-when condition.",fsevents:"Build hack: macOS-only optional native dep; '<0' is an impossible semver that force-skips install on Linux/Windows pkg builds. Permanent \u2014 keep until @yao-pkg/pkg handles macOS-only optionalDependencies natively. See commit d635096c.","@github/copilot-linuxmusl-arm64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.","@github/copilot-linuxmusl-x64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.",bindings:"Build hack: alias to bundled-bindings fork that resolves .node native addon paths after pkg/esbuild bundling. Required by kerberos. Drop when upstream `bindings` adopts platform-specific path resolution. See commits c4461665 and b55ece83.",jws:"CVE GHSA-869p-cjfg-cm3x (Improperly Verifies HMAC Signature). Pulled in by jsonwebtoken-family deps. Drop when all transitive consumers pin jws >= 3.2.3. See commit 2b5dc766.",tar:"CVE GHSA-9ppj-qmqm-q256 + GHSA-qffp-2rhf-9h96 (Symlink/Hardlink Path Traversal via Drive-Relative Linkpath), plus the 7.5.12..7.5.20 advisory run: GHSA-23hp-3jrh-7fpw / CVE-2026-59873 (critical, decompression DoS via unlimited input), GHSA-8x88-c5mf-7j5w / CVE-2026-59874 (infinite loop on negative entry size), GHSA-w8wr-v893-vjvp / CVE-2026-59871 (PAX numeric path type confusion), GHSA-gvwx-54wh-qm9j / CVE-2026-59875 (NUL byte in PAX path records), GHSA-vmf3-w455-68vh / CVE-2026-53655 (GNU long-name PAX size override file smuggling), GHSA-r292-9mhp-454m (uncontrolled recursion in mapHas/filesFilter). Pulled in by @yao-pkg/pkg (tar ^7.5.7) and node-gyp / native-build deps. Drop when transitive consumers bump tar >= 7.5.21. Dependabot alerts #170, #169, #179, #171, #168, #146. See commit e2dff0f3.","serialize-javascript":"CVE GHSA-5c6j-r48x-rmvq (RCE via RegExp.flags / Date.toISOString) + GHSA-qj8w-gfj5-8c6v (ReDoS). Pulled in by mocha 11.x (^6.0.2). Dev-only. Drop when mocha bumps to a release that carries serialize-javascript >= 7.0.3. See commit d49f75fd.",uuid:"CVE GHSA-w5hq-g745-h8pq (missing buffer bounds checks in v3/v5/v6). Pulled in by msal-node and @vscode/deviceid as uuid 8.x/9.x. Drop when both upgrade to uuid >= 14. Dependabot alert #128. See commit 6315f3f8.","ip-address":"CVE GHSA-v2v4-37r5-5v8g (XSS in Address6 HTML-emitting methods: group/link/spanAll and AddressError.parseMessage). Pulled in by @modelcontextprotocol/sdk -> express-rate-limit. Not exploitable here (we don't render HTML or call the affected methods), but the override clears the alert. Drop when express-rate-limit bumps to a release carrying ip-address >= 10.1.1. Dependabot alert #129. See PR #854.","fast-uri":"CVE-2026-6321 GHSA-q3j6-qgpj-74h6 (host confusion via percent-encoded authority delimiters) + CVE-2026-6322 GHSA-v39h-62p7-jpjc (path traversal via percent-encoded dot segments). Pulled in by @modelcontextprotocol/sdk -> ajv -> fast-uri. Drop when ajv bumps to a release carrying fast-uri >= 3.1.2. Dependabot alerts #132, #133."},UVo={name:IVo,displayName:wVo,description:xVo,version:RVo,build:PVo,buildType:kVo,engines:DVo,anthropicClaude:MVo,scripts:NVo,devDependencies:OVo,dependencies:BVo,overrides:LVo,overridesComments:FVo};var He={Enable:"enable",EnableQuotaThresholdWarning:"quota.enableThresholdWarning",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",EnableBuiltInGitHubMcpServer:"enableBuiltInGitHubMcpServer",ToolConfirmAutoApprove:"agent.toolConfirmAutoApprove",AutoApproveUnmatchedTerminal:"agent.autoApproveUnmatchedTerminal",AutoApproveUnmatchedFileOp:"agent.autoApproveUnmatchedFileOp",TrustToolAnnotations:"agent.trustToolAnnotations",AutoApproveYoloMode:"agent.autoApproveYoloMode",EditorHandlesAllConfirmation:"agent.editorHandlesAllConfirmation",MaxToolCallingLoop:"agent.maxToolCallingLoop",AutoCompress:"agent.autoCompress",AnthropicThinkingBudgetToken:"agent.anthropicThinkingBudgetToken",EnableSkills:"agent.enableSkills",EnableOrgSkills:"agent.enableOrgSkills",EnableHooks:"agent.enableHooks",EnableSandbox:"agent.sandbox.enabled",SandboxAddCurrentWorkingDirectory:"agent.sandbox.addCurrentWorkingDirectory",SandboxAuth:"agent.sandbox.auth",SandboxAllowDevToolAccess:"agent.sandbox.allowDevToolAccess",SandboxUserPolicy:"agent.sandbox.userPolicy",EnablePlugins:"agent.enablePlugins",EnableCustomAgents:"agent.enableCustomAgents",EnableOrgCustomAgents:"agent.enableOrgCustomAgents",EnableOrgCustomInstructions:"agent.enableOrgCustomInstructions",UseSessionModelForBuiltinSubagents:"agent.useSessionModelForBuiltinSubagents",UseAgentsMd:"agent.useAgentsMdFile",UseNestedAgentsMd:"agent.useNestedAgentsMdFiles",UseClaudeMd:"agent.useClaudeMdFile",UseNestedClaudeMd:"agent.useNestedClaudeMdFiles",CompletionsDelay:"completionsDelay",CompletionsDebounce:"completionsDebounce",EnableThinking:"agent.enableThinking",TranscriptDirectory:"agent.transcriptDirectory",AgentDebugLogsDirectory:"agent.agentDebugLogsDirectory",ClaudeCliPath:"agent.claude.cliPath",CodexCliPath:"agent.codex.cliPath",OtelEnabled:"agent.otel.enabled",OtelEndpoint:"agent.otel.otlpEndpoint",OtelCaptureContent:"agent.otel.captureContent",OtelExporterType:"agent.otel.exporterType",OtelProtocol:"agent.otel.protocol",OtelOutfile:"agent.otel.outfile",OtelServiceName:"agent.otel.serviceName",OtelResourceAttributes:"agent.otel.resourceAttributes",NESExtendedRange:"nextEditSuggestions.extendedRange",NESEagerness:"nextEditSuggestions.eagerness",RelatedFilesVSCodeCSharp:"advanced.relatedFilesVSCodeCSharp",RelatedFilesVSCodeTypeScript:"advanced.relatedFilesVSCodeTypeScript",RelatedFilesVSCode:"advanced.relatedFilesVSCode",ContextProviders:"advanced.contextProviders",DebugOverrideLogLevels:"advanced.debug.overrideLogLevels",DebugFilterLogCategories:"advanced.debug.filterLogCategories",DebugSnippyOverrideUrl:"advanced.debug.codeRefOverrideUrl",DebugUseElectronFetcher:"advanced.debug.useElectronFetcher",DebugUseEditorFetcher:"advanced.debug.useEditorFetcher",UseSubsetMatching:"advanced.useSubsetMatching",ContextProviderTimeBudget:"advanced.contextProviderTimeBudget",DebugOverrideCapiUrl:"internal.capiUrl",DebugOverrideCapiUrlLegacy:"advanced.debug.overrideCapiUrl",DebugTestOverrideCapiUrl:"internal.capiTestUrl",DebugTestOverrideCapiUrlLegacy:"advanced.debug.testOverrideCapiUrl",DebugOverrideProxyUrl:"internal.completionsUrl",DebugOverrideProxyUrlLegacy:"advanced.debug.overrideProxyUrl",DebugTestOverrideProxyUrl:"internal.completionsTestUrl",DebugTestOverrideProxyUrlLegacy:"advanced.debug.testOverrideProxyUrl",DebugOverrideEngine:"internal.completionModel",DebugOverrideEngineLegacy:"advanced.debug.overrideEngine",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",ShowWorkspaceContextDebugger:"internal.showWorkspaceContextDebugger",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",NESXTab:"internal.useXTab",NESUseExplicitRejection:"internal.nesUseExplicitRejection",NESModelConfiguration:"internal.nesModelConfiguration",UseSplitContextPrompt:"internal.useSplitContextPrompt",UseCompletionsComparisonPanel:"internal.useCompletionsComparisonPanel",ComparisonPanelModelIds:"internal.comparisonPanelModelIds",ComparisonPanelRandomizedMode:"internal.comparisonPanelRandomizedMode",UseFetchFetcher:"internal.useFetchFetcher",UseChatLibCompletions:"internal.useChatLibCompletions",HookErrorOccurredStackTrace:"internal.hookErrorOccurredStackTrace",AppendPromptTokenCache:"internal.appendPromptTokenCache",PromptPersistBasePath:"internal.promptPersistBasePath",AnthropicMessagesEndpoint:"internal.anthropic.messagesEndpoint",UseHelixFetcher:"internal.useHelixFetcher",EnableMapCodeFallback:"internal.enableMapCodeFallback",SearchAgent:"internal.searchAgent",PerfEnabled:"internal.perf.enabled",AuthTokenEncryption:"internal.auth.tokenEncryption",EnableWorkspaceIndex:"workspaceIndex.enabled"};function $En(t){return["server","parsingandserver"].includes(t)}a($En,"shouldDoServerTrimming");var jD=class{static{a(this,"BlockModeConfig")}},Tde=class extends jD{static{a(this,"ConfigBlockModeConfig")}forLanguage(e,r,n){let o=e.get(rr).overrideBlockMode(n);if(o)return _qt(o,r);let s=e.get(rr).enableProgressiveReveal(n);return(bt(e,He.AlwaysRequestMultiline)??s)||RB.isTrimmedByDefault(r)?_qt("moremultiline",r):r=="ruby"?"parsing":qI(r)?"parsingandserver":"server"}};function QVo(t){return["parsing","parsingandserver","moremultiline"].includes(t)}a(QVo,"blockModeRequiresTreeSitter");function _qt(t,e){return t==="moremultiline"&&H0.isSupported(e)?t:QVo(t)&&!qI(e)?"server":t}a(_qt,"toApplicableBlockMode");var fi=class{static{a(this,"ConfigProvider")}requireReady(){return Promise.resolve()}},Ide=class extends fi{constructor(){super(...arguments);this.onDidChangeCopilotSettings=a(()=>({dispose:a(()=>{},"dispose")}),"onDidChangeCopilotSettings");this.onDidChangeHttpSettings=this.onDidChangeCopilotSettings}static{a(this,"DefaultsOnlyConfigProvider")}getConfig(r){return qVo(r)}getOptionalConfig(r){return HVo(r)}dumpForTelemetry(){return{}}getExplicitlySetConfigs(){return new Map}getHttpSettings(){return{proxy:""}}},jJ=class extends fi{constructor(r,n){super();this.baseConfigProvider=r;this.overrides=n;this.copilotEmitter=new io;this.onDidChangeCopilotSettings=this.copilotEmitter.event;this.didChangeHttpSettingsEmitter=new io;this.onDidChangeHttpSettings=this.didChangeHttpSettingsEmitter.event;this.httpSettings=this.baseConfigProvider.getHttpSettings()}static{a(this,"InMemoryConfigProvider")}getOptionalOverride(r){return this.overrides.get(r)}getConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getConfig(r)}getOptionalConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getOptionalConfig(r)}setConfig(r,n){this.setCopilotSettings({[r]:n})}setCopilotSettings(r){for(let[n,o]of Object.entries(r))o!==void 0?this.overrides.set(n,o):this.overrides.delete(n);this.copilotEmitter.fire(this)}getExplicitlySetConfigs(){let r=new Map(this.baseConfigProvider.getExplicitlySetConfigs());for(let[n,o]of this.overrides)r.set(n,o);return r}getHttpSettings(){return this.httpSettings}setHttpSettings(r){let n=IRe(r);this.httpSettings=n,this.didChangeHttpSettingsEmitter.fire(this.getHttpSettings())}dumpForTelemetry(){let r=this.baseConfigProvider.dumpForTelemetry();for(let n of[He.ShowEditorCompletions,He.EnableAutoCompletions,He.DelayCompletions,He.FilterCompletions]){let o=this.overrides.get(n);o!==void 0&&(r[n]=JSON.stringify(o))}return r}};function VEn(t,e){let r=t,n=[];for(let o of e.split(".")){let s=[...n,o].join(".");r&&typeof r=="object"&&s in r?(r=r[s],n.length=0):n.push(o)}if(!(r===void 0||n.length>0))return r}a(VEn,"getConfigKeyRecursively");function qVo(t){if(lKe.has(t))return lKe.get(t);throw new Error(`Missing config default value: ${pOt}.${t}`)}a(qVo,"getConfigDefaultForKey");function HVo(t){return lKe.get(t)}a(HVo,"getOptionalConfigDefaultForKey");function xRe(t){return t.get(fi).getExplicitlySetConfigs()}a(xRe,"getExplicitlySetConfigs");var jVo={[He.DebugOverrideCppHeadersEnableSwitch]:!1,[He.RelatedFilesVSCodeCSharp]:!1,[He.RelatedFilesVSCodeTypeScript]:!1,[He.RelatedFilesVSCode]:!1,[He.IncludeNeighboringFiles]:!1,[He.ExcludeRelatedFiles]:!1,[He.ContextProviders]:[],[He.DebugUseEditorFetcher]:null,[He.DebugUseElectronFetcher]:null,[He.DebugOverrideLogLevels]:{},[He.DebugSnippyOverrideUrl]:"",[He.AgentDebugLogsDirectory]:void 0,[He.ClaudeCliPath]:void 0,[He.CodexCliPath]:void 0,[He.OtelEnabled]:!1,[He.OtelEndpoint]:void 0,[He.OtelCaptureContent]:!1,[He.OtelExporterType]:"otlp-http",[He.OtelProtocol]:"",[He.OtelOutfile]:"",[He.OtelServiceName]:"",[He.OtelResourceAttributes]:{},[He.FetchStrategy]:"auto",[He.EnableBuiltInGitHubMcpServer]:!1,[He.ToolConfirmAutoApprove]:!1,[He.AutoApproveUnmatchedTerminal]:void 0,[He.AutoApproveUnmatchedFileOp]:void 0,[He.TrustToolAnnotations]:!1,[He.AutoApproveYoloMode]:!1,[He.EditorHandlesAllConfirmation]:!1,[He.MaxToolCallingLoop]:25,[He.AutoCompress]:!1,[He.AnthropicThinkingBudgetToken]:1024,[He.EnableSkills]:!1,[He.EnableOrgSkills]:!0,[He.EnableHooks]:!1,[He.EnableSandbox]:!1,[He.SandboxAddCurrentWorkingDirectory]:void 0,[He.SandboxAuth]:void 0,[He.SandboxAllowDevToolAccess]:void 0,[He.SandboxUserPolicy]:void 0,[He.EnablePlugins]:!1,[He.EnableCustomAgents]:!0,[He.EnableOrgCustomAgents]:!0,[He.EnableOrgCustomInstructions]:!0,[He.UseSessionModelForBuiltinSubagents]:!1,[He.UseAgentsMd]:!1,[He.UseNestedAgentsMd]:!1,[He.UseClaudeMd]:!1,[He.UseNestedClaudeMd]:!1,[He.UseSubsetMatching]:null,[He.ContextProviderTimeBudget]:void 0,[He.DebugOverrideCapiUrl]:"",[He.DebugTestOverrideCapiUrl]:"",[He.DebugOverrideProxyUrl]:"",[He.DebugTestOverrideProxyUrl]:"",[He.DebugOverrideEngine]:"",[He.AlwaysRequestMultiline]:void 0,[He.ModelAlwaysTerminatesSingleline]:void 0,[He.TrimCompletionsAggressively]:void 0,[He.CompletionsDebounce]:void 0,[He.NESXTab]:void 0,[He.UseWorkspaceContextCoordinator]:void 0,[He.ShowWorkspaceContextDebugger]:!1,[He.CompletionsDelay]:void 0,[He.UseSplitContextPrompt]:void 0,[He.UseCompletionsComparisonPanel]:void 0,[He.ComparisonPanelModelIds]:void 0,[He.ComparisonPanelRandomizedMode]:void 0,[He.UseFetchFetcher]:void 0,[He.UseChatLibCompletions]:void 0,[He.TranscriptDirectory]:void 0,[He.EnableThinking]:!0,[He.ShowEditorCompletions]:void 0,[He.EnableAutoCompletions]:void 0,[He.DelayCompletions]:void 0,[He.FilterCompletions]:void 0,[He.Enable]:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},[He.EnableQuotaThresholdWarning]:!0,[He.DebugFilterLogCategories]:[],[He.DebugOverrideEngineLegacy]:"",[He.DebugTestOverrideProxyUrlLegacy]:"",[He.DebugOverrideProxyUrlLegacy]:"",[He.DebugTestOverrideCapiUrlLegacy]:"",[He.DebugOverrideCapiUrlLegacy]:"",[He.HookErrorOccurredStackTrace]:!1,[He.NESUseExplicitRejection]:!1,[He.NESModelConfiguration]:void 0,[He.AppendPromptTokenCache]:"",[He.PromptPersistBasePath]:void 0,[He.AnthropicMessagesEndpoint]:"",[He.UseHelixFetcher]:"",[He.EnableMapCodeFallback]:"enabled",[He.SearchAgent]:"",[He.PerfEnabled]:"",[He.NESExtendedRange]:!1,[He.NESEagerness]:"auto",[He.AuthTokenEncryption]:"",[He.EnableWorkspaceIndex]:!1},lKe=new Map(Object.entries(jVo));for(let t of Object.values(He))if(!lKe.has(t))throw new Error(`Missing config default value ${pOt}.${t}`);function bt(t,e){return t.get(fi).getConfig(e)}a(bt,"getConfig");function bv(t){let e=bt(t,He.EnableWorkspaceIndex);return e===!0||e==="true"}a(bv,"isSemanticSearchEnabled");function kon(t){return t.get(fi).dumpForTelemetry()}a(kon,"dumpForTelemetry");var ws=class{constructor(){this.packageJson=wRe}static{a(this,"BuildInfo")}isProduction(){return this.getBuildType()!=="dev"}getBuildType(){return this.packageJson.buildType}getVersion(){return this.packageJson.version}getDisplayVersion(){return this.getBuildType()==="dev"?`${this.getVersion()}-dev`:this.getVersion()}getBuild(){return this.packageJson.build}getName(){return this.packageJson.name}};function SOt(t){return t.get(ws).isProduction()}a(SOt,"isProduction");function Pun(t){return t.get(ws).getBuildType()==="dev"}a(Pun,"isDevBuild");function _Q(t){return t.get(ws).getBuildType()}a(_Q,"getBuildType");function Don(t){return t.get(ws).getBuild()}a(Don,"getBuild");function iI(t){return t.get(ws).getVersion()}a(iI,"getVersion");var Ea=class{constructor(e,r,n,o="none",s="desktop"){this.sessionId=e;this.machineId=r;this.devDeviceId=n;this.remoteName=o;this.uiKind=s}static{a(this,"EditorSession")}};function WT({name:t,version:e}){return`${t}/${e}`}a(WT,"formatNameAndVersion");var vr=class{static{a(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}getEditorPluginSpecificFilters(){return[]}getEditorIdentity(){return cYr({editor:this.getEditorInfo(),plugin:this.getEditorPluginInfo()})}isEditorPluginInfoKnown(){return!0}};function DYe(t){let e=t.getCopilotIntegrationId();if(e)return e;switch(t.getEditorPluginInfo().name){case"copilot-intellij":return"jetbrains-chat";case"copilot":case"copilot-vs":return;default:return"jetbrains-chat"}}a(DYe,"getIntegrationId");function hE(t){let e=t.get(vr);return{"Editor-Version":WT(e.getEditorInfo()),"Editor-Plugin-Version":WT(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":iI(t)}}a(hE,"editorVersionHeaders");var WEn="Iv1.b507a08c87ecfe98",GVo="350ee525b5da0e4a54c6e8e043edc1b99cc02f19",hue="Ov23liV9UpD7Rnfnskm3",$Vo="5509a52e4c525cd594a6fba9147ff6cc2388dd9f",VVo={[WEn]:GVo,[hue]:$Vo},Sh=class{static{a(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??WEn}findAppSecretToAuthenticate(){let e=this.findAppIdToAuthenticate(),r=VVo[e];if(!r)throw new Error(`GitHubAppInfo: No app secret found for app ID: ${e}`);return r}};var Wt=class{static{a(this,"Fetcher")}getImplementation(){return this}};function GJ(t,e,r,n,o,s,c,l,u,d,f,h,m=!1,g=[]){let A=l?.["x-api-key"],y=m||typeof A=="string"&&A.length>0,E={...l,...y?{}:{Authorization:`Bearer ${r}`},...hE(t)};d===void 0&&(E["Openai-Organization"]="github-copilot",E["X-Request-Id"]=o,E["VScode-SessionId"]=t.get(Ea).sessionId,E["VScode-MachineId"]=t.get(Ea).machineId,E["X-GitHub-Api-Version"]="2026-01-09"),n&&(E["OpenAI-Intent"]=n);let _={method:"POST",headers:E,json:s,timeout:u};if(f&&h){let T=[...r?[r]:[],...g,...Object.entries(E).filter(([w,R])=>R.length>0&&kQe.has(w.toLowerCase())).map(([,w])=>w)];f.logRequest({timestamp:new Date().toISOString(),requestId:o,method:"POST",url:e,headers:E,messages:h,body:s,sensitiveValues:T})}let v=t.get(Wt);if(c){let T=new AbortController;c.onCancellationRequested(()=>{ut(t,"networking.cancelRequest",zt.createAndMarkAsIssued({headerRequestId:o})),T.abort()}),_.signal=T.signal}return v.fetch(e,_).catch(T=>{if(WVo(T))return ut(t,"networking.disconnectAll"),v.disconnectAll().then(()=>v.fetch(e,_));throw T})}a(GJ,"postRequest");function WVo(t){return t instanceof Error?t.message=="ERR_HTTP2_GOAWAY_SESSION"?!0:"code"in t?t.code=="ECONNRESET"||t.code=="ETIMEDOUT"||t.code=="ERR_HTTP2_INVALID_SESSION":!1:!1}a(WVo,"isInterruptedNetworkError");var zVo=new Set(["ERR_WORKER_OUT_OF_MEMORY","ENOMEM"]);function YVo(t){return zVo.has(t.code??"")||t.name==="RangeError"&&t.message==="WebAssembly.Memory(): could not allocate memory"}a(YVo,"isOomError");function $J(t,e,r,n=Ur){if(!Tg(e)){if(e instanceof Error){let o=e;YVo(o)?t.get(Us).setWarning("cls",{message:"Out of memory"}):o.code==="EMFILE"||o.code==="ENFILE"?t.get(Us).setWarning("cls",{message:"Too many open files"}):o.code==="CopilotPromptLoadFailure"?t.get(Us).setWarning("cls",{message:"Corrupted Copilot installation"}):`${o.code}`.startsWith("CopilotPromptWorkerExit")?t.get(Us).setWarning("cls",{message:"Worker unexpectedly exited"}):o.syscall==="uv_cwd"&&o.code==="ENOENT"&&t.get(Us).setWarning("cls",{message:"Current working directory does not exist"})}n.exception(t,e,r)}}a($J,"handleException");function zEn(t){process.addListener("uncaughtException",r=>{$J(t,r,"uncaughtException")});let e=!1;process.addListener("unhandledRejection",r=>{if(!e)try{e=!0,$J(t,r,"unhandledRejection")}finally{e=!1}})}a(zEn,"registerDefaultHandlers");function YEn(){Yq("o200k_base").catch(()=>{})}a(YEn,"prewarmTokenizers");p();p();p();var Y3={abap:{extensions:[".abap"]},aspdotnet:{extensions:[".asax",".ascx",".ashx",".asmx",".aspx",".axd"]},bat:{extensions:[".bat",".cmd"]},bibtex:{extensions:[".bib",".bibtex"]},blade:{extensions:[".blade",".blade.php"]},BluespecSystemVerilog:{extensions:[".bsv"]},c:{extensions:[".c",".cats",".h",".h.in",".idc"]},csharp:{extensions:[".cake",".cs",".cs.pp",".csx",".linq"]},cpp:{extensions:[".c++",".cc",".cp",".cpp",".cppm",".cxx",".h",".h++",".hh",".hpp",".hxx",".idl",".inc",".inl",".ino",".ipp",".ixx",".rc",".re",".tcc",".tpp",".txx",".i"]},cobol:{extensions:[".cbl",".ccp",".cob",".cobol",".cpy"]},css:{extensions:[".css",".wxss"]},clojure:{extensions:[".bb",".boot",".cl2",".clj",".cljc",".cljs",".cljs.hl",".cljscm",".cljx",".edn",".hic"],filenames:["riemann.config"]},ql:{extensions:[".ql",".qll"]},coffeescript:{extensions:["._coffee",".cake",".cjsx",".coffee",".iced"],filenames:["Cakefile"]},cuda:{extensions:[".cu",".cuh"]},dart:{extensions:[".dart"]},dockerfile:{extensions:[".containerfile",".dockerfile"],filenames:["Containerfile","Dockerfile"]},dotenv:{extensions:[".env"],filenames:[".env",".env.ci",".env.dev",".env.development",".env.development.local",".env.example",".env.local",".env.prod",".env.production",".env.sample",".env.staging",".env.test",".env.testing"]},html:{extensions:[".ect",".ejs",".ejs.t",".jst",".hta",".htm",".html",".html.hl",".html5",".inc",".jsp",".njk",".tpl",".twig",".wxml",".xht",".xhtml",".phtml",".liquid"]},elixir:{extensions:[".ex",".exs"],filenames:["mix.lock"]},erlang:{extensions:[".app",".app.src",".erl",".es",".escript",".hrl",".xrl",".yrl"],filenames:["Emakefile","rebar.config","rebar.config.lock","rebar.lock"]},fsharp:{extensions:[".fs",".fsi",".fsx"]},go:{extensions:[".go"]},groovy:{extensions:[".gradle",".groovy",".grt",".gtpl",".gvy",".jenkinsfile"],filenames:["Jenkinsfile","Jenkinsfile"]},graphql:{extensions:[".gql",".graphql",".graphqls"]},terraform:{extensions:[".hcl",".nomad",".tf",".tfvars",".workflow"]},hlsl:{extensions:[".cginc",".fx",".fxh",".hlsl",".hlsli"]},erb:{extensions:[".erb",".erb.deface",".rhtml"]},razor:{extensions:[".cshtml",".razor"]},haml:{extensions:[".haml",".haml.deface"]},handlebars:{extensions:[".handlebars",".hbs"]},haskell:{extensions:[".hs",".hs-boot",".hsc"]},ini:{extensions:[".cfg",".cnf",".dof",".ini",".lektorproject",".prefs",".pro",".properties",".url"],filenames:[".buckconfig",".coveragerc",".flake8",".pylintrc","HOSTS","buildozer.spec","hosts","pylintrc","vlcrc"]},json:{extensions:[".4DForm",".4DProject",".JSON-tmLanguage",".avsc",".geojson",".gltf",".har",".ice",".json",".json.example",".jsonl",".mcmeta",".sarif",".tact",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","MODULE.bazel.lock","Package.resolved","Pipfile.lock","bun.lock","composer.lock","deno.lock","flake.lock","mcmod.info"]},jsonc:{extensions:[".code-snippets",".code-workspace",".jsonc",".sublime-build",".sublime-color-scheme",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".devcontainer.json",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc",".swcrc","api-extractor.json","argv.json","devcontainer.json","extensions.json","jsconfig.json","keybindings.json","language-configuration.json","launch.json","profiles.json","settings.json","tasks.json","tsconfig.json","tslint.json"]},java:{extensions:[".jav",".java",".jsh"]},javascript:{extensions:["._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".js",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"]},julia:{extensions:[".jl"]},kotlin:{extensions:[".kt",".ktm",".kts"]},less:{extensions:[".less"]},lua:{extensions:[".fcgi",".lua",".luau",".nse",".p8",".pd_lua",".rbxs",".rockspec",".wlua"],filenames:[".luacheckrc"]},makefile:{extensions:[".d",".mak",".make",".makefile",".mk",".mkfile"],filenames:["BSDmakefile","GNUmakefile","Kbuild","Makefile","Makefile.am","Makefile.boot","Makefile.frag","Makefile.in","Makefile.inc","Makefile.wat","makefile","makefile.sco","mkfile"]},markdown:{extensions:[".livemd",".markdown",".md",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"]},"objective-c":{extensions:[".h",".m"]},"objective-cpp":{extensions:[".mm"]},php:{extensions:[".aw",".ctp",".fcgi",".inc",".install",".module",".php",".php3",".php4",".php5",".phps",".phpt",".theme"],filenames:[".php",".php_cs",".php_cs.dist","Phakefile"]},perl:{extensions:[".al",".cgi",".fcgi",".perl",".ph",".pl",".plx",".pm",".psgi",".t"],filenames:[".latexmkrc","Makefile.PL","Rexfile","ack","cpanfile","latexmkrc"]},powershell:{extensions:[".ps1",".psd1",".psm1"]},pug:{extensions:[".jade",".pug"]},python:{extensions:[".cgi",".codon",".fcgi",".gyp",".gypi",".lmi",".py",".py3",".pyde",".pyi",".pyp",".pyt",".pyw",".rpy",".sage",".spec",".tac",".wsgi",".xpy"],filenames:[".gclient","DEPS","SConscript","SConstruct","wscript"]},r:{extensions:[".r",".rd",".rsx"],filenames:[".Rprofile","expr-dist"]},ruby:{extensions:[".builder",".eye",".fcgi",".gemspec",".god",".jbuilder",".mspec",".pluginspec",".podspec",".prawn",".rabl",".rake",".rb",".rbi",".rbuild",".rbw",".rbx",".ru",".ruby",".spec",".thor",".watchr"],filenames:[".irbrc",".pryrc",".simplecov","Appraisals","Berksfile","Brewfile","Buildfile","Capfile","Dangerfile","Deliverfile","Fastfile","Gemfile","Guardfile","Jarfile","Mavenfile","Podfile","Puppetfile","Rakefile","Snapfile","Steepfile","Thorfile","Vagrantfile","buildfile"]},rust:{extensions:[".rs",".rs.in"]},scss:{extensions:[".scss"]},sql:{extensions:[".cql",".ddl",".inc",".mysql",".prc",".sql",".tab",".udf",".viw"]},sass:{extensions:[".sass"]},scala:{extensions:[".kojo",".sbt",".sc",".scala"]},shellscript:{extensions:[".bash",".bats",".cgi",".command",".fcgi",".fish",".ksh",".sh",".sh.in",".tmux",".tool",".trigger",".zsh",".zsh-theme"],filenames:[".bash_aliases",".bash_functions",".bash_history",".bash_logout",".bash_profile",".bashrc",".cshrc",".envrc",".flaskenv",".kshrc",".login",".profile",".tmux.conf",".zlogin",".zlogout",".zprofile",".zshenv",".zshrc","9fs","PKGBUILD","bash_aliases","bash_logout","bash_profile","bashrc","cshrc","gradlew","kshrc","login","man","profile","tmux.conf","zlogin","zlogout","zprofile","zshenv","zshrc"]},slang:{extensions:[".fxc",".hlsl",".s",".slang",".slangh",".usf",".ush",".vfx"]},slim:{extensions:[".slim"]},solidity:{extensions:[".sol"]},stylus:{extensions:[".styl"]},svelte:{extensions:[".svelte"]},swift:{extensions:[".swift"]},systemverilog:{extensions:[".sv",".svh",".vh"]},typescriptreact:{extensions:[".tsx"]},latex:{extensions:[".aux",".bbx",".cbx",".cls",".dtx",".ins",".lbx",".ltx",".mkii",".mkiv",".mkvi",".sty",".tex",".toc"]},typescript:{extensions:[".cts",".mts",".ts"]},verilog:{extensions:[".v",".veo"]},vim:{extensions:[".vba",".vim",".vimrc",".vmb"],filenames:[".exrc",".gvimrc",".nvimrc",".vimrc","_vimrc","gvimrc","nvimrc","vimrc"]},vb:{extensions:[".vb",".vbhtml",".Dsr",".bas",".cls",".ctl",".frm",".vbs"]},vue:{extensions:[".nvue",".vue"]},xml:{extensions:[".adml",".admx",".ant",".axaml",".axml",".builds",".ccproj",".ccxml",".clixml",".cproject",".cscfg",".csdef",".csl",".csproj",".ct",".depproj",".dita",".ditamap",".ditaval",".dll.config",".dotsettings",".filters",".fsproj",".fxml",".glade",".gml",".gmx",".gpx",".grxml",".gst",".hzp",".iml",".ivy",".jelly",".jsproj",".kml",".launch",".mdpolicy",".mjml",".mod",".mojo",".mxml",".natvis",".ncl",".ndproj",".nproj",".nuspec",".odd",".osm",".pkgproj",".plist",".pluginspec",".proj",".props",".ps1xml",".psc1",".pt",".pubxml",".qhelp",".rdf",".res",".resx",".rss",".sch",".scxml",".sfproj",".shproj",".srdf",".storyboard",".sublime-snippet",".svg",".sw",".targets",".tml",".typ",".ui",".urdf",".ux",".vbproj",".vcxproj",".vsixmanifest",".vssettings",".vstemplate",".vxml",".wixproj",".workflow",".wsdl",".wsf",".wxi",".wxl",".wxs",".x3d",".xacro",".xaml",".xib",".xlf",".xliff",".xmi",".xml",".xml.dist",".xmp",".xproj",".xsd",".xspec",".xul",".zcml"],filenames:[".classpath",".cproject",".project","App.config","NuGet.config","Settings.StyleCop","Web.Debug.config","Web.Release.config","Web.config","packages.config"]},xsl:{extensions:[".xsl",".xslt"]},yaml:{extensions:[".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".clangd",".gemrc","CITATION.cff","glide.lock","pixi.lock","yarn.lock"]},javascriptreact:{extensions:[".jsx"]},legend:{extensions:[".pure"]}};p();p();var KEn=[".ejs",".erb",".haml",".hbs",".j2",".jinja",".jinja2",".liquid",".mustache",".njk",".php",".pug",".slim",".webc"],JEn={".php":[".blade"]},Xq=Object.keys(Y3).flatMap(t=>Y3[t].extensions);var vqt=ue(require("node:path"));var xde=class{constructor(e,r,n){this.languageId=e;this.isGuess=r;this.fileExtension=n}static{a(this,"Language")}},RRe=class{static{a(this,"LanguageDetection")}},Cqt=new Map,wde=new Map;for(let[t,{extensions:e,filenames:r}]of Object.entries(Y3)){for(let n of e)Cqt.set(n,[...Cqt.get(n)??[],t]);for(let n of r??[])wde.set(n,[...wde.get(n)??[],t])}var bqt=class extends RRe{static{a(this,"FilenameAndExensionLanguageDetection")}detectLanguage(e){let r=lo(e.uri),n=vqt.extname(r).toLowerCase(),o=this.extensionWithoutTemplateLanguage(r,n),s=this.detectLanguageId(r,o),c=this.computeFullyQualifiedExtension(n,o);return s?new xde(s.languageId,s.isGuess,c):new xde(e.languageId,!0,c)}extensionWithoutTemplateLanguage(e,r){if(KEn.includes(r)){let n=e.substring(0,e.lastIndexOf(".")),o=vqt.extname(n).toLowerCase();if(o.length>0&&Xq.includes(o)&&this.isExtensionValidForTemplateLanguage(r,o))return o}return r}isExtensionValidForTemplateLanguage(e,r){let n=JEn[e];return!n||n.includes(r)}detectLanguageId(e,r){if(wde.has(e))return{languageId:wde.get(e)[0],isGuess:!1};let n=Cqt.get(r)??[];if(n.length>0)return{languageId:n[0],isGuess:n.length>1};for(;e.includes(".");)if(e=e.replace(/\.[^.]*$/,""),wde.has(e))return{languageId:wde.get(e)[0],isGuess:!1}}computeFullyQualifiedExtension(e,r){return e!==r?r+e:e}},Sqt=class extends RRe{constructor(r){super();this.delegate=r}static{a(this,"GroupingLanguageDetection")}detectLanguage(r){let n=this.delegate.detectLanguage(r),o=n.languageId;return o==="c"||o==="cpp"?new xde("cpp",n.isGuess,n.fileExtension):n}},Tqt=class extends RRe{constructor(r){super();this.delegate=r}static{a(this,"ClientProvidedLanguageDetection")}detectLanguage(r){return r.uri.startsWith("untitled:")||r.uri.startsWith("vscode-notebook-cell:")?new xde(r.languageId,!0,""):this.delegate.detectLanguage(r)}},KVo=new Sqt(new Tqt(new bqt));function PB({uri:t,languageId:e}){let r=KVo.detectLanguage({uri:t,languageId:"UNKNOWN"});return r.languageId==="UNKNOWN"?e:r.languageId}a(PB,"detectLanguage");p();p();p();p();function wm(t){if(t.isCancellationRequested)throw new uKe}a(wm,"throwIfCancellationRequested");function GD(t){return t instanceof uKe?!0:t instanceof Error&&t.name===Iqt&&t.message===Iqt}a(GD,"isCancellationError");var uKe=class extends Error{static{a(this,"CancellationError")}constructor(){super(Iqt),this.name=this.message}},Iqt="Canceled",dKe=class{constructor(){this.items=[]}static{a(this,"Stack")}push(e){this.items.push(e)}pop(){return this.items.pop()}peek(){return this.items[this.items.length-1]}tryPeek(){return this.items.length>0}toArray(){return this.items}};function VJ(t){switch(t){case 0:case 2:case 7:case 8:case 11:case 12:case 13:case 14:return!0;default:return!1}}a(VJ,"isTypeDefinition");var Bu=class t{static{a(this,"TextRange")}static{this.empty=new t(0,0)}constructor(e,r){this.start=e,this.length=r}static fromBounds(e,r){return new t(e,r-e)}get end(){return this.start+this.length}contains(e){return this.start<=e&&this.end>=e}containsRange(e){return this.start<=e.start&&this.end>=e.end}equals(e){return this.start===e.start&&this.length===e.length}getText(e){return e.slice(this.start,this.end)}getTextWithIndentation(e,r){let n=[],o=this.start;for(o=XEn(e,e.length,o),ZEn(n,r);o<this.end;)e[o]!=="\r"&&e[o]!==`
1917
+ ] @statement`}};var RB=class{constructor(e,r,n){this.languageId=e;this.prefix=r;this.completion=n}static{a(this,"BlockTrimmer")}static isSupported(e){return H0.isSupported(e)}static isTrimmedByDefault(e){return H0.isTrimmedByDefault(e)}async withParsedStatementTree(e){var n=[];try{let r=dOt(n,H0.create(this.languageId,this.prefix+this.completion,this.prefix.length,this.prefix.length+this.completion.length));await r.build();return await e(r)}catch(o){var s=o,c=!0}finally{fOt(n,s,c)}}trimmedCompletion(e){return e===void 0?this.completion:this.completion.substring(0,e)}getStatementAtCursor(e){return e.statementAt(Math.max(this.prefix.length-1,0))??e.statements[0]}getContainingBlockOffset(e){let r;if(e&&this.isCompoundStatement(e))r=e;else if(e){let n=e.parent;for(;n&&!this.isCompoundStatement(n);)n=n.parent;r=n}if(r){let n=this.asCompletionOffset(r.node.endIndex);if(n&&this.completion.substring(n).trim()!=="")return n}}hasNonStatementContentAfter(e){if(!e||!e.nextSibling)return!1;let r=this.asCompletionOffset(e.node.endIndex),n=this.asCompletionOffset(e.nextSibling.node.startIndex);return this.completion.substring(Math.max(0,r??0),Math.max(0,n??0)).trim()!==""}asCompletionOffset(e){return e===void 0?void 0:e-this.prefix.length}isCompoundStatement(e){return e.isCompoundStatementType||e.children.length>0}};var cKe=class extends RB{constructor(r,n,o,s=3,c=7){super(r,n,o);this.lineLimit=s;this.lookAhead=c;let l=[...this.completion.matchAll(/\n/g)],u=this.lineLimit+this.lookAhead;l.length>=this.lineLimit&&this.lineLimit>0&&(this.limitOffset=l[this.lineLimit-1].index),l.length>=u&&u>0&&(this.lookAheadOffset=l[u-1].index)}static{a(this,"TerseBlockTrimmer")}async getCompletionTrimOffset(){return await this.withParsedStatementTree(r=>{let n=r.statementAt(this.stmtStartPos()),o=this.getContainingBlockOffset(n);return o=this.trimAtFirstBlankLine(o),n&&(o=this.trimAtStatementChange(n,o)),this.limitOffset&&this.lookAheadOffset&&(o===void 0||o>this.lookAheadOffset)?this.limitOffset:o})}stmtStartPos(){let r=this.completion.match(/\S/);return r&&r.index!==void 0?this.prefix.length+r.index:Math.max(this.prefix.length-1,0)}trimAtFirstBlankLine(r){let n=[...this.trimmedCompletion(r).matchAll(/\r?\n\s*\r?\n/g)];for(;n.length>0&&(r===void 0||r>n[0].index);){let o=n.shift();if(this.completion.substring(0,o.index).trim()!=="")return o.index}return r}trimAtStatementChange(r,n){let o=this.prefix.length,s=this.prefix.length+(n??this.completion.length);if(r.node.endIndex>o&&this.isCompoundStatement(r))return r.nextSibling&&r.node.endIndex<s?this.asCompletionOffset(r.node.endIndex):n;let c=r,l=r.nextSibling;for(;l&&l.node.endIndex<=s&&!this.hasNonStatementContentAfter(c)&&!this.isCompoundStatement(l);)c=l,l=l.nextSibling;return l&&c.node.endIndex>o&&c.node.endIndex<s?this.asCompletionOffset(c.node.endIndex):n}};async function HEn(t,e){var l=[];try{let r=t.getText();let n=t.offsetAt(e);let o=dOt(l,H0.create(t.detectedLanguageId,r,0,r.length));await o.build();let s=o.statementAt(n);if(!s)return"non-block";if(!s.isCompoundStatementType&&s.children.length===0)return s.parent&&!s.nextSibling&&s.node.endPosition.row<=e.line?"block-end":s.parent?"mid-block":"non-block";if(s.children.length===0)return"empty-block";let c=s.children[s.children.length-1];if(n<c.node.startIndex)return"mid-block";return"block-end"}catch(u){var d=u,f=!0}finally{fOt(l,d,f)}}a(HEn,"getBlockPositionType");p();function bVo(t){return t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy}a(bVo,"getProxyFromEnvironment");function SVo(t){return t.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}a(SVo,"getRejectUnauthorizedFromEnvironment");var jEn=b.Object({proxy:b.Optional(b.String()),proxyStrictSSL:b.Optional(b.Boolean()),proxyAuthorization:b.Optional(b.String()),proxyKerberosServicePrincipal:b.Optional(b.String()),noProxy:b.Optional(b.Array(b.String()))});function GEn(t){let e=bVo(t),r=IRe({proxy:e,proxyStrictSSL:SVo(t)}),n=t.GH_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.GITHUB_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.AGENT_KERBEROS_SERVICE_PRINCIPAL;return n&&(r.proxyKerberosServicePrincipal=n),r}a(GEn,"getHttpSettingsFromEnvironment");function IRe(t){if(!t.proxy)return{...t,proxy:""};try{let{protocol:e,host:r,username:n,password:o,pathname:s,search:c,hash:l}=new URL(t.proxy);return{...t,proxy:`${e}//${r}${s}${c}${l}`,proxyAuthorization:t.proxyAuthorization||TVo(n,o),noProxy:t.noProxy||[]}}catch{return{...t,proxy:""}}}a(IRe,"normalizeHttpSettings");function TVo(t,e){return!t||!e?"":`${decodeURIComponent(t)}:${decodeURIComponent(e)}`}a(TVo,"getAuth");var wRe={};Qi(wRe,{anthropicClaude:()=>MVo,build:()=>PVo,buildType:()=>kVo,default:()=>UVo,dependencies:()=>BVo,description:()=>xVo,devDependencies:()=>OVo,displayName:()=>wVo,engines:()=>DVo,name:()=>IVo,overrides:()=>LVo,overridesComments:()=>FVo,scripts:()=>NVo,version:()=>RVo});var IVo="copilot",wVo="GitHub Copilot",xVo="Your AI pair programmer",RVo="1.545.1",PVo="122",kVo="prod",DVo={node:">=22.13.0",npm:">=11.6.0 <12.0.0"},MVo={cliPackageVersion:"2.1.159"},NVo={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/deviceFlow.ts --save-as-test-token",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:gdpr":"tsx script/checkGdprComments.ts","lint:overrides":"tsx script/checkOverridesDocumented.ts","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit",manage_auth_db:"tsx script/manageAuthDb.ts",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:agent-e2e-full":"npm run build","pretest:agent-e2e":"npm run build","pretest:lsp-client":"npm run build","pretest:lib-e2e":"npm run build",prewatch:"npm run build","prewatch:esbuild":"npm run build",start:"npm run watch",test:'npm-run-all "test:headless --ignore-scripts" lint',"test:headless":'npm-run-all test:lib test:agent "test:lib-e2e --ignore-scripts" test:prompt "test:lsp-client --ignore-scripts" lint',"test:agent":'mocha "agent/src/**/*.test.{ts,tsx}"',"test:agent-e2e":'mocha "agent/e2e/**/*.test.{ts,tsx}" --exclude "agent/e2e/**/*.daily.test.{ts,tsx}"',"test:agent-e2e-full":'mocha "agent/e2e/**/*.test.{ts,tsx}"',"test:lib":'mocha "lib/src/**/*.test.{ts,tsx}" "script/**/*.test.{ts,tsx}" --exclude "lib/src/**/*.int.test.ts"',"test:lib-int":'mocha "lib/src/**/*.int.test.ts"',"test:lib-e2e":'mocha "lib/e2e/src/**/*.test.{ts,tsx}" --exclude "lib/e2e/src/prompt/**/*.test.ts"',"test:lib-e2e-no-ci":'mocha "lib/e2e/no-ci/**/*.test.{ts,tsx}"',"test:lib-prompt-e2e":'mocha "lib/e2e/src/prompt/prompt.test.ts"',"test:lib-prompt-e2e-perf":"INCLUDE_PERFORMANCE=true npm run test:lib-prompt-e2e","test:lsp-client":'mocha "lsp-client/test/*.test.{ts,tsx}"',"test:pkg-runtime":"tsx script/smokeCopilotRuntimePkg.ts","test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"test:prepare-msbench":"tsx script/setupMsbench.ts","test:run-msbench":"tsx lsp-client/test/msbench/agent/index.ts",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},OVo={"@azure/identity":"^4.13.2","@azure/keyvault-secrets":"^4.11.2","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.6.1","@types/crypto-js":"^4.2.2","@types/diff":"^8.0.0","@types/git-url-parse":"^16.0.2","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/markdown-it":"^14.2.0","@types/mocha":"^10.0.10","@types/node":"~22.13.0","@types/semver":"^7.8.0","@types/sinon":"^22.0.0","@types/toposort":"^2.0.7","@types/vscode":"1.125.0","@types/which":"^3.0.0","@types/yargs":"^17.0.35","@vscode/tree-sitter-wasm":"0.0.5-php.2","@yao-pkg/pkg":"^6.22.0",boxen:"^8.0.1",chalk:"^5.6.2","dependency-cruiser":"^18.2.0",esbuild:"^0.28.2","esbuild-plugin-copy":"^2.1.1",eslint:"^9.39.5","eslint-formatter-visualstudio":"^9.0.1","eslint-plugin-mocha":"^10.5.0",globals:"^17.12.0","js-yaml":"^4.2.0",mocha:"^11.8.0","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",openai:"^7.10.0",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.2.0","simple-git":"^3.36.0",sinon:"^22.1.0","tree-sitter-bash":"^0.23.0","tree-sitter-powershell":"0.25.9","ts-dedent":"^2.3.0",tsx:"^4.23.12",typescript:"^5.9.3","typescript-eslint":"^8.39.1","vscode-dts":"^0.3.3"},BVo={"@adobe/helix-fetch":"github:devm33/helix-fetch#2a08fa939591a0e14f34f611adcc3ed767579e9a","@agentclientprotocol/sdk":"^0.22.1","@anthropic-ai/claude-agent-sdk":"0.3.159","@anthropic-ai/sdk":"^0.98.0","@github/copilot":"1.0.83","@github/copilot-sdk":"1.0.13","@github/keytar":"7.10.6","@github/memoize":"1.1.5","@microsoft/1ds-core-js":"^4.3.10","@microsoft/1ds-post-js":"^4.3.10","@microsoft/applicationinsights-web-basic":"^3.3.11","@modelcontextprotocol/sdk":"^1.30.0","@octokit/graphql":"^9.0.5","@octokit/rest":"^22.0.1","@parcel/watcher":"^2.6.0","@sinclair/typebox":"^0.34.52","@vscode/chat-lib":"0.60.0","@vscode/codicons":"^0.0.45","@vscode/deviceid":"github:ghc-jetbrains/vscode-deviceid#f0e5738cd362ef20a09aeb30c3a8be99a9a710f5","@vscode/policy-watcher":"^1.4.0","@vscode/prompt-tsx":"^0.4.0-alpha.9","@vscode/webview-ui-toolkit":"^1.3.1","crypto-js":"^4.2.0",diff:"^9.0.0",dldr:"^0.0.10",events:"^3.3.0","git-url-parse":"^16.1.0",glob:"^11.1.0","jsonc-parser":"^3.3.1",kerberos:"^2.2.0","mac-ca":"^3.1.3","markdown-it":"^15.0.1",minimatch:"^10.2.6",open:"^11.0.2",semver:"^7.8.5",shiki:"~1.15.0","source-map-support":"^0.5.21",toposort:"^2.0.2",undici:"^7.29.0",uuid:"^14.0.0","vscode-languageclient":"^9.0.0","vscode-languageserver":"^9.0.0","vscode-languageserver-protocol":"^3.17","vscode-languageserver-textdocument":"~1.0.14","vscode-uri":"^3.2.0","web-tree-sitter":"^0.23.0",which:"^7.0.0","windows-ca-certs":"^0.2.2",ws:"^8.21.3",yargs:"^18.1.0"},LVo={fsevents:"<0","@github/copilot-linuxmusl-arm64":"<0","@github/copilot-linuxmusl-x64":"<0",bindings:"npm:bundled-bindings@^1.5.0",jws:"^3.2.3",tar:"7.5.21","serialize-javascript":"^7.0.5",uuid:"^14.0.0","ip-address":"^10.1.1","fast-uri":"^3.1.7"},FVo={"//":"Rationale for each entry in `overrides`. Required by `npm run lint:overrides` (script/checkOverridesDocumented.ts). Each value should cover: why (CVE/GHSA or build-hack reason), which direct dep pulls in the vulnerable transitive, and the remove-when condition.",fsevents:"Build hack: macOS-only optional native dep; '<0' is an impossible semver that force-skips install on Linux/Windows pkg builds. Permanent \u2014 keep until @yao-pkg/pkg handles macOS-only optionalDependencies natively. See commit d635096c.","@github/copilot-linuxmusl-arm64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.","@github/copilot-linuxmusl-x64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.",bindings:"Build hack: alias to bundled-bindings fork that resolves .node native addon paths after pkg/esbuild bundling. Required by kerberos. Drop when upstream `bindings` adopts platform-specific path resolution. See commits c4461665 and b55ece83.",jws:"CVE GHSA-869p-cjfg-cm3x (Improperly Verifies HMAC Signature). Pulled in by jsonwebtoken-family deps. Drop when all transitive consumers pin jws >= 3.2.3. See commit 2b5dc766.",tar:"CVE GHSA-9ppj-qmqm-q256 + GHSA-qffp-2rhf-9h96 (Symlink/Hardlink Path Traversal via Drive-Relative Linkpath), plus the 7.5.12..7.5.20 advisory run: GHSA-23hp-3jrh-7fpw / CVE-2026-59873 (critical, decompression DoS via unlimited input), GHSA-8x88-c5mf-7j5w / CVE-2026-59874 (infinite loop on negative entry size), GHSA-w8wr-v893-vjvp / CVE-2026-59871 (PAX numeric path type confusion), GHSA-gvwx-54wh-qm9j / CVE-2026-59875 (NUL byte in PAX path records), GHSA-vmf3-w455-68vh / CVE-2026-53655 (GNU long-name PAX size override file smuggling), GHSA-r292-9mhp-454m (uncontrolled recursion in mapHas/filesFilter). Pulled in by @yao-pkg/pkg (tar ^7.5.7) and node-gyp / native-build deps. Drop when transitive consumers bump tar >= 7.5.21. Dependabot alerts #170, #169, #179, #171, #168, #146. See commit e2dff0f3.","serialize-javascript":"CVE GHSA-5c6j-r48x-rmvq (RCE via RegExp.flags / Date.toISOString) + GHSA-qj8w-gfj5-8c6v (ReDoS). Pulled in by mocha 11.x (^6.0.2). Dev-only. Drop when mocha bumps to a release that carries serialize-javascript >= 7.0.3. See commit d49f75fd.",uuid:"CVE GHSA-w5hq-g745-h8pq (missing buffer bounds checks in v3/v5/v6). Pulled in by msal-node and @vscode/deviceid as uuid 8.x/9.x. Drop when both upgrade to uuid >= 14. Dependabot alert #128. See commit 6315f3f8.","ip-address":"CVE GHSA-v2v4-37r5-5v8g (XSS in Address6 HTML-emitting methods: group/link/spanAll and AddressError.parseMessage). Pulled in by @modelcontextprotocol/sdk -> express-rate-limit. Not exploitable here (we don't render HTML or call the affected methods), but the override clears the alert. Drop when express-rate-limit bumps to a release carrying ip-address >= 10.1.1. Dependabot alert #129. See PR #854.","fast-uri":"CVE-2026-6321 GHSA-q3j6-qgpj-74h6 (host confusion via percent-encoded authority delimiters) + CVE-2026-6322 GHSA-v39h-62p7-jpjc (path traversal via percent-encoded dot segments). Pulled in by @modelcontextprotocol/sdk -> ajv -> fast-uri. Drop when ajv bumps to a release carrying fast-uri >= 3.1.2. Dependabot alerts #132, #133."},UVo={name:IVo,displayName:wVo,description:xVo,version:RVo,build:PVo,buildType:kVo,engines:DVo,anthropicClaude:MVo,scripts:NVo,devDependencies:OVo,dependencies:BVo,overrides:LVo,overridesComments:FVo};var He={Enable:"enable",EnableQuotaThresholdWarning:"quota.enableThresholdWarning",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",EnableBuiltInGitHubMcpServer:"enableBuiltInGitHubMcpServer",ToolConfirmAutoApprove:"agent.toolConfirmAutoApprove",AutoApproveUnmatchedTerminal:"agent.autoApproveUnmatchedTerminal",AutoApproveUnmatchedFileOp:"agent.autoApproveUnmatchedFileOp",TrustToolAnnotations:"agent.trustToolAnnotations",AutoApproveYoloMode:"agent.autoApproveYoloMode",EditorHandlesAllConfirmation:"agent.editorHandlesAllConfirmation",MaxToolCallingLoop:"agent.maxToolCallingLoop",AutoCompress:"agent.autoCompress",AnthropicThinkingBudgetToken:"agent.anthropicThinkingBudgetToken",EnableSkills:"agent.enableSkills",EnableOrgSkills:"agent.enableOrgSkills",EnableHooks:"agent.enableHooks",EnableSandbox:"agent.sandbox.enabled",SandboxAddCurrentWorkingDirectory:"agent.sandbox.addCurrentWorkingDirectory",SandboxAuth:"agent.sandbox.auth",SandboxAllowDevToolAccess:"agent.sandbox.allowDevToolAccess",SandboxUserPolicy:"agent.sandbox.userPolicy",EnablePlugins:"agent.enablePlugins",EnableCustomAgents:"agent.enableCustomAgents",EnableOrgCustomAgents:"agent.enableOrgCustomAgents",EnableOrgCustomInstructions:"agent.enableOrgCustomInstructions",UseSessionModelForBuiltinSubagents:"agent.useSessionModelForBuiltinSubagents",UseAgentsMd:"agent.useAgentsMdFile",UseNestedAgentsMd:"agent.useNestedAgentsMdFiles",UseClaudeMd:"agent.useClaudeMdFile",UseNestedClaudeMd:"agent.useNestedClaudeMdFiles",CompletionsDelay:"completionsDelay",CompletionsDebounce:"completionsDebounce",EnableThinking:"agent.enableThinking",TranscriptDirectory:"agent.transcriptDirectory",AgentDebugLogsDirectory:"agent.agentDebugLogsDirectory",ClaudeCliPath:"agent.claude.cliPath",CodexCliPath:"agent.codex.cliPath",OtelEnabled:"agent.otel.enabled",OtelEndpoint:"agent.otel.otlpEndpoint",OtelCaptureContent:"agent.otel.captureContent",OtelExporterType:"agent.otel.exporterType",OtelProtocol:"agent.otel.protocol",OtelOutfile:"agent.otel.outfile",OtelServiceName:"agent.otel.serviceName",OtelResourceAttributes:"agent.otel.resourceAttributes",NESExtendedRange:"nextEditSuggestions.extendedRange",NESEagerness:"nextEditSuggestions.eagerness",RelatedFilesVSCodeCSharp:"advanced.relatedFilesVSCodeCSharp",RelatedFilesVSCodeTypeScript:"advanced.relatedFilesVSCodeTypeScript",RelatedFilesVSCode:"advanced.relatedFilesVSCode",ContextProviders:"advanced.contextProviders",DebugOverrideLogLevels:"advanced.debug.overrideLogLevels",DebugFilterLogCategories:"advanced.debug.filterLogCategories",DebugSnippyOverrideUrl:"advanced.debug.codeRefOverrideUrl",DebugUseElectronFetcher:"advanced.debug.useElectronFetcher",DebugUseEditorFetcher:"advanced.debug.useEditorFetcher",UseSubsetMatching:"advanced.useSubsetMatching",ContextProviderTimeBudget:"advanced.contextProviderTimeBudget",DebugOverrideCapiUrl:"internal.capiUrl",DebugOverrideCapiUrlLegacy:"advanced.debug.overrideCapiUrl",DebugTestOverrideCapiUrl:"internal.capiTestUrl",DebugTestOverrideCapiUrlLegacy:"advanced.debug.testOverrideCapiUrl",DebugOverrideProxyUrl:"internal.completionsUrl",DebugOverrideProxyUrlLegacy:"advanced.debug.overrideProxyUrl",DebugTestOverrideProxyUrl:"internal.completionsTestUrl",DebugTestOverrideProxyUrlLegacy:"advanced.debug.testOverrideProxyUrl",DebugOverrideEngine:"internal.completionModel",DebugOverrideEngineLegacy:"advanced.debug.overrideEngine",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",ShowWorkspaceContextDebugger:"internal.showWorkspaceContextDebugger",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",NESXTab:"internal.useXTab",NESUseExplicitRejection:"internal.nesUseExplicitRejection",NESModelConfiguration:"internal.nesModelConfiguration",UseSplitContextPrompt:"internal.useSplitContextPrompt",UseCompletionsComparisonPanel:"internal.useCompletionsComparisonPanel",ComparisonPanelModelIds:"internal.comparisonPanelModelIds",ComparisonPanelRandomizedMode:"internal.comparisonPanelRandomizedMode",UseFetchFetcher:"internal.useFetchFetcher",UseChatLibCompletions:"internal.useChatLibCompletions",HookErrorOccurredStackTrace:"internal.hookErrorOccurredStackTrace",AppendPromptTokenCache:"internal.appendPromptTokenCache",PromptPersistBasePath:"internal.promptPersistBasePath",AnthropicMessagesEndpoint:"internal.anthropic.messagesEndpoint",UseHelixFetcher:"internal.useHelixFetcher",EnableMapCodeFallback:"internal.enableMapCodeFallback",SearchAgent:"internal.searchAgent",PerfEnabled:"internal.perf.enabled",AuthTokenEncryption:"internal.auth.tokenEncryption",EnableWorkspaceIndex:"workspaceIndex.enabled"};function $En(t){return["server","parsingandserver"].includes(t)}a($En,"shouldDoServerTrimming");var jD=class{static{a(this,"BlockModeConfig")}},Tde=class extends jD{static{a(this,"ConfigBlockModeConfig")}forLanguage(e,r,n){let o=e.get(rr).overrideBlockMode(n);if(o)return _qt(o,r);let s=e.get(rr).enableProgressiveReveal(n);return(bt(e,He.AlwaysRequestMultiline)??s)||RB.isTrimmedByDefault(r)?_qt("moremultiline",r):r=="ruby"?"parsing":qI(r)?"parsingandserver":"server"}};function QVo(t){return["parsing","parsingandserver","moremultiline"].includes(t)}a(QVo,"blockModeRequiresTreeSitter");function _qt(t,e){return t==="moremultiline"&&H0.isSupported(e)?t:QVo(t)&&!qI(e)?"server":t}a(_qt,"toApplicableBlockMode");var fi=class{static{a(this,"ConfigProvider")}requireReady(){return Promise.resolve()}},Ide=class extends fi{constructor(){super(...arguments);this.onDidChangeCopilotSettings=a(()=>({dispose:a(()=>{},"dispose")}),"onDidChangeCopilotSettings");this.onDidChangeHttpSettings=this.onDidChangeCopilotSettings}static{a(this,"DefaultsOnlyConfigProvider")}getConfig(r){return qVo(r)}getOptionalConfig(r){return HVo(r)}dumpForTelemetry(){return{}}getExplicitlySetConfigs(){return new Map}getHttpSettings(){return{proxy:""}}},jJ=class extends fi{constructor(r,n){super();this.baseConfigProvider=r;this.overrides=n;this.copilotEmitter=new io;this.onDidChangeCopilotSettings=this.copilotEmitter.event;this.didChangeHttpSettingsEmitter=new io;this.onDidChangeHttpSettings=this.didChangeHttpSettingsEmitter.event;this.httpSettings=this.baseConfigProvider.getHttpSettings()}static{a(this,"InMemoryConfigProvider")}getOptionalOverride(r){return this.overrides.get(r)}getConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getConfig(r)}getOptionalConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getOptionalConfig(r)}setConfig(r,n){this.setCopilotSettings({[r]:n})}setCopilotSettings(r){for(let[n,o]of Object.entries(r))o!==void 0?this.overrides.set(n,o):this.overrides.delete(n);this.copilotEmitter.fire(this)}getExplicitlySetConfigs(){let r=new Map(this.baseConfigProvider.getExplicitlySetConfigs());for(let[n,o]of this.overrides)r.set(n,o);return r}getHttpSettings(){return this.httpSettings}setHttpSettings(r){let n=IRe(r);this.httpSettings=n,this.didChangeHttpSettingsEmitter.fire(this.getHttpSettings())}dumpForTelemetry(){let r=this.baseConfigProvider.dumpForTelemetry();for(let n of[He.ShowEditorCompletions,He.EnableAutoCompletions,He.DelayCompletions,He.FilterCompletions]){let o=this.overrides.get(n);o!==void 0&&(r[n]=JSON.stringify(o))}return r}};function VEn(t,e){let r=t,n=[];for(let o of e.split(".")){let s=[...n,o].join(".");r&&typeof r=="object"&&s in r?(r=r[s],n.length=0):n.push(o)}if(!(r===void 0||n.length>0))return r}a(VEn,"getConfigKeyRecursively");function qVo(t){if(lKe.has(t))return lKe.get(t);throw new Error(`Missing config default value: ${pOt}.${t}`)}a(qVo,"getConfigDefaultForKey");function HVo(t){return lKe.get(t)}a(HVo,"getOptionalConfigDefaultForKey");function xRe(t){return t.get(fi).getExplicitlySetConfigs()}a(xRe,"getExplicitlySetConfigs");var jVo={[He.DebugOverrideCppHeadersEnableSwitch]:!1,[He.RelatedFilesVSCodeCSharp]:!1,[He.RelatedFilesVSCodeTypeScript]:!1,[He.RelatedFilesVSCode]:!1,[He.IncludeNeighboringFiles]:!1,[He.ExcludeRelatedFiles]:!1,[He.ContextProviders]:[],[He.DebugUseEditorFetcher]:null,[He.DebugUseElectronFetcher]:null,[He.DebugOverrideLogLevels]:{},[He.DebugSnippyOverrideUrl]:"",[He.AgentDebugLogsDirectory]:void 0,[He.ClaudeCliPath]:void 0,[He.CodexCliPath]:void 0,[He.OtelEnabled]:!1,[He.OtelEndpoint]:void 0,[He.OtelCaptureContent]:!1,[He.OtelExporterType]:"otlp-http",[He.OtelProtocol]:"",[He.OtelOutfile]:"",[He.OtelServiceName]:"",[He.OtelResourceAttributes]:{},[He.FetchStrategy]:"auto",[He.EnableBuiltInGitHubMcpServer]:!1,[He.ToolConfirmAutoApprove]:!1,[He.AutoApproveUnmatchedTerminal]:void 0,[He.AutoApproveUnmatchedFileOp]:void 0,[He.TrustToolAnnotations]:!1,[He.AutoApproveYoloMode]:!1,[He.EditorHandlesAllConfirmation]:!1,[He.MaxToolCallingLoop]:25,[He.AutoCompress]:!1,[He.AnthropicThinkingBudgetToken]:1024,[He.EnableSkills]:!1,[He.EnableOrgSkills]:!0,[He.EnableHooks]:!1,[He.EnableSandbox]:!1,[He.SandboxAddCurrentWorkingDirectory]:void 0,[He.SandboxAuth]:void 0,[He.SandboxAllowDevToolAccess]:void 0,[He.SandboxUserPolicy]:void 0,[He.EnablePlugins]:!1,[He.EnableCustomAgents]:!0,[He.EnableOrgCustomAgents]:!0,[He.EnableOrgCustomInstructions]:!0,[He.UseSessionModelForBuiltinSubagents]:!1,[He.UseAgentsMd]:!1,[He.UseNestedAgentsMd]:!1,[He.UseClaudeMd]:!1,[He.UseNestedClaudeMd]:!1,[He.UseSubsetMatching]:null,[He.ContextProviderTimeBudget]:void 0,[He.DebugOverrideCapiUrl]:"",[He.DebugTestOverrideCapiUrl]:"",[He.DebugOverrideProxyUrl]:"",[He.DebugTestOverrideProxyUrl]:"",[He.DebugOverrideEngine]:"",[He.AlwaysRequestMultiline]:void 0,[He.ModelAlwaysTerminatesSingleline]:void 0,[He.TrimCompletionsAggressively]:void 0,[He.CompletionsDebounce]:void 0,[He.NESXTab]:void 0,[He.UseWorkspaceContextCoordinator]:void 0,[He.ShowWorkspaceContextDebugger]:!1,[He.CompletionsDelay]:void 0,[He.UseSplitContextPrompt]:void 0,[He.UseCompletionsComparisonPanel]:void 0,[He.ComparisonPanelModelIds]:void 0,[He.ComparisonPanelRandomizedMode]:void 0,[He.UseFetchFetcher]:void 0,[He.UseChatLibCompletions]:void 0,[He.TranscriptDirectory]:void 0,[He.EnableThinking]:!0,[He.ShowEditorCompletions]:void 0,[He.EnableAutoCompletions]:void 0,[He.DelayCompletions]:void 0,[He.FilterCompletions]:void 0,[He.Enable]:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},[He.EnableQuotaThresholdWarning]:!0,[He.DebugFilterLogCategories]:[],[He.DebugOverrideEngineLegacy]:"",[He.DebugTestOverrideProxyUrlLegacy]:"",[He.DebugOverrideProxyUrlLegacy]:"",[He.DebugTestOverrideCapiUrlLegacy]:"",[He.DebugOverrideCapiUrlLegacy]:"",[He.HookErrorOccurredStackTrace]:!1,[He.NESUseExplicitRejection]:!1,[He.NESModelConfiguration]:void 0,[He.AppendPromptTokenCache]:"",[He.PromptPersistBasePath]:void 0,[He.AnthropicMessagesEndpoint]:"",[He.UseHelixFetcher]:"",[He.EnableMapCodeFallback]:"enabled",[He.SearchAgent]:"",[He.PerfEnabled]:"",[He.NESExtendedRange]:!1,[He.NESEagerness]:"auto",[He.AuthTokenEncryption]:"",[He.EnableWorkspaceIndex]:!1},lKe=new Map(Object.entries(jVo));for(let t of Object.values(He))if(!lKe.has(t))throw new Error(`Missing config default value ${pOt}.${t}`);function bt(t,e){return t.get(fi).getConfig(e)}a(bt,"getConfig");function bv(t){let e=bt(t,He.EnableWorkspaceIndex);return e===!0||e==="true"}a(bv,"isSemanticSearchEnabled");function kon(t){return t.get(fi).dumpForTelemetry()}a(kon,"dumpForTelemetry");var ws=class{constructor(){this.packageJson=wRe}static{a(this,"BuildInfo")}isProduction(){return this.getBuildType()!=="dev"}getBuildType(){return this.packageJson.buildType}getVersion(){return this.packageJson.version}getDisplayVersion(){return this.getBuildType()==="dev"?`${this.getVersion()}-dev`:this.getVersion()}getBuild(){return this.packageJson.build}getName(){return this.packageJson.name}};function SOt(t){return t.get(ws).isProduction()}a(SOt,"isProduction");function Pun(t){return t.get(ws).getBuildType()==="dev"}a(Pun,"isDevBuild");function _Q(t){return t.get(ws).getBuildType()}a(_Q,"getBuildType");function Don(t){return t.get(ws).getBuild()}a(Don,"getBuild");function iI(t){return t.get(ws).getVersion()}a(iI,"getVersion");var Ea=class{constructor(e,r,n,o="none",s="desktop"){this.sessionId=e;this.machineId=r;this.devDeviceId=n;this.remoteName=o;this.uiKind=s}static{a(this,"EditorSession")}};function WT({name:t,version:e}){return`${t}/${e}`}a(WT,"formatNameAndVersion");var vr=class{static{a(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}getEditorPluginSpecificFilters(){return[]}getEditorIdentity(){return cYr({editor:this.getEditorInfo(),plugin:this.getEditorPluginInfo()})}isEditorPluginInfoKnown(){return!0}};function DYe(t){let e=t.getCopilotIntegrationId();if(e)return e;switch(t.getEditorPluginInfo().name){case"copilot-intellij":return"jetbrains-chat";case"copilot":case"copilot-vs":return;default:return"jetbrains-chat"}}a(DYe,"getIntegrationId");function hE(t){let e=t.get(vr);return{"Editor-Version":WT(e.getEditorInfo()),"Editor-Plugin-Version":WT(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":iI(t)}}a(hE,"editorVersionHeaders");var WEn="Iv1.b507a08c87ecfe98",GVo="350ee525b5da0e4a54c6e8e043edc1b99cc02f19",hue="Ov23liV9UpD7Rnfnskm3",$Vo="5509a52e4c525cd594a6fba9147ff6cc2388dd9f",VVo={[WEn]:GVo,[hue]:$Vo},Sh=class{static{a(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??WEn}findAppSecretToAuthenticate(){let e=this.findAppIdToAuthenticate(),r=VVo[e];if(!r)throw new Error(`GitHubAppInfo: No app secret found for app ID: ${e}`);return r}};var Wt=class{static{a(this,"Fetcher")}getImplementation(){return this}};function GJ(t,e,r,n,o,s,c,l,u,d,f,h,m=!1,g=[]){let A=l?.["x-api-key"],y=m||typeof A=="string"&&A.length>0,E={...l,...y?{}:{Authorization:`Bearer ${r}`},...hE(t)};d===void 0&&(E["Openai-Organization"]="github-copilot",E["X-Request-Id"]=o,E["VScode-SessionId"]=t.get(Ea).sessionId,E["VScode-MachineId"]=t.get(Ea).machineId,E["X-GitHub-Api-Version"]="2026-01-09"),n&&(E["OpenAI-Intent"]=n);let _={method:"POST",headers:E,json:s,timeout:u};if(f&&h){let T=[...r?[r]:[],...g,...Object.entries(E).filter(([w,R])=>R.length>0&&kQe.has(w.toLowerCase())).map(([,w])=>w)];f.logRequest({timestamp:new Date().toISOString(),requestId:o,method:"POST",url:e,headers:E,messages:h,body:s,sensitiveValues:T})}let v=t.get(Wt);if(c){let T=new AbortController;c.onCancellationRequested(()=>{ut(t,"networking.cancelRequest",zt.createAndMarkAsIssued({headerRequestId:o})),T.abort()}),_.signal=T.signal}return v.fetch(e,_).catch(T=>{if(WVo(T))return ut(t,"networking.disconnectAll"),v.disconnectAll().then(()=>v.fetch(e,_));throw T})}a(GJ,"postRequest");function WVo(t){return t instanceof Error?t.message=="ERR_HTTP2_GOAWAY_SESSION"?!0:"code"in t?t.code=="ECONNRESET"||t.code=="ETIMEDOUT"||t.code=="ERR_HTTP2_INVALID_SESSION":!1:!1}a(WVo,"isInterruptedNetworkError");var zVo=new Set(["ERR_WORKER_OUT_OF_MEMORY","ENOMEM"]);function YVo(t){return zVo.has(t.code??"")||t.name==="RangeError"&&t.message==="WebAssembly.Memory(): could not allocate memory"}a(YVo,"isOomError");function $J(t,e,r,n=Ur){if(!Tg(e)){if(e instanceof Error){let o=e;YVo(o)?t.get(Us).setWarning("cls",{message:"Out of memory"}):o.code==="EMFILE"||o.code==="ENFILE"?t.get(Us).setWarning("cls",{message:"Too many open files"}):o.code==="CopilotPromptLoadFailure"?t.get(Us).setWarning("cls",{message:"Corrupted Copilot installation"}):`${o.code}`.startsWith("CopilotPromptWorkerExit")?t.get(Us).setWarning("cls",{message:"Worker unexpectedly exited"}):o.syscall==="uv_cwd"&&o.code==="ENOENT"&&t.get(Us).setWarning("cls",{message:"Current working directory does not exist"})}n.exception(t,e,r)}}a($J,"handleException");function zEn(t){process.addListener("uncaughtException",r=>{$J(t,r,"uncaughtException")});let e=!1;process.addListener("unhandledRejection",r=>{if(!e)try{e=!0,$J(t,r,"unhandledRejection")}finally{e=!1}})}a(zEn,"registerDefaultHandlers");function YEn(){Yq("o200k_base").catch(()=>{})}a(YEn,"prewarmTokenizers");p();p();p();var Y3={abap:{extensions:[".abap"]},aspdotnet:{extensions:[".asax",".ascx",".ashx",".asmx",".aspx",".axd"]},bat:{extensions:[".bat",".cmd"]},bibtex:{extensions:[".bib",".bibtex"]},blade:{extensions:[".blade",".blade.php"]},BluespecSystemVerilog:{extensions:[".bsv"]},c:{extensions:[".c",".cats",".h",".h.in",".idc"]},csharp:{extensions:[".cake",".cs",".cs.pp",".csx",".linq"]},cpp:{extensions:[".c++",".cc",".cp",".cpp",".cppm",".cxx",".h",".h++",".hh",".hpp",".hxx",".idl",".inc",".inl",".ino",".ipp",".ixx",".rc",".re",".tcc",".tpp",".txx",".i"]},cobol:{extensions:[".cbl",".ccp",".cob",".cobol",".cpy"]},css:{extensions:[".css",".wxss"]},clojure:{extensions:[".bb",".boot",".cl2",".clj",".cljc",".cljs",".cljs.hl",".cljscm",".cljx",".edn",".hic"],filenames:["riemann.config"]},ql:{extensions:[".ql",".qll"]},coffeescript:{extensions:["._coffee",".cake",".cjsx",".coffee",".iced"],filenames:["Cakefile"]},cuda:{extensions:[".cu",".cuh"]},dart:{extensions:[".dart"]},dockerfile:{extensions:[".containerfile",".dockerfile"],filenames:["Containerfile","Dockerfile"]},dotenv:{extensions:[".env"],filenames:[".env",".env.ci",".env.dev",".env.development",".env.development.local",".env.example",".env.local",".env.prod",".env.production",".env.sample",".env.staging",".env.test",".env.testing"]},html:{extensions:[".ect",".ejs",".ejs.t",".jst",".hta",".htm",".html",".html.hl",".html5",".inc",".jsp",".njk",".tpl",".twig",".wxml",".xht",".xhtml",".phtml",".liquid"]},elixir:{extensions:[".ex",".exs"],filenames:["mix.lock"]},erlang:{extensions:[".app",".app.src",".erl",".es",".escript",".hrl",".xrl",".yrl"],filenames:["Emakefile","rebar.config","rebar.config.lock","rebar.lock"]},fsharp:{extensions:[".fs",".fsi",".fsx"]},go:{extensions:[".go"]},groovy:{extensions:[".gradle",".groovy",".grt",".gtpl",".gvy",".jenkinsfile"],filenames:["Jenkinsfile","Jenkinsfile"]},graphql:{extensions:[".gql",".graphql",".graphqls"]},terraform:{extensions:[".hcl",".nomad",".tf",".tfvars",".workflow"]},hlsl:{extensions:[".cginc",".fx",".fxh",".hlsl",".hlsli"]},erb:{extensions:[".erb",".erb.deface",".rhtml"]},razor:{extensions:[".cshtml",".razor"]},haml:{extensions:[".haml",".haml.deface"]},handlebars:{extensions:[".handlebars",".hbs"]},haskell:{extensions:[".hs",".hs-boot",".hsc"]},ini:{extensions:[".cfg",".cnf",".dof",".ini",".lektorproject",".prefs",".pro",".properties",".url"],filenames:[".buckconfig",".coveragerc",".flake8",".pylintrc","HOSTS","buildozer.spec","hosts","pylintrc","vlcrc"]},json:{extensions:[".4DForm",".4DProject",".JSON-tmLanguage",".avsc",".geojson",".gltf",".har",".ice",".json",".json.example",".jsonl",".mcmeta",".sarif",".tact",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","MODULE.bazel.lock","Package.resolved","Pipfile.lock","bun.lock","composer.lock","deno.lock","flake.lock","mcmod.info"]},jsonc:{extensions:[".code-snippets",".code-workspace",".jsonc",".sublime-build",".sublime-color-scheme",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".devcontainer.json",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc",".swcrc","api-extractor.json","argv.json","devcontainer.json","extensions.json","jsconfig.json","keybindings.json","language-configuration.json","launch.json","profiles.json","settings.json","tasks.json","tsconfig.json","tslint.json"]},java:{extensions:[".jav",".java",".jsh"]},javascript:{extensions:["._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".js",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"]},julia:{extensions:[".jl"]},kotlin:{extensions:[".kt",".ktm",".kts"]},less:{extensions:[".less"]},lua:{extensions:[".fcgi",".lua",".luau",".nse",".p8",".pd_lua",".rbxs",".rockspec",".wlua"],filenames:[".luacheckrc"]},makefile:{extensions:[".d",".mak",".make",".makefile",".mk",".mkfile"],filenames:["BSDmakefile","GNUmakefile","Kbuild","Makefile","Makefile.am","Makefile.boot","Makefile.frag","Makefile.in","Makefile.inc","Makefile.wat","makefile","makefile.sco","mkfile"]},markdown:{extensions:[".livemd",".markdown",".md",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"]},"objective-c":{extensions:[".h",".m"]},"objective-cpp":{extensions:[".mm"]},php:{extensions:[".aw",".ctp",".fcgi",".inc",".install",".module",".php",".php3",".php4",".php5",".phps",".phpt",".theme"],filenames:[".php",".php_cs",".php_cs.dist","Phakefile"]},perl:{extensions:[".al",".cgi",".fcgi",".perl",".ph",".pl",".plx",".pm",".psgi",".t"],filenames:[".latexmkrc","Makefile.PL","Rexfile","ack","cpanfile","latexmkrc"]},powershell:{extensions:[".ps1",".psd1",".psm1"]},pug:{extensions:[".jade",".pug"]},python:{extensions:[".cgi",".codon",".fcgi",".gyp",".gypi",".lmi",".py",".py3",".pyde",".pyi",".pyp",".pyt",".pyw",".rpy",".sage",".spec",".tac",".wsgi",".xpy"],filenames:[".gclient","DEPS","SConscript","SConstruct","wscript"]},r:{extensions:[".r",".rd",".rsx"],filenames:[".Rprofile","expr-dist"]},ruby:{extensions:[".builder",".eye",".fcgi",".gemspec",".god",".jbuilder",".mspec",".pluginspec",".podspec",".prawn",".rabl",".rake",".rb",".rbi",".rbuild",".rbw",".rbx",".ru",".ruby",".spec",".thor",".watchr"],filenames:[".irbrc",".pryrc",".simplecov","Appraisals","Berksfile","Brewfile","Buildfile","Capfile","Dangerfile","Deliverfile","Fastfile","Gemfile","Guardfile","Jarfile","Mavenfile","Podfile","Puppetfile","Rakefile","Snapfile","Steepfile","Thorfile","Vagrantfile","buildfile"]},rust:{extensions:[".rs",".rs.in"]},scss:{extensions:[".scss"]},sql:{extensions:[".cql",".ddl",".inc",".mysql",".prc",".sql",".tab",".udf",".viw"]},sass:{extensions:[".sass"]},scala:{extensions:[".kojo",".sbt",".sc",".scala"]},shellscript:{extensions:[".bash",".bats",".cgi",".command",".fcgi",".fish",".ksh",".sh",".sh.in",".tmux",".tool",".trigger",".zsh",".zsh-theme"],filenames:[".bash_aliases",".bash_functions",".bash_history",".bash_logout",".bash_profile",".bashrc",".cshrc",".envrc",".flaskenv",".kshrc",".login",".profile",".tmux.conf",".zlogin",".zlogout",".zprofile",".zshenv",".zshrc","9fs","PKGBUILD","bash_aliases","bash_logout","bash_profile","bashrc","cshrc","gradlew","kshrc","login","man","profile","tmux.conf","zlogin","zlogout","zprofile","zshenv","zshrc"]},slang:{extensions:[".fxc",".hlsl",".s",".slang",".slangh",".usf",".ush",".vfx"]},slim:{extensions:[".slim"]},solidity:{extensions:[".sol"]},stylus:{extensions:[".styl"]},svelte:{extensions:[".svelte"]},swift:{extensions:[".swift"]},systemverilog:{extensions:[".sv",".svh",".vh"]},typescriptreact:{extensions:[".tsx"]},latex:{extensions:[".aux",".bbx",".cbx",".cls",".dtx",".ins",".lbx",".ltx",".mkii",".mkiv",".mkvi",".sty",".tex",".toc"]},typescript:{extensions:[".cts",".mts",".ts"]},verilog:{extensions:[".v",".veo"]},vim:{extensions:[".vba",".vim",".vimrc",".vmb"],filenames:[".exrc",".gvimrc",".nvimrc",".vimrc","_vimrc","gvimrc","nvimrc","vimrc"]},vb:{extensions:[".vb",".vbhtml",".Dsr",".bas",".cls",".ctl",".frm",".vbs"]},vue:{extensions:[".nvue",".vue"]},xml:{extensions:[".adml",".admx",".ant",".axaml",".axml",".builds",".ccproj",".ccxml",".clixml",".cproject",".cscfg",".csdef",".csl",".csproj",".ct",".depproj",".dita",".ditamap",".ditaval",".dll.config",".dotsettings",".filters",".fsproj",".fxml",".glade",".gml",".gmx",".gpx",".grxml",".gst",".hzp",".iml",".ivy",".jelly",".jsproj",".kml",".launch",".mdpolicy",".mjml",".mod",".mojo",".mxml",".natvis",".ncl",".ndproj",".nproj",".nuspec",".odd",".osm",".pkgproj",".plist",".pluginspec",".proj",".props",".ps1xml",".psc1",".pt",".pubxml",".qhelp",".rdf",".res",".resx",".rss",".sch",".scxml",".sfproj",".shproj",".srdf",".storyboard",".sublime-snippet",".svg",".sw",".targets",".tml",".typ",".ui",".urdf",".ux",".vbproj",".vcxproj",".vsixmanifest",".vssettings",".vstemplate",".vxml",".wixproj",".workflow",".wsdl",".wsf",".wxi",".wxl",".wxs",".x3d",".xacro",".xaml",".xib",".xlf",".xliff",".xmi",".xml",".xml.dist",".xmp",".xproj",".xsd",".xspec",".xul",".zcml"],filenames:[".classpath",".cproject",".project","App.config","NuGet.config","Settings.StyleCop","Web.Debug.config","Web.Release.config","Web.config","packages.config"]},xsl:{extensions:[".xsl",".xslt"]},yaml:{extensions:[".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".clangd",".gemrc","CITATION.cff","glide.lock","pixi.lock","yarn.lock"]},javascriptreact:{extensions:[".jsx"]},legend:{extensions:[".pure"]}};p();p();var KEn=[".ejs",".erb",".haml",".hbs",".j2",".jinja",".jinja2",".liquid",".mustache",".njk",".php",".pug",".slim",".webc"],JEn={".php":[".blade"]},Xq=Object.keys(Y3).flatMap(t=>Y3[t].extensions);var vqt=ue(require("node:path"));var xde=class{constructor(e,r,n){this.languageId=e;this.isGuess=r;this.fileExtension=n}static{a(this,"Language")}},RRe=class{static{a(this,"LanguageDetection")}},Cqt=new Map,wde=new Map;for(let[t,{extensions:e,filenames:r}]of Object.entries(Y3)){for(let n of e)Cqt.set(n,[...Cqt.get(n)??[],t]);for(let n of r??[])wde.set(n,[...wde.get(n)??[],t])}var bqt=class extends RRe{static{a(this,"FilenameAndExensionLanguageDetection")}detectLanguage(e){let r=lo(e.uri),n=vqt.extname(r).toLowerCase(),o=this.extensionWithoutTemplateLanguage(r,n),s=this.detectLanguageId(r,o),c=this.computeFullyQualifiedExtension(n,o);return s?new xde(s.languageId,s.isGuess,c):new xde(e.languageId,!0,c)}extensionWithoutTemplateLanguage(e,r){if(KEn.includes(r)){let n=e.substring(0,e.lastIndexOf(".")),o=vqt.extname(n).toLowerCase();if(o.length>0&&Xq.includes(o)&&this.isExtensionValidForTemplateLanguage(r,o))return o}return r}isExtensionValidForTemplateLanguage(e,r){let n=JEn[e];return!n||n.includes(r)}detectLanguageId(e,r){if(wde.has(e))return{languageId:wde.get(e)[0],isGuess:!1};let n=Cqt.get(r)??[];if(n.length>0)return{languageId:n[0],isGuess:n.length>1};for(;e.includes(".");)if(e=e.replace(/\.[^.]*$/,""),wde.has(e))return{languageId:wde.get(e)[0],isGuess:!1}}computeFullyQualifiedExtension(e,r){return e!==r?r+e:e}},Sqt=class extends RRe{constructor(r){super();this.delegate=r}static{a(this,"GroupingLanguageDetection")}detectLanguage(r){let n=this.delegate.detectLanguage(r),o=n.languageId;return o==="c"||o==="cpp"?new xde("cpp",n.isGuess,n.fileExtension):n}},Tqt=class extends RRe{constructor(r){super();this.delegate=r}static{a(this,"ClientProvidedLanguageDetection")}detectLanguage(r){return r.uri.startsWith("untitled:")||r.uri.startsWith("vscode-notebook-cell:")?new xde(r.languageId,!0,""):this.delegate.detectLanguage(r)}},KVo=new Sqt(new Tqt(new bqt));function PB({uri:t,languageId:e}){let r=KVo.detectLanguage({uri:t,languageId:"UNKNOWN"});return r.languageId==="UNKNOWN"?e:r.languageId}a(PB,"detectLanguage");p();p();p();p();function wm(t){if(t.isCancellationRequested)throw new uKe}a(wm,"throwIfCancellationRequested");function GD(t){return t instanceof uKe?!0:t instanceof Error&&t.name===Iqt&&t.message===Iqt}a(GD,"isCancellationError");var uKe=class extends Error{static{a(this,"CancellationError")}constructor(){super(Iqt),this.name=this.message}},Iqt="Canceled",dKe=class{constructor(){this.items=[]}static{a(this,"Stack")}push(e){this.items.push(e)}pop(){return this.items.pop()}peek(){return this.items[this.items.length-1]}tryPeek(){return this.items.length>0}toArray(){return this.items}};function VJ(t){switch(t){case 0:case 2:case 7:case 8:case 11:case 12:case 13:case 14:return!0;default:return!1}}a(VJ,"isTypeDefinition");var Bu=class t{static{a(this,"TextRange")}static{this.empty=new t(0,0)}constructor(e,r){this.start=e,this.length=r}static fromBounds(e,r){return new t(e,r-e)}get end(){return this.start+this.length}contains(e){return this.start<=e&&this.end>=e}containsRange(e){return this.start<=e.start&&this.end>=e.end}equals(e){return this.start===e.start&&this.length===e.length}getText(e){return e.slice(this.start,this.end)}getTextWithIndentation(e,r){let n=[],o=this.start;for(o=XEn(e,e.length,o),ZEn(n,r);o<this.end;)e[o]!=="\r"&&e[o]!==`
1918
1918
  `?n.push(e[o++]):e[o]==="\r"&&o<e.length&&e[o+1]!==`
1919
1919
  `||e[o]===`
1920
1920
  `?(n.push(`
@@ -4331,7 +4331,7 @@ ${e}
4331
4331
  \`\`\``}},hNt="build-logs",pNt=class extends Z0{static{a(this,"BuildLogsSkill")}constructor(e){super(hNt,"The application build logs, which can be used to fix build or compilation errors.","Reading build logs",()=>e,r=>new Azr(r))}};p();var yzr=class{constructor(e){this.turnContext=e}static{a(this,"DirectoryReferencesSkillProcessor")}value(){return 1}async processSkill(e){let r=this.filterDirectoryReferences(e);if(r.length===0)return;let n=await Ynt(this.turnContext.ctx,this.turnContext.cancelationToken,r);if(n.length>0){let o=[[new Cr(["The user wants you to consider the following directory structures when computing your answer."]),1]];for(let s of n)o.push([new Cr([s]),1]);return new Cr(o)}}filterDirectoryReferences(e){return e.filter(r=>r.type==="directory")}},Ezr=class{static{a(this,"DirectoryReferencesSkillResolver")}resolveSkill(e){if(e.turn.request.references&&e.turn.request.references.length>0)return e.turn.request.references}},sSl="directory-references",mNt=class{constructor(){this.id=sSl;this.type="implicit"}static{a(this,"DirectoryReferencesSkill")}description(){return"The directory structure from the user's referenced directories"}resolver(){return new Ezr}processor(e){return new yzr(e)}};p();var aSl=b.Object({uri:b.String(),visibleRange:b.Optional(Xf),openedAt:b.Optional(b.String()),activeAt:b.Optional(b.String())}),c_o=b.Object({files:b.Array(aSl)}),cSl=3,_zr=class{constructor(e){this.turnContext=e}static{a(this,"RecentFilesSkillProcessor")}value(){return .7}async processSkill(e){let r=await this.getDocuments(e);if(r.length>0){let n=this.toElidableDocs(r),o=nj(n,"inversePositional");return await this.preElideDocuments(o)}}async getDocuments(e){let r=this.sortFiles(e.files);r=this.filterIncludedDocs(r);let n=this.turnContext.ctx.get(hi),o=[];for(let s of r){let c=await n.getOrReadTextDocument(s),l=yd(c);if(await this.turnContext.collectFile(ANt,s.uri,l),c.status==="valid"&&l!=="empty"&&(o.push([c.document,s]),o.length===cSl))break}return o.reverse()}sortFiles(e){return e.sort((r,n)=>r.activeAt&&n.activeAt?new Date(r.activeAt).getTime()-new Date(n.activeAt).getTime():r.activeAt?-1:n.activeAt?1:0).reverse()}filterIncludedDocs(e){return e.filter(r=>!this.turnContext.isFileIncluded(r.uri))}toElidableDocs(e){return e.map(r=>{let[n,o]=r,s=this.turnContext.ctx.get(hi).getRelativePath(n),c=new XB(n,void 0,o.visibleRange);return new Cr([[`Code excerpt from file \`${s}\`:`,1],[c.fromAllCode({addLineNumbers:!1}),.9]])})}async preElideDocuments(e){let r=(await Qo.getModelConfiguration(this.turnContext.ctx,"user")).maxRequestTokens,n=e.elide(Math.floor(r*.1)).getText();return new Cr([n])}},ANt="recent-files",gNt=class extends Z0{static{a(this,"RecentFilesSkill")}constructor(e){super(ANt,"Provides code examples helpful for creating, explaining, refactoring, or fixing code. It's based on the files the user has worked on in the editor.","Resolving recent files",()=>e,r=>new _zr(r))}};p();var l_o=b.String(),vzr=class{constructor(e){this.turnContext=e}static{a(this,"RuntimeLogsSkillProcessor")}value(){return .9}processSkill(e){return this.turnContext.collectLabel(ENt,"runtime logs"),`The contents of the application runtime logs:
4332
4332
  \`\`\`
4333
4333
  ${e}
4334
- \`\`\``}},ENt="runtime-logs",yNt=class extends Z0{static{a(this,"RuntimeLogsSkill")}constructor(e){super(ENt,"The application runtime or debug logs, which are used to view output logs from the console. This is useful for debugging and troubleshooting runtime issues.","Reading runtime logs",()=>e,r=>new vzr(r))}};p();var _Nt=ue(zD());var vNt=class extends Dm{constructor(r){super();this.ctx=r}static{a(this,"AgentConversationInspector")}shouldInspect(){return yqe(this.ctx)}get connection(){if(this.shouldInspect())return this.ctx.get(tr).connection}async inspectPrompt(r){return this.connection?.sendNotification(new _Nt.NotificationType("conversation/inspectPrompt"),r)}async inspectFetchResult(r){return this.connection?.sendNotification(new _Nt.NotificationType("conversation/inspectFetchResult"),r)}async documentDiff(r){return this.connection?.sendNotification(new _Nt.NotificationType("conversation/documentDiff"),r)}};p();var u_o=ue(tl());var uQe=class{constructor(e){this.ctx=e;this.notificationEndpoint="conversation/preconditionsNotification";e.get(_k).onChange(r=>{this.sendNotification(r)})}static{a(this,"PreconditionsNotifier")}sendNotification(e){return this.ctx.get(tr).connection.sendNotification(new u_o.NotificationType(this.notificationEndpoint),e)}};function d_o(t){lSl(t),uSl(t),s_o(t)}a(d_o,"activateConversationFeature");function lSl(t){t.set(as,new as(t)),t.set(X0,new X0),t.set(ly,new ly(t)),t.set(El,new fXe(t)),t.set(v7,new v7),t.set(Gc,new Gc(t)),t.set(_k,new _k(t)),t.set(uQe,new uQe(t)),t.set(Js,new NYe(t,new MYe(t))),t.set(iO,new iO),t.set(Dm,new vNt(t)),t.set(_2,new _2(t))}a(lSl,"registerContextDependencies");function uSl(t){let e=new Mm;e.registerSkill(new bnt(new Cnt)),e.registerSkill(new Xet(new GC(t,eL,IPn))),e.registerSkill(new qet(new GC(t,d2,vPn))),e.registerSkill(new Qet(new GC(t,$E,_Pn))),e.registerSkill(new ett),e.registerSkill(new mNt),e.registerSkill(new gNt(new GC(t,ANt,c_o))),e.registerSkill(new Itt(new GC(t,sL,Lkn))),e.registerSkill(new wnt(new GC(t,Cj,CBn))),e.registerSkill(new yNt(new GC(t,ENt,l_o))),e.registerSkill(new pNt(new GC(t,hNt,a_o))),e.registerSkill(new Rnt(new GC(t,v2,bBn))),e.registerSkill(new Pnt(new GC(t,yX,SBn))),t.set(Mm,e)}a(uSl,"registerSkills");p();var f_o=ue(tl()),p_o=ue(zD());var CNt=class extends pf{constructor(){super(...arguments);this.requestType=new f_o.ProtocolRequestType("conversation/invokeClientToolConfirmation");this.typeCheck=uu.Compile(b1n)}static{a(this,"AgentClientToolConfirmationInvoker")}async invokeClientToolConfirmation(r,n){let o=this.ctx.get(tr).connection,s;try{let c=await o.sendRequest(this.requestType,n),[l,u]=c;if(u){let d=new p_o.ResponseError(u.code,u.message,u.data);throw ot.error(this.ctx,`ResponseError while invoking client tool confirmation ${n.name}`,d),new Error(`Failed to invoke client tool confirmation ${n.name}: ${u.message}`)}s=l}catch(c){throw new Error(`Failed to invoke client tool confirmation ${n.name}: ${String(c)}`)}if(s==null)throw new Error(`Failed to invoke client tool confirmation ${n.name}: No result returned`);if(!this.typeCheck.Check(s))throw new _y(this.typeCheck.Errors(s));return s}};p();var h_o=ue(tl()),m_o=ue(zD());var bNt=class extends Tv{constructor(){super(...arguments);this.requestType=new h_o.ProtocolRequestType("conversation/invokeClientTool");this.typeCheck=uu.Compile(C1n)}static{a(this,"AgentClientToolInvoker")}async invokeClientTool(r,n){let o=this.ctx.get(tr).connection,s;try{let c=await o.sendRequest(this.requestType,n),[l,u]=c;if(u){let d=new m_o.ResponseError(u.code,u.message,u.data);throw ot.error(this.ctx,`ResponseError while invoking client tool ${n.name}`,d),new Error(`Failed to invoke client tool ${n.name}: ${u.message}`)}s=l}catch(c){throw new Error(`Failed to invoke client tool ${n.name}: ${String(c)}`)}if(s==null)throw new Error(`Failed to invoke client tool ${n.name}: No result returned`);if(!this.typeCheck.Check(s))throw new _y(this.typeCheck.Errors(s));return this.transformToToolResult(s)}transformToToolResult(r){let n=r.content.map(o=>typeof o.value=="string"?new Lr(o.value):new kZ(o.value));return new Wr(n,r.status??"success")}};p();p();function g_o(t,e,r){try{let n=t.get(rr).javaContextProviderParams(r);if(n){let o=JSON.parse(n);for(let[s,c]of Object.entries(o))e.set(s,c)}}catch(n){return Ur.debug(t,"Failed to get the active Java experiments for the Context Provider API",n),!1}return!0}a(g_o,"fillInJavaActiveExperiments");var Czr=ue(zD());var dSl={type:new Czr.NotificationType("featureFlagsNotification")},fSl={type:new Czr.NotificationType("copilot/didChangeFeatureFlags")},dQe=class{constructor(e){this.ctx=e;ds(e,r=>this.sendNotification(r))}static{a(this,"FeatureFlagsNotifier")}async sendNotification(e){let r=this.ctx,n=!1,o=!1,s=!1,c=!1,l=!1,u=!1,d=!1,f=r.get(rr),h=await f.updateExPValuesAndAssignments(e);n=f.ideDataMigrationCompleted(h),o=f.appmodContextMenuEnabled(h),s=f.appmodProblemsViewEnabled(h),c=f.copilotAsDefaultForGaEnabled(h),l=f.inlineChatUseCliEnabled(h),u=f.chatOnboardingTourEnabled(h),d=f.chatUsageTipsEnabled(h);let m={};r.get(rr).excludeRelatedFiles(h)&&(m.ExcludeRelatedFiles=!0);let g=aEr(r,h);g.length>0&&(m.ExpContextProviders=g);let A=new Map;edi(r,g,A,h),Lht(r,A,h),g_o(r,A,h);for(let[_,v]of A.entries())m[_]=v;let y=r.get(An),E=r.get(tr).connection;if(y.getCapabilities().didChangeFeatureFlags)await E.sendNotification(fSl.type,{envelope:{...e.envelope,token:void 0,expires_at:void 0,refresh_in:void 0,limited_user_quotas:void 0,limited_user_reset_date:void 0,error_details:void 0,organization_list:void 0,enterprise_list:void 0,endpoints:void 0},token:e.getTokenValues(),activeExps:m,byok:DH(e),data_migration_completed:n,appmod_context_menu_enabled:o,appmod_problems_view_enabled:s,copilot_as_default_for_ga_enabled:c,inline_chat_use_cli_enabled:l,chat_onboarding_tour_enabled:u,chat_usage_tips_enabled:d,user_info__cli_enabled:e.userInfo.cliEnabled,copilot_plan:e.userInfo.copilotPlan,abexp_features:h.filtersAndExp.exp.features,abexp_assignment_context:h.filtersAndExp.exp.assignmentContext});else{let _={rt:e.getTokenValue("rt")==="1",sn:e.getTokenValue("sn")==="1",chat:e.envelope.chat_enabled??!1,ic:e.envelope.chat_enabled??!1,pc:!0,ae:m,byok:DH(e),data_migration_completed:n,appmod_context_menu_enabled:o,appmod_problems_view_enabled:s,copilot_as_default_for_ga_enabled:c,inline_chat_use_cli_enabled:l,chat_onboarding_tour_enabled:u,chat_usage_tips_enabled:d};e.getTokenValue("agent_mode")==="0"&&(_.agent_mode=!1),e.getTokenValue("agent_mode_auto_approval")==="0"&&(_.agent_mode_auto_approval=!1),e.getTokenValue("mcp")==="0"&&(_.mcp=!1),e.envelope.chat_enabled&&(_.xc=!0),e.userInfo.cliEnabled!==void 0&&(_.user_info__cli_enabled=e.userInfo.cliEnabled),await E.sendNotification(dSl.type,_)}}};p();var SNt=class extends Us{constructor(r){super();this.ctx=r;this.notificationEndpoint="statusNotification"}static{a(this,"NotificationStatusReporter")}didChangeV1(r){let n=r.kind;r.busy&&n!=="Error"&&(n="InProgress"),this.ctx.get(tr).connection.sendNotification(aWt.type,{busy:r.busy,kind:r.kind,status:n,message:r.message??""}),this.ctx.get(tr).connection.sendNotification("didChangeStatus",{busy:r.busy,kind:r.kind,message:r.message,command:r.command})}didChangeV2(r){this.ctx.get(tr).connection.sendNotification(cWt.type,r)}};p();var A_o=new ce("AgentEncodingConfigurationService"),TNt=class extends KB{static{a(this,"AgentEncodingConfigurationService")}constructor(e){super(e),this.service=e.get(tr)}async requestEncodingFromClient(e){if(!this.service.clientCapabilities?.workspace?.configuration){A_o.debug(this.ctx,"Client does not support workspace/configuration, using UTF-8 fallback");return}try{let o=(await this.service.connection.workspace.getConfiguration([{scopeUri:e,section:"copilot.file.encoding"}]))[0];return o&&["utf8","utf-8","utf16le","ucs2","ucs-2","base64","base64url","latin1","binary","hex","ascii"].includes(o)?o:void 0}catch(n){A_o.debug(this.ctx,`Unable to request encoding for ${e}, using UTF-8 fallback`,n);return}}};p();var y_o=new nH;p();var v_o=ue(ai());var C_o={"mcp.contributionPoint.enabled":{description:"Whether extension-contributed MCP servers are enabled",defaultValue:!0,type:"boolean"},"customAgent.enabled":{description:"Whether custom agent functionality is enabled",defaultValue:!0,type:"boolean"},"customHook.enabled":{description:"Whether custom hook functionality is enabled",defaultValue:!0,type:"boolean"},"customSkill.enabled":{description:"Whether custom skill functionality is enabled",defaultValue:!0,type:"boolean"},"subagent.enabled":{description:"Whether subagent functionality is enabled",defaultValue:!0,type:"boolean"},"autoModel.enabled":{description:"Whether auto model functionality is enabled",defaultValue:!0,type:"boolean"},"cveRemediatorAgent.enabled":{description:"Whether CVE remediator agent functionality is enabled",defaultValue:!0,type:"boolean"},"agentMode.autoApproval.enabled":{description:"Whether agent mode auto-approval is enabled",defaultValue:!0,type:"boolean"},"agentMode.autoPilot.enabled":{description:"Whether agent mode Autopilot is enabled",defaultValue:!0,type:"boolean"},"copilotAgent.ide.enabled":{description:"Whether copilot agent functionality is enabled",defaultValue:!0,type:"boolean"}},pSl=new v_o.NotificationType("policy/didChange"),hSl=Object.fromEntries(Object.entries(C_o).map(([t,e])=>[t,{type:e.type}])),fQe=class extends yl{constructor(r,n){super();this.ctx=r;this.connection=n;this.disposed=!1;this.policyValues=new Map(Object.entries(C_o).map(([r,n])=>[r,n.defaultValue]));let o=r.get(tr);o.onActivation(()=>{this.startWatching().catch(s=>{Ur.error(this.ctx,"Unexpected error starting policy watcher:",s)})}),o.onDeactivation(()=>{this.dispose()})}static{a(this,"GroupPolicyWatcher")}async startWatching(){try{let{createWatcher:r}=await Promise.resolve().then(()=>ue(__o()));this.policyWatcher=r("IDEGitHubCopilot",hSl,n=>{this.handlePolicyUpdate(n).catch(o=>{Ur.error(this.ctx,"Error in handlePolicyUpdate:",o)})}),Ur.info(this.ctx,"Policy watcher started for GitHub Copilot Plugin")}catch(r){process.platform==="darwin"||process.platform==="win32"?Ur.exception(this.ctx,r,"Policy watcher failed to load on supported platform"):Ur.warn(this.ctx,"Policy watcher not available - continuing without policy watching:",r instanceof Error?r.message:String(r))}}async handlePolicyUpdate(r){Ur.debug(this.ctx,"GroupPolicyWatcher - policy update triggered",r);let n=!1;for(let[o,s]of Object.entries(r))if(s!==void 0){let c=o;this.policyValues.get(c)!==s&&(n=!0),this.policyValues.set(c,s),Ur.debug(this.ctx,`Policy change: ${o} = ${s}`)}n&&this.policyChangeEmitter.fire(void 0),this.policyValues.get("subagent.enabled")===!1&&this.ctx.get(An).setCapabilities({subAgent:!1}),this.policyValues.get("cveRemediatorAgent.enabled")===!1&&this.ctx.get(An).setCapabilities({cveRemediatorAgent:!1}),await this.sendPolicyChangeNotification()}getAllPolicyValues(){let r={};for(let[n,o]of this.policyValues.entries())r[n]=o;return r}getPolicyValue(r){return this.policyValues.get(r)}sendPolicyChangeNotification(){if(this.disposed)return Promise.resolve();let r=this.getAllPolicyValues();try{return this.connection.sendNotification(pSl,r)}catch{return Promise.resolve()}}dispose(){if(!this.disposed){if(this.disposed=!0,this.policyWatcher){try{this.policyWatcher.dispose()}catch(r){Ur.error(this.ctx,"Error disposing policy watcher:",r)}this.policyWatcher=void 0}Ur.debug(this.ctx,"Policy watcher stopped")}}};p();var S_o=ue(tl());var b_o=new ce("managedSettings.notifier"),mSl=new S_o.ProtocolNotificationType("copilot/didChangeManagedSettings"),pQe=class{constructor(e){this.ctx=e;this.disposed=!1;let r=e.get(tr);this.lifecycleSubscriptions=[r.onActivation(()=>{e.get(An).getCapabilities().didChangeManagedSettings&&this.activate().catch(n=>b_o.exception(e,n,".activate"))}),r.onDeactivation(()=>this.dispose())]}static{a(this,"ManagedSettingsNotifier")}dispose(){if(!this.disposed){this.disposed=!0;for(let e of this.lifecycleSubscriptions)e.dispose();this.settingsSubscription?.dispose()}}async activate(){let e=this.ctx.get(np);await e.refresh(),!this.disposed&&!this.settingsSubscription&&(this.settingsSubscription=e.observe(r=>this.notify(r)))}notify(e){this.ctx.get(tr).connection.sendNotification(mSl,e).catch(r=>b_o.debug(this.ctx,"Failed to send managed settings notification:",r))}};p();var INt=class{constructor(e){this.ctx=e}static{a(this,"McpServerManagerAdapter")}serversChanged(e){this.ctx.get(tr).connection.sendNotification(Doo,{scope:e}).catch(()=>{})}serverDetailsChanged(e){this.ctx.get(tr).connection.sendNotification(Moo,{source:e.source,name:e.name}).catch(()=>{})}unregisterProvider(e){return this.ctx.get(SO).unregisterProvider(e)}};p();var gSl="mcp-disabled-tools",wNt=class{constructor(e){this.ctx=e;let r=e.get(An);this.capabilitiesReady=r.hasReceivedCapabilities()?Promise.resolve():new Promise(n=>{let o=r.onDidSetCapabilities(()=>{o.dispose(),n()})})}static{a(this,"CLSMcpServerStateStore")}async waitForInitialization(){await this.capabilitiesReady,await this.ctx.get(nd).waitForInitialization()}shouldRestoreStopped(e,r){let n=`mcp-stopped-${e}`,o=this.ctx.get(nd),s=o.get(n);return s===r?!0:(s!==void 0&&o.delete(n),!1)}setStopped(e,r){r?this.ctx.get(nd).set(`mcp-stopped-${e}`,r):this.ctx.get(nd).delete(`mcp-stopped-${e}`)}getDisabledTools(e,r){let n=this.ctx.get(nd).get(this.toolStateKey(e));if(!n)return new Set;try{let o=JSON.parse(n);return!ASl(o)||o.configurationId!==r?new Set:new Set(o.disabledTools)}catch{return new Set}}async commitToolStates(e){let r=e.map(n=>{let o=this.toolStateKey(n.serverKey),s=[...new Set(n.disabledTools)].sort();if(s.length===0)return{key:o,delete:!0};let c={configurationId:n.configurationId,disabledTools:s};return{key:o,value:JSON.stringify(c)}});await this.ctx.get(nd).applyDurableBatch(r)}async clearToolStates(e){let r=[...new Set(e)].map(n=>({key:this.toolStateKey(n),delete:!0}));await this.ctx.get(nd).applyDurableBatch(r)}toolStateKey(e){return`${gSl}:${JSON.stringify([e])}`}};function ASl(t){return typeof t=="object"&&t!==null&&"configurationId"in t&&typeof t.configurationId=="string"&&"disabledTools"in t&&Array.isArray(t.disabledTools)&&t.disabledTools.every(e=>typeof e=="string")}a(ASl,"isPersistedToolState");p();var xNt=class extends MS{static{a(this,"CLSMcpAuthServer")}constructor(e){super(),this.ctx=e}getAccountPreference(e,r){let n=this._getAccountPreferenceKey(e,r);return this.ctx.get(nd).get(n)}updateAccountPreference(e,r,n){let o=this._getAccountPreferenceKey(e,r);this.ctx.get(nd).set(o,n.label)}removeAccountPreference(e,r){let n=this._getAccountPreferenceKey(e,r);this.ctx.get(nd).delete(n)}_getAccountPreferenceKey(e,r){return`mcp-${e}-${r}`}};p();p();p();p();var T_o=ue(ai());var RNt="mcp.elicitation",PNt=class{constructor(){this.ongoingMcpElicitationCalls=!1;this.elicitationRequestType=new T_o.ProtocolRequestType("copilot/mcpElicitation")}static{a(this,"ElicitationHandler")}async handleRequest(e,r,n,o,s){if(this.ongoingMcpElicitationCalls)throw new Cn($n.InternalError,"Another MCP elicitation request is already in progress.");this.ongoingMcpElicitationCalls=!0;try{let c=n.params.message;if("url"in n.params)throw new Cn($n.InvalidRequest,"URL mode elicitation is not supported");let l=n.params.requestedSchema;ur.info(e.ctx,`MCP server ${r} elicitation request received: ${c}`),await pa(e.ctx,{message:`MCP server ${r} elicitation request received: ${c}`,server:r});let d=await e.ctx.get(WE).sendRequest(this.elicitationRequestType,{mcpServer:r,message:c,requestedSchema:l,conversationId:e.conversation.id.toString(),roundId:o??e.agentToolCalls.getRound(0).roundId,turnId:e.turn.id.toString(),toolCallId:s??e.agentToolCalls.getRound(0).toolCalls[0].id});return ut(e.ctx,RNt,zt.createAndMarkAsIssued()),Gt(e.ctx,RNt),d}catch(c){let l=`Failed to process elicitation request: ${c instanceof Error?c.message:String(c)}`;throw ur.error(e.ctx,l,c),await Dd(e.ctx,{message:l,server:r}),Ha(e.ctx,c,RNt),ms(e.ctx,RNt,c),new Cn($n.InternalError,l)}finally{this.ongoingMcpElicitationCalls=!1}}};p();p();p();var Fk=class{static{a(this,"MCPNotificationHandler")}constructor(e,r){this.ctx=e,this.serverName=r}};var hQe=class extends Fk{static{a(this,"LoggingMessageNotificationHandler")}constructor(e,r){super(e,r)}handle(e){let r=typeof e.params.data=="string"?e.params.data:JSON.stringify(e.params.data);switch(e.params.logger&&(r=`${e.params.logger}: ${r}`),e.params?.level){case"debug":case"info":case"notice":ur.info(this.ctx,`MCP server ${this.serverName} log:`,r),pa(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break;case"warning":ur.warn(this.ctx,`MCP server ${this.serverName} log:`,r),rM(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break;case"error":case"critical":case"alert":case"emergency":ur.error(this.ctx,`MCP server ${this.serverName} log:`,r),Dd(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break;default:ur.info(this.ctx,`MCP server ${this.serverName} log:`,r),pa(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break}}};p();var mQe=class extends Fk{static{a(this,"PromptListChangedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,"Prompts list changed, refreshing prompts..."),pa(this.ctx,{message:"Prompts list changed, refreshing prompts...",server:this.serverName}),this.emitter.emit(xPt)}};p();var gQe=class extends Fk{static{a(this,"ResourceListChangedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,"Resource list changed, refreshing resources..."),pa(this.ctx,{message:"Resource list changed, refreshing resources...",server:this.serverName}),this.emitter.emit(wPt)}};p();var AQe=class extends Fk{static{a(this,"ResourceUpdatedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,`Resource updated for URI: ${e.params.uri}`),pa(this.ctx,{message:`Resource updated: ${e.params.uri}`,server:this.serverName}),this.emitter.emit(bio)}};p();var kNt=class{static{a(this,"MCPRequestHandler")}constructor(e,r){this.ctx=e,this.serverName=r}},yQe=class extends kNt{static{a(this,"ListRootsRequestHandler")}constructor(e,r){super(e,r)}handle(e){ur.info(this.ctx,`MCP server ${this.serverName} requested roots list`);let r=[];try{(this.ctx.get(Qr).getWorkspaceFolders()||[]).forEach(o=>{r.push(o)}),pa(this.ctx,{message:`Requested roots list and found ${r.length} root(s).`,server:this.serverName})}catch(n){ur.error(this.ctx,`Error getting workspace folders for MCP server ${this.serverName}:`,n),Dd(this.ctx,{message:`Error getting workspace folders for MCP server ${this.serverName}: ${n instanceof Error?n.message:String(n)}`,server:this.serverName})}return{roots:r}}};p();var EQe=class extends Fk{static{a(this,"ToolListChangedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,"Tool list changed, refreshing tools..."),pa(this.ctx,{message:"Tool list changed, refreshing tools...",server:this.serverName}),this.emitter.emit(IPt)}};p();var I_o="mcp.sampling";function _Qe(t,e){return t.toLowerCase()===e.toLowerCase()}a(_Qe,"equalsIgnoreCase");function ySl(t,e){return t.toLowerCase().includes(e.toLowerCase())}a(ySl,"includesIgnoreCase");function w_o(t){if(t.kind==="copilot")return[t.modelFamily];let e=_Qe(t.modelId,t.uiName)?[t.modelId]:[t.modelId,t.uiName];return[...e,...e.map(r=>`${r} (${t.providerName})`)]}a(w_o,"candidateModelNames");function ESl(t,e){let r=t.kind==="copilot"?t.modelFamily:t.modelId;return _Qe(r,e.trim())}a(ESl,"isLegacyAllowedModel");function _Sl(t,e){return t.kind==="byok"&&_Qe(t.modelId,e.modelId)&&_Qe(t.providerName,e.providerName)}a(_Sl,"isAllowedBYOKModel");function vSl(t,e,r){return t.filter(n=>n.kind==="byok"&&r!==void 0?r.some(o=>_Sl(n,o)):e===void 0?!0:e.length===0?r===void 0:e.some(o=>ESl(n,o)))}a(vSl,"filterAllowedModels");function CSl(t,e){let r=e?.trim();return r?t.find(o=>w_o(o).some(s=>_Qe(s,r)))??t.find(o=>w_o(o).some(s=>ySl(s,r))):void 0}a(CSl,"findHintedModel");function bSl(t,e,r){let n=vSl(t,r.allowedModels,r.allowedBYOKModels);if(n.length===0)throw new Error("No available models found");for(let o of e??[]){let s=CSl(n,o.name);if(s!==void 0)return s}return n[0]}a(bSl,"selectSamplingModelCandidate");var DNt=class{constructor(){this.defaultTemperature=.7;this.ongoingMcpSamplingCalls=!1}static{a(this,"McpSamplingService")}async handleSamplingRequest(e,r,n,o,s,c){try{if(this.ongoingMcpSamplingCalls)throw new Cn($n.InternalError,"Another MCP sampling request is already in progress.");this.ongoingMcpSamplingCalls=!0,ur.info(e.ctx,`MCP server ${o} requested sampling:`,n.params),await pa(e.ctx,{message:`Sampling request received from ${o}: ${JSON.stringify({messageCount:n.params.messages.length,systemPrompt:n.params.systemPrompt?"provided":"none",maxTokens:n.params.maxTokens,temperature:n.params.temperature})}`,server:o});let l=await e.ctx.get(xY).readMcpSamplingConfig({serverName:o});if(l.alwaysDeny)throw new Error("User has chosen to always deny MCP tools with this mcp server.");if(!l.alwaysAllow){let y=n.params.messages.filter(v=>v.role==="user"),E=y[y.length-1];if((await e.ctx.get(pf).invokeClientToolConfirmation(e,{name:o,title:`Allow MCP tools from "${o}" to make LLM requests?`,message:`The MCP server "${o}" has issued a request to make a language model call. Do you want to allow it to make requests during chat?`,input:{...E,toolType:"mcp_tool",mcpType:"sampling",mcpServerName:o},conversationId:e.conversation.id,roundId:s??e.agentToolCalls.getRound(0).roundId,turnId:e.turn.id,toolCallId:c??e.agentToolCalls.getRound(0).toolCalls[0].id})).result==="dismiss")throw new rl}let u=await this.getModelConfiguration(e.ctx,n,l),d=this.convertMCPMessagesToChatML(e.ctx,n.params.messages,n.params.systemPrompt),f=(await kPe(e.ctx,e.turn.telemetryId,e.conversation.telemetryId)).extendedBy({messageSource:"mcp.sampling"}),m=new qn.CancellationTokenSource().token,g=await r.fetchResponse({modelConfiguration:u,messages:d,uiKind:"conversationPanel",llmInteraction:e.toLlmInteraction(),temperature:n.params.temperature??this.defaultTemperature,stop:n.params.stopSequences,turnId:String(e.turn.id)},m,f),A=this.processFetchResult(g,u.uiName);return mo(e.ctx,I_o,{userPreference:l.alwaysAllow?"autoApprove":l.alwaysDeny?"autoDeny":"none",selectedModel:u.uiName,success:"true"}),A}catch(l){let u=`Failed to process sampling request: ${l instanceof Error?l.message:String(l)}`;throw ur.error(e.ctx,u,l),await Dd(e.ctx,{message:u,server:o}),mo(e.ctx,I_o,{success:"false",errorMessage:u}),new Cn($n.InternalError,u)}finally{this.ongoingMcpSamplingCalls=!1}}convertMCPMessagesToChatML(e,r,n){let o=[];n&&o.push({role:"system",content:n});for(let s of r){let c,l=Array.isArray(s.content)?s.content[0]:s.content;if(!l){ur.warn(e,"Empty content in MCP message, skipping");continue}if(l.type==="text")c=l.text;else if(l.type==="image")c=[{type:"image_url",image_url:{url:atob(l.data)}}];else throw ur.warn(e,`Unknown MCP content type: ${l.type}, defaulting to empty array`),new Error(`Unknown MCP content type: ${l.type}`);let u;switch(s.role){case"user":u="user";break;case"assistant":u="assistant";break;default:u="user",ur.warn(e,`Unknown MCP role: ${s.role}, defaulting to user`)}o.push({role:u,content:c})}return o}processFetchResult(e,r){if(e.type!=="success"){let n=`Unexpected fetch result type: ${e.type}.`;throw"reason"in e&&(n+=` Reason: ${e.reason}`),new Error(n)}return{model:r,role:"assistant",content:{type:"text",text:e.value}}}async getModelConfiguration(e,r,n){let o=await this.getAvailableBYOKModels(e),s=[...(await this.getAvailableModels(e)).map(l=>({kind:"copilot",modelFamily:l})),...o.map(l=>({kind:"byok",modelId:l.name,providerName:l.provider,uiName:l.capabilities?.name??l.name}))],c=bSl(s,r.params.modelPreferences?.hints,n);return c.kind==="byok"?QB(e,c.providerName,c.modelId):await e.get(El).getBestChatModelConfig([c.modelFamily])}async getAvailableModels(e){return(await e.get(Js).getMetadata()).filter(n=>n.capabilities.type&&!_de.has(n.capabilities.family)&&n.capabilities.supports?.tool_calls&&(n.capabilities.limits?.max_prompt_tokens??!1)).map(n=>n.capabilities.family)}async getAvailableBYOKModels(e){return(await new As(e.get(Hn)).getAllModels(e)).filter(n=>n.capabilities?.toolCalling)}};p();var bTe=class extends Error{constructor(r,n){super(r);this.challengeInfo=n;this.name="ScopeChallengeError"}static{a(this,"ScopeChallengeError")}};function x_o(t,e){if(t!==403||!e)return null;let{scheme:r,params:n}=nht(e);if(r!=="Bearer"||n.error!=="insufficient_scope")return null;let o=n.scope;if(!o)return null;let s=o.split(" ").filter(c=>c.length>0);return{error:n.error,requiredScopes:s,resourceMetadata:n.resource_metadata,errorDescription:n.error_description}}a(x_o,"parseScopeChallenge");p();var Szr=/[^a-z0-9_-]/gi;var SSl=process.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function R_o(){let t={};for(let e of SSl){let r=process.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}a(R_o,"getDefaultEnvironment");async function P_o(t,e,r){if(!e.description){let n=`Tool ${e.name} does not have a description. Tools must be accurately described to be called.`;ur.warn(t,n),await rM(t,{message:n,server:r,tool:e.name}),e.description="<empty>"}if(Szr.lastIndex=0,Szr.test(e.name)){let n=`Tool ${e.name} is invalid. Tools names may only contain [a-zA-Z0-9_-]`;ur.warn(t,n),await rM(t,{message:n,server:r,tool:e.name}),e._nameForModel=e.name.replace(Szr,"_")}else e._nameForModel=e.name;return e}a(P_o,"normalizeTool");var MNt=class{constructor(){this.seenPrefixes=new Set}static{a(this,"McpPrefixGenerator")}generate(e){let r="mcp_"+e.toLowerCase().replace(/[^a-z0-9_.-]+/g,"_").slice(0,13),n=r;for(let o=2;this.seenPrefixes.has(n);o++)n=r+o;return this.seenPrefixes.add(n),n}};p();async function*Tzr(t,e,r){let n;do{let o=await t(n),s=e(o);s.length>0&&(yield s),n=r(o)}while(n!==void 0)}a(Tzr,"paginateRequest");async function Izr(t){let e=[];for await(let r of t)e.push(...r);return e}a(Izr,"flattenAsyncIterable");var k_o=ue(require("events"));var wzr=6e4,RY=class{constructor(e,r,n){this.transport=null;this.emitter=new k_o.default;this.ongoingMcpToolCalls=[];this.isSamplingEnabled=!1;this.isElicitationEnabled=!1;this.cachedTools=[];this.cachedResources=[];this.cachedResourceTemplates=[];this.cachedPrompts=[];this.ctx=e;let o=e.get(An);this.isSamplingEnabled=o.getCapabilities().mcpSampling,this.isSamplingEnabled&&(this.samplingService=new DNt),this.isElicitationEnabled=o.getCapabilities().mcpElicitation,this.isElicitationEnabled&&(this.elicitationHandler=new PNt);let s=this.ctx.get(vr).getEditorInfo(),c=this.ctx.get(vr).getEditorPluginInfo();this.mcp=new C$({name:`${s.name}/${c.name}`,version:`${s.version}/${c.version}`},{capabilities:{roots:{listChanged:!0},...this.isSamplingEnabled?{sampling:{}}:{},...this.isElicitationEnabled?{elicitation:{}}:{}}}),this.name=r}static{a(this,"MCPBaseServer")}get isConnected(){return this.transport!==null}async connect(e){if(this.transport=this.initTransport(e),!this.transport){let r=new Error("Failed to initialize transport");throw ur.error(this.ctx,"Transport initialization failed:",r),r}this.addListeners();try{await this.mcp.connect(this.transport),this.initializeCache()}catch(r){throw ur.error(this.ctx,"Connection failed:",r),await Dd(this.ctx,{message:`Failed to connect to MCP server: ${r instanceof Error?r.message:String(r)}`,server:this.name}),this.transport=null,r}}async initializeCache(){await Promise.all([this.refreshToolsCache(!0),this.refreshResourcesCache(!0),this.refreshPromptsCache(!0)]),this.emitter.emit($z)}getCachedTools(){return this.cachedTools}getCachedResources(){return this.cachedResources}getCachedResourceTemplates(){return this.cachedResourceTemplates}getCachedPrompts(){return this.cachedPrompts}restoreCacheFromPersistence(e){this.cachedTools=[...e.tools],this.cachedResources=[...e.resources],this.cachedResourceTemplates=[...e.resourceTemplates],this.cachedPrompts=[...e.prompts]}async createMcpTool(e,r){let n={name:e.name,description:e.description,inputSchema:{...e.inputSchema||{},properties:e.inputSchema?.properties||{},type:e.inputSchema?.type||"object"},_status:r??"enabled",_nameForModel:e.name,annotations:e.annotations};return await P_o(this.ctx,n,this.name),n}async handleMCPOperationError(e,r,n){try{return await e()}catch(o){let s=o;if(s instanceof bTe){let l=`OAuth scope challenge during ${r} from server ${this.name}. Required scopes: ${s.challengeInfo.requiredScopes.join(", ")}`;if(n.scopeChallengeHandler)return n.scopeChallengeHandler(s.challengeInfo.requiredScopes);if(ur.info(this.ctx,l),await Dd(this.ctx,{message:l,server:this.name}),n.errorHandler)return n.errorHandler(l);if("defaultValue"in n)return n.defaultValue;throw s}if(s.code===$n.MethodNotFound){if(ur.info(this.ctx,`${r} not supported by server ${this.name}:`,s.message),"methodNotFoundValue"in n)return n.methodNotFoundValue;if(n.errorHandler)return n.errorHandler("Method not found");if("defaultValue"in n)return n.defaultValue;throw new Error("No default value or error handler provided")}let c=`Failed to ${r} from server ${this.name}: ${s.message||String(s)}`;if(ur.error(this.ctx,c),await Dd(this.ctx,{message:c,server:this.name}),n.errorHandler)return n.errorHandler(c);if("defaultValue"in n)return n.defaultValue;throw new Error("No default value or error handler provided")}}async*getResourcesIterable(e){if(!this.transport)return;let r=Tzr(n=>this.mcp.listResources({cursor:n},{signal:e}),n=>n.resources,n=>n.nextCursor);for await(let n of r)yield n}async getResources(e){return await this.handleMCPOperationError(async()=>{let r=await Izr(this.getResourcesIterable(e));return pa(this.ctx,{message:`Discovered ${r.length} resources`,server:this.name}),r},"get resources",{defaultValue:[]})}async*getResourceTemplatesIterable(e){if(!this.transport)return;let r=Tzr(n=>this.mcp.listResourceTemplates({cursor:n},{signal:e}),n=>n.resourceTemplates,n=>n.nextCursor);for await(let n of r)yield n}async getResourceTemplates(e){return await this.handleMCPOperationError(async()=>{let r=await Izr(this.getResourceTemplatesIterable(e));return pa(this.ctx,{message:`Discovered ${r.length} resource templates`,server:this.name}),r},"get resource templates",{defaultValue:[]})}async readResource(e){return this.transport?await this.handleMCPOperationError(async()=>await this.mcp.readResource({uri:e}),`read resource ${e}`,{defaultValue:null,methodNotFoundValue:{contents:[]}}):null}async subscribeResource(e){this.transport&&await this.handleMCPOperationError(async()=>{await this.mcp.subscribeResource({uri:e})},`subscribe resource ${e}`,{defaultValue:void 0})}async unsubscribeResource(e){this.transport&&await this.handleMCPOperationError(async()=>{await this.mcp.unsubscribeResource({uri:e})},`unsubscribe resource ${e}`,{defaultValue:void 0})}async callTool(e,r,n,o,s,c){let l=DX();this.ongoingMcpToolCalls.push({requestId:l,toolName:e,turnContext:o,roundId:s,toolCallId:c});let u=a(d=>{let f=new Wr([],"error");return f.content.push(new Lr(d)),f},"createErrorResult");try{return await this.handleMCPOperationError(async()=>{let d=new AbortController;n.onCancellationRequested(()=>{d.abort()});let f=await this.mcp.callTool({name:e,arguments:r,_meta:{progressToken:l}},IS,{onprogress:a(m=>{ur.info(this.ctx,`${e} calling progress`,m),pa(this.ctx,{message:`${e} calling progress:`+JSON.stringify(m),server:this.name})},"onprogress"),resetTimeoutOnProgress:!0,signal:d.signal});if(f&&typeof f=="object"){if(f.content||f.structuredContent)return this.formatToolResult(f);let m=`Error calling tool ${e}: `+JSON.stringify(f);return ur.error(this.ctx,m),await Dd(this.ctx,{message:m,server:this.name,tool:e}),u(m)}let h=`Error calling tool ${e}: `+JSON.stringify(f);return ur.error(this.ctx,h),await Dd(this.ctx,{message:h,server:this.name,tool:e}),u(h)},`call tool ${e}`,{errorHandler:u})}finally{this.ongoingMcpToolCalls=this.ongoingMcpToolCalls.filter(d=>d.requestId!==l)}}async getPrompt(e,r){return(await this.mcp.getPrompt({name:e,arguments:r})).messages}async completePrompt(e,r,n,o){return(await this.mcp.complete({ref:{type:"ref/prompt",name:e},argument:{name:r,value:n},context:{arguments:o}})).completion.values}addListeners(){this.mcp.onclose=()=>{ur.info(this.ctx,`MCP server ${this.name} connection closed.`),pa(this.ctx,{message:"Connection state: Stopped",server:this.name})},this.mcp.onerror=e=>{ur.error(this.ctx,`MCP server ${this.name} error:`,e),Dd(this.ctx,{message:`Connection state: Error: ${e.message}`,server:this.name})},this.mcp.setNotificationHandler(Tte,e=>new hQe(this.ctx,this.name).handle(e)),this.mcp.setNotificationHandler(j8,e=>new EQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setNotificationHandler(H8,e=>new mQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setNotificationHandler(q8,e=>new gQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setNotificationHandler(Sgr,e=>new AQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setRequestHandler(Ogr,e=>(this.initRootsTracker(),new yQe(this.ctx,this.name).handle(e))),this.isSamplingEnabled&&this.mcp.setRequestHandler(IOe,async(e,r)=>{if(!this.samplingService){let o="Sampling is not enabled.";throw ur.error(this.ctx,o),new Cn($n.InternalError,o)}if(this.ongoingMcpToolCalls.length===0){let o="No ongoing tool call context found for sampling request.";throw ur.error(this.ctx,o),new Cn($n.InternalError,o)}let n=this.ongoingMcpToolCalls[this.ongoingMcpToolCalls.length-1];return await this.samplingService.handleSamplingRequest(n.turnContext,new Sc(this.ctx),e,this.name,n.roundId,n.toolCallId)}),this.isElicitationEnabled&&this.mcp.setRequestHandler(xOe,async e=>{if(this.ongoingMcpToolCalls.length===0){let n="No ongoing tool call context found for elicitation request.";throw ur.error(this.ctx,n),new Cn($n.InternalError,n)}let r=this.ongoingMcpToolCalls[this.ongoingMcpToolCalls.length-1];return this.elicitationHandler.handleRequest(r.turnContext,this.name,e,r.roundId,r.toolCallId)}),this.setupDataRefreshListeners()}setupDataRefreshListeners(){this.emitter.on(IPt,()=>{this.refreshToolsCache()}),this.emitter.on(wPt,()=>{this.refreshResourcesCache()}),this.emitter.on(xPt,()=>{this.refreshPromptsCache()})}async refreshToolsCache(e=!1){this.transport&&await this.handleMCPOperationError(async()=>{let r=AbortSignal.timeout(wzr),n=await this.mcp.listTools({},{signal:r}),o=new Map(this.cachedTools.map(s=>[s.name,s._status]));this.cachedTools=await Promise.all(n.tools.map(s=>this.createMcpTool(s,o.get(s.name)))),ur.info(this.ctx,`Refreshed ${this.cachedTools.length} tools for server ${this.name}`),e||this.emitter.emit($z)},"refresh tools",{defaultValue:void 0})}async refreshResourcesCache(e=!1){if(this.transport)try{let r=AbortSignal.timeout(wzr),[n,o]=await Promise.all([this.getResources(r),this.getResourceTemplates(r)]);this.cachedResources=n,this.cachedResourceTemplates=o,ur.info(this.ctx,`Refreshed ${this.cachedResources.length} resources and ${this.cachedResourceTemplates.length} templates for server ${this.name}`),e||this.emitter.emit($z)}catch(r){ur.error(this.ctx,`Failed to refresh resources cache for ${this.name}:`,r)}}async refreshPromptsCache(e=!1){this.transport&&await this.handleMCPOperationError(async()=>{let r=AbortSignal.timeout(wzr),n=await this.mcp.listPrompts({},{signal:r});this.cachedPrompts=n.prompts,ur.info(this.ctx,`Refreshed ${this.cachedPrompts.length} prompts for server ${this.name}`),e||this.emitter.emit($z)},"refresh prompts",{defaultValue:void 0})}formatToolResult(e){let r=new Wr([],e.isError===!0?"error":"success");for(let n of e.content??[])if(n.type==="text")r.content.push(new Lr(n.text));else if(n.type==="image"||n.type==="audio")r.content.push(new RH({mimeType:n.mimeType,data:n.data}));else if(n.type==="resource"){let o=n.resource;if("text"in o)r.content.push(new Lr(o.text));else if("blob"in o){let s=o.mimeType||"application/octet-stream";r.content.push(new RH({mimeType:s,data:o.blob}))}}return e.structuredContent&&r.content.push(new Lr(JSON.stringify(e.structuredContent))),r}initRootsTracker(){let e=this.ctx.get(Qr);this.rootsTracker=e.onDidChangeWorkspaceFolders(r=>{this.mcp.sendRootsListChanged().then(()=>{this.rootsTracker?.dispose()})})}getEmitter(){return this.emitter}async cleanup(){this.transport&&(await this.mcp.close(),this.mcp.transport&&this.mcp.transport.onclose?.(),this.rootsTracker?.dispose(),this.transport=null)}};p();function TSl(t,e){return a(async(n,o)=>{let s=n instanceof URL?n.toString():n,c;if(o?.headers)if(o.headers instanceof Headers){c={};for(let[h,m]of o.headers.entries())c[h]=m}else if(Array.isArray(o.headers)){c={};for(let[h,m]of o.headers)c[h]=m}else c=o.headers;let l={method:o?.method||"GET",headers:c,body:o?.body,signal:o?.signal||void 0},u=await t.fetch(s,l);if(u.status===401&&e?.(u.headers.get("WWW-Authenticate")??void 0),u.status===403){let h=u.headers.get("WWW-Authenticate"),m=x_o(u.status,h);if(m){let g=m.errorDescription||"Insufficient scope for this operation";throw new bTe(g,m)}}let d=u.body(),f=null;if(d)f=new ReadableStream({start(h){let m=a(E=>{h.enqueue(new Uint8Array(E))},"onData"),g=a(()=>{h.close(),y()},"onEnd"),A=a(E=>{h.error(E),y()},"onError"),y=a(()=>{d.off("data",m),d.off("end",g),d.off("error",A)},"cleanup");d.on("data",m),d.on("end",g),d.on("error",A)},cancel(){d&&"destroy"in d&&typeof d.destroy=="function"&&d.destroy()}});else{let h=await u.text();f=new ReadableStream({start(m){m.enqueue(new TextEncoder().encode(h)),m.close()}})}return new globalThis.Response(f,{status:u.status,statusText:u.statusText,headers:new Headers(u.headers)})},"fetchLike")}a(TSl,"createFetchAdapter");function NNt(t,e,r){let n=t.get(Wt),o=TSl(n,r);return{...e,fetch:o}}a(NNt,"createConfigWithFetch");var ONt=class extends RY{constructor(r,n,o){super(r,n,o);this.transport=null}static{a(this,"MCPSSEServer")}initTransport(r){let n=NNt(this.ctx,r),{url:o,...s}=n;return new D0e(new URL(o),s)}};p();var D_o=require("child_process"),M_o=require("util");var BNt=class extends RY{constructor(r,n,o){super(r,n,o);this.transport=null}static{a(this,"MCPStdioServer")}initTransport(r){return r.env={...R_o(),...r.env||{}},r.stderr="pipe",new Q0e(r)}addListeners(){super.addListeners(),this.transport&&this.transport.stderr&&this.transport.stderr.on("data",r=>{rM(this.ctx,{message:`[server stderr] ${r.toString().trimEnd()}`,server:this.name})})}async cleanup(){if(this.transport){if(process.platform==="win32"){let r=null;"pid"in this.transport&&typeof this.transport.pid=="number"&&(r=this.transport.pid),r&&await this.forceKillWindowsProcess(r)}await super.cleanup()}}async forceKillWindowsProcess(r){try{let n=(0,M_o.promisify)(D_o.exec);ur.info(this.ctx,`Force killing Windows process with PID ${r} for MCP server ${this.name}`),pa(this.ctx,{message:`Force killing Windows process with PID ${r}`,server:this.name}),await n(`taskkill /pid ${r} /t /f`,{timeout:1e4}),ur.info(this.ctx,`Successfully force killed process ${r}`)}catch(n){ur.debug(this.ctx,`Failed to kill process ${r} (process may not exist):`,n),Dd(this.ctx,{message:`Failed to kill process ${r} (process may not exist): ${n instanceof Error?n.message:String(n)}`,server:this.name})}}};p();var STe=class extends RY{constructor(r,n,o){super(r,n,o);this.transport=null;this._captureInitializeChallenge=!1}static{a(this,"MCPStreamableServer")}async connect(r){this._wwwAuthenticate=void 0,this._captureInitializeChallenge=!0;try{await super.connect(r)}finally{this._captureInitializeChallenge=!1}}initTransport(r){let n=NNt(this.ctx,r,c=>{this._captureInitializeChallenge&&(this._wwwAuthenticate=c)}),{url:o,...s}=n;return new M0e(new URL(o),s)}takeWwwAuthenticate(){let r=this._wwwAuthenticate;return this._wwwAuthenticate=void 0,r}async cleanup(){this._wwwAuthenticate=void 0,this._captureInitializeChallenge=!1,await super.cleanup()}};p();var LNt=class extends xH{static{a(this,"McpLanguageModelTool")}constructor(e,r){super({...e,toolProvider:{id:e.serverName,displayNamePrefix:e.serverNamePrefix,displayName:e.serverName,description:e.serverName,isFirstPartyTool:!1},type:"mcp"}),this.invoker=r}prepareInvocation(e,r){let n={title:`Confirm MCP Tool: ${this.displayName} - ${this.toolProvider.displayName}(MCP Server)`,message:`Do you want to allow the external MCP tool "${this.toolProvider.displayName}/${this.displayName}" to run?`};return{progressMessage:`Running MCP tool: ${this.displayName} - ${this.toolProvider.displayName}(MCP Server)`,confirmationMessages:n}}prepareCompletion(e,r){return{completionMessage:`Ran MCP tool: ${this.displayName} - ${this.toolProvider.displayName}(MCP Server)`}}async invoke(e,r,n){return await this.invoker(e,r,r.input,n)}async invokeConfirmation(e,r,n){if(n.isCancellationRequested)throw new rl;let o={name:this.name,title:r.title,message:r.message,input:r.input,conversationId:e.conversation.id,turnId:e.turn.id,roundId:r.roundId,toolCallId:r.toolCallId,annotations:r.annotations};try{return await e.ctx.get(pf).invokeClientToolConfirmation(e,o)}catch(s){throw new Error(`Failed to invoke client tool confirmation ${this.name}: ${String(s)}`)}}};var L_o=ue(tl());p();var N_o="mcp-servers-cache",O_o="mcp-first-boot-completed",FNt=class{static{a(this,"McpServerMetadataCache")}constructor(e){this.stateDb=e.get(nd),this.initPromise=this.initialize()}async initialize(){await this.stateDb.waitForInitialization()}async isFirstBoot(){return await this.initPromise,this.stateDb.get(O_o)!=="true"}async markFirstBootCompleted(){await this.initPromise,this.stateDb.set(O_o,"true")}parseCache(){let e=this.stateDb.get(N_o);if(!e)return{};try{return JSON.parse(e)}catch{return{}}}async get(e){return await this.initPromise,this.parseCache()[e]}async store(e){await this.initPromise,this.stateDb.set(N_o,e)}};p();function B_o(t){let e=t.get(vr).getEditorPluginInfo();if(e.name==="copilot-intellij"){let r=e.version.endsWith("nightly"),n=e.version==="42.0.0.0";return r||n}if(e.name==="copilot-xcode"){let r=e.version.split(".");if(r.length>=3){let[n,o,s]=r;return n==="0"&&o==="0"&&s==="0"||n==="0"&&s!=="0"}}if(e.name==="copilot-eclipse"){let r=e.version.endsWith("nightly"),n=e.version.endsWith("qualifier");return r||n}return!1}a(B_o,"isNightlyOrDevBuild");var UNt=class t extends q_{constructor(r){super();this.MCPServersMap=new Map;this.updateServersQueue=Promise.resolve();this.serverOperationSequencer=new Yf;this.prefixGenerator=new MNt;this.serverPrefixes=new Map;this.isMcpEnabled=!1;this.previousMcpAllowlist=!1;this.storedMCPServersConfig={};this.ctx=r,this.cache=new FNt(r),this.registryService=r.get(sO),ds(this.ctx,async n=>{let o=this.isMcpEnabled;this.isMcpEnabled=this.isTokenMcpEnabled(n),o!==this.isMcpEnabled&&(ur.info(this.ctx,`MCP state changed from ${o} to ${this.isMcpEnabled}`),this.registryService.clearAllCaches(),this.isMcpEnabled?await this.updateMCPServers(this.storedMCPServersConfig):(ur.info(this.ctx,"MCP is disabled, clearing all servers and tools"),this.clearAllServers()))}),this.ctx.get(An).onDidSetCapabilities(n=>{let o=n.mcpAllowlist;o!==this.previousMcpAllowlist&&(this.previousMcpAllowlist=o,this.registryService.clearAllCaches(),this.isMcpEnabled&&(ur.info(this.ctx,`mcpAllowlist changed to ${o}, updating MCP servers`),this.updateMCPServers(this.storedMCPServersConfig)))})}static{a(this,"CLSMCPManager")}static{this.contentsNotificationType=new L_o.ProtocolNotificationType("copilot/mcpTools")}isTokenMcpEnabled(r){if(!r)return!0;try{return r.getTokenValue("mcp")!=="0"}catch(n){return ur.warn(this.ctx,`Error reading MCP value from token: ${n instanceof Error?n.message:String(n)}`),!0}}isAllowlistFeatureEnabled(){if(this.ctx.get(An).getCapabilities().mcpAllowlist)return ur.debug(this.ctx,"Allowlist feature enabled via copilotCapabilities.mcpAllowlist"),!0;let n=B_o(this.ctx);return n||ur.debug(this.ctx,"Allowlist feature disabled for stable version, only enabled for nightly/prerelease/dev (use copilotCapabilities.mcpAllowlist to override)"),n}ensureMcpEnabledOrThrow(r){if(!this.isMcpEnabled)throw new Error(`MCP is disabled, cannot ${r}`)}getActiveServerEntry(r){let n=this.MCPServersMap.get(r);if(!n)throw new Error(`MCP server ${r} does not exist`);if(n.isBlocked)throw new Error(`MCP server ${r} is blocked by registry`);return n}async ensureServerConnection(r,n,o){return n.server.isConnected?n.server:(ur.info(this.ctx,`Auto-starting MCP server ${r} for ${o}`),await this.startMCPServer(r),this.getActiveServerEntry(r).server)}async updateMCPServers(r){let n=this.storedMCPServersConfig;if(this.storedMCPServersConfig=r,!this.isMcpEnabled)return;let o=this.ctx.get(An).getCapabilities().mcpServerManagement??!1,s=new Set(Object.keys(r)),c=new Set(this.MCPServersMap.keys()),l=[...c].filter(m=>!s.has(m)),u=new Set([...s].filter(m=>c.has(m)&&!this.areServerConfigsEqual(n[m],r[m]))),d=new Set;for(let m of u){let g=this.MCPServersMap.get(m);g&&!g.isBlocked&&(g.server.isConnected||g.hasError)&&d.add(m)}let f=[...l,...u];for(let m of f){let g=this.MCPServersMap.get(m);g&&!g.isBlocked&&(this.unregisterServerTools(m),await this.stopMCPServer(m)),u.has(m)||(this.removeServerAccountPreferences(m),this.serverPrefixes.delete(m)),this.MCPServersMap.delete(m)}f.length>0&&await this.persistAllServersCache();for(let m of s)this.MCPServersMap.has(m)||await this.upsertServerDefinition(m,r[m]);if(await this.cache.isFirstBoot()||!o){if(await this.cache.markFirstBootCompleted(),s.size>0){let m=Array.from(s).map(async g=>{try{await this.startServer(g);let A=this.MCPServersMap.get(g);A&&(A.hasError=!1,A.errorMessage=void 0,A.isStarting=!1)}catch(A){let y=this.MCPServersMap.get(g);y&&(y.hasError=!0,y.errorMessage=A instanceof Error?A.message:String(A),y.isStarting=!1),ur.warn(this.ctx,`Failed to auto-start MCP server ${g} during first boot:`,A)}});await Promise.allSettled(m)}}else if(d.size>0){let m=Array.from(d).map(async g=>{try{await this.startServer(g);let A=this.MCPServersMap.get(g);A&&!A.isBlocked&&(A.hasError=!1,A.errorMessage=void 0,A.isStarting=!1)}catch(A){let y=this.MCPServersMap.get(g);y&&!y.isBlocked&&(y.hasError=!0,y.errorMessage=A instanceof Error?A.message:String(A),y.isStarting=!1),ur.warn(this.ctx,`Failed to restart MCP server ${g} after config update:`,A)}});await Promise.allSettled(m)}await this.updateServersList()}areServerConfigsEqual(r,n){return this.stableStringify(r)===this.stableStringify(n)}stableStringify(r){if(Array.isArray(r))return`[${r.map(n=>this.stableStringify(n)).join(",")}]`;if(r&&typeof r=="object"){let n=r;return`{${Object.keys(n).sort().map(s=>`${JSON.stringify(s)}:${this.stableStringify(n[s])}`).join(",")}}`}return JSON.stringify(r)??"undefined"}async upsertServerDefinition(r,n){let o=this.toManagedServerDefinition(r,n),s=this.MCPServersMap.get(r);if(this.isAllowlistFeatureEnabled()){let c=await this.registryService.validateServerConfig(r,n),{registryInfo:l,isBlocked:u,blockReason:d}=c;u?(this.addBlockedServer(o),ur.info(this.ctx,`MCP server ${r} is blocked: ${d}`)):s&&!s.isBlocked?await this.updateServerDefinition(s,o):await this.addServer(o),l&&this.updateRegistryInfo(r,l);return}s&&!s.isBlocked?await this.updateServerDefinition(s,o):await this.addServer(o)}toManagedServerDefinition(r,n){let o=n.type,s="command"in n?"stdio":o??"streamable";return{...n,name:r,type:s}}addBlockedServer(r){this.MCPServersMap.set(r.name,{server:null,definition:r,hasError:!1,errorMessage:void 0,isStarting:!1,isBlocked:!0,authInfo:void 0})}updateRegistryInfo(r,n){let o=this.MCPServersMap.get(r);o&&(o.registryInfo=n)}getAllContents(r){return this.isMcpEnabled?this.getAllMCPServerCapabilities(r):[]}getAllMCPServerCapabilities(r){let n=[];for(let[o,s]of this.MCPServersMap)try{let c=this.createServerSnapshot(o,s);n.push(c)}catch(c){let l=`Failed to create snapshot for MCP server ${o}.`+(c instanceof Error?` message: ${c.message}`:` ${String(c)}`);ur.error(this.ctx,l);let u={name:o,prefix:this.getServerPrefix(o),status:"error",tools:[],resources:[],resourceTemplates:[],prompts:[],error:l};n.push(u)}return r&&!r.isBuiltIn&&r.customTools?n.map(o=>(o.tools=o.tools.map(s=>{let c=this.createMcpLanguageModelTool(o.name,this.getServerPrefix(o.name),s);return s._status=r.customTools.includes(c.configurationKey)?"enabled":"disabled",s}),o)):n}async updateMCPToolsStatus(r,n){this.ensureMcpEnabledOrThrow("batch update tools status");for(let{serverName:o,toolName:s,status:c}of n){let d=this.getActiveServerEntry(o).server.getCachedTools().find(m=>m.name===s),f=this.getServerPrefix(o);if(!d){ur.error(this.ctx,`Not found MCP ${o} server ${s} tool`);continue}EPe(r)&&(d._status=c),this.ctx.get(Ps).getToolById(`${o}.${s}`)||this.registerTool(o,f,d)}await this.ctx.get(Ps).updateToolsStatus(r,n.map(({serverName:o,toolName:s,status:c})=>({toolId:`${o}.${s}`,status:c}))),this.persistAllServersCache()}async callTool(r,n,o,s,c,l,u){this.ensureMcpEnabledOrThrow(`call tool ${r}.${n}`);let d=this.getActiveServerEntry(r),f=await this.ensureServerConnection(r,d,"tool call"),h=gOe(this.storedMCPServersConfig[r]),m=performance.now();try{let g=await f.callTool(n,o,s,c,l,u);return h&&e0e(this.ctx,"LOCAL",s.isCancellationRequested?"cancelled":g.status==="success"?"success":g.status==="cancelled"?"cancelled":"error",performance.now()-m),g}catch(g){throw h&&e0e(this.ctx,"LOCAL",s.isCancellationRequested?"cancelled":"error",performance.now()-m),g}}async getPrompt(r,n,o){this.ensureMcpEnabledOrThrow(`get prompt ${r}.${n}`);let s=this.getActiveServerEntry(r),l=await(await this.ensureServerConnection(r,s,"get prompt")).getPrompt(n,o);return ut(this.ctx,"mcp.getPrompt",zt.createAndMarkAsIssued()),Gt(this.ctx,"mcp.getPrompt"),l}async completePrompt(r,n,o,s,c){this.ensureMcpEnabledOrThrow(`complete prompt ${r}.${n}`);let l=this.getActiveServerEntry(r);return await(await this.ensureServerConnection(r,l,"complete prompt")).completePrompt(n,o,s,c)}async readResource(r,n){this.ensureMcpEnabledOrThrow(`read resource from ${r}: ${n}`);let o=this.getActiveServerEntry(r);return await(await this.ensureServerConnection(r,o,"read resource")).readResource(n)}async startMCPServer(r){return this.ensureMcpEnabledOrThrow(`start server ${r}`),this.serverOperationSequencer.queue(r,async()=>{await this.startMCPServerInternal(r)})}async startMCPServerInternal(r){let n=this.getActiveServerEntry(r);if(n.server.isConnected){ur.info(this.ctx,`MCP server ${r} is already running`);return}if(n.isStarting){ur.info(this.ctx,`MCP server ${r} is already starting, skipping duplicate request`);return}n.isStarting=!0,await pa(this.ctx,{message:`Starting server ${r}`,server:r}),await this.updateServersList(!1),this.unregisterServerTools(r);try{await this.startServer(r);let o=this.MCPServersMap.get(r);o&&(o.hasError=!1,o.errorMessage=void 0,o.isStarting=!1)}catch(o){let s=this.MCPServersMap.get(r);throw s&&(s.hasError=!0,s.errorMessage=o instanceof Error?o.message:String(o),s.isStarting=!1),o}finally{this.registerServerTools(r),await this.updateServersList(!1)}}async stopMCPServer(r){return this.serverOperationSequencer.queue(r,async()=>{await this.stopMCPServerInternal(r)})}async stopMCPServerInternal(r){let n=this.getActiveServerEntry(r);if(n.isStarting){ur.info(this.ctx,`MCP server ${r} is starting, cannot stop now`);return}await pa(this.ctx,{message:`Stopping server ${r}`,server:r}),n.server.getEmitter().removeAllListeners($z),n.server.isConnected&&await n.server.cleanup(),n.hasError=!1,n.errorMessage=void 0,n.isStarting=!1,await pa(this.ctx,{message:`Server ${r} stopped`,server:r}),await this.updateServersList(!1)}async restartMCPServer(r){return this.ensureMcpEnabledOrThrow(`restart server ${r}`),await pa(this.ctx,{message:`Restarting server ${r}`,server:r}),this.serverOperationSequencer.queue(r,async()=>{await this.stopMCPServerInternal(r),await new Promise(n=>setTimeout(n,100)),await this.startMCPServerInternal(r)})}async logoutMCPServer(r){return this.ensureMcpEnabledOrThrow(`logout server ${r}`),this.serverOperationSequencer.queue(r,async()=>{await pa(this.ctx,{message:`Logging out MCP server ${r}`,server:r}),await this.performLogout(r)})}async clearOAuthMCPServer(r){return this.ensureMcpEnabledOrThrow(`clear OAuth for server ${r}`),this.serverOperationSequencer.queue(r,async()=>{let o=this.getActiveServerEntry(r).authInfo?.providerId;if(!o){ur.warn(this.ctx,`No OAuth provider found for server ${r}, nothing to clear`);return}await pa(this.ctx,{message:`Clearing OAuth provider registration for MCP server ${r}`,server:r}),await this.performLogout(r),ur.info(this.ctx,`Unregistering provider ${o} for server ${r}`);try{await this.ctx.get(SO).unregisterProvider(o)}catch{ur.debug(this.ctx,`Provider ${o} is not a dynamic OAuth provider, skipping unregistration`)}})}async performLogout(r){let n=this.getActiveServerEntry(r);if(n.authInfo){let{providerId:c,accountName:l}=n.authInfo;ur.info(this.ctx,`Removing account preference and session for account ${l} on server ${r} with provider ${c}`),this.ctx.get(MS).removeAccountPreference(r,c);try{let u=this.ctx.get(Ym).getProvider(c),f=(await u.getSessions(void 0,{})).find(h=>h.account.label===l);f?(await u.removeSession(f.id),ur.info(this.ctx,`Successfully removed session for account ${l}`)):ur.warn(this.ctx,`No session found for account ${l}`)}catch(u){ur.error(this.ctx,`Failed to remove session for account ${l}:`,u)}n.authInfo=void 0}await this.stopMCPServerInternal(r);let o=this.storedMCPServersConfig[r];if(!o){let c=`Original config not found for server ${r}`;throw ur.error(this.ctx,c),new Error(c)}let s=this.toManagedServerDefinition(r,o);this.MCPServersMap.delete(r),await this.addServer(s),ur.info(this.ctx,`Server ${r} logged out and restored to original configuration`),await this.updateServersList(!1)}async startServer(r){let n=this.MCPServersMap.get(r);if(!n||n.isBlocked)return;if(n.server.isConnected){ur.info(this.ctx,`MCP server ${r} is already running`);return}let{server:o,definition:s}=n;try{o.getEmitter().on($z,()=>{this.unregisterServerTools(r),this.persistAllServersCache(),this.registerServerTools(r),this.notifyClient()}),await o.connect(s),await pa(this.ctx,{message:"Connection state: Running",server:r})}catch(c){ur.error(this.ctx,`Error initializing MCP server ${r}:`,c);let l=c instanceof lP||c instanceof TBe,u=l?c.code:void 0;if(l&&u!==void 0&&"url"in s&&s.type!=="sse"&&o instanceof STe&&u!==401&&u>=400&&u<500){let f=`${u} status sending message to ${s.url}, will attempt to fall back to legacy SSE`;ur.info(this.ctx,f),pa(this.ctx,{message:f,server:r});let h={...s,name:r,type:"sse"};return await o.cleanup().catch(()=>{}),await this.updateServerDefinition(n,h),await this.startServer(r)}else if(l&&"url"in s&&u===401){let f=o instanceof STe?o.takeWwwAuthenticate():void 0,h=await this.getAuthMetadata(s,f),m=await this.getToken(s.name,s.url,h.authorizationServer,h.serverMetadata,h.resourceMetadata);if(!m){let A=`Failed to get token for server: ${r}`;throw ur.error(this.ctx,A),new Error(A)}let g={...s,name:r,requestInit:{...s.requestInit??{},headers:{...s.requestInit?.headers??{},Authorization:`Bearer ${m}`}}};return await o.cleanup().catch(()=>{}),await this.updateServerDefinition(n,g),await this.startServer(r)}let d=c instanceof Error?`message: ${c.message} stack: ${c.stack}`:String(c);throw await Dd(this.ctx,{message:d,server:r}),this.ctx.get(Is).showWarningMessageOnlyOnce(`${r}.initialize`,`Failed to initialize MCP server '${r}'. Please check the logs for more details.`),c}}async updateServersList(r=!0){return this.updateServersQueue=this.updateServersQueue.then(async()=>{r&&this.registerTools(),await this.notifyClient()}).catch(n=>{ur.error(this.ctx,"updateServersList: Update failed",n)}),this.updateServersQueue}getServerPrefix(r){let n=this.serverPrefixes.get(r);if(n)return n;let o=this.prefixGenerator.generate(r);return this.serverPrefixes.set(r,o),o}async persistAllServersCache(){try{let r={};for(let[n,o]of this.MCPServersMap){let s=o.server?.getCachedTools()??[],c=o.server?.getCachedResources()??[],l=o.server?.getCachedResourceTemplates()??[],u=o.server?.getCachedPrompts()??[];r[n]={tools:s,resources:c,resourceTemplates:l,prompts:u}}await this.cache.store(r)}catch(r){ur.error(this.ctx,"Failed to persist MCP servers cache:",r)}}createMCPServer(r){return r.type==="sse"?new ONt(this.ctx,r.name,r.version||"1.0.0"):r.type==="streamable"||"url"in r?new STe(this.ctx,r.name,r.version||"1.0.0"):new BNt(this.ctx,r.name,r.version||"1.0.0")}async addServer(r){let n=this.createMCPServer(r),o=await this.cache.get(r.name);o&&n.restoreCacheFromPersistence(o),this.MCPServersMap.set(r.name,{server:n,definition:r,hasError:!1,errorMessage:void 0,isStarting:!1,isBlocked:!1})}async updateServerDefinition(r,n){let o=this.createMCPServer(n),s=await this.cache.get(n.name);s&&o.restoreCacheFromPersistence(s),r.server=o,r.definition=n}async notifyClient(){let r=this.getAllContents();await this.ctx.get(tr).connection.sendNotification(t.contentsNotificationType,{servers:r})}registerTools(){for(let[r]of this.MCPServersMap)this.registerServerTools(r)}registerServerTools(r){let n=this.MCPServersMap.get(r);if(!n||n.isBlocked)return;let o=this.getServerPrefix(r),s=n.server?.getCachedTools()??[];for(let c of s)this.registerTool(r,o,c)}unregisterServerTools(r){let n=this.MCPServersMap.get(r);if(!n||n.isBlocked)return;let o=n.server?.getCachedTools()??[];for(let s of o)this.unregisterTool(r,s.name)}registerTool(r,n,o){ur.debug(this.ctx,"register MCP Tool:",{...o}),this.ctx.get(Ps).registerTool(this.createMcpLanguageModelTool(r,n,o))}createMcpLanguageModelTool(r,n,o){let{name:s,description:c,inputSchema:l,_status:u,_nameForModel:d,annotations:f}=o;return new LNt({serverName:r,serverNamePrefix:n,name:d,displayName:s,description:c||"",displayDescription:c||"",inputSchema:l,annotations:f,status:u},(h,m,g,A)=>(ur.info(this.ctx,"copilot MCP Invoker:",r,s,g),this.callTool(r,s,g,A,h,m.roundId,m.toolCallId?.toString())))}unregisterAllTools(){for(let[r,n]of this.MCPServersMap){if(n.isBlocked)continue;let o=n.server?.getCachedTools()??[];for(let s of o)this.unregisterTool(r,s.name)}}unregisterTool(r,n){ur.debug(this.ctx,"unregister MCP Tool:",{serverName:r,toolName:n}),this.ctx.get(Ps).unregisterTool(`${r}.${n}`)}async clearAllServers(){this.unregisterAllTools();for(let r of this.MCPServersMap.keys())if(!this.MCPServersMap.get(r).isBlocked)try{await this.stopMCPServer(r)}catch(o){ur.error(this.ctx,`Error stopping server ${r} during clearAllServers:`,o)}this.MCPServersMap.clear(),this.serverPrefixes.clear()}determineServerStatus(r){return r.isBlocked?"blocked":r.isStarting?"starting":r.server.isConnected?"running":r.hasError?"error":"stopped"}createServerSnapshot(r,n){return{name:r,prefix:this.getServerPrefix(r),status:this.determineServerStatus(n),tools:n.server?.getCachedTools()??[],resources:n.server?.getCachedResources()??[],resourceTemplates:n.server?.getCachedResourceTemplates()??[],prompts:n.server?.getCachedPrompts()??[],error:n.isBlocked?void 0:n.errorMessage,registryInfo:n.registryInfo,authInfo:n.isBlocked?void 0:n.authInfo}}updateAuthInfo(r,n,o,s){let c=this.MCPServersMap.get(r);c&&!c.isBlocked&&(c.authInfo={providerId:n,accountName:o,isDynamic:s})}removeServerAccountPreferences(r){let n=this.MCPServersMap.get(r);if(n?.isBlocked||!n?.authInfo){ur.debug(this.ctx,`No auth info found for server ${r}, nothing to remove`);return}let{providerId:o}=n.authInfo;ur.info(this.ctx,`Removing account preference for server ${r} with provider ${o}`),this.ctx.get(MS).removeAccountPreference(r,o),n.authInfo=void 0}async getAuthMetadata(r,n){try{return await new L0e(this.ctx).getMetadataFromOriginalUrl(r.url,r.requestInit?.headers,n)}catch(o){throw ur.error(this.ctx,`Failed to get auth metadata for ${r.url}: ${o instanceof Error?o.message:String(o)}`,o),o}}async getToken(r,n,o,s,c){let l=this.ctx.get(Ym).getOrActivateProviderIdForServer(o,c?.resource);if(!l){let A=this.ctx.get(Ym).createAuthenticationProvider(o,s,c);if(!A&&(A=await this.ctx.get(Ym).createDynamicAuthenticationProvider(o,s,c),!A)){ur.warn(this.ctx,`Failed to create authentication provider for server ${r} (authServer: ${o})`);return}l=A.id}let u=c?.scopes_supported||s.scopes_supported||[],d=await this.ctx.get(Ym).getSessions(l,u,{authorizationServer:o},!0),f=this.ctx.get(MS).getAccountPreference(r,l),h;f&&(h=d.find(A=>A.account.label===f));let m=this.ctx.get(Ym).getProvider(l),g=!!this.ctx.get(JC).getClientRegistration(l);if(d.length){if(h)return this.updateAuthInfo(r,l,h.account.label,g),h.accessToken;try{let A=m?.label||l,y="Sign in to another account",E=d.map(v=>({title:v.account.label}));E.push({title:y}),E.push({title:"Cancel"});let _=await this.ctx.get(Is).showInformationModal(`The MCP server ${r} wants to access a ${A} account, Select an account for ${r} to use`,...E);if(!_||_.title==="Cancel"){ur.warn(this.ctx,"user cancelled the account selection");return}if(_.title!==y){let v=d.find(S=>S.account.label===_.title);if(!v){ur.warn(this.ctx,"selected account not found in sessions");return}return this.ctx.get(MS).updateAccountPreference(r,l,v.account),this.updateAuthInfo(r,l,v.account.label,g),v.accessToken}}catch(A){ur.error(this.ctx,"Failed during account selection:",A);return}}else try{if((await this.ctx.get(Is).showInformationModal(`The MCP Server Definition '${n}' wants to authenticate to ${m.label}.`,{title:"OK"},{title:"Cancel"}))?.title!=="OK"){ur.warn(this.ctx,"user cancelled the authentication request");return}}catch(A){ur.error(this.ctx,"Failed to show authentication request dialog:",A);return}try{let A=await m.createSession(u,{});return this.ctx.get(Is).showInformationMessageOnlyOnce("Authentication successful",`You have already authenticated with ${m.label}.`),this.ctx.get(MS).updateAccountPreference(r,l,A.account),this.updateAuthInfo(r,l,A.account.label,g),A.accessToken}catch(A){ur.error(this.ctx,`Failed to create authentication session for server ${r}:`,A),this.ctx.get(Is).showWarningMessageOnlyOnce("Authentication failed",`You need to restart the IDE to authenticate the MCP server again. ${A instanceof Error?A.message:String(A)}`);return}}};p();var F_o=ue(tl());var QNt=class t extends tM{static{a(this,"CLSMCPRuntimeNotifier")}static{this.notificationType=new F_o.ProtocolNotificationType("copilot/mcpRuntimeLogs")}constructor(e){super(),this.ctx=e}async notifyLog(e){await this.ctx.get(tr).connection.sendNotification(t.notificationType,{...e,time:Date.now()})}};p();var U_o=ue(tl());var ISl=new U_o.ProtocolRequestType("copilot/readMcpSamplingConfig"),qNt=class extends xY{constructor(r){super();this.ctx=r}static{a(this,"CopilotMcpSamplingConfigSender")}async readMcpSamplingConfig(r){let n=this.ctx.get(tr).connection,o;try{o=await n.sendRequest(ISl,r)}catch(l){throw new Error(`Request copilot/readMcpSamplingConfig failed with message: ${Ql(l)}`)}let[s,c]=o;if(c)throw new Error(`Request copilot/readMcpSamplingConfig failed with code: ${c.code}, message: ${c.message}`);return s}};p();var jNt=ue(tl());var wSl=new jNt.ProtocolRequestType("copilot/showPanelMessageRequest"),xSl=new jNt.ProtocolNotificationType("copilot/showPanelMessage"),HNt=class extends CTe{constructor(r){super();this.ctx=r}static{a(this,"CopilotMessageSender")}async sendPanelMessageNotification(r){return this.ctx.get(tr).connection.sendNotification(xSl,r)}async sendPanelMessageRequest(r){let n=this.ctx.get(tr).connection,o;try{o=await n.sendRequest(wSl,r)}catch(l){throw new Error(`Request copilot/showPanelMessageRequest failed with message: ${Ql(l)}`)}let[s,c]=o;if(c)throw new Error(`Request copilot/showPanelMessageRequest failed with code: ${c.code}, message: ${c.message}`);return s}};p();p();var q_o=require("node:stream"),xae=ue(Khr());var L7=new ce("UndiciFetcher"),$Nt=class extends Wt{constructor(r){super();this.ctx=r;this.name="UndiciFetcher";this.userAgent=`GithubCopilot/${r.get(ws).getVersion()}`,this.certificateConfigurator=new Zbe(r),this.proxySocketFactory=r.get(Ck),this.settings=r.get(fi).getHttpSettings(),this.updateNoProxyFilters(this.settings.noProxy),L7.info(this.ctx,"Initialized UndiciFetcher.",this.getSettingsLogProperties()),r.get(fi).onDidChangeHttpSettings(n=>{this.settings=n,this.updateNoProxyFilters(n.noProxy),L7.info(this.ctx,"HTTP settings changed; resetting Undici dispatchers.",this.getSettingsLogProperties()),this.resetDispatchers()})}static{a(this,"UndiciFetcher")}async fetch(r,n){let o={...n.headers??{}};o["User-Agent"]=this.userAgent;let s=n.body;if(n.json!==void 0){if(n.body!==void 0)throw new Error("Illegal arguments! Cannot pass in both 'body' and 'json'!");o["Content-Type"]="application/json",s=JSON.stringify(n.json)}let c=n.method??"GET";if(c!=="GET"&&c!=="POST"&&c!=="DELETE")throw new Error("Illegal arguments! 'method' must be 'GET', 'POST', or 'DELETE'!");let l=!1,u,d=kSl(n.signal),f=d.signal;if(n.timeout){let h=new AbortController;u=setTimeout(()=>{l=!0,h.abort()},n.timeout),f=f?AbortSignal.any([f,h.signal]):h.signal}try{let h={method:c,headers:o,body:s,signal:f};L7.debug(this.ctx,"Starting Undici fetch.",{target:GNt(r),method:c,hasBody:s!==void 0,hasTimeout:n.timeout!==void 0,hasSignal:f!==void 0});let{dispatcher:m,isProxy:g}=await this.getDispatcher(r),A=await(0,xae.fetch)(r,{...h,dispatcher:m});return L7.debug(this.ctx,"Undici fetch completed.",{target:GNt(r),status:A.status,isProxy:g}),new Xw(A.status,A.statusText,A.headers,()=>A.text(),()=>A.body?q_o.Readable.fromWeb(A.body):null)}catch(h){throw l?(L7.warn(this.ctx,"Undici fetch timed out.",{target:GNt(r),timeout:n.timeout}),new q7(`Request to <${r}> timed out after ${n.timeout}ms`,h)):DSl(h)}finally{u&&clearTimeout(u),d.cleanup()}}async disconnectAll(){await this.resetDispatchers()}async getDispatcher(r){let n=await this.certificateConfigurator.getCertificates(),o=n?n.join("\0"):"";this.dispatcherCertsKey!==o&&(L7.info(this.ctx,"Root certificate set changed; resetting Undici dispatchers.",{certificateCount:n?.length??0}),await this.resetDispatchers()),this.dispatcherCertsKey=o;let s={allowH2:!0,ca:n,rejectUnauthorized:this.settings.proxyStrictSSL??!0};return!this.settings.proxy||this.shouldBypassProxy(r)?(this.noProxyAgent||(L7.debug(this.ctx,"Creating direct Undici agent.",{target:GNt(r),bypassedProxy:!!this.settings.proxy,rejectUnauthorized:s.rejectUnauthorized}),this.noProxyAgent=new xae.Agent({allowH2:!0,connect:s})),{dispatcher:this.noProxyAgent,isProxy:!1}):(this.proxyAgent||(this.proxyAgent=this.buildProxyAgent(s)),{dispatcher:this.proxyAgent,isProxy:!0})}buildProxyAgent(r){let n=this.settings.proxy,o=new URL(n),s=(0,xae.buildConnector)(r);return L7.debug(this.ctx,"Creating proxied Undici agent.",{proxy:Q_o(n),hasProxyAuthorization:!!this.settings.proxyAuthorization,hasProxyKerberosServicePrincipal:!!this.settings.proxyKerberosServicePrincipal,rejectUnauthorized:r.rejectUnauthorized}),new xae.Agent({allowH2:!0,connect:a((c,l)=>{let u=c.port!==void 0&&c.port!==""?Number(c.port):c.protocol==="https:"?443:80,d={hostname:c.hostname,port:u,headers:{}};this.proxySocketFactory.createSocket(d,{hostname:o.hostname,port:o.port,authorization:this.settings.proxyAuthorization,kerberosServicePrincipal:this.settings.proxyKerberosServicePrincipal}).then(f=>{if(c.protocol!=="https:"){l(null,f);return}s({...c,httpSocket:f},l)}).catch(f=>{l(f instanceof Error?f:new Error(String(f)),null)})},"connect")})}async resetDispatchers(){let r=this.noProxyAgent,n=this.proxyAgent;this.noProxyAgent=void 0,this.proxyAgent=void 0,this.dispatcherCertsKey=void 0,(r||n)&&L7.debug(this.ctx,"Closing Undici dispatchers.",{hasDirectAgent:!!r,hasProxyAgent:!!n}),await Promise.all([r?.close().catch(()=>{}),n?.close().catch(()=>{})])}updateNoProxyFilters(r){let n=(r??[]).map(s=>s.trim()).filter(s=>s.length>0);if(this.noProxyFilters=void 0,n.length===0)return;if(n.includes("*")){this.noProxyFilters=[{regex:/.*/i}];return}let o=[];for(let s of n){let{host:c,port:l}=RSl(s),u=PSl(c);u&&o.push({regex:u,port:l})}o.length&&(this.noProxyFilters=o)}getSettingsLogProperties(){return{proxy:Q_o(this.settings.proxy),noProxyCount:this.settings.noProxy?.length??0,proxyStrictSSL:this.settings.proxyStrictSSL,hasProxyAuthorization:!!this.settings.proxyAuthorization,hasProxyKerberosServicePrincipal:!!this.settings.proxyKerberosServicePrincipal}}shouldBypassProxy(r){if(!this.noProxyFilters?.length)return!1;let n;try{n=new URL(r)}catch{return!1}let o=n.hostname;if(!o)return!1;let s=n.port||(n.protocol==="https:"?"443":"80"),c=o.toLowerCase();return this.noProxyFilters.some(l=>l.regex.test(c)&&(!l.port||l.port===s))}};function RSl(t){if(t.startsWith("[")){let r=t.indexOf("]");if(r!==-1){let n=t.slice(1,r),o=t.slice(r+1);return{host:n,port:o.startsWith(":")?o.slice(1):void 0}}}let e=t.split(":");return e.length===2?{host:e[0],port:e[1]}:{host:t}}a(RSl,"splitHostPort");function PSl(t){if(!t)return;t.startsWith(".")&&(t=`*${t}`);let e=t.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*");try{return new RegExp(`^${e}$`,"i")}catch{return}}a(PSl,"compileHostPattern");function GNt(t){try{let e=new URL(t);return`${e.protocol}//${e.host}`}catch{return"<invalid-url>"}}a(GNt,"describeUrl");function Q_o(t){if(!t)return"none";try{let e=new URL(t);return`${e.protocol}//${e.host}`}catch{return"<invalid-proxy-url>"}}a(Q_o,"describeProxy");function kSl(t){if(!t||t instanceof AbortSignal)return{signal:t,cleanup:a(()=>{},"cleanup")};let e=new AbortController,r=a(()=>e.abort(),"abort");return t.addEventListener("abort",r),t.aborted&&e.abort(),{signal:e.signal,cleanup:a(()=>t.removeEventListener("abort",r),"cleanup")}}a(kSl,"toNativeAbortSignal");function DSl(t){if(!(t instanceof Error)||!("cause"in t)||!t.cause||typeof t.cause!="object")return t;let e=t.cause,r=new Error(t.message,{cause:t.cause});r.stack=t.stack,r.name=t.name,r.code=t.code??e.code,r.syscall=t.syscall??e.syscall,r.errno=t.errno??e.errno;let n=e.statusCode;return typeof n=="number"&&(r.statusCode=n),r}a(DSl,"withCauseNetworkProperties");p();var vQe=new ce("fetcher"),MSl="https://default.exp-tas.com/",CQe=class extends Wt{constructor(r,n,o,s){super();this.ctx=r;this.defaultFetcher=n;this.fallbackFetcher=o;this.onFallbackSuccess=s}static{a(this,"FallbackFetcher")}async fetch(r,n){try{return await this.defaultFetcher.fetch(r,n)}catch(o){if(Tg(o)||`${r}/`.startsWith(MSl))throw o;vQe.info(this.ctx,`Request to <${r}> failed, attempting fallback.`,o);let s=await this.fallbackFetcher.fetch(r,n);return this.onFallbackSuccess(o,r),vQe.info(this.ctx,`Fallback fetch for <${r}> succeeded.`),s}}getImplementation(){return this.defaultFetcher.getImplementation()}get name(){return this.defaultFetcher.name}async disconnectAll(){await this.defaultFetcher.disconnectAll()}},VNt=class extends Wt{constructor(r,n,o){super();this.ctx=r;this.primary=n;this.secondary=o;this.default=new CQe(r,n,o,(s,c)=>{this.current!==o&&(vQe.info(r,`${n.name} failed; switching to ${o.name} for subsequent requests.`),this.current=o,ms(r,"fetcher.stickyFallback",s,{primary:n.name,secondary:o.name,failingHost:OSl(c),...BSl(s),...LSl(r)}),n.disconnectAll().catch(l=>{vQe.info(r,`Failed to disconnect ${n.name} after sticky fallback.`,l)}))}),this.current=this.default}static{a(this,"StickyFallbackFetcher")}reset(){this.current!==this.default&&(vQe.info(this.ctx,`Re-arming sticky fallback; ${this.primary.name} will be retried on the next request.`),this.current=this.default)}get name(){return this.current.name}getImplementation(){return this.current.getImplementation()}fetch(r,n){return this.current.fetch(r,n)}async disconnectAll(){await Promise.all([this.primary.disconnectAll(),this.secondary.disconnectAll()])}},NSl=["githubusercontent.com","githubcopilot.com","github.com","exp-tas.com","vscode-cdn.net"];function OSl(t){let e;try{e=new URL(t).host}catch{return"<invalid-url>"}let r=e.split(":")[0].toLowerCase();return NSl.some(o=>r===o||r.endsWith(`.${o}`))?e:"<other>"}a(OSl,"describeHost");function BSl(t){try{if(!(t instanceof Error)||!t.cause)return{};let e=t.cause;Array.isArray(e.errors)&&e.errors.length>0&&e.errors[0]instanceof Error&&(e=e.errors[0]);let r={};for(let[n,o]of Object.entries({errorCauseName:e.name,errorCauseCode:e.code,errorCauseSyscall:e.syscall}))typeof o=="string"&&o&&(r[n]=o.slice(0,100));return typeof e.statusCode=="number"&&(r.errorCauseStatusCode=String(e.statusCode)),r}catch{return{}}}a(BSl,"buildErrorCauseProperties");function LSl(t){try{let e=t.get(fi).getHttpSettings(),r=!!e.proxy,n="none";return r&&(n=e.proxyKerberosServicePrincipal?"kerberos":e.proxyAuthorization?"basic":"none"),{proxyConfigured:r?"true":"false",proxyAuth:n,proxyStrictSSL:e.proxyStrictSSL!==!1?"true":"false"}}catch{return{}}}a(LSl,"describeHttpContext");var H_o=new ce("fetcher");function FSl(t){return bt(t,He.UseHelixFetcher)==="true"}a(FSl,"isHelixFetcherForced");function USl(t){if(FSl(t))return new Wse(t);let e=new VNt(t,new $Nt(t),new Wse(t));return t.get(fi).onDidChangeHttpSettings(()=>e.reset()),e}a(USl,"createDefaultFetcher");var WNt=class extends Wt{constructor(r,n=USl(r),o=new Kbe(r)){super();this.ctx=r;this.defaultFetcher=n;this.editorFetcher=o;this.updateFetcher=a(()=>{let r,n;if(!this.editorFetcherCapability)n=`Using ${this.defaultFetcher.name}, editor does not have fetch capability.`,r=this.defaultFetcher;else if(this.fetchStrategy==="client")n="Using editor fetcher, fetch strategy set to client.",r=this.editorFetcher;else if(this.fetchStrategy==="native")n=`Using ${this.defaultFetcher.name}, fetch strategy set to native.`,r=this.defaultFetcher;else{let o=bt(this.ctx,He.DebugUseEditorFetcher);o?.toString()==="true"?(n="Using editor fetcher, debug flag is enabled.",r=this.editorFetcher):o?.toString()==="false"?(n=`Using ${this.defaultFetcher.name}, debug flag is disabled.`,r=this.defaultFetcher):(n="Editor fetcher capability available, will fallback if needed.",r=this.fallbackFetcher)}this.currentFetcher!=r&&(H_o.debug(this.ctx,n),this.currentFetcher=r)},"updateFetcher");this.currentFetcher=this.defaultFetcher,this.fallbackFetcher=new CQe(r,n,o,()=>{H_o.info(this.ctx,"Fallback fetch succeeded, switching to editor fetcher."),this.currentFetcher=this.editorFetcher}),r.get(An).onDidSetCapabilities(this.updateFetcher),r.get(fi).onDidChangeCopilotSettings(this.updateFetcher)}static{a(this,"AgentDelegatingFetcher")}get fetchStrategy(){return bt(this.ctx,He.FetchStrategy)}get editorFetcherCapability(){return this.ctx.get(An).getCapabilities().fetch??!1}getImplementation(){return this.currentFetcher.getImplementation()}get name(){return this.currentFetcher.name}fetch(r,n){return this.currentFetcher.fetch(r,n)}async disconnectAll(){await Promise.all([this.defaultFetcher.disconnectAll(),this.editorFetcher.disconnectAll()])}};p();var YNt=ue(ai());var zNt=class extends Is{constructor(r){super();this.ctx=r}static{a(this,"ConnectionNotificationSender")}get connection(){return this.ctx.get(tr).connection}showWarningMessage(r,...n){return this.connection.window.showWarningMessage(r,...n)}showInformationMessage(r,...n){return this.connection.window.showInformationMessage(r,...n)}showInformationModal(r,...n){return this.connection.sendRequest(YNt.ShowMessageRequest.type,{type:YNt.MessageType.Info,message:r,actions:n,modal:!0}).then(o=>o||void 0)}async sendBackgroundAgentSessionUpdate(r,n,o,s){await this.connection.sendNotification("backgroundAgent/sessionUpdate",{sessionId:r,event:n,agentProvider:o,turnIndex:s})}async sendBackgroundAgentTodosChanged(r){await this.connection.sendNotification("backgroundAgent/todosChanged",r)}};p();var j_o=ue(tl());var KNt=class t extends MZ{constructor(r){super();this.ctx=r}static{a(this,"CLSQuotaChangeNotifier")}static{this.notificationType=new j_o.ProtocolNotificationType("copilot/quotaChange")}async notifyQuotaChange(r){await this.ctx.get(tr).connection.sendNotification(t.notificationType,r)}};p();var G_o=ue(tl());var JNt=class t extends NH{constructor(r){super();this.ctx=r}static{a(this,"CLSQuotaWarningNotifier")}static{this.notificationType=new G_o.ProtocolNotificationType("copilot/quotaWarning")}async notifyQuotaWarning(r){await this.ctx.get(tr).connection.sendNotification(t.notificationType,r)}};p();var $_o=ue(tl());var QSl=new $_o.ProtocolNotificationType("$/copilot/rateLimitWarning"),ZNt=class extends XI{constructor(r){super();this.ctx=r}static{a(this,"CLSRateLimitNotifier")}async notifyRateLimitWarning(r){await this.ctx.get(tr).connection.sendNotification(QSl,r)}};p();p();var XNt=class extends PZe{static{a(this,"AgentWorkspaceWatcher")}async getWatchedFiles(){return(await this.ctx.get(KN).getWatchedFiles({workspaceUri:this.workspaceFolder.uri,workspaceFolder:this.workspaceFolder,excludeGitignoredFiles:!0,excludeIDEIgnoredFiles:!0})).watchedFiles}async getWatchedFileUris(){return this.ctx.get(KN).getWatchedFileUris({workspaceUri:this.workspaceFolder.uri,workspaceFolder:this.workspaceFolder,excludeGitignoredFiles:!0,excludeIDEIgnoredFiles:!0})}startWatching(){if(this.status==="ready")return;let e=this.ctx.get(KN);this._watcher=e.onDidChangeWatchedFiles(this.onDidChangeWatchedFilesHandler.bind(this)),this.status="ready"}stopWatching(){this.status="stopped",this._watcher?.dispose(),this._watcher=void 0}onDidChangeWatchedFilesHandler(e){if(e.workspaceFolder.uri!==this.workspaceFolder.uri)return;let n=e.created.filter(c=>!c.isRestricted&&!c.isUnknownFileExtension);if(n.length){let c=n.map(l=>l.document).filter(l=>l!==void 0);this.emitFilesCreated(c)}let o=e.changed.filter(c=>!c.isRestricted&&!c.isUnknownFileExtension);if(o.length){let c=o.map(l=>l.document).filter(l=>l!==void 0);this.emitFilesUpdated(c)}let s=e.deleted.filter(c=>!c.isRestricted&&!c.isUnknownFileExtension);s.length&&this.emitFilesDeleted(s.map(c=>({uri:c.uri})))}};var eOt=class extends iR{static{a(this,"AgentWorkspaceWatcherProvider")}createWatcher(e){return new XNt(this.ctx,e)}shouldStartWatching(e){return bv(this.ctx)?!!this.ctx.get(An).getCapabilities().watchedFiles&&(!this.hasWatcher(e)||this.getStatus(e)==="stopped"):!1}};function tOt(t){let e=new sS(process.env),r=oEo(e);r.set(sS,e),r.set(Wt,new WNt(r)),r.set(Sc,new Sc(r)),Sqr(r,{});let n=gun();r.set(Hn,n),r.set(nd,new nd(r));let o=new uNt;r.set(pm,o);let s=W_o.join(n.directory,Hlo),c=Xse.plaintextOnly();r.set(Xse,c);let{repo:l,diagnostics:u}=nuo(r,s,c);r.set(BO,l),r.set(Rr,new gVe(r,process.env)),r.set(Z1,new Z1(r)),r.set(qse,new qse(r));let d=new Ip(r,"agent");d.onInitialized(()=>ouo(r,u)),r.set(Ip,d),r.set(Ea,wlo),r.set(ix,new ix),r.set(vr,new Zj),r.set(zse,plo()),r.set(zu,new zu),r.set(Zo,y_o),r.set(ya,new nNt(r)),r.set(dre,new oNt(r)),r.set(iR,new eOt(r)),r.set(KN,new KN(r)),r.set(Xm,new Xm),r.set(eg,Qht(r,soo)),r.set(US,new US(r)),r.set(C5,new nAe),WEo(r),kZe(r),zEn(r),r.set(tr,new tr(r,t)),r.set(dC,new dC(r,{notifyReferenceState:a(R=>t.sendNotification("copilot/ide/sessionStateChanged",R),"notifyReferenceState")}));let f=new np(GEo(r));r.set(np,f),r.set(pQe,new pQe(r)),r.get(tr).onDeactivation(()=>f.dispose()),r.set(WE,new iNt(r)),r.set(Is,new zNt(r)),iuo(r,u),r.set(CTe,new HNt(r)),r.set(xY,new qNt(r)),r.set(xg,new qbe(r)),r.set(Us,new SNt(r));let h=new fQe(r,t);r.set(fQe,h),r.set(yl,h),r.set(dQe,new dQe(r)),r.set(lQe,new lQe(r)),r.set(af,new af);let m=new FT(r);r.set(Qr,m),r.set(FT,m),r.set(Xc,new tSe(r,process.env)),r.set(Vk,new Qae),r.set(_c,new _c(r)),d_o(r),BEo(r),r.set(nO,new nO),r.set(Wz,new Wz),r.set(oO,new oO),r.set(zz,new zz([])),r.set(J1,new dNt),r.set(V_o.ObservableWorkspace,new fk(r,!0,!0)),r.set(O5,new nSe),r.set(Pw,new Pw),r.set(fp,new fp(r)),r.set(Oy,new Rxt(r)),r.set(Tv,new bNt(r)),r.set(pf,new CNt(r)),r.set(IR,new IR(r)),r.set(Ps,new Ps(r)),r.set(YU,new YU(r)),r.set(JU,new JU(r)),r.set(p1,new p1(r)),r.set(IX,new IX(r)),r.set(SL,new SL),r.set(Zg,new Zg),r.set(sO,new sO(r)),r.set(q_,new UNt(r)),r.set(tM,new QNt(r)),r.set(VU,new VU(r)),r.set(MS,new xNt(r));let g=new d$(r);r.set(d$,g);let A=new AA(r,g,new INt(r),new wNt(r));r.set(AA,A),r.set(iP,new iP(g,A)),r.set(f$,f$.create(r,A)),r.set(lse,zXi(r)),r.set(XI,new ZNt(r)),r.set(Ste,new Ste),r.set(Bse,new Bse),r.set(Ym,new lNt(r)),r.set(JC,new sNt(r)),r.set(SO,new SO(r));let y=new V0(r);r.set(V0,y),r.set(Lse,new Lse(r,y)),r.set(Ed,new Ed(r,y)),r.set(iA,new iA(r,y)),r.set(cf,new cf(r,y)),r.set(Qp,new Qp(r,e,y));let E=new eU(r,y,n);r.set(eU,E),r.get(Rv).addListener(E.lifecycleListener);let _=new ZB(r,y,n);r.set(ZB,_),r.get(Rv).addListener(_.lifecycleListener),r.get(tr).onDeactivation(()=>{GI(()=>_.dispose())});let v=new GU(r,y,n);r.set(GU,v),r.get(Rv).addListener(v.lifecycleListener);let S=new aQe;r.set(aQe,S),r.set(xh,new Okt(r)),r.set($0,new $0(r,S)),r.set(xR,new xR),r.set(m1,new m1(r)),r.set(Bj,new Bj(r)),r.set(mR,new rL([new nL,new iL])),r.set(Ose,new Ose(r)),r.set(Pv,new Pv(r)),r.set(NH,new JNt(r)),r.set(MZ,new KNt(r)),r.set(q1,new q1(r)),r.set(Ns,new Ns(r));let T=new ea(r);r.set(ea,T),r.set(Km,new Km),r.set(Yte,new Yte(r)),r.set(X8,new X8(r,new DMt)),r.set(hse,new hse(r)),r.set(use,new use(r)),r.set(is,new is(r)),r.set(KB,new TNt(r)),r.set(rO,new rO(r)),r.set(Ek,new Ek(r.get(rO),r)),r.set(mL,new mL(r)),r.set(Lw,new fNt(r)),r.set(tS,new tS(r.get(Ek),r.get(Lw),r)),r.set(qm,new qm(r));let w=new Z8(r,T);return r.set(Z8,w),r.set(Yse,new Yse(r,T)),r.get(tr).onActivation(()=>{w.ensureInitialSync()}),r}a(tOt,"createLanguageServerContext");var TO=new ce("ACP");async function z_o(t){let e=t.get(ws);TO.info(t,`Starting Copilot ACP Agent v${e.getDisplayVersion()}`),t.get(sS).markReady(),t.get(Sh).githubAppId=hue,jSl(t),HSl(t),t.get(An).setCapabilities({subAgent:!0,cveRemediatorAgent:!1}),await t.get(Mt).primeToken()?TO.info(t,"Token primed successfully"):TO.warn(t,"Token priming failed - set GH_COPILOT_TOKEN or GITHUB_COPILOT_TOKEN environment variable"),t.get(Ip).initialize(!0),xSn()?await qSl(t):(qc(t,"acp.server.start",{acpPipeline:"internal"}),await Y_o(t))}a(z_o,"startACPServer");async function Y_o(t){TO.info(t,"Starting ACP server with internal pipeline");let e=TTe.Writable.toWeb(process.stdout),r=TTe.Readable.toWeb(process.stdin),n=u2e(e,r),o,s=new d2e(c=>o=new Gkt(c,t),n);s.signal.addEventListener("abort",()=>{TO.info(t,"ACP connection closed")}),await s.closed,await o?.dispose(),process.exit(0)}a(Y_o,"startACPServerInternal");async function qSl(t){TO.info(t,"Starting ACP server with CLI proxy"),qc(t,"acp.cli.discover");let e;try{e=await RSn()}catch(d){let f=d instanceof Error?d.message:String(d);TO.warn(t,`CLI discovery failed, falling back to internal pipeline: ${f}`),aSe(t,"acp.server.start",d,{acpPipeline:"internal-fallback"}),await Y_o(t);return}let r=e.args.length>0?`${e.path} ${e.args.join(" ")}`:e.path;TO.info(t,`Found Copilot CLI: ${r} v${e.version}`),qc(t,"acp.server.start",{acpPipeline:"cli",cliVersion:e.version,cliSource:e.source});let n=new $kt(e,t),o=TTe.Writable.toWeb(process.stdout),s=TTe.Readable.toWeb(process.stdin),c=u2e(o,s),l,u=new d2e(d=>l=new Wkt(d,t,n),c);u.signal.addEventListener("abort",()=>{TO.info(t,"ACP connection closed")}),await u.closed,await l?.dispose(),process.exit(0)}a(qSl,"startACPServerWithCLI");function HSl(t){let e=t.get(Ps);e.registerTool(new Fj({name:"create_file",description:"Create a new file in the workspace with the specified content.",inputSchema:b.Object({filePath:b.String({description:"The absolute path of the file to create."}),content:b.String({description:"The content to write to the new file."})})})),e.registerTool(new Fj({name:"insert_edit_into_file",description:"Edit an existing file by inserting, replacing, or deleting content.",inputSchema:b.Object({filePath:b.String({description:"The absolute path of the file to edit."}),content:b.Optional(b.String({description:"The new content for the file."})),edits:b.Optional(b.Array(b.Object({startLine:b.Number({description:"The starting line number (1-based)."}),endLine:b.Number({description:"The ending line number (1-based)."}),newContent:b.String({description:"The new content to replace the range with."})})))})})),e.registerTool(new Fj({name:"replace_string_in_file",description:"Replace a specific string in a file with a new string.",inputSchema:b.Object({filePath:b.String({description:"The absolute path of the file to edit."}),oldString:b.String({description:"The string to find and replace."}),newString:b.String({description:"The string to replace it with."})})})),TO.info(t,"Registered ACP client tools: create_file, insert_edit_into_file, replace_string_in_file")}a(HSl,"registerACPClientTools");function K_o(){let e=tOt({onRequest:a(()=>{},"onRequest"),onNotification:a(()=>{},"onNotification"),listen:a(()=>{},"listen"),sendNotification:a(()=>{},"sendNotification"),sendRequest:a(()=>Promise.resolve({}),"sendRequest"),workspace:{onDidChangeWorkspaceFolders:a(()=>{},"onDidChangeWorkspaceFolders")},client:{register:a(()=>Promise.resolve({}),"register")},console:{log:a(()=>{},"log"),info:a(()=>{},"info"),warn:a(()=>{},"warn"),error:a(()=>{},"error")},window:{showWarningMessage:a(()=>Promise.resolve(void 0),"showWarningMessage"),showInformationMessage:a(()=>Promise.resolve(void 0),"showInformationMessage")}}),r=new tY(e);return e.forceSet(Tv,r),{ctx:e,acpToolInvoker:r}}a(K_o,"createACPContext");function jSl(t,e=process.env){let r=e.GITHUB_ENTERPRISE_URL;r&&(TO.info(t,"Configuring GitHub Enterprise URL from GITHUB_ENTERPRISE_URL"),Sqe(t,r))}a(jSl,"configureGitHubEnterpriseUrl");p();var xzr=require("events"),bQe=ue(require("fs"));var nOt=ue(tl());p();var Z_o=ue(require("fs")),X_o=ue(require("http")),ITe=ue(require("path"));var rOt=class{constructor(e,r){this.port=e;let n;this.server=X_o.createServer((o,s)=>{if(o.headers.accept&&o.headers.accept=="text/event-stream")switch(s.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),o.url){case"/stdin":r.on("read",l=>{J_o(s,JSON.stringify(l))});return;case"/stdout":r.on("write",l=>{J_o(s,JSON.stringify(l))});return;default:s.writeHead(404),s.end();return}s.writeHead(200,{"Content-Type":"text/html"});let c=__dirname;ITe.basename(__dirname)!=="debug"&&(c=ITe.dirname(__dirname)),n??=Z_o.readFileSync(ITe.join(c,"dist","debugServer.html")).toString(),s.write(n),s.end()}),this.server.on("error",o=>{console.error(o)})}static{a(this,"DebugServer")}listen(){return this.server.listen(this.port),this}getPort(){return this.server.address().port}};function J_o(t,e){t.write("data: "+e.toString().replace(/\n/g,`
4334
+ \`\`\``}},ENt="runtime-logs",yNt=class extends Z0{static{a(this,"RuntimeLogsSkill")}constructor(e){super(ENt,"The application runtime or debug logs, which are used to view output logs from the console. This is useful for debugging and troubleshooting runtime issues.","Reading runtime logs",()=>e,r=>new vzr(r))}};p();var _Nt=ue(zD());var vNt=class extends Dm{constructor(r){super();this.ctx=r}static{a(this,"AgentConversationInspector")}shouldInspect(){return yqe(this.ctx)}get connection(){if(this.shouldInspect())return this.ctx.get(tr).connection}async inspectPrompt(r){return this.connection?.sendNotification(new _Nt.NotificationType("conversation/inspectPrompt"),r)}async inspectFetchResult(r){return this.connection?.sendNotification(new _Nt.NotificationType("conversation/inspectFetchResult"),r)}async documentDiff(r){return this.connection?.sendNotification(new _Nt.NotificationType("conversation/documentDiff"),r)}};p();var u_o=ue(tl());var uQe=class{constructor(e){this.ctx=e;this.notificationEndpoint="conversation/preconditionsNotification";e.get(_k).onChange(r=>{this.sendNotification(r)})}static{a(this,"PreconditionsNotifier")}sendNotification(e){return this.ctx.get(tr).connection.sendNotification(new u_o.NotificationType(this.notificationEndpoint),e)}};function d_o(t){lSl(t),uSl(t),s_o(t)}a(d_o,"activateConversationFeature");function lSl(t){t.set(as,new as(t)),t.set(X0,new X0),t.set(ly,new ly(t)),t.set(El,new fXe(t)),t.set(v7,new v7),t.set(Gc,new Gc(t)),t.set(_k,new _k(t)),t.set(uQe,new uQe(t)),t.set(Js,new NYe(t,new MYe(t))),t.set(iO,new iO),t.set(Dm,new vNt(t)),t.set(_2,new _2(t))}a(lSl,"registerContextDependencies");function uSl(t){let e=new Mm;e.registerSkill(new bnt(new Cnt)),e.registerSkill(new Xet(new GC(t,eL,IPn))),e.registerSkill(new qet(new GC(t,d2,vPn))),e.registerSkill(new Qet(new GC(t,$E,_Pn))),e.registerSkill(new ett),e.registerSkill(new mNt),e.registerSkill(new gNt(new GC(t,ANt,c_o))),e.registerSkill(new Itt(new GC(t,sL,Lkn))),e.registerSkill(new wnt(new GC(t,Cj,CBn))),e.registerSkill(new yNt(new GC(t,ENt,l_o))),e.registerSkill(new pNt(new GC(t,hNt,a_o))),e.registerSkill(new Rnt(new GC(t,v2,bBn))),e.registerSkill(new Pnt(new GC(t,yX,SBn))),t.set(Mm,e)}a(uSl,"registerSkills");p();var f_o=ue(tl()),p_o=ue(zD());var CNt=class extends pf{constructor(){super(...arguments);this.requestType=new f_o.ProtocolRequestType("conversation/invokeClientToolConfirmation");this.typeCheck=uu.Compile(b1n)}static{a(this,"AgentClientToolConfirmationInvoker")}async invokeClientToolConfirmation(r,n){let o=this.ctx.get(tr).connection,s;try{let c=await o.sendRequest(this.requestType,n),[l,u]=c;if(u){let d=new p_o.ResponseError(u.code,u.message,u.data);throw ot.error(this.ctx,`ResponseError while invoking client tool confirmation ${n.name}`,d),new Error(`Failed to invoke client tool confirmation ${n.name}: ${u.message}`)}s=l}catch(c){throw new Error(`Failed to invoke client tool confirmation ${n.name}: ${String(c)}`)}if(s==null)throw new Error(`Failed to invoke client tool confirmation ${n.name}: No result returned`);if(!this.typeCheck.Check(s))throw new _y(this.typeCheck.Errors(s));return s}};p();var h_o=ue(tl()),m_o=ue(zD());var bNt=class extends Tv{constructor(){super(...arguments);this.requestType=new h_o.ProtocolRequestType("conversation/invokeClientTool");this.typeCheck=uu.Compile(C1n)}static{a(this,"AgentClientToolInvoker")}async invokeClientTool(r,n){let o=this.ctx.get(tr).connection,s;try{let c=await o.sendRequest(this.requestType,n),[l,u]=c;if(u){let d=new m_o.ResponseError(u.code,u.message,u.data);throw ot.error(this.ctx,`ResponseError while invoking client tool ${n.name}`,d),new Error(`Failed to invoke client tool ${n.name}: ${u.message}`)}s=l}catch(c){throw new Error(`Failed to invoke client tool ${n.name}: ${String(c)}`)}if(s==null)throw new Error(`Failed to invoke client tool ${n.name}: No result returned`);if(!this.typeCheck.Check(s))throw new _y(this.typeCheck.Errors(s));return this.transformToToolResult(s)}transformToToolResult(r){let n=r.content.map(o=>typeof o.value=="string"?new Lr(o.value):new kZ(o.value));return new Wr(n,r.status??"success")}};p();p();function g_o(t,e,r){try{let n=t.get(rr).javaContextProviderParams(r);if(n){let o=JSON.parse(n);for(let[s,c]of Object.entries(o))e.set(s,c)}}catch(n){return Ur.debug(t,"Failed to get the active Java experiments for the Context Provider API",n),!1}return!0}a(g_o,"fillInJavaActiveExperiments");var Czr=ue(zD());var dSl={type:new Czr.NotificationType("featureFlagsNotification")},fSl={type:new Czr.NotificationType("copilot/didChangeFeatureFlags")},dQe=class{constructor(e){this.ctx=e;ds(e,r=>this.sendNotification(r))}static{a(this,"FeatureFlagsNotifier")}async sendNotification(e){let r=this.ctx,n=!1,o=!1,s=!1,c=!1,l=!1,u=!1,d=!1,f=!1,h=r.get(rr),m=await h.updateExPValuesAndAssignments(e);n=h.ideDataMigrationCompleted(m),o=h.appmodContextMenuEnabled(m),s=h.appmodProblemsViewEnabled(m),c=h.copilotAsDefaultForGaEnabled(m),l=h.aiAssistedPermissionEnabled(m),u=h.inlineChatUseCliEnabled(m),d=h.chatOnboardingTourEnabled(m),f=h.chatUsageTipsEnabled(m);let g={};r.get(rr).excludeRelatedFiles(m)&&(g.ExcludeRelatedFiles=!0);let A=aEr(r,m);A.length>0&&(g.ExpContextProviders=A);let y=new Map;edi(r,A,y,m),Lht(r,y,m),g_o(r,y,m);for(let[v,S]of y.entries())g[v]=S;let E=r.get(An),_=r.get(tr).connection;if(E.getCapabilities().didChangeFeatureFlags)await _.sendNotification(fSl.type,{envelope:{...e.envelope,token:void 0,expires_at:void 0,refresh_in:void 0,limited_user_quotas:void 0,limited_user_reset_date:void 0,error_details:void 0,organization_list:void 0,enterprise_list:void 0,endpoints:void 0},token:e.getTokenValues(),activeExps:g,byok:DH(e),data_migration_completed:n,appmod_context_menu_enabled:o,appmod_problems_view_enabled:s,copilot_as_default_for_ga_enabled:c,ai_assisted_permission_enabled:l,inline_chat_use_cli_enabled:u,chat_onboarding_tour_enabled:d,chat_usage_tips_enabled:f,user_info__cli_enabled:e.userInfo.cliEnabled,copilot_plan:e.userInfo.copilotPlan,abexp_features:m.filtersAndExp.exp.features,abexp_assignment_context:m.filtersAndExp.exp.assignmentContext});else{let v={rt:e.getTokenValue("rt")==="1",sn:e.getTokenValue("sn")==="1",chat:e.envelope.chat_enabled??!1,ic:e.envelope.chat_enabled??!1,pc:!0,ae:g,byok:DH(e),data_migration_completed:n,appmod_context_menu_enabled:o,appmod_problems_view_enabled:s,copilot_as_default_for_ga_enabled:c,ai_assisted_permission_enabled:l,inline_chat_use_cli_enabled:u,chat_onboarding_tour_enabled:d,chat_usage_tips_enabled:f};e.getTokenValue("agent_mode")==="0"&&(v.agent_mode=!1),e.getTokenValue("agent_mode_auto_approval")==="0"&&(v.agent_mode_auto_approval=!1),e.getTokenValue("mcp")==="0"&&(v.mcp=!1),e.envelope.chat_enabled&&(v.xc=!0),e.userInfo.cliEnabled!==void 0&&(v.user_info__cli_enabled=e.userInfo.cliEnabled),await _.sendNotification(dSl.type,v)}}};p();var SNt=class extends Us{constructor(r){super();this.ctx=r;this.notificationEndpoint="statusNotification"}static{a(this,"NotificationStatusReporter")}didChangeV1(r){let n=r.kind;r.busy&&n!=="Error"&&(n="InProgress"),this.ctx.get(tr).connection.sendNotification(aWt.type,{busy:r.busy,kind:r.kind,status:n,message:r.message??""}),this.ctx.get(tr).connection.sendNotification("didChangeStatus",{busy:r.busy,kind:r.kind,message:r.message,command:r.command})}didChangeV2(r){this.ctx.get(tr).connection.sendNotification(cWt.type,r)}};p();var A_o=new ce("AgentEncodingConfigurationService"),TNt=class extends KB{static{a(this,"AgentEncodingConfigurationService")}constructor(e){super(e),this.service=e.get(tr)}async requestEncodingFromClient(e){if(!this.service.clientCapabilities?.workspace?.configuration){A_o.debug(this.ctx,"Client does not support workspace/configuration, using UTF-8 fallback");return}try{let o=(await this.service.connection.workspace.getConfiguration([{scopeUri:e,section:"copilot.file.encoding"}]))[0];return o&&["utf8","utf-8","utf16le","ucs2","ucs-2","base64","base64url","latin1","binary","hex","ascii"].includes(o)?o:void 0}catch(n){A_o.debug(this.ctx,`Unable to request encoding for ${e}, using UTF-8 fallback`,n);return}}};p();var y_o=new nH;p();var v_o=ue(ai());var C_o={"mcp.contributionPoint.enabled":{description:"Whether extension-contributed MCP servers are enabled",defaultValue:!0,type:"boolean"},"customAgent.enabled":{description:"Whether custom agent functionality is enabled",defaultValue:!0,type:"boolean"},"customHook.enabled":{description:"Whether custom hook functionality is enabled",defaultValue:!0,type:"boolean"},"customSkill.enabled":{description:"Whether custom skill functionality is enabled",defaultValue:!0,type:"boolean"},"subagent.enabled":{description:"Whether subagent functionality is enabled",defaultValue:!0,type:"boolean"},"autoModel.enabled":{description:"Whether auto model functionality is enabled",defaultValue:!0,type:"boolean"},"cveRemediatorAgent.enabled":{description:"Whether CVE remediator agent functionality is enabled",defaultValue:!0,type:"boolean"},"agentMode.autoApproval.enabled":{description:"Whether agent mode auto-approval is enabled",defaultValue:!0,type:"boolean"},"agentMode.autoPilot.enabled":{description:"Whether agent mode Autopilot is enabled",defaultValue:!0,type:"boolean"},"copilotAgent.ide.enabled":{description:"Whether copilot agent functionality is enabled",defaultValue:!0,type:"boolean"}},pSl=new v_o.NotificationType("policy/didChange"),hSl=Object.fromEntries(Object.entries(C_o).map(([t,e])=>[t,{type:e.type}])),fQe=class extends yl{constructor(r,n){super();this.ctx=r;this.connection=n;this.disposed=!1;this.policyValues=new Map(Object.entries(C_o).map(([r,n])=>[r,n.defaultValue]));let o=r.get(tr);o.onActivation(()=>{this.startWatching().catch(s=>{Ur.error(this.ctx,"Unexpected error starting policy watcher:",s)})}),o.onDeactivation(()=>{this.dispose()})}static{a(this,"GroupPolicyWatcher")}async startWatching(){try{let{createWatcher:r}=await Promise.resolve().then(()=>ue(__o()));this.policyWatcher=r("IDEGitHubCopilot",hSl,n=>{this.handlePolicyUpdate(n).catch(o=>{Ur.error(this.ctx,"Error in handlePolicyUpdate:",o)})}),Ur.info(this.ctx,"Policy watcher started for GitHub Copilot Plugin")}catch(r){process.platform==="darwin"||process.platform==="win32"?Ur.exception(this.ctx,r,"Policy watcher failed to load on supported platform"):Ur.warn(this.ctx,"Policy watcher not available - continuing without policy watching:",r instanceof Error?r.message:String(r))}}async handlePolicyUpdate(r){Ur.debug(this.ctx,"GroupPolicyWatcher - policy update triggered",r);let n=!1;for(let[o,s]of Object.entries(r))if(s!==void 0){let c=o;this.policyValues.get(c)!==s&&(n=!0),this.policyValues.set(c,s),Ur.debug(this.ctx,`Policy change: ${o} = ${s}`)}n&&this.policyChangeEmitter.fire(void 0),this.policyValues.get("subagent.enabled")===!1&&this.ctx.get(An).setCapabilities({subAgent:!1}),this.policyValues.get("cveRemediatorAgent.enabled")===!1&&this.ctx.get(An).setCapabilities({cveRemediatorAgent:!1}),await this.sendPolicyChangeNotification()}getAllPolicyValues(){let r={};for(let[n,o]of this.policyValues.entries())r[n]=o;return r}getPolicyValue(r){return this.policyValues.get(r)}sendPolicyChangeNotification(){if(this.disposed)return Promise.resolve();let r=this.getAllPolicyValues();try{return this.connection.sendNotification(pSl,r)}catch{return Promise.resolve()}}dispose(){if(!this.disposed){if(this.disposed=!0,this.policyWatcher){try{this.policyWatcher.dispose()}catch(r){Ur.error(this.ctx,"Error disposing policy watcher:",r)}this.policyWatcher=void 0}Ur.debug(this.ctx,"Policy watcher stopped")}}};p();var S_o=ue(tl());var b_o=new ce("managedSettings.notifier"),mSl=new S_o.ProtocolNotificationType("copilot/didChangeManagedSettings"),pQe=class{constructor(e){this.ctx=e;this.disposed=!1;let r=e.get(tr);this.lifecycleSubscriptions=[r.onActivation(()=>{e.get(An).getCapabilities().didChangeManagedSettings&&this.activate().catch(n=>b_o.exception(e,n,".activate"))}),r.onDeactivation(()=>this.dispose())]}static{a(this,"ManagedSettingsNotifier")}dispose(){if(!this.disposed){this.disposed=!0;for(let e of this.lifecycleSubscriptions)e.dispose();this.settingsSubscription?.dispose()}}async activate(){let e=this.ctx.get(np);await e.refresh(),!this.disposed&&!this.settingsSubscription&&(this.settingsSubscription=e.observe(r=>this.notify(r)))}notify(e){this.ctx.get(tr).connection.sendNotification(mSl,e).catch(r=>b_o.debug(this.ctx,"Failed to send managed settings notification:",r))}};p();var INt=class{constructor(e){this.ctx=e}static{a(this,"McpServerManagerAdapter")}serversChanged(e){this.ctx.get(tr).connection.sendNotification(Doo,{scope:e}).catch(()=>{})}serverDetailsChanged(e){this.ctx.get(tr).connection.sendNotification(Moo,{source:e.source,name:e.name}).catch(()=>{})}unregisterProvider(e){return this.ctx.get(SO).unregisterProvider(e)}};p();var gSl="mcp-disabled-tools",wNt=class{constructor(e){this.ctx=e;let r=e.get(An);this.capabilitiesReady=r.hasReceivedCapabilities()?Promise.resolve():new Promise(n=>{let o=r.onDidSetCapabilities(()=>{o.dispose(),n()})})}static{a(this,"CLSMcpServerStateStore")}async waitForInitialization(){await this.capabilitiesReady,await this.ctx.get(nd).waitForInitialization()}shouldRestoreStopped(e,r){let n=`mcp-stopped-${e}`,o=this.ctx.get(nd),s=o.get(n);return s===r?!0:(s!==void 0&&o.delete(n),!1)}setStopped(e,r){r?this.ctx.get(nd).set(`mcp-stopped-${e}`,r):this.ctx.get(nd).delete(`mcp-stopped-${e}`)}getDisabledTools(e,r){let n=this.ctx.get(nd).get(this.toolStateKey(e));if(!n)return new Set;try{let o=JSON.parse(n);return!ASl(o)||o.configurationId!==r?new Set:new Set(o.disabledTools)}catch{return new Set}}async commitToolStates(e){let r=e.map(n=>{let o=this.toolStateKey(n.serverKey),s=[...new Set(n.disabledTools)].sort();if(s.length===0)return{key:o,delete:!0};let c={configurationId:n.configurationId,disabledTools:s};return{key:o,value:JSON.stringify(c)}});await this.ctx.get(nd).applyDurableBatch(r)}async clearToolStates(e){let r=[...new Set(e)].map(n=>({key:this.toolStateKey(n),delete:!0}));await this.ctx.get(nd).applyDurableBatch(r)}toolStateKey(e){return`${gSl}:${JSON.stringify([e])}`}};function ASl(t){return typeof t=="object"&&t!==null&&"configurationId"in t&&typeof t.configurationId=="string"&&"disabledTools"in t&&Array.isArray(t.disabledTools)&&t.disabledTools.every(e=>typeof e=="string")}a(ASl,"isPersistedToolState");p();var xNt=class extends MS{static{a(this,"CLSMcpAuthServer")}constructor(e){super(),this.ctx=e}getAccountPreference(e,r){let n=this._getAccountPreferenceKey(e,r);return this.ctx.get(nd).get(n)}updateAccountPreference(e,r,n){let o=this._getAccountPreferenceKey(e,r);this.ctx.get(nd).set(o,n.label)}removeAccountPreference(e,r){let n=this._getAccountPreferenceKey(e,r);this.ctx.get(nd).delete(n)}_getAccountPreferenceKey(e,r){return`mcp-${e}-${r}`}};p();p();p();p();var T_o=ue(ai());var RNt="mcp.elicitation",PNt=class{constructor(){this.ongoingMcpElicitationCalls=!1;this.elicitationRequestType=new T_o.ProtocolRequestType("copilot/mcpElicitation")}static{a(this,"ElicitationHandler")}async handleRequest(e,r,n,o,s){if(this.ongoingMcpElicitationCalls)throw new Cn($n.InternalError,"Another MCP elicitation request is already in progress.");this.ongoingMcpElicitationCalls=!0;try{let c=n.params.message;if("url"in n.params)throw new Cn($n.InvalidRequest,"URL mode elicitation is not supported");let l=n.params.requestedSchema;ur.info(e.ctx,`MCP server ${r} elicitation request received: ${c}`),await pa(e.ctx,{message:`MCP server ${r} elicitation request received: ${c}`,server:r});let d=await e.ctx.get(WE).sendRequest(this.elicitationRequestType,{mcpServer:r,message:c,requestedSchema:l,conversationId:e.conversation.id.toString(),roundId:o??e.agentToolCalls.getRound(0).roundId,turnId:e.turn.id.toString(),toolCallId:s??e.agentToolCalls.getRound(0).toolCalls[0].id});return ut(e.ctx,RNt,zt.createAndMarkAsIssued()),Gt(e.ctx,RNt),d}catch(c){let l=`Failed to process elicitation request: ${c instanceof Error?c.message:String(c)}`;throw ur.error(e.ctx,l,c),await Dd(e.ctx,{message:l,server:r}),Ha(e.ctx,c,RNt),ms(e.ctx,RNt,c),new Cn($n.InternalError,l)}finally{this.ongoingMcpElicitationCalls=!1}}};p();p();p();var Fk=class{static{a(this,"MCPNotificationHandler")}constructor(e,r){this.ctx=e,this.serverName=r}};var hQe=class extends Fk{static{a(this,"LoggingMessageNotificationHandler")}constructor(e,r){super(e,r)}handle(e){let r=typeof e.params.data=="string"?e.params.data:JSON.stringify(e.params.data);switch(e.params.logger&&(r=`${e.params.logger}: ${r}`),e.params?.level){case"debug":case"info":case"notice":ur.info(this.ctx,`MCP server ${this.serverName} log:`,r),pa(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break;case"warning":ur.warn(this.ctx,`MCP server ${this.serverName} log:`,r),rM(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break;case"error":case"critical":case"alert":case"emergency":ur.error(this.ctx,`MCP server ${this.serverName} log:`,r),Dd(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break;default:ur.info(this.ctx,`MCP server ${this.serverName} log:`,r),pa(this.ctx,{message:`Notification message: ${r}`,server:this.serverName});break}}};p();var mQe=class extends Fk{static{a(this,"PromptListChangedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,"Prompts list changed, refreshing prompts..."),pa(this.ctx,{message:"Prompts list changed, refreshing prompts...",server:this.serverName}),this.emitter.emit(xPt)}};p();var gQe=class extends Fk{static{a(this,"ResourceListChangedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,"Resource list changed, refreshing resources..."),pa(this.ctx,{message:"Resource list changed, refreshing resources...",server:this.serverName}),this.emitter.emit(wPt)}};p();var AQe=class extends Fk{static{a(this,"ResourceUpdatedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,`Resource updated for URI: ${e.params.uri}`),pa(this.ctx,{message:`Resource updated: ${e.params.uri}`,server:this.serverName}),this.emitter.emit(bio)}};p();var kNt=class{static{a(this,"MCPRequestHandler")}constructor(e,r){this.ctx=e,this.serverName=r}},yQe=class extends kNt{static{a(this,"ListRootsRequestHandler")}constructor(e,r){super(e,r)}handle(e){ur.info(this.ctx,`MCP server ${this.serverName} requested roots list`);let r=[];try{(this.ctx.get(Qr).getWorkspaceFolders()||[]).forEach(o=>{r.push(o)}),pa(this.ctx,{message:`Requested roots list and found ${r.length} root(s).`,server:this.serverName})}catch(n){ur.error(this.ctx,`Error getting workspace folders for MCP server ${this.serverName}:`,n),Dd(this.ctx,{message:`Error getting workspace folders for MCP server ${this.serverName}: ${n instanceof Error?n.message:String(n)}`,server:this.serverName})}return{roots:r}}};p();var EQe=class extends Fk{static{a(this,"ToolListChangedNotificationHandler")}constructor(e,r,n){super(e,r),this.emitter=n}handle(e){ur.info(this.ctx,"Tool list changed, refreshing tools..."),pa(this.ctx,{message:"Tool list changed, refreshing tools...",server:this.serverName}),this.emitter.emit(IPt)}};p();var I_o="mcp.sampling";function _Qe(t,e){return t.toLowerCase()===e.toLowerCase()}a(_Qe,"equalsIgnoreCase");function ySl(t,e){return t.toLowerCase().includes(e.toLowerCase())}a(ySl,"includesIgnoreCase");function w_o(t){if(t.kind==="copilot")return[t.modelFamily];let e=_Qe(t.modelId,t.uiName)?[t.modelId]:[t.modelId,t.uiName];return[...e,...e.map(r=>`${r} (${t.providerName})`)]}a(w_o,"candidateModelNames");function ESl(t,e){let r=t.kind==="copilot"?t.modelFamily:t.modelId;return _Qe(r,e.trim())}a(ESl,"isLegacyAllowedModel");function _Sl(t,e){return t.kind==="byok"&&_Qe(t.modelId,e.modelId)&&_Qe(t.providerName,e.providerName)}a(_Sl,"isAllowedBYOKModel");function vSl(t,e,r){return t.filter(n=>n.kind==="byok"&&r!==void 0?r.some(o=>_Sl(n,o)):e===void 0?!0:e.length===0?r===void 0:e.some(o=>ESl(n,o)))}a(vSl,"filterAllowedModels");function CSl(t,e){let r=e?.trim();return r?t.find(o=>w_o(o).some(s=>_Qe(s,r)))??t.find(o=>w_o(o).some(s=>ySl(s,r))):void 0}a(CSl,"findHintedModel");function bSl(t,e,r){let n=vSl(t,r.allowedModels,r.allowedBYOKModels);if(n.length===0)throw new Error("No available models found");for(let o of e??[]){let s=CSl(n,o.name);if(s!==void 0)return s}return n[0]}a(bSl,"selectSamplingModelCandidate");var DNt=class{constructor(){this.defaultTemperature=.7;this.ongoingMcpSamplingCalls=!1}static{a(this,"McpSamplingService")}async handleSamplingRequest(e,r,n,o,s,c){try{if(this.ongoingMcpSamplingCalls)throw new Cn($n.InternalError,"Another MCP sampling request is already in progress.");this.ongoingMcpSamplingCalls=!0,ur.info(e.ctx,`MCP server ${o} requested sampling:`,n.params),await pa(e.ctx,{message:`Sampling request received from ${o}: ${JSON.stringify({messageCount:n.params.messages.length,systemPrompt:n.params.systemPrompt?"provided":"none",maxTokens:n.params.maxTokens,temperature:n.params.temperature})}`,server:o});let l=await e.ctx.get(xY).readMcpSamplingConfig({serverName:o});if(l.alwaysDeny)throw new Error("User has chosen to always deny MCP tools with this mcp server.");if(!l.alwaysAllow){let y=n.params.messages.filter(v=>v.role==="user"),E=y[y.length-1];if((await e.ctx.get(pf).invokeClientToolConfirmation(e,{name:o,title:`Allow MCP tools from "${o}" to make LLM requests?`,message:`The MCP server "${o}" has issued a request to make a language model call. Do you want to allow it to make requests during chat?`,input:{...E,toolType:"mcp_tool",mcpType:"sampling",mcpServerName:o},conversationId:e.conversation.id,roundId:s??e.agentToolCalls.getRound(0).roundId,turnId:e.turn.id,toolCallId:c??e.agentToolCalls.getRound(0).toolCalls[0].id})).result==="dismiss")throw new rl}let u=await this.getModelConfiguration(e.ctx,n,l),d=this.convertMCPMessagesToChatML(e.ctx,n.params.messages,n.params.systemPrompt),f=(await kPe(e.ctx,e.turn.telemetryId,e.conversation.telemetryId)).extendedBy({messageSource:"mcp.sampling"}),m=new qn.CancellationTokenSource().token,g=await r.fetchResponse({modelConfiguration:u,messages:d,uiKind:"conversationPanel",llmInteraction:e.toLlmInteraction(),temperature:n.params.temperature??this.defaultTemperature,stop:n.params.stopSequences,turnId:String(e.turn.id)},m,f),A=this.processFetchResult(g,u.uiName);return mo(e.ctx,I_o,{userPreference:l.alwaysAllow?"autoApprove":l.alwaysDeny?"autoDeny":"none",selectedModel:u.uiName,success:"true"}),A}catch(l){let u=`Failed to process sampling request: ${l instanceof Error?l.message:String(l)}`;throw ur.error(e.ctx,u,l),await Dd(e.ctx,{message:u,server:o}),mo(e.ctx,I_o,{success:"false",errorMessage:u}),new Cn($n.InternalError,u)}finally{this.ongoingMcpSamplingCalls=!1}}convertMCPMessagesToChatML(e,r,n){let o=[];n&&o.push({role:"system",content:n});for(let s of r){let c,l=Array.isArray(s.content)?s.content[0]:s.content;if(!l){ur.warn(e,"Empty content in MCP message, skipping");continue}if(l.type==="text")c=l.text;else if(l.type==="image")c=[{type:"image_url",image_url:{url:atob(l.data)}}];else throw ur.warn(e,`Unknown MCP content type: ${l.type}, defaulting to empty array`),new Error(`Unknown MCP content type: ${l.type}`);let u;switch(s.role){case"user":u="user";break;case"assistant":u="assistant";break;default:u="user",ur.warn(e,`Unknown MCP role: ${s.role}, defaulting to user`)}o.push({role:u,content:c})}return o}processFetchResult(e,r){if(e.type!=="success"){let n=`Unexpected fetch result type: ${e.type}.`;throw"reason"in e&&(n+=` Reason: ${e.reason}`),new Error(n)}return{model:r,role:"assistant",content:{type:"text",text:e.value}}}async getModelConfiguration(e,r,n){let o=await this.getAvailableBYOKModels(e),s=[...(await this.getAvailableModels(e)).map(l=>({kind:"copilot",modelFamily:l})),...o.map(l=>({kind:"byok",modelId:l.name,providerName:l.provider,uiName:l.capabilities?.name??l.name}))],c=bSl(s,r.params.modelPreferences?.hints,n);return c.kind==="byok"?QB(e,c.providerName,c.modelId):await e.get(El).getBestChatModelConfig([c.modelFamily])}async getAvailableModels(e){return(await e.get(Js).getMetadata()).filter(n=>n.capabilities.type&&!_de.has(n.capabilities.family)&&n.capabilities.supports?.tool_calls&&(n.capabilities.limits?.max_prompt_tokens??!1)).map(n=>n.capabilities.family)}async getAvailableBYOKModels(e){return(await new As(e.get(Hn)).getAllModels(e)).filter(n=>n.capabilities?.toolCalling)}};p();var bTe=class extends Error{constructor(r,n){super(r);this.challengeInfo=n;this.name="ScopeChallengeError"}static{a(this,"ScopeChallengeError")}};function x_o(t,e){if(t!==403||!e)return null;let{scheme:r,params:n}=nht(e);if(r!=="Bearer"||n.error!=="insufficient_scope")return null;let o=n.scope;if(!o)return null;let s=o.split(" ").filter(c=>c.length>0);return{error:n.error,requiredScopes:s,resourceMetadata:n.resource_metadata,errorDescription:n.error_description}}a(x_o,"parseScopeChallenge");p();var Szr=/[^a-z0-9_-]/gi;var SSl=process.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function R_o(){let t={};for(let e of SSl){let r=process.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}a(R_o,"getDefaultEnvironment");async function P_o(t,e,r){if(!e.description){let n=`Tool ${e.name} does not have a description. Tools must be accurately described to be called.`;ur.warn(t,n),await rM(t,{message:n,server:r,tool:e.name}),e.description="<empty>"}if(Szr.lastIndex=0,Szr.test(e.name)){let n=`Tool ${e.name} is invalid. Tools names may only contain [a-zA-Z0-9_-]`;ur.warn(t,n),await rM(t,{message:n,server:r,tool:e.name}),e._nameForModel=e.name.replace(Szr,"_")}else e._nameForModel=e.name;return e}a(P_o,"normalizeTool");var MNt=class{constructor(){this.seenPrefixes=new Set}static{a(this,"McpPrefixGenerator")}generate(e){let r="mcp_"+e.toLowerCase().replace(/[^a-z0-9_.-]+/g,"_").slice(0,13),n=r;for(let o=2;this.seenPrefixes.has(n);o++)n=r+o;return this.seenPrefixes.add(n),n}};p();async function*Tzr(t,e,r){let n;do{let o=await t(n),s=e(o);s.length>0&&(yield s),n=r(o)}while(n!==void 0)}a(Tzr,"paginateRequest");async function Izr(t){let e=[];for await(let r of t)e.push(...r);return e}a(Izr,"flattenAsyncIterable");var k_o=ue(require("events"));var wzr=6e4,RY=class{constructor(e,r,n){this.transport=null;this.emitter=new k_o.default;this.ongoingMcpToolCalls=[];this.isSamplingEnabled=!1;this.isElicitationEnabled=!1;this.cachedTools=[];this.cachedResources=[];this.cachedResourceTemplates=[];this.cachedPrompts=[];this.ctx=e;let o=e.get(An);this.isSamplingEnabled=o.getCapabilities().mcpSampling,this.isSamplingEnabled&&(this.samplingService=new DNt),this.isElicitationEnabled=o.getCapabilities().mcpElicitation,this.isElicitationEnabled&&(this.elicitationHandler=new PNt);let s=this.ctx.get(vr).getEditorInfo(),c=this.ctx.get(vr).getEditorPluginInfo();this.mcp=new C$({name:`${s.name}/${c.name}`,version:`${s.version}/${c.version}`},{capabilities:{roots:{listChanged:!0},...this.isSamplingEnabled?{sampling:{}}:{},...this.isElicitationEnabled?{elicitation:{}}:{}}}),this.name=r}static{a(this,"MCPBaseServer")}get isConnected(){return this.transport!==null}async connect(e){if(this.transport=this.initTransport(e),!this.transport){let r=new Error("Failed to initialize transport");throw ur.error(this.ctx,"Transport initialization failed:",r),r}this.addListeners();try{await this.mcp.connect(this.transport),this.initializeCache()}catch(r){throw ur.error(this.ctx,"Connection failed:",r),await Dd(this.ctx,{message:`Failed to connect to MCP server: ${r instanceof Error?r.message:String(r)}`,server:this.name}),this.transport=null,r}}async initializeCache(){await Promise.all([this.refreshToolsCache(!0),this.refreshResourcesCache(!0),this.refreshPromptsCache(!0)]),this.emitter.emit($z)}getCachedTools(){return this.cachedTools}getCachedResources(){return this.cachedResources}getCachedResourceTemplates(){return this.cachedResourceTemplates}getCachedPrompts(){return this.cachedPrompts}restoreCacheFromPersistence(e){this.cachedTools=[...e.tools],this.cachedResources=[...e.resources],this.cachedResourceTemplates=[...e.resourceTemplates],this.cachedPrompts=[...e.prompts]}async createMcpTool(e,r){let n={name:e.name,description:e.description,inputSchema:{...e.inputSchema||{},properties:e.inputSchema?.properties||{},type:e.inputSchema?.type||"object"},_status:r??"enabled",_nameForModel:e.name,annotations:e.annotations};return await P_o(this.ctx,n,this.name),n}async handleMCPOperationError(e,r,n){try{return await e()}catch(o){let s=o;if(s instanceof bTe){let l=`OAuth scope challenge during ${r} from server ${this.name}. Required scopes: ${s.challengeInfo.requiredScopes.join(", ")}`;if(n.scopeChallengeHandler)return n.scopeChallengeHandler(s.challengeInfo.requiredScopes);if(ur.info(this.ctx,l),await Dd(this.ctx,{message:l,server:this.name}),n.errorHandler)return n.errorHandler(l);if("defaultValue"in n)return n.defaultValue;throw s}if(s.code===$n.MethodNotFound){if(ur.info(this.ctx,`${r} not supported by server ${this.name}:`,s.message),"methodNotFoundValue"in n)return n.methodNotFoundValue;if(n.errorHandler)return n.errorHandler("Method not found");if("defaultValue"in n)return n.defaultValue;throw new Error("No default value or error handler provided")}let c=`Failed to ${r} from server ${this.name}: ${s.message||String(s)}`;if(ur.error(this.ctx,c),await Dd(this.ctx,{message:c,server:this.name}),n.errorHandler)return n.errorHandler(c);if("defaultValue"in n)return n.defaultValue;throw new Error("No default value or error handler provided")}}async*getResourcesIterable(e){if(!this.transport)return;let r=Tzr(n=>this.mcp.listResources({cursor:n},{signal:e}),n=>n.resources,n=>n.nextCursor);for await(let n of r)yield n}async getResources(e){return await this.handleMCPOperationError(async()=>{let r=await Izr(this.getResourcesIterable(e));return pa(this.ctx,{message:`Discovered ${r.length} resources`,server:this.name}),r},"get resources",{defaultValue:[]})}async*getResourceTemplatesIterable(e){if(!this.transport)return;let r=Tzr(n=>this.mcp.listResourceTemplates({cursor:n},{signal:e}),n=>n.resourceTemplates,n=>n.nextCursor);for await(let n of r)yield n}async getResourceTemplates(e){return await this.handleMCPOperationError(async()=>{let r=await Izr(this.getResourceTemplatesIterable(e));return pa(this.ctx,{message:`Discovered ${r.length} resource templates`,server:this.name}),r},"get resource templates",{defaultValue:[]})}async readResource(e){return this.transport?await this.handleMCPOperationError(async()=>await this.mcp.readResource({uri:e}),`read resource ${e}`,{defaultValue:null,methodNotFoundValue:{contents:[]}}):null}async subscribeResource(e){this.transport&&await this.handleMCPOperationError(async()=>{await this.mcp.subscribeResource({uri:e})},`subscribe resource ${e}`,{defaultValue:void 0})}async unsubscribeResource(e){this.transport&&await this.handleMCPOperationError(async()=>{await this.mcp.unsubscribeResource({uri:e})},`unsubscribe resource ${e}`,{defaultValue:void 0})}async callTool(e,r,n,o,s,c){let l=DX();this.ongoingMcpToolCalls.push({requestId:l,toolName:e,turnContext:o,roundId:s,toolCallId:c});let u=a(d=>{let f=new Wr([],"error");return f.content.push(new Lr(d)),f},"createErrorResult");try{return await this.handleMCPOperationError(async()=>{let d=new AbortController;n.onCancellationRequested(()=>{d.abort()});let f=await this.mcp.callTool({name:e,arguments:r,_meta:{progressToken:l}},IS,{onprogress:a(m=>{ur.info(this.ctx,`${e} calling progress`,m),pa(this.ctx,{message:`${e} calling progress:`+JSON.stringify(m),server:this.name})},"onprogress"),resetTimeoutOnProgress:!0,signal:d.signal});if(f&&typeof f=="object"){if(f.content||f.structuredContent)return this.formatToolResult(f);let m=`Error calling tool ${e}: `+JSON.stringify(f);return ur.error(this.ctx,m),await Dd(this.ctx,{message:m,server:this.name,tool:e}),u(m)}let h=`Error calling tool ${e}: `+JSON.stringify(f);return ur.error(this.ctx,h),await Dd(this.ctx,{message:h,server:this.name,tool:e}),u(h)},`call tool ${e}`,{errorHandler:u})}finally{this.ongoingMcpToolCalls=this.ongoingMcpToolCalls.filter(d=>d.requestId!==l)}}async getPrompt(e,r){return(await this.mcp.getPrompt({name:e,arguments:r})).messages}async completePrompt(e,r,n,o){return(await this.mcp.complete({ref:{type:"ref/prompt",name:e},argument:{name:r,value:n},context:{arguments:o}})).completion.values}addListeners(){this.mcp.onclose=()=>{ur.info(this.ctx,`MCP server ${this.name} connection closed.`),pa(this.ctx,{message:"Connection state: Stopped",server:this.name})},this.mcp.onerror=e=>{ur.error(this.ctx,`MCP server ${this.name} error:`,e),Dd(this.ctx,{message:`Connection state: Error: ${e.message}`,server:this.name})},this.mcp.setNotificationHandler(Tte,e=>new hQe(this.ctx,this.name).handle(e)),this.mcp.setNotificationHandler(j8,e=>new EQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setNotificationHandler(H8,e=>new mQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setNotificationHandler(q8,e=>new gQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setNotificationHandler(Sgr,e=>new AQe(this.ctx,this.name,this.emitter).handle(e)),this.mcp.setRequestHandler(Ogr,e=>(this.initRootsTracker(),new yQe(this.ctx,this.name).handle(e))),this.isSamplingEnabled&&this.mcp.setRequestHandler(IOe,async(e,r)=>{if(!this.samplingService){let o="Sampling is not enabled.";throw ur.error(this.ctx,o),new Cn($n.InternalError,o)}if(this.ongoingMcpToolCalls.length===0){let o="No ongoing tool call context found for sampling request.";throw ur.error(this.ctx,o),new Cn($n.InternalError,o)}let n=this.ongoingMcpToolCalls[this.ongoingMcpToolCalls.length-1];return await this.samplingService.handleSamplingRequest(n.turnContext,new Sc(this.ctx),e,this.name,n.roundId,n.toolCallId)}),this.isElicitationEnabled&&this.mcp.setRequestHandler(xOe,async e=>{if(this.ongoingMcpToolCalls.length===0){let n="No ongoing tool call context found for elicitation request.";throw ur.error(this.ctx,n),new Cn($n.InternalError,n)}let r=this.ongoingMcpToolCalls[this.ongoingMcpToolCalls.length-1];return this.elicitationHandler.handleRequest(r.turnContext,this.name,e,r.roundId,r.toolCallId)}),this.setupDataRefreshListeners()}setupDataRefreshListeners(){this.emitter.on(IPt,()=>{this.refreshToolsCache()}),this.emitter.on(wPt,()=>{this.refreshResourcesCache()}),this.emitter.on(xPt,()=>{this.refreshPromptsCache()})}async refreshToolsCache(e=!1){this.transport&&await this.handleMCPOperationError(async()=>{let r=AbortSignal.timeout(wzr),n=await this.mcp.listTools({},{signal:r}),o=new Map(this.cachedTools.map(s=>[s.name,s._status]));this.cachedTools=await Promise.all(n.tools.map(s=>this.createMcpTool(s,o.get(s.name)))),ur.info(this.ctx,`Refreshed ${this.cachedTools.length} tools for server ${this.name}`),e||this.emitter.emit($z)},"refresh tools",{defaultValue:void 0})}async refreshResourcesCache(e=!1){if(this.transport)try{let r=AbortSignal.timeout(wzr),[n,o]=await Promise.all([this.getResources(r),this.getResourceTemplates(r)]);this.cachedResources=n,this.cachedResourceTemplates=o,ur.info(this.ctx,`Refreshed ${this.cachedResources.length} resources and ${this.cachedResourceTemplates.length} templates for server ${this.name}`),e||this.emitter.emit($z)}catch(r){ur.error(this.ctx,`Failed to refresh resources cache for ${this.name}:`,r)}}async refreshPromptsCache(e=!1){this.transport&&await this.handleMCPOperationError(async()=>{let r=AbortSignal.timeout(wzr),n=await this.mcp.listPrompts({},{signal:r});this.cachedPrompts=n.prompts,ur.info(this.ctx,`Refreshed ${this.cachedPrompts.length} prompts for server ${this.name}`),e||this.emitter.emit($z)},"refresh prompts",{defaultValue:void 0})}formatToolResult(e){let r=new Wr([],e.isError===!0?"error":"success");for(let n of e.content??[])if(n.type==="text")r.content.push(new Lr(n.text));else if(n.type==="image"||n.type==="audio")r.content.push(new RH({mimeType:n.mimeType,data:n.data}));else if(n.type==="resource"){let o=n.resource;if("text"in o)r.content.push(new Lr(o.text));else if("blob"in o){let s=o.mimeType||"application/octet-stream";r.content.push(new RH({mimeType:s,data:o.blob}))}}return e.structuredContent&&r.content.push(new Lr(JSON.stringify(e.structuredContent))),r}initRootsTracker(){let e=this.ctx.get(Qr);this.rootsTracker=e.onDidChangeWorkspaceFolders(r=>{this.mcp.sendRootsListChanged().then(()=>{this.rootsTracker?.dispose()})})}getEmitter(){return this.emitter}async cleanup(){this.transport&&(await this.mcp.close(),this.mcp.transport&&this.mcp.transport.onclose?.(),this.rootsTracker?.dispose(),this.transport=null)}};p();function TSl(t,e){return a(async(n,o)=>{let s=n instanceof URL?n.toString():n,c;if(o?.headers)if(o.headers instanceof Headers){c={};for(let[h,m]of o.headers.entries())c[h]=m}else if(Array.isArray(o.headers)){c={};for(let[h,m]of o.headers)c[h]=m}else c=o.headers;let l={method:o?.method||"GET",headers:c,body:o?.body,signal:o?.signal||void 0},u=await t.fetch(s,l);if(u.status===401&&e?.(u.headers.get("WWW-Authenticate")??void 0),u.status===403){let h=u.headers.get("WWW-Authenticate"),m=x_o(u.status,h);if(m){let g=m.errorDescription||"Insufficient scope for this operation";throw new bTe(g,m)}}let d=u.body(),f=null;if(d)f=new ReadableStream({start(h){let m=a(E=>{h.enqueue(new Uint8Array(E))},"onData"),g=a(()=>{h.close(),y()},"onEnd"),A=a(E=>{h.error(E),y()},"onError"),y=a(()=>{d.off("data",m),d.off("end",g),d.off("error",A)},"cleanup");d.on("data",m),d.on("end",g),d.on("error",A)},cancel(){d&&"destroy"in d&&typeof d.destroy=="function"&&d.destroy()}});else{let h=await u.text();f=new ReadableStream({start(m){m.enqueue(new TextEncoder().encode(h)),m.close()}})}return new globalThis.Response(f,{status:u.status,statusText:u.statusText,headers:new Headers(u.headers)})},"fetchLike")}a(TSl,"createFetchAdapter");function NNt(t,e,r){let n=t.get(Wt),o=TSl(n,r);return{...e,fetch:o}}a(NNt,"createConfigWithFetch");var ONt=class extends RY{constructor(r,n,o){super(r,n,o);this.transport=null}static{a(this,"MCPSSEServer")}initTransport(r){let n=NNt(this.ctx,r),{url:o,...s}=n;return new D0e(new URL(o),s)}};p();var D_o=require("child_process"),M_o=require("util");var BNt=class extends RY{constructor(r,n,o){super(r,n,o);this.transport=null}static{a(this,"MCPStdioServer")}initTransport(r){return r.env={...R_o(),...r.env||{}},r.stderr="pipe",new Q0e(r)}addListeners(){super.addListeners(),this.transport&&this.transport.stderr&&this.transport.stderr.on("data",r=>{rM(this.ctx,{message:`[server stderr] ${r.toString().trimEnd()}`,server:this.name})})}async cleanup(){if(this.transport){if(process.platform==="win32"){let r=null;"pid"in this.transport&&typeof this.transport.pid=="number"&&(r=this.transport.pid),r&&await this.forceKillWindowsProcess(r)}await super.cleanup()}}async forceKillWindowsProcess(r){try{let n=(0,M_o.promisify)(D_o.exec);ur.info(this.ctx,`Force killing Windows process with PID ${r} for MCP server ${this.name}`),pa(this.ctx,{message:`Force killing Windows process with PID ${r}`,server:this.name}),await n(`taskkill /pid ${r} /t /f`,{timeout:1e4}),ur.info(this.ctx,`Successfully force killed process ${r}`)}catch(n){ur.debug(this.ctx,`Failed to kill process ${r} (process may not exist):`,n),Dd(this.ctx,{message:`Failed to kill process ${r} (process may not exist): ${n instanceof Error?n.message:String(n)}`,server:this.name})}}};p();var STe=class extends RY{constructor(r,n,o){super(r,n,o);this.transport=null;this._captureInitializeChallenge=!1}static{a(this,"MCPStreamableServer")}async connect(r){this._wwwAuthenticate=void 0,this._captureInitializeChallenge=!0;try{await super.connect(r)}finally{this._captureInitializeChallenge=!1}}initTransport(r){let n=NNt(this.ctx,r,c=>{this._captureInitializeChallenge&&(this._wwwAuthenticate=c)}),{url:o,...s}=n;return new M0e(new URL(o),s)}takeWwwAuthenticate(){let r=this._wwwAuthenticate;return this._wwwAuthenticate=void 0,r}async cleanup(){this._wwwAuthenticate=void 0,this._captureInitializeChallenge=!1,await super.cleanup()}};p();var LNt=class extends xH{static{a(this,"McpLanguageModelTool")}constructor(e,r){super({...e,toolProvider:{id:e.serverName,displayNamePrefix:e.serverNamePrefix,displayName:e.serverName,description:e.serverName,isFirstPartyTool:!1},type:"mcp"}),this.invoker=r}prepareInvocation(e,r){let n={title:`Confirm MCP Tool: ${this.displayName} - ${this.toolProvider.displayName}(MCP Server)`,message:`Do you want to allow the external MCP tool "${this.toolProvider.displayName}/${this.displayName}" to run?`};return{progressMessage:`Running MCP tool: ${this.displayName} - ${this.toolProvider.displayName}(MCP Server)`,confirmationMessages:n}}prepareCompletion(e,r){return{completionMessage:`Ran MCP tool: ${this.displayName} - ${this.toolProvider.displayName}(MCP Server)`}}async invoke(e,r,n){return await this.invoker(e,r,r.input,n)}async invokeConfirmation(e,r,n){if(n.isCancellationRequested)throw new rl;let o={name:this.name,title:r.title,message:r.message,input:r.input,conversationId:e.conversation.id,turnId:e.turn.id,roundId:r.roundId,toolCallId:r.toolCallId,annotations:r.annotations};try{return await e.ctx.get(pf).invokeClientToolConfirmation(e,o)}catch(s){throw new Error(`Failed to invoke client tool confirmation ${this.name}: ${String(s)}`)}}};var L_o=ue(tl());p();var N_o="mcp-servers-cache",O_o="mcp-first-boot-completed",FNt=class{static{a(this,"McpServerMetadataCache")}constructor(e){this.stateDb=e.get(nd),this.initPromise=this.initialize()}async initialize(){await this.stateDb.waitForInitialization()}async isFirstBoot(){return await this.initPromise,this.stateDb.get(O_o)!=="true"}async markFirstBootCompleted(){await this.initPromise,this.stateDb.set(O_o,"true")}parseCache(){let e=this.stateDb.get(N_o);if(!e)return{};try{return JSON.parse(e)}catch{return{}}}async get(e){return await this.initPromise,this.parseCache()[e]}async store(e){await this.initPromise,this.stateDb.set(N_o,e)}};p();function B_o(t){let e=t.get(vr).getEditorPluginInfo();if(e.name==="copilot-intellij"){let r=e.version.endsWith("nightly"),n=e.version==="42.0.0.0";return r||n}if(e.name==="copilot-xcode"){let r=e.version.split(".");if(r.length>=3){let[n,o,s]=r;return n==="0"&&o==="0"&&s==="0"||n==="0"&&s!=="0"}}if(e.name==="copilot-eclipse"){let r=e.version.endsWith("nightly"),n=e.version.endsWith("qualifier");return r||n}return!1}a(B_o,"isNightlyOrDevBuild");var UNt=class t extends q_{constructor(r){super();this.MCPServersMap=new Map;this.updateServersQueue=Promise.resolve();this.serverOperationSequencer=new Yf;this.prefixGenerator=new MNt;this.serverPrefixes=new Map;this.isMcpEnabled=!1;this.previousMcpAllowlist=!1;this.storedMCPServersConfig={};this.ctx=r,this.cache=new FNt(r),this.registryService=r.get(sO),ds(this.ctx,async n=>{let o=this.isMcpEnabled;this.isMcpEnabled=this.isTokenMcpEnabled(n),o!==this.isMcpEnabled&&(ur.info(this.ctx,`MCP state changed from ${o} to ${this.isMcpEnabled}`),this.registryService.clearAllCaches(),this.isMcpEnabled?await this.updateMCPServers(this.storedMCPServersConfig):(ur.info(this.ctx,"MCP is disabled, clearing all servers and tools"),this.clearAllServers()))}),this.ctx.get(An).onDidSetCapabilities(n=>{let o=n.mcpAllowlist;o!==this.previousMcpAllowlist&&(this.previousMcpAllowlist=o,this.registryService.clearAllCaches(),this.isMcpEnabled&&(ur.info(this.ctx,`mcpAllowlist changed to ${o}, updating MCP servers`),this.updateMCPServers(this.storedMCPServersConfig)))})}static{a(this,"CLSMCPManager")}static{this.contentsNotificationType=new L_o.ProtocolNotificationType("copilot/mcpTools")}isTokenMcpEnabled(r){if(!r)return!0;try{return r.getTokenValue("mcp")!=="0"}catch(n){return ur.warn(this.ctx,`Error reading MCP value from token: ${n instanceof Error?n.message:String(n)}`),!0}}isAllowlistFeatureEnabled(){if(this.ctx.get(An).getCapabilities().mcpAllowlist)return ur.debug(this.ctx,"Allowlist feature enabled via copilotCapabilities.mcpAllowlist"),!0;let n=B_o(this.ctx);return n||ur.debug(this.ctx,"Allowlist feature disabled for stable version, only enabled for nightly/prerelease/dev (use copilotCapabilities.mcpAllowlist to override)"),n}ensureMcpEnabledOrThrow(r){if(!this.isMcpEnabled)throw new Error(`MCP is disabled, cannot ${r}`)}getActiveServerEntry(r){let n=this.MCPServersMap.get(r);if(!n)throw new Error(`MCP server ${r} does not exist`);if(n.isBlocked)throw new Error(`MCP server ${r} is blocked by registry`);return n}async ensureServerConnection(r,n,o){return n.server.isConnected?n.server:(ur.info(this.ctx,`Auto-starting MCP server ${r} for ${o}`),await this.startMCPServer(r),this.getActiveServerEntry(r).server)}async updateMCPServers(r){let n=this.storedMCPServersConfig;if(this.storedMCPServersConfig=r,!this.isMcpEnabled)return;let o=this.ctx.get(An).getCapabilities().mcpServerManagement??!1,s=new Set(Object.keys(r)),c=new Set(this.MCPServersMap.keys()),l=[...c].filter(m=>!s.has(m)),u=new Set([...s].filter(m=>c.has(m)&&!this.areServerConfigsEqual(n[m],r[m]))),d=new Set;for(let m of u){let g=this.MCPServersMap.get(m);g&&!g.isBlocked&&(g.server.isConnected||g.hasError)&&d.add(m)}let f=[...l,...u];for(let m of f){let g=this.MCPServersMap.get(m);g&&!g.isBlocked&&(this.unregisterServerTools(m),await this.stopMCPServer(m)),u.has(m)||(this.removeServerAccountPreferences(m),this.serverPrefixes.delete(m)),this.MCPServersMap.delete(m)}f.length>0&&await this.persistAllServersCache();for(let m of s)this.MCPServersMap.has(m)||await this.upsertServerDefinition(m,r[m]);if(await this.cache.isFirstBoot()||!o){if(await this.cache.markFirstBootCompleted(),s.size>0){let m=Array.from(s).map(async g=>{try{await this.startServer(g);let A=this.MCPServersMap.get(g);A&&(A.hasError=!1,A.errorMessage=void 0,A.isStarting=!1)}catch(A){let y=this.MCPServersMap.get(g);y&&(y.hasError=!0,y.errorMessage=A instanceof Error?A.message:String(A),y.isStarting=!1),ur.warn(this.ctx,`Failed to auto-start MCP server ${g} during first boot:`,A)}});await Promise.allSettled(m)}}else if(d.size>0){let m=Array.from(d).map(async g=>{try{await this.startServer(g);let A=this.MCPServersMap.get(g);A&&!A.isBlocked&&(A.hasError=!1,A.errorMessage=void 0,A.isStarting=!1)}catch(A){let y=this.MCPServersMap.get(g);y&&!y.isBlocked&&(y.hasError=!0,y.errorMessage=A instanceof Error?A.message:String(A),y.isStarting=!1),ur.warn(this.ctx,`Failed to restart MCP server ${g} after config update:`,A)}});await Promise.allSettled(m)}await this.updateServersList()}areServerConfigsEqual(r,n){return this.stableStringify(r)===this.stableStringify(n)}stableStringify(r){if(Array.isArray(r))return`[${r.map(n=>this.stableStringify(n)).join(",")}]`;if(r&&typeof r=="object"){let n=r;return`{${Object.keys(n).sort().map(s=>`${JSON.stringify(s)}:${this.stableStringify(n[s])}`).join(",")}}`}return JSON.stringify(r)??"undefined"}async upsertServerDefinition(r,n){let o=this.toManagedServerDefinition(r,n),s=this.MCPServersMap.get(r);if(this.isAllowlistFeatureEnabled()){let c=await this.registryService.validateServerConfig(r,n),{registryInfo:l,isBlocked:u,blockReason:d}=c;u?(this.addBlockedServer(o),ur.info(this.ctx,`MCP server ${r} is blocked: ${d}`)):s&&!s.isBlocked?await this.updateServerDefinition(s,o):await this.addServer(o),l&&this.updateRegistryInfo(r,l);return}s&&!s.isBlocked?await this.updateServerDefinition(s,o):await this.addServer(o)}toManagedServerDefinition(r,n){let o=n.type,s="command"in n?"stdio":o??"streamable";return{...n,name:r,type:s}}addBlockedServer(r){this.MCPServersMap.set(r.name,{server:null,definition:r,hasError:!1,errorMessage:void 0,isStarting:!1,isBlocked:!0,authInfo:void 0})}updateRegistryInfo(r,n){let o=this.MCPServersMap.get(r);o&&(o.registryInfo=n)}getAllContents(r){return this.isMcpEnabled?this.getAllMCPServerCapabilities(r):[]}getAllMCPServerCapabilities(r){let n=[];for(let[o,s]of this.MCPServersMap)try{let c=this.createServerSnapshot(o,s);n.push(c)}catch(c){let l=`Failed to create snapshot for MCP server ${o}.`+(c instanceof Error?` message: ${c.message}`:` ${String(c)}`);ur.error(this.ctx,l);let u={name:o,prefix:this.getServerPrefix(o),status:"error",tools:[],resources:[],resourceTemplates:[],prompts:[],error:l};n.push(u)}return r&&!r.isBuiltIn&&r.customTools?n.map(o=>(o.tools=o.tools.map(s=>{let c=this.createMcpLanguageModelTool(o.name,this.getServerPrefix(o.name),s);return s._status=r.customTools.includes(c.configurationKey)?"enabled":"disabled",s}),o)):n}async updateMCPToolsStatus(r,n){this.ensureMcpEnabledOrThrow("batch update tools status");for(let{serverName:o,toolName:s,status:c}of n){let d=this.getActiveServerEntry(o).server.getCachedTools().find(m=>m.name===s),f=this.getServerPrefix(o);if(!d){ur.error(this.ctx,`Not found MCP ${o} server ${s} tool`);continue}EPe(r)&&(d._status=c),this.ctx.get(Ps).getToolById(`${o}.${s}`)||this.registerTool(o,f,d)}await this.ctx.get(Ps).updateToolsStatus(r,n.map(({serverName:o,toolName:s,status:c})=>({toolId:`${o}.${s}`,status:c}))),this.persistAllServersCache()}async callTool(r,n,o,s,c,l,u){this.ensureMcpEnabledOrThrow(`call tool ${r}.${n}`);let d=this.getActiveServerEntry(r),f=await this.ensureServerConnection(r,d,"tool call"),h=gOe(this.storedMCPServersConfig[r]),m=performance.now();try{let g=await f.callTool(n,o,s,c,l,u);return h&&e0e(this.ctx,"LOCAL",s.isCancellationRequested?"cancelled":g.status==="success"?"success":g.status==="cancelled"?"cancelled":"error",performance.now()-m),g}catch(g){throw h&&e0e(this.ctx,"LOCAL",s.isCancellationRequested?"cancelled":"error",performance.now()-m),g}}async getPrompt(r,n,o){this.ensureMcpEnabledOrThrow(`get prompt ${r}.${n}`);let s=this.getActiveServerEntry(r),l=await(await this.ensureServerConnection(r,s,"get prompt")).getPrompt(n,o);return ut(this.ctx,"mcp.getPrompt",zt.createAndMarkAsIssued()),Gt(this.ctx,"mcp.getPrompt"),l}async completePrompt(r,n,o,s,c){this.ensureMcpEnabledOrThrow(`complete prompt ${r}.${n}`);let l=this.getActiveServerEntry(r);return await(await this.ensureServerConnection(r,l,"complete prompt")).completePrompt(n,o,s,c)}async readResource(r,n){this.ensureMcpEnabledOrThrow(`read resource from ${r}: ${n}`);let o=this.getActiveServerEntry(r);return await(await this.ensureServerConnection(r,o,"read resource")).readResource(n)}async startMCPServer(r){return this.ensureMcpEnabledOrThrow(`start server ${r}`),this.serverOperationSequencer.queue(r,async()=>{await this.startMCPServerInternal(r)})}async startMCPServerInternal(r){let n=this.getActiveServerEntry(r);if(n.server.isConnected){ur.info(this.ctx,`MCP server ${r} is already running`);return}if(n.isStarting){ur.info(this.ctx,`MCP server ${r} is already starting, skipping duplicate request`);return}n.isStarting=!0,await pa(this.ctx,{message:`Starting server ${r}`,server:r}),await this.updateServersList(!1),this.unregisterServerTools(r);try{await this.startServer(r);let o=this.MCPServersMap.get(r);o&&(o.hasError=!1,o.errorMessage=void 0,o.isStarting=!1)}catch(o){let s=this.MCPServersMap.get(r);throw s&&(s.hasError=!0,s.errorMessage=o instanceof Error?o.message:String(o),s.isStarting=!1),o}finally{this.registerServerTools(r),await this.updateServersList(!1)}}async stopMCPServer(r){return this.serverOperationSequencer.queue(r,async()=>{await this.stopMCPServerInternal(r)})}async stopMCPServerInternal(r){let n=this.getActiveServerEntry(r);if(n.isStarting){ur.info(this.ctx,`MCP server ${r} is starting, cannot stop now`);return}await pa(this.ctx,{message:`Stopping server ${r}`,server:r}),n.server.getEmitter().removeAllListeners($z),n.server.isConnected&&await n.server.cleanup(),n.hasError=!1,n.errorMessage=void 0,n.isStarting=!1,await pa(this.ctx,{message:`Server ${r} stopped`,server:r}),await this.updateServersList(!1)}async restartMCPServer(r){return this.ensureMcpEnabledOrThrow(`restart server ${r}`),await pa(this.ctx,{message:`Restarting server ${r}`,server:r}),this.serverOperationSequencer.queue(r,async()=>{await this.stopMCPServerInternal(r),await new Promise(n=>setTimeout(n,100)),await this.startMCPServerInternal(r)})}async logoutMCPServer(r){return this.ensureMcpEnabledOrThrow(`logout server ${r}`),this.serverOperationSequencer.queue(r,async()=>{await pa(this.ctx,{message:`Logging out MCP server ${r}`,server:r}),await this.performLogout(r)})}async clearOAuthMCPServer(r){return this.ensureMcpEnabledOrThrow(`clear OAuth for server ${r}`),this.serverOperationSequencer.queue(r,async()=>{let o=this.getActiveServerEntry(r).authInfo?.providerId;if(!o){ur.warn(this.ctx,`No OAuth provider found for server ${r}, nothing to clear`);return}await pa(this.ctx,{message:`Clearing OAuth provider registration for MCP server ${r}`,server:r}),await this.performLogout(r),ur.info(this.ctx,`Unregistering provider ${o} for server ${r}`);try{await this.ctx.get(SO).unregisterProvider(o)}catch{ur.debug(this.ctx,`Provider ${o} is not a dynamic OAuth provider, skipping unregistration`)}})}async performLogout(r){let n=this.getActiveServerEntry(r);if(n.authInfo){let{providerId:c,accountName:l}=n.authInfo;ur.info(this.ctx,`Removing account preference and session for account ${l} on server ${r} with provider ${c}`),this.ctx.get(MS).removeAccountPreference(r,c);try{let u=this.ctx.get(Ym).getProvider(c),f=(await u.getSessions(void 0,{})).find(h=>h.account.label===l);f?(await u.removeSession(f.id),ur.info(this.ctx,`Successfully removed session for account ${l}`)):ur.warn(this.ctx,`No session found for account ${l}`)}catch(u){ur.error(this.ctx,`Failed to remove session for account ${l}:`,u)}n.authInfo=void 0}await this.stopMCPServerInternal(r);let o=this.storedMCPServersConfig[r];if(!o){let c=`Original config not found for server ${r}`;throw ur.error(this.ctx,c),new Error(c)}let s=this.toManagedServerDefinition(r,o);this.MCPServersMap.delete(r),await this.addServer(s),ur.info(this.ctx,`Server ${r} logged out and restored to original configuration`),await this.updateServersList(!1)}async startServer(r){let n=this.MCPServersMap.get(r);if(!n||n.isBlocked)return;if(n.server.isConnected){ur.info(this.ctx,`MCP server ${r} is already running`);return}let{server:o,definition:s}=n;try{o.getEmitter().on($z,()=>{this.unregisterServerTools(r),this.persistAllServersCache(),this.registerServerTools(r),this.notifyClient()}),await o.connect(s),await pa(this.ctx,{message:"Connection state: Running",server:r})}catch(c){ur.error(this.ctx,`Error initializing MCP server ${r}:`,c);let l=c instanceof lP||c instanceof TBe,u=l?c.code:void 0;if(l&&u!==void 0&&"url"in s&&s.type!=="sse"&&o instanceof STe&&u!==401&&u>=400&&u<500){let f=`${u} status sending message to ${s.url}, will attempt to fall back to legacy SSE`;ur.info(this.ctx,f),pa(this.ctx,{message:f,server:r});let h={...s,name:r,type:"sse"};return await o.cleanup().catch(()=>{}),await this.updateServerDefinition(n,h),await this.startServer(r)}else if(l&&"url"in s&&u===401){let f=o instanceof STe?o.takeWwwAuthenticate():void 0,h=await this.getAuthMetadata(s,f),m=await this.getToken(s.name,s.url,h.authorizationServer,h.serverMetadata,h.resourceMetadata);if(!m){let A=`Failed to get token for server: ${r}`;throw ur.error(this.ctx,A),new Error(A)}let g={...s,name:r,requestInit:{...s.requestInit??{},headers:{...s.requestInit?.headers??{},Authorization:`Bearer ${m}`}}};return await o.cleanup().catch(()=>{}),await this.updateServerDefinition(n,g),await this.startServer(r)}let d=c instanceof Error?`message: ${c.message} stack: ${c.stack}`:String(c);throw await Dd(this.ctx,{message:d,server:r}),this.ctx.get(Is).showWarningMessageOnlyOnce(`${r}.initialize`,`Failed to initialize MCP server '${r}'. Please check the logs for more details.`),c}}async updateServersList(r=!0){return this.updateServersQueue=this.updateServersQueue.then(async()=>{r&&this.registerTools(),await this.notifyClient()}).catch(n=>{ur.error(this.ctx,"updateServersList: Update failed",n)}),this.updateServersQueue}getServerPrefix(r){let n=this.serverPrefixes.get(r);if(n)return n;let o=this.prefixGenerator.generate(r);return this.serverPrefixes.set(r,o),o}async persistAllServersCache(){try{let r={};for(let[n,o]of this.MCPServersMap){let s=o.server?.getCachedTools()??[],c=o.server?.getCachedResources()??[],l=o.server?.getCachedResourceTemplates()??[],u=o.server?.getCachedPrompts()??[];r[n]={tools:s,resources:c,resourceTemplates:l,prompts:u}}await this.cache.store(r)}catch(r){ur.error(this.ctx,"Failed to persist MCP servers cache:",r)}}createMCPServer(r){return r.type==="sse"?new ONt(this.ctx,r.name,r.version||"1.0.0"):r.type==="streamable"||"url"in r?new STe(this.ctx,r.name,r.version||"1.0.0"):new BNt(this.ctx,r.name,r.version||"1.0.0")}async addServer(r){let n=this.createMCPServer(r),o=await this.cache.get(r.name);o&&n.restoreCacheFromPersistence(o),this.MCPServersMap.set(r.name,{server:n,definition:r,hasError:!1,errorMessage:void 0,isStarting:!1,isBlocked:!1})}async updateServerDefinition(r,n){let o=this.createMCPServer(n),s=await this.cache.get(n.name);s&&o.restoreCacheFromPersistence(s),r.server=o,r.definition=n}async notifyClient(){let r=this.getAllContents();await this.ctx.get(tr).connection.sendNotification(t.contentsNotificationType,{servers:r})}registerTools(){for(let[r]of this.MCPServersMap)this.registerServerTools(r)}registerServerTools(r){let n=this.MCPServersMap.get(r);if(!n||n.isBlocked)return;let o=this.getServerPrefix(r),s=n.server?.getCachedTools()??[];for(let c of s)this.registerTool(r,o,c)}unregisterServerTools(r){let n=this.MCPServersMap.get(r);if(!n||n.isBlocked)return;let o=n.server?.getCachedTools()??[];for(let s of o)this.unregisterTool(r,s.name)}registerTool(r,n,o){ur.debug(this.ctx,"register MCP Tool:",{...o}),this.ctx.get(Ps).registerTool(this.createMcpLanguageModelTool(r,n,o))}createMcpLanguageModelTool(r,n,o){let{name:s,description:c,inputSchema:l,_status:u,_nameForModel:d,annotations:f}=o;return new LNt({serverName:r,serverNamePrefix:n,name:d,displayName:s,description:c||"",displayDescription:c||"",inputSchema:l,annotations:f,status:u},(h,m,g,A)=>(ur.info(this.ctx,"copilot MCP Invoker:",r,s,g),this.callTool(r,s,g,A,h,m.roundId,m.toolCallId?.toString())))}unregisterAllTools(){for(let[r,n]of this.MCPServersMap){if(n.isBlocked)continue;let o=n.server?.getCachedTools()??[];for(let s of o)this.unregisterTool(r,s.name)}}unregisterTool(r,n){ur.debug(this.ctx,"unregister MCP Tool:",{serverName:r,toolName:n}),this.ctx.get(Ps).unregisterTool(`${r}.${n}`)}async clearAllServers(){this.unregisterAllTools();for(let r of this.MCPServersMap.keys())if(!this.MCPServersMap.get(r).isBlocked)try{await this.stopMCPServer(r)}catch(o){ur.error(this.ctx,`Error stopping server ${r} during clearAllServers:`,o)}this.MCPServersMap.clear(),this.serverPrefixes.clear()}determineServerStatus(r){return r.isBlocked?"blocked":r.isStarting?"starting":r.server.isConnected?"running":r.hasError?"error":"stopped"}createServerSnapshot(r,n){return{name:r,prefix:this.getServerPrefix(r),status:this.determineServerStatus(n),tools:n.server?.getCachedTools()??[],resources:n.server?.getCachedResources()??[],resourceTemplates:n.server?.getCachedResourceTemplates()??[],prompts:n.server?.getCachedPrompts()??[],error:n.isBlocked?void 0:n.errorMessage,registryInfo:n.registryInfo,authInfo:n.isBlocked?void 0:n.authInfo}}updateAuthInfo(r,n,o,s){let c=this.MCPServersMap.get(r);c&&!c.isBlocked&&(c.authInfo={providerId:n,accountName:o,isDynamic:s})}removeServerAccountPreferences(r){let n=this.MCPServersMap.get(r);if(n?.isBlocked||!n?.authInfo){ur.debug(this.ctx,`No auth info found for server ${r}, nothing to remove`);return}let{providerId:o}=n.authInfo;ur.info(this.ctx,`Removing account preference for server ${r} with provider ${o}`),this.ctx.get(MS).removeAccountPreference(r,o),n.authInfo=void 0}async getAuthMetadata(r,n){try{return await new L0e(this.ctx).getMetadataFromOriginalUrl(r.url,r.requestInit?.headers,n)}catch(o){throw ur.error(this.ctx,`Failed to get auth metadata for ${r.url}: ${o instanceof Error?o.message:String(o)}`,o),o}}async getToken(r,n,o,s,c){let l=this.ctx.get(Ym).getOrActivateProviderIdForServer(o,c?.resource);if(!l){let A=this.ctx.get(Ym).createAuthenticationProvider(o,s,c);if(!A&&(A=await this.ctx.get(Ym).createDynamicAuthenticationProvider(o,s,c),!A)){ur.warn(this.ctx,`Failed to create authentication provider for server ${r} (authServer: ${o})`);return}l=A.id}let u=c?.scopes_supported||s.scopes_supported||[],d=await this.ctx.get(Ym).getSessions(l,u,{authorizationServer:o},!0),f=this.ctx.get(MS).getAccountPreference(r,l),h;f&&(h=d.find(A=>A.account.label===f));let m=this.ctx.get(Ym).getProvider(l),g=!!this.ctx.get(JC).getClientRegistration(l);if(d.length){if(h)return this.updateAuthInfo(r,l,h.account.label,g),h.accessToken;try{let A=m?.label||l,y="Sign in to another account",E=d.map(v=>({title:v.account.label}));E.push({title:y}),E.push({title:"Cancel"});let _=await this.ctx.get(Is).showInformationModal(`The MCP server ${r} wants to access a ${A} account, Select an account for ${r} to use`,...E);if(!_||_.title==="Cancel"){ur.warn(this.ctx,"user cancelled the account selection");return}if(_.title!==y){let v=d.find(S=>S.account.label===_.title);if(!v){ur.warn(this.ctx,"selected account not found in sessions");return}return this.ctx.get(MS).updateAccountPreference(r,l,v.account),this.updateAuthInfo(r,l,v.account.label,g),v.accessToken}}catch(A){ur.error(this.ctx,"Failed during account selection:",A);return}}else try{if((await this.ctx.get(Is).showInformationModal(`The MCP Server Definition '${n}' wants to authenticate to ${m.label}.`,{title:"OK"},{title:"Cancel"}))?.title!=="OK"){ur.warn(this.ctx,"user cancelled the authentication request");return}}catch(A){ur.error(this.ctx,"Failed to show authentication request dialog:",A);return}try{let A=await m.createSession(u,{});return this.ctx.get(Is).showInformationMessageOnlyOnce("Authentication successful",`You have already authenticated with ${m.label}.`),this.ctx.get(MS).updateAccountPreference(r,l,A.account),this.updateAuthInfo(r,l,A.account.label,g),A.accessToken}catch(A){ur.error(this.ctx,`Failed to create authentication session for server ${r}:`,A),this.ctx.get(Is).showWarningMessageOnlyOnce("Authentication failed",`You need to restart the IDE to authenticate the MCP server again. ${A instanceof Error?A.message:String(A)}`);return}}};p();var F_o=ue(tl());var QNt=class t extends tM{static{a(this,"CLSMCPRuntimeNotifier")}static{this.notificationType=new F_o.ProtocolNotificationType("copilot/mcpRuntimeLogs")}constructor(e){super(),this.ctx=e}async notifyLog(e){await this.ctx.get(tr).connection.sendNotification(t.notificationType,{...e,time:Date.now()})}};p();var U_o=ue(tl());var ISl=new U_o.ProtocolRequestType("copilot/readMcpSamplingConfig"),qNt=class extends xY{constructor(r){super();this.ctx=r}static{a(this,"CopilotMcpSamplingConfigSender")}async readMcpSamplingConfig(r){let n=this.ctx.get(tr).connection,o;try{o=await n.sendRequest(ISl,r)}catch(l){throw new Error(`Request copilot/readMcpSamplingConfig failed with message: ${Ql(l)}`)}let[s,c]=o;if(c)throw new Error(`Request copilot/readMcpSamplingConfig failed with code: ${c.code}, message: ${c.message}`);return s}};p();var jNt=ue(tl());var wSl=new jNt.ProtocolRequestType("copilot/showPanelMessageRequest"),xSl=new jNt.ProtocolNotificationType("copilot/showPanelMessage"),HNt=class extends CTe{constructor(r){super();this.ctx=r}static{a(this,"CopilotMessageSender")}async sendPanelMessageNotification(r){return this.ctx.get(tr).connection.sendNotification(xSl,r)}async sendPanelMessageRequest(r){let n=this.ctx.get(tr).connection,o;try{o=await n.sendRequest(wSl,r)}catch(l){throw new Error(`Request copilot/showPanelMessageRequest failed with message: ${Ql(l)}`)}let[s,c]=o;if(c)throw new Error(`Request copilot/showPanelMessageRequest failed with code: ${c.code}, message: ${c.message}`);return s}};p();p();var q_o=require("node:stream"),xae=ue(Khr());var L7=new ce("UndiciFetcher"),$Nt=class extends Wt{constructor(r){super();this.ctx=r;this.name="UndiciFetcher";this.userAgent=`GithubCopilot/${r.get(ws).getVersion()}`,this.certificateConfigurator=new Zbe(r),this.proxySocketFactory=r.get(Ck),this.settings=r.get(fi).getHttpSettings(),this.updateNoProxyFilters(this.settings.noProxy),L7.info(this.ctx,"Initialized UndiciFetcher.",this.getSettingsLogProperties()),r.get(fi).onDidChangeHttpSettings(n=>{this.settings=n,this.updateNoProxyFilters(n.noProxy),L7.info(this.ctx,"HTTP settings changed; resetting Undici dispatchers.",this.getSettingsLogProperties()),this.resetDispatchers()})}static{a(this,"UndiciFetcher")}async fetch(r,n){let o={...n.headers??{}};o["User-Agent"]=this.userAgent;let s=n.body;if(n.json!==void 0){if(n.body!==void 0)throw new Error("Illegal arguments! Cannot pass in both 'body' and 'json'!");o["Content-Type"]="application/json",s=JSON.stringify(n.json)}let c=n.method??"GET";if(c!=="GET"&&c!=="POST"&&c!=="DELETE")throw new Error("Illegal arguments! 'method' must be 'GET', 'POST', or 'DELETE'!");let l=!1,u,d=kSl(n.signal),f=d.signal;if(n.timeout){let h=new AbortController;u=setTimeout(()=>{l=!0,h.abort()},n.timeout),f=f?AbortSignal.any([f,h.signal]):h.signal}try{let h={method:c,headers:o,body:s,signal:f};L7.debug(this.ctx,"Starting Undici fetch.",{target:GNt(r),method:c,hasBody:s!==void 0,hasTimeout:n.timeout!==void 0,hasSignal:f!==void 0});let{dispatcher:m,isProxy:g}=await this.getDispatcher(r),A=await(0,xae.fetch)(r,{...h,dispatcher:m});return L7.debug(this.ctx,"Undici fetch completed.",{target:GNt(r),status:A.status,isProxy:g}),new Xw(A.status,A.statusText,A.headers,()=>A.text(),()=>A.body?q_o.Readable.fromWeb(A.body):null)}catch(h){throw l?(L7.warn(this.ctx,"Undici fetch timed out.",{target:GNt(r),timeout:n.timeout}),new q7(`Request to <${r}> timed out after ${n.timeout}ms`,h)):DSl(h)}finally{u&&clearTimeout(u),d.cleanup()}}async disconnectAll(){await this.resetDispatchers()}async getDispatcher(r){let n=await this.certificateConfigurator.getCertificates(),o=n?n.join("\0"):"";this.dispatcherCertsKey!==o&&(L7.info(this.ctx,"Root certificate set changed; resetting Undici dispatchers.",{certificateCount:n?.length??0}),await this.resetDispatchers()),this.dispatcherCertsKey=o;let s={allowH2:!0,ca:n,rejectUnauthorized:this.settings.proxyStrictSSL??!0};return!this.settings.proxy||this.shouldBypassProxy(r)?(this.noProxyAgent||(L7.debug(this.ctx,"Creating direct Undici agent.",{target:GNt(r),bypassedProxy:!!this.settings.proxy,rejectUnauthorized:s.rejectUnauthorized}),this.noProxyAgent=new xae.Agent({allowH2:!0,connect:s})),{dispatcher:this.noProxyAgent,isProxy:!1}):(this.proxyAgent||(this.proxyAgent=this.buildProxyAgent(s)),{dispatcher:this.proxyAgent,isProxy:!0})}buildProxyAgent(r){let n=this.settings.proxy,o=new URL(n),s=(0,xae.buildConnector)(r);return L7.debug(this.ctx,"Creating proxied Undici agent.",{proxy:Q_o(n),hasProxyAuthorization:!!this.settings.proxyAuthorization,hasProxyKerberosServicePrincipal:!!this.settings.proxyKerberosServicePrincipal,rejectUnauthorized:r.rejectUnauthorized}),new xae.Agent({allowH2:!0,connect:a((c,l)=>{let u=c.port!==void 0&&c.port!==""?Number(c.port):c.protocol==="https:"?443:80,d={hostname:c.hostname,port:u,headers:{}};this.proxySocketFactory.createSocket(d,{hostname:o.hostname,port:o.port,authorization:this.settings.proxyAuthorization,kerberosServicePrincipal:this.settings.proxyKerberosServicePrincipal}).then(f=>{if(c.protocol!=="https:"){l(null,f);return}s({...c,httpSocket:f},l)}).catch(f=>{l(f instanceof Error?f:new Error(String(f)),null)})},"connect")})}async resetDispatchers(){let r=this.noProxyAgent,n=this.proxyAgent;this.noProxyAgent=void 0,this.proxyAgent=void 0,this.dispatcherCertsKey=void 0,(r||n)&&L7.debug(this.ctx,"Closing Undici dispatchers.",{hasDirectAgent:!!r,hasProxyAgent:!!n}),await Promise.all([r?.close().catch(()=>{}),n?.close().catch(()=>{})])}updateNoProxyFilters(r){let n=(r??[]).map(s=>s.trim()).filter(s=>s.length>0);if(this.noProxyFilters=void 0,n.length===0)return;if(n.includes("*")){this.noProxyFilters=[{regex:/.*/i}];return}let o=[];for(let s of n){let{host:c,port:l}=RSl(s),u=PSl(c);u&&o.push({regex:u,port:l})}o.length&&(this.noProxyFilters=o)}getSettingsLogProperties(){return{proxy:Q_o(this.settings.proxy),noProxyCount:this.settings.noProxy?.length??0,proxyStrictSSL:this.settings.proxyStrictSSL,hasProxyAuthorization:!!this.settings.proxyAuthorization,hasProxyKerberosServicePrincipal:!!this.settings.proxyKerberosServicePrincipal}}shouldBypassProxy(r){if(!this.noProxyFilters?.length)return!1;let n;try{n=new URL(r)}catch{return!1}let o=n.hostname;if(!o)return!1;let s=n.port||(n.protocol==="https:"?"443":"80"),c=o.toLowerCase();return this.noProxyFilters.some(l=>l.regex.test(c)&&(!l.port||l.port===s))}};function RSl(t){if(t.startsWith("[")){let r=t.indexOf("]");if(r!==-1){let n=t.slice(1,r),o=t.slice(r+1);return{host:n,port:o.startsWith(":")?o.slice(1):void 0}}}let e=t.split(":");return e.length===2?{host:e[0],port:e[1]}:{host:t}}a(RSl,"splitHostPort");function PSl(t){if(!t)return;t.startsWith(".")&&(t=`*${t}`);let e=t.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*");try{return new RegExp(`^${e}$`,"i")}catch{return}}a(PSl,"compileHostPattern");function GNt(t){try{let e=new URL(t);return`${e.protocol}//${e.host}`}catch{return"<invalid-url>"}}a(GNt,"describeUrl");function Q_o(t){if(!t)return"none";try{let e=new URL(t);return`${e.protocol}//${e.host}`}catch{return"<invalid-proxy-url>"}}a(Q_o,"describeProxy");function kSl(t){if(!t||t instanceof AbortSignal)return{signal:t,cleanup:a(()=>{},"cleanup")};let e=new AbortController,r=a(()=>e.abort(),"abort");return t.addEventListener("abort",r),t.aborted&&e.abort(),{signal:e.signal,cleanup:a(()=>t.removeEventListener("abort",r),"cleanup")}}a(kSl,"toNativeAbortSignal");function DSl(t){if(!(t instanceof Error)||!("cause"in t)||!t.cause||typeof t.cause!="object")return t;let e=t.cause,r=new Error(t.message,{cause:t.cause});r.stack=t.stack,r.name=t.name,r.code=t.code??e.code,r.syscall=t.syscall??e.syscall,r.errno=t.errno??e.errno;let n=e.statusCode;return typeof n=="number"&&(r.statusCode=n),r}a(DSl,"withCauseNetworkProperties");p();var vQe=new ce("fetcher"),MSl="https://default.exp-tas.com/",CQe=class extends Wt{constructor(r,n,o,s){super();this.ctx=r;this.defaultFetcher=n;this.fallbackFetcher=o;this.onFallbackSuccess=s}static{a(this,"FallbackFetcher")}async fetch(r,n){try{return await this.defaultFetcher.fetch(r,n)}catch(o){if(Tg(o)||`${r}/`.startsWith(MSl))throw o;vQe.info(this.ctx,`Request to <${r}> failed, attempting fallback.`,o);let s=await this.fallbackFetcher.fetch(r,n);return this.onFallbackSuccess(o,r),vQe.info(this.ctx,`Fallback fetch for <${r}> succeeded.`),s}}getImplementation(){return this.defaultFetcher.getImplementation()}get name(){return this.defaultFetcher.name}async disconnectAll(){await this.defaultFetcher.disconnectAll()}},VNt=class extends Wt{constructor(r,n,o){super();this.ctx=r;this.primary=n;this.secondary=o;this.default=new CQe(r,n,o,(s,c)=>{this.current!==o&&(vQe.info(r,`${n.name} failed; switching to ${o.name} for subsequent requests.`),this.current=o,ms(r,"fetcher.stickyFallback",s,{primary:n.name,secondary:o.name,failingHost:OSl(c),...BSl(s),...LSl(r)}),n.disconnectAll().catch(l=>{vQe.info(r,`Failed to disconnect ${n.name} after sticky fallback.`,l)}))}),this.current=this.default}static{a(this,"StickyFallbackFetcher")}reset(){this.current!==this.default&&(vQe.info(this.ctx,`Re-arming sticky fallback; ${this.primary.name} will be retried on the next request.`),this.current=this.default)}get name(){return this.current.name}getImplementation(){return this.current.getImplementation()}fetch(r,n){return this.current.fetch(r,n)}async disconnectAll(){await Promise.all([this.primary.disconnectAll(),this.secondary.disconnectAll()])}},NSl=["githubusercontent.com","githubcopilot.com","github.com","exp-tas.com","vscode-cdn.net"];function OSl(t){let e;try{e=new URL(t).host}catch{return"<invalid-url>"}let r=e.split(":")[0].toLowerCase();return NSl.some(o=>r===o||r.endsWith(`.${o}`))?e:"<other>"}a(OSl,"describeHost");function BSl(t){try{if(!(t instanceof Error)||!t.cause)return{};let e=t.cause;Array.isArray(e.errors)&&e.errors.length>0&&e.errors[0]instanceof Error&&(e=e.errors[0]);let r={};for(let[n,o]of Object.entries({errorCauseName:e.name,errorCauseCode:e.code,errorCauseSyscall:e.syscall}))typeof o=="string"&&o&&(r[n]=o.slice(0,100));return typeof e.statusCode=="number"&&(r.errorCauseStatusCode=String(e.statusCode)),r}catch{return{}}}a(BSl,"buildErrorCauseProperties");function LSl(t){try{let e=t.get(fi).getHttpSettings(),r=!!e.proxy,n="none";return r&&(n=e.proxyKerberosServicePrincipal?"kerberos":e.proxyAuthorization?"basic":"none"),{proxyConfigured:r?"true":"false",proxyAuth:n,proxyStrictSSL:e.proxyStrictSSL!==!1?"true":"false"}}catch{return{}}}a(LSl,"describeHttpContext");var H_o=new ce("fetcher");function FSl(t){return bt(t,He.UseHelixFetcher)==="true"}a(FSl,"isHelixFetcherForced");function USl(t){if(FSl(t))return new Wse(t);let e=new VNt(t,new $Nt(t),new Wse(t));return t.get(fi).onDidChangeHttpSettings(()=>e.reset()),e}a(USl,"createDefaultFetcher");var WNt=class extends Wt{constructor(r,n=USl(r),o=new Kbe(r)){super();this.ctx=r;this.defaultFetcher=n;this.editorFetcher=o;this.updateFetcher=a(()=>{let r,n;if(!this.editorFetcherCapability)n=`Using ${this.defaultFetcher.name}, editor does not have fetch capability.`,r=this.defaultFetcher;else if(this.fetchStrategy==="client")n="Using editor fetcher, fetch strategy set to client.",r=this.editorFetcher;else if(this.fetchStrategy==="native")n=`Using ${this.defaultFetcher.name}, fetch strategy set to native.`,r=this.defaultFetcher;else{let o=bt(this.ctx,He.DebugUseEditorFetcher);o?.toString()==="true"?(n="Using editor fetcher, debug flag is enabled.",r=this.editorFetcher):o?.toString()==="false"?(n=`Using ${this.defaultFetcher.name}, debug flag is disabled.`,r=this.defaultFetcher):(n="Editor fetcher capability available, will fallback if needed.",r=this.fallbackFetcher)}this.currentFetcher!=r&&(H_o.debug(this.ctx,n),this.currentFetcher=r)},"updateFetcher");this.currentFetcher=this.defaultFetcher,this.fallbackFetcher=new CQe(r,n,o,()=>{H_o.info(this.ctx,"Fallback fetch succeeded, switching to editor fetcher."),this.currentFetcher=this.editorFetcher}),r.get(An).onDidSetCapabilities(this.updateFetcher),r.get(fi).onDidChangeCopilotSettings(this.updateFetcher)}static{a(this,"AgentDelegatingFetcher")}get fetchStrategy(){return bt(this.ctx,He.FetchStrategy)}get editorFetcherCapability(){return this.ctx.get(An).getCapabilities().fetch??!1}getImplementation(){return this.currentFetcher.getImplementation()}get name(){return this.currentFetcher.name}fetch(r,n){return this.currentFetcher.fetch(r,n)}async disconnectAll(){await Promise.all([this.defaultFetcher.disconnectAll(),this.editorFetcher.disconnectAll()])}};p();var YNt=ue(ai());var zNt=class extends Is{constructor(r){super();this.ctx=r}static{a(this,"ConnectionNotificationSender")}get connection(){return this.ctx.get(tr).connection}showWarningMessage(r,...n){return this.connection.window.showWarningMessage(r,...n)}showInformationMessage(r,...n){return this.connection.window.showInformationMessage(r,...n)}showInformationModal(r,...n){return this.connection.sendRequest(YNt.ShowMessageRequest.type,{type:YNt.MessageType.Info,message:r,actions:n,modal:!0}).then(o=>o||void 0)}async sendBackgroundAgentSessionUpdate(r,n,o,s){await this.connection.sendNotification("backgroundAgent/sessionUpdate",{sessionId:r,event:n,agentProvider:o,turnIndex:s})}async sendBackgroundAgentTodosChanged(r){await this.connection.sendNotification("backgroundAgent/todosChanged",r)}};p();var j_o=ue(tl());var KNt=class t extends MZ{constructor(r){super();this.ctx=r}static{a(this,"CLSQuotaChangeNotifier")}static{this.notificationType=new j_o.ProtocolNotificationType("copilot/quotaChange")}async notifyQuotaChange(r){await this.ctx.get(tr).connection.sendNotification(t.notificationType,r)}};p();var G_o=ue(tl());var JNt=class t extends NH{constructor(r){super();this.ctx=r}static{a(this,"CLSQuotaWarningNotifier")}static{this.notificationType=new G_o.ProtocolNotificationType("copilot/quotaWarning")}async notifyQuotaWarning(r){await this.ctx.get(tr).connection.sendNotification(t.notificationType,r)}};p();var $_o=ue(tl());var QSl=new $_o.ProtocolNotificationType("$/copilot/rateLimitWarning"),ZNt=class extends XI{constructor(r){super();this.ctx=r}static{a(this,"CLSRateLimitNotifier")}async notifyRateLimitWarning(r){await this.ctx.get(tr).connection.sendNotification(QSl,r)}};p();p();var XNt=class extends PZe{static{a(this,"AgentWorkspaceWatcher")}async getWatchedFiles(){return(await this.ctx.get(KN).getWatchedFiles({workspaceUri:this.workspaceFolder.uri,workspaceFolder:this.workspaceFolder,excludeGitignoredFiles:!0,excludeIDEIgnoredFiles:!0})).watchedFiles}async getWatchedFileUris(){return this.ctx.get(KN).getWatchedFileUris({workspaceUri:this.workspaceFolder.uri,workspaceFolder:this.workspaceFolder,excludeGitignoredFiles:!0,excludeIDEIgnoredFiles:!0})}startWatching(){if(this.status==="ready")return;let e=this.ctx.get(KN);this._watcher=e.onDidChangeWatchedFiles(this.onDidChangeWatchedFilesHandler.bind(this)),this.status="ready"}stopWatching(){this.status="stopped",this._watcher?.dispose(),this._watcher=void 0}onDidChangeWatchedFilesHandler(e){if(e.workspaceFolder.uri!==this.workspaceFolder.uri)return;let n=e.created.filter(c=>!c.isRestricted&&!c.isUnknownFileExtension);if(n.length){let c=n.map(l=>l.document).filter(l=>l!==void 0);this.emitFilesCreated(c)}let o=e.changed.filter(c=>!c.isRestricted&&!c.isUnknownFileExtension);if(o.length){let c=o.map(l=>l.document).filter(l=>l!==void 0);this.emitFilesUpdated(c)}let s=e.deleted.filter(c=>!c.isRestricted&&!c.isUnknownFileExtension);s.length&&this.emitFilesDeleted(s.map(c=>({uri:c.uri})))}};var eOt=class extends iR{static{a(this,"AgentWorkspaceWatcherProvider")}createWatcher(e){return new XNt(this.ctx,e)}shouldStartWatching(e){return bv(this.ctx)?!!this.ctx.get(An).getCapabilities().watchedFiles&&(!this.hasWatcher(e)||this.getStatus(e)==="stopped"):!1}};function tOt(t){let e=new sS(process.env),r=oEo(e);r.set(sS,e),r.set(Wt,new WNt(r)),r.set(Sc,new Sc(r)),Sqr(r,{});let n=gun();r.set(Hn,n),r.set(nd,new nd(r));let o=new uNt;r.set(pm,o);let s=W_o.join(n.directory,Hlo),c=Xse.plaintextOnly();r.set(Xse,c);let{repo:l,diagnostics:u}=nuo(r,s,c);r.set(BO,l),r.set(Rr,new gVe(r,process.env)),r.set(Z1,new Z1(r)),r.set(qse,new qse(r));let d=new Ip(r,"agent");d.onInitialized(()=>ouo(r,u)),r.set(Ip,d),r.set(Ea,wlo),r.set(ix,new ix),r.set(vr,new Zj),r.set(zse,plo()),r.set(zu,new zu),r.set(Zo,y_o),r.set(ya,new nNt(r)),r.set(dre,new oNt(r)),r.set(iR,new eOt(r)),r.set(KN,new KN(r)),r.set(Xm,new Xm),r.set(eg,Qht(r,soo)),r.set(US,new US(r)),r.set(C5,new nAe),WEo(r),kZe(r),zEn(r),r.set(tr,new tr(r,t)),r.set(dC,new dC(r,{notifyReferenceState:a(R=>t.sendNotification("copilot/ide/sessionStateChanged",R),"notifyReferenceState")}));let f=new np(GEo(r));r.set(np,f),r.set(pQe,new pQe(r)),r.get(tr).onDeactivation(()=>f.dispose()),r.set(WE,new iNt(r)),r.set(Is,new zNt(r)),iuo(r,u),r.set(CTe,new HNt(r)),r.set(xY,new qNt(r)),r.set(xg,new qbe(r)),r.set(Us,new SNt(r));let h=new fQe(r,t);r.set(fQe,h),r.set(yl,h),r.set(dQe,new dQe(r)),r.set(lQe,new lQe(r)),r.set(af,new af);let m=new FT(r);r.set(Qr,m),r.set(FT,m),r.set(Xc,new tSe(r,process.env)),r.set(Vk,new Qae),r.set(_c,new _c(r)),d_o(r),BEo(r),r.set(nO,new nO),r.set(Wz,new Wz),r.set(oO,new oO),r.set(zz,new zz([])),r.set(J1,new dNt),r.set(V_o.ObservableWorkspace,new fk(r,!0,!0)),r.set(O5,new nSe),r.set(Pw,new Pw),r.set(fp,new fp(r)),r.set(Oy,new Rxt(r)),r.set(Tv,new bNt(r)),r.set(pf,new CNt(r)),r.set(IR,new IR(r)),r.set(Ps,new Ps(r)),r.set(YU,new YU(r)),r.set(JU,new JU(r)),r.set(p1,new p1(r)),r.set(IX,new IX(r)),r.set(SL,new SL),r.set(Zg,new Zg),r.set(sO,new sO(r)),r.set(q_,new UNt(r)),r.set(tM,new QNt(r)),r.set(VU,new VU(r)),r.set(MS,new xNt(r));let g=new d$(r);r.set(d$,g);let A=new AA(r,g,new INt(r),new wNt(r));r.set(AA,A),r.set(iP,new iP(g,A)),r.set(f$,f$.create(r,A)),r.set(lse,zXi(r)),r.set(XI,new ZNt(r)),r.set(Ste,new Ste),r.set(Bse,new Bse),r.set(Ym,new lNt(r)),r.set(JC,new sNt(r)),r.set(SO,new SO(r));let y=new V0(r);r.set(V0,y),r.set(Lse,new Lse(r,y)),r.set(Ed,new Ed(r,y)),r.set(iA,new iA(r,y)),r.set(cf,new cf(r,y)),r.set(Qp,new Qp(r,e,y));let E=new eU(r,y,n);r.set(eU,E),r.get(Rv).addListener(E.lifecycleListener);let _=new ZB(r,y,n);r.set(ZB,_),r.get(Rv).addListener(_.lifecycleListener),r.get(tr).onDeactivation(()=>{GI(()=>_.dispose())});let v=new GU(r,y,n);r.set(GU,v),r.get(Rv).addListener(v.lifecycleListener);let S=new aQe;r.set(aQe,S),r.set(xh,new Okt(r)),r.set($0,new $0(r,S)),r.set(xR,new xR),r.set(m1,new m1(r)),r.set(Bj,new Bj(r)),r.set(mR,new rL([new nL,new iL])),r.set(Ose,new Ose(r)),r.set(Pv,new Pv(r)),r.set(NH,new JNt(r)),r.set(MZ,new KNt(r)),r.set(q1,new q1(r)),r.set(Ns,new Ns(r));let T=new ea(r);r.set(ea,T),r.set(Km,new Km),r.set(Yte,new Yte(r)),r.set(X8,new X8(r,new DMt)),r.set(hse,new hse(r)),r.set(use,new use(r)),r.set(is,new is(r)),r.set(KB,new TNt(r)),r.set(rO,new rO(r)),r.set(Ek,new Ek(r.get(rO),r)),r.set(mL,new mL(r)),r.set(Lw,new fNt(r)),r.set(tS,new tS(r.get(Ek),r.get(Lw),r)),r.set(qm,new qm(r));let w=new Z8(r,T);return r.set(Z8,w),r.set(Yse,new Yse(r,T)),r.get(tr).onActivation(()=>{w.ensureInitialSync()}),r}a(tOt,"createLanguageServerContext");var TO=new ce("ACP");async function z_o(t){let e=t.get(ws);TO.info(t,`Starting Copilot ACP Agent v${e.getDisplayVersion()}`),t.get(sS).markReady(),t.get(Sh).githubAppId=hue,jSl(t),HSl(t),t.get(An).setCapabilities({subAgent:!0,cveRemediatorAgent:!1}),await t.get(Mt).primeToken()?TO.info(t,"Token primed successfully"):TO.warn(t,"Token priming failed - set GH_COPILOT_TOKEN or GITHUB_COPILOT_TOKEN environment variable"),t.get(Ip).initialize(!0),xSn()?await qSl(t):(qc(t,"acp.server.start",{acpPipeline:"internal"}),await Y_o(t))}a(z_o,"startACPServer");async function Y_o(t){TO.info(t,"Starting ACP server with internal pipeline");let e=TTe.Writable.toWeb(process.stdout),r=TTe.Readable.toWeb(process.stdin),n=u2e(e,r),o,s=new d2e(c=>o=new Gkt(c,t),n);s.signal.addEventListener("abort",()=>{TO.info(t,"ACP connection closed")}),await s.closed,await o?.dispose(),process.exit(0)}a(Y_o,"startACPServerInternal");async function qSl(t){TO.info(t,"Starting ACP server with CLI proxy"),qc(t,"acp.cli.discover");let e;try{e=await RSn()}catch(d){let f=d instanceof Error?d.message:String(d);TO.warn(t,`CLI discovery failed, falling back to internal pipeline: ${f}`),aSe(t,"acp.server.start",d,{acpPipeline:"internal-fallback"}),await Y_o(t);return}let r=e.args.length>0?`${e.path} ${e.args.join(" ")}`:e.path;TO.info(t,`Found Copilot CLI: ${r} v${e.version}`),qc(t,"acp.server.start",{acpPipeline:"cli",cliVersion:e.version,cliSource:e.source});let n=new $kt(e,t),o=TTe.Writable.toWeb(process.stdout),s=TTe.Readable.toWeb(process.stdin),c=u2e(o,s),l,u=new d2e(d=>l=new Wkt(d,t,n),c);u.signal.addEventListener("abort",()=>{TO.info(t,"ACP connection closed")}),await u.closed,await l?.dispose(),process.exit(0)}a(qSl,"startACPServerWithCLI");function HSl(t){let e=t.get(Ps);e.registerTool(new Fj({name:"create_file",description:"Create a new file in the workspace with the specified content.",inputSchema:b.Object({filePath:b.String({description:"The absolute path of the file to create."}),content:b.String({description:"The content to write to the new file."})})})),e.registerTool(new Fj({name:"insert_edit_into_file",description:"Edit an existing file by inserting, replacing, or deleting content.",inputSchema:b.Object({filePath:b.String({description:"The absolute path of the file to edit."}),content:b.Optional(b.String({description:"The new content for the file."})),edits:b.Optional(b.Array(b.Object({startLine:b.Number({description:"The starting line number (1-based)."}),endLine:b.Number({description:"The ending line number (1-based)."}),newContent:b.String({description:"The new content to replace the range with."})})))})})),e.registerTool(new Fj({name:"replace_string_in_file",description:"Replace a specific string in a file with a new string.",inputSchema:b.Object({filePath:b.String({description:"The absolute path of the file to edit."}),oldString:b.String({description:"The string to find and replace."}),newString:b.String({description:"The string to replace it with."})})})),TO.info(t,"Registered ACP client tools: create_file, insert_edit_into_file, replace_string_in_file")}a(HSl,"registerACPClientTools");function K_o(){let e=tOt({onRequest:a(()=>{},"onRequest"),onNotification:a(()=>{},"onNotification"),listen:a(()=>{},"listen"),sendNotification:a(()=>{},"sendNotification"),sendRequest:a(()=>Promise.resolve({}),"sendRequest"),workspace:{onDidChangeWorkspaceFolders:a(()=>{},"onDidChangeWorkspaceFolders")},client:{register:a(()=>Promise.resolve({}),"register")},console:{log:a(()=>{},"log"),info:a(()=>{},"info"),warn:a(()=>{},"warn"),error:a(()=>{},"error")},window:{showWarningMessage:a(()=>Promise.resolve(void 0),"showWarningMessage"),showInformationMessage:a(()=>Promise.resolve(void 0),"showInformationMessage")}}),r=new tY(e);return e.forceSet(Tv,r),{ctx:e,acpToolInvoker:r}}a(K_o,"createACPContext");function jSl(t,e=process.env){let r=e.GITHUB_ENTERPRISE_URL;r&&(TO.info(t,"Configuring GitHub Enterprise URL from GITHUB_ENTERPRISE_URL"),Sqe(t,r))}a(jSl,"configureGitHubEnterpriseUrl");p();var xzr=require("events"),bQe=ue(require("fs"));var nOt=ue(tl());p();var Z_o=ue(require("fs")),X_o=ue(require("http")),ITe=ue(require("path"));var rOt=class{constructor(e,r){this.port=e;let n;this.server=X_o.createServer((o,s)=>{if(o.headers.accept&&o.headers.accept=="text/event-stream")switch(s.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),o.url){case"/stdin":r.on("read",l=>{J_o(s,JSON.stringify(l))});return;case"/stdout":r.on("write",l=>{J_o(s,JSON.stringify(l))});return;default:s.writeHead(404),s.end();return}s.writeHead(200,{"Content-Type":"text/html"});let c=__dirname;ITe.basename(__dirname)!=="debug"&&(c=ITe.dirname(__dirname)),n??=Z_o.readFileSync(ITe.join(c,"dist","debugServer.html")).toString(),s.write(n),s.end()}),this.server.on("error",o=>{console.error(o)})}static{a(this,"DebugServer")}listen(){return this.server.listen(this.port),this}getPort(){return this.server.address().port}};function J_o(t,e){t.write("data: "+e.toString().replace(/\n/g,`
4335
4335
  data: `)+`
4336
4336
 
4337
4337
  `)}a(J_o,"writeData");var Rzr=class extends nOt.AbstractMessageWriter{constructor(r,n){super();this.delegate=r;this.ev=n}static{a(this,"DebugMessageWriter")}async write(r){return this.ev.emit("write",r),this.delegate.write(r)}end(){this.ev.emit("end"),this.delegate.end()}},Pzr=class extends nOt.AbstractMessageReader{constructor(r,n){super();this.delegate=r;this.ev=n}static{a(this,"DebugMessageReader")}listen(r){return this.delegate.listen(n=>{this.ev.emit("read",n),r(n)})}};async function evo(t,e,r){let n,o=parseInt(t.GH_COPILOT_DEBUG_UI_PORT??t.GITHUB_COPILOT_DEBUG_UI_PORT);if(!isNaN(o)){n??=new xzr.EventEmitter;let l=new rOt(o,n).listen();o===0&&await KPt(`http://localhost:${l.getPort()}`)}let s=t.GITHUB_COPILOT_RECORD??"",c;try{let l=Date.now().toString();s==="1"||s==="true"?c=bQe.openSync(`stdio${l}.log`,"w"):s&&s!=="0"&&s!=="false"&&(c=bQe.openSync(s.replaceAll("%s",l),"w"))}catch(l){console.error(l)}if(c){let l=a(u=>{c&&bQe.appendFile(c,u,d=>{d&&(c=void 0,console.error(d))})},"log");n??=new xzr.EventEmitter,n.on("read",u=>l(`<-- ${JSON.stringify(u)}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "url": "git+https://github.com/github/copilot-language-server-release.git"
12
12
  },
13
13
  "license": "MIT",
14
- "version": "1.545.0",
14
+ "version": "1.545.1",
15
15
  "bin": {
16
16
  "copilot-language-server": "../dist/language-server.js"
17
17
  },
@@ -40,12 +40,12 @@
40
40
  "vscode-languageserver-protocol": "^3.17.5"
41
41
  },
42
42
  "optionalDependencies": {
43
- "@github/copilot-language-server-win32-x64": "1.545.0",
44
- "@github/copilot-language-server-win32-arm64": "1.545.0",
45
- "@github/copilot-language-server-linux-x64": "1.545.0",
46
- "@github/copilot-language-server-linux-arm64": "1.545.0",
47
- "@github/copilot-language-server-darwin-x64": "1.545.0",
48
- "@github/copilot-language-server-darwin-arm64": "1.545.0",
43
+ "@github/copilot-language-server-win32-x64": "1.545.1",
44
+ "@github/copilot-language-server-win32-arm64": "1.545.1",
45
+ "@github/copilot-language-server-linux-x64": "1.545.1",
46
+ "@github/copilot-language-server-linux-arm64": "1.545.1",
47
+ "@github/copilot-language-server-darwin-x64": "1.545.1",
48
+ "@github/copilot-language-server-darwin-arm64": "1.545.1",
49
49
  "@github/copilot-win32-x64": "1.0.83",
50
50
  "@github/copilot-win32-arm64": "1.0.83",
51
51
  "@github/copilot-linux-x64": "1.0.83",
@@ -54,5 +54,5 @@
54
54
  "@github/copilot-darwin-arm64": "1.0.83"
55
55
  },
56
56
  "buildType": "prod",
57
- "build": "120"
57
+ "build": "122"
58
58
  }